JP2019061577A - 異常判定方法及びプログラム - Google Patents

異常判定方法及びプログラム Download PDF

Info

Publication number
JP2019061577A
JP2019061577A JP2017187056A JP2017187056A JP2019061577A JP 2019061577 A JP2019061577 A JP 2019061577A JP 2017187056 A JP2017187056 A JP 2017187056A JP 2017187056 A JP2017187056 A JP 2017187056A JP 2019061577 A JP2019061577 A JP 2019061577A
Authority
JP
Japan
Prior art keywords
data
normal
noise
value
neural network
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2017187056A
Other languages
English (en)
Inventor
健介 若杉
Kensuke Wakasugi
健介 若杉
佳州 佐藤
Yoshikuni Sato
佳州 佐藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Intellectual Property Management Co Ltd
Original Assignee
Panasonic Intellectual Property Management Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Panasonic Intellectual Property Management Co Ltd filed Critical Panasonic Intellectual Property Management Co Ltd
Priority to JP2017187056A priority Critical patent/JP2019061577A/ja
Priority to CN201811023742.0A priority patent/CN109558936A/zh
Priority to US16/135,520 priority patent/US10757125B2/en
Publication of JP2019061577A publication Critical patent/JP2019061577A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/70Denoising; Smoothing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1425Traffic logging, e.g. anomaly detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/0002Inspection of images, e.g. flaw detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/12Edge-based segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/13Edge detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/136Segmentation; Edge detection involving thresholding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20081Training; Learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20084Artificial neural networks [ANN]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30168Image quality inspection

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Biomedical Technology (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Biophysics (AREA)
  • Artificial Intelligence (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Testing And Monitoring For Control Systems (AREA)
  • Measurement Of Mechanical Vibrations Or Ultrasonic Waves (AREA)
  • Image Analysis (AREA)

Abstract

【課題】ニューラルネットワークを用いた異常検知の精度を向上する異常判定方法等を提供する。【解決手段】ニューラルネットワークを用いた異常検知方法は、第1のデータに正常ノイズを付加して、第2のデータを生成し、前記第1のデータに異常ノイズを付加して、第3のデータを生成し、前記第1のデータ、前記第2のデータ及び前記第3のデータのそれぞれをニューラルネットワークに入力し、第1の正常スコア、第2の正常スコア及び第3の正常スコアを算出し、前記第1の正常スコア及び前記第2の正常スコアの差異に基づく第1差と、前記第1の正常スコア及び前記第3の正常スコアの差異に基づく第2差とに基づき、第3差を算出し、前記第3差を最小とするように前記ニューラルネットワークを変更し、正常か異常かが未知の第4のデータを、変更した前記ニューラルネットワークに入力し、前記第4のデータが正常か異常かを判定する。【選択図】図1

Description

本開示は、ニューラルネットワークを用いた異常判定方法及びプログラムに関する。
例えば、非特許文献1は、スコアマッチングと呼ばれる学習方法とデノイジングオートエンコーダと呼ばれる学習方法との関係を開示する。スコアマッチングは、様々なモデルに適用できるというメリットがある一方で、学習が困難であるという欠点があった。しかしながら、スコアマッチングとデノイジングオートエンコーダとのそれぞれから得られる解が一致することが示された。このため、モデルの表現についてはスコアマッチングに基づくことによって、学習方法についてはデノイジングオートエンコーダに基づくことによって、様々なモデルに適用できるというメリットを保ったまま、学習が容易になった。また、非特許文献2は、非特許文献1が開示する方法に基づき、画像データ、時系列データ及び多次元データに対し多層ニューラルネットワークを用いた異常検知方法を開示する。特許文献1は、復元型ニューラルネットワークを用いて故障を検知する方法を開示する。
国際公開第2016/132468号
Pascal Vincent、「A Connection Between Score Matching and Denoising Autoencoders」、Neural Computation、2011年7月、Vol. 23、Issue 7、P.1661−1674 Shuangfei Zhai他、「Deep structured energy based models for anomaly detection」、Proceedings of the 33rd International Conference on Machine Learning(ICML.2016)、2016年6月、Vol.48、P.1100−1109 J. Ngiam、Z. Chen、P.W.Koh及びA.Y.Ng、「Learning Deep Energy Models」、Proceedings of the 28th International Conference on Machine Learning(ICML.2011)、2011年、P1105−1112. Pascal Vincent他、「Extracting and composing robust features with denoising autoencoders」、Proceedings of the 25th International Conference on Machine learning(ICML.2008)、2008年、P1096−1103
非特許文献1及び2に記載の技術を、特許文献1のようなニューラルネットワークを用いた異常検知に適用すると、精度が低くなる可能性がある。
本開示は、ニューラルネットワークを用いた異常検知の精度を向上する異常判定方法及びプログラムを提供する。
本開示の一態様に係る異常判定方法は、ニューラルネットワークを用いた異常検知方法であって、(a1)データベースから、ニューラルネットワークと正常データである第1のデータとを取得し、ここで、前記正常データは、前記ニューラルネットワークにより正常と判定されるデータであり、(a2)前記第1のデータの種類に応じて予め設定された方法で、前記第1のデータに正常ノイズを付加して、第2のデータを生成し、ここで、前記第2のデータは、前記ニューラルネットワークにより正常と判定されるデータであり、(a3)前記第1のデータの種類に応じて予め設定された方法で、前記第1のデータに異常ノイズを付加して、第3のデータを生成し、ここで、前記第3のデータは、前記ニューラルネットワークにより異常と判定されるデータであり、(a4)前記第1のデータ、前記第2のデータ、及び前記第3のデータのそれぞれを前記ニューラルネットワークに入力し、第1の正常スコア、第2の正常スコア及び第3の正常スコアを算出し、ここで、前記第1の正常スコア、前記第2の正常スコア及び前記第3の正常スコアは、前記ニューラルネットワークに入力したデータの正常データらしさを数値化した値を表し、(a5)前記第1の正常スコアと前記第2の正常スコアとの差異に基づく第1差を算出し、前記第1の正常スコアと前記第3の正常スコアとの差異に基づく第2差を算出し、前記第1差と前記第2差との差異に基づく第3差を算出し、(a6)前記第3差を最小とする前記ニューラルネットワークのパラメータを算出し、(a7)前記算出したパラメータを用いて、前記ニューラルネットワークを変更し、(a8)正常か異常かが未知のデータを格納したテストデータベースから、第4のデータを取得し、前記第4のデータを、変更した前記ニューラルネットワークに入力し、第4の正常スコアを算出し、前記第4の正常スコアに基づいて、前記第4のデータが正常か異常かを判定し、前記(a1)〜前記(a8)の少なくとも1つはプロセッサによって実行される。
本開示の一態様に係るプログラムは、(a1)データベースから、ニューラルネットワークと正常データである第1のデータとを取得し、ここで、前記正常データは、前記ニューラルネットワークにより正常と判定されるデータであり、(a2)前記第1のデータの種類に応じて予め設定された方法で、前記第1のデータに正常ノイズを付加して、第2のデータを生成し、ここで、前記第2のデータは、前記ニューラルネットワークにより正常と判定されるデータであり、(a3)前記第1のデータの種類に応じて予め設定された方法で、前記第1のデータに異常ノイズを付加して、第3のデータを生成し、ここで、前記第3のデータは、前記ニューラルネットワークにより異常と判定されるデータであり、(a4)前記第1のデータ、前記第2のデータ、及び前記第3のデータのそれぞれを前記ニューラルネットワークに入力し、第1の正常スコア、第2の正常スコア及び第3の正常スコアを算出し、ここで、前記第1の正常スコア、前記第2の正常スコア及び前記第3の正常スコアは、前記ニューラルネットワークに入力したデータの正常データらしさを数値化した値を表し、(a5)前記第1の正常スコアと前記第2の正常スコアとの差異に基づく第1差を算出し、前記第1の正常スコアと前記第3の正常スコアとの差異に基づく第2差を算出し、前記第1差と前記第2差との差異に基づく第3差を算出し、(a6)前記第3差を最小とする前記ニューラルネットワークのパラメータを算出し、(a7)前記算出したパラメータを用いて、前記ニューラルネットワークを変更し、(a8)正常か異常かが未知のデータを格納したテストデータベースから、第4のデータを取得し、前記第4のデータを、変更した前記ニューラルネットワークに入力し、第4の正常スコアを算出し、前記第4の正常スコアに基づいて、前記第4のデータが正常か異常かを判定することを、コンピュータに実行させる。
なお、上記の包括的又は具体的な態様は、システム、装置、方法、集積回路、コンピュータプログラム又はコンピュータ読み取り可能な記録ディスク等の記録媒体で実現されてもよく、システム、装置、方法、集積回路、コンピュータプログラム及び記録媒体の任意な組み合わせで実現されてもよい。コンピュータ読み取り可能な記録媒体は、例えばCD−ROM(Compact Disc−Read Only Memory)等の不揮発性の記録媒体を含む。
本開示の異常判定方法等によると、ニューラルネットワークを用いた異常検知の精度を向上することが可能になる。
実施の形態に係る異常検知システムの機能的な構成を示すブロック図である。 実施の形態に係る異常検知装置の処理の全体的な流れの一例を示すフローチャートである。 図2のステップS102において、入力データが画像である場合の処理の詳細の一例を示すフローチャートである。 図3及び図5の処理に対応する画像データの例を示す模式図である。 図2のステップS103において、入力データが画像である場合の処理の詳細の一例を示すフローチャートである。 図2のステップS102において、入力データが時系列データである場合の処理の詳細の一例を示すフローチャートである。 図6及び図9の処理に対応する時系列データの例を示す模式図である。 入力データの代わりに、入力データの微分値を用いる場合の処理の例を示す模式図である。 図2のステップS103において、入力データが時系列データである場合の処理の詳細の一例を示すフローチャートである。 図2のステップS102において、入力データが多次元データである場合の処理の詳細の一例を示すフローチャートである。 図10の処理に対応する多次元データの例を示す模式図である。 図2のステップS103において、入力データが多次元データである場合の処理の詳細の一例を示すフローチャートである。
[本開示に至った知見]
近年、画像認識及び自然言語処理などの分野において、多層ニューラルネットワークによる認識及び識別方法が、著しい進歩を遂げており、異常検知方法にも応用され始めている。例えば、特許文献1は、復元型ニューラルネットワークと識別型ニューラルネットワークとを組み合わせて機器の故障を検知するシステムを開示している。復元型ニューラルネットワークは、オートエンコーダ(自己符号化器)である。例えば、非特許文献4は、学習データにノイズを加え、オートエンコーダによってノイズを除去するデノイジングオートエンコーダを開示している。ノイズには一般にガウスノイズが用いられる。例えば、非特許文献3は、多層ニューラルネットワークの出力をエネルギーとして扱い、教師なし学習を行うエナジーベースモデルを開示している。
デノイジングオートエンコーダを用いる場合は、学習の指針となる目的関数が、入力データと復元データとの誤差として定義される。その計算は容易であるが、一方で、エンコーダとデコーダとが必要となるため、計算に用いるパラメータが増大する、又は、利用可能なネットワーク構造が限定されるというデメリットがある。エナジーベースモデルを用いる場合は、デノイジングオートエンコーダにおけるデコーダに相当するネットワークが不要のため、多様なネットワーク構造が利用できるというメリットがある。しかしながら、学習指針となる目的関数の計算が困難である。
また、非特許文献1は、デノイジングオートエンコーダとスコアマッチングとの関係を開示する。具体的には、非特許文献1は、デノイジングオートエンコーダと、スコアマッチングが適用されるエナジーベースモデルとの関連性について開示している。これによれば、目的関数の計算が容易であるというデノイジングオートエンコーダのメリットと、多様なネットワーク構造が利用可能であるというエナジーベースモデルのメリットとの双方を組み合わせた学習が可能となる。非特許文献1では、エナジーベースモデルとデノイジングオートエンコーダとから得る解が一致するとし、学習データ周辺の真の分布がガウス分布により近似可能であるという仮定に基づき、デノイジングオートエンコーダのノイズ関数にガウス分布を用いている。また、非特許文献2は、非特許文献1が開示する方法に基づき、画像データ、時系列データ及び多次元データに対する多層ニューラルネットワークを用いた異常検知方法を、開示している。
しかしながら、本発明者らは、非特許文献1が開示するデノイジングオートエンコーダとエナジーベースモデルとの関連性において、近似計算の精度に関して改善の余地があることを見出した。デノイジングオートエンコーダにおいて、入力データにガウスノイズを加え、ニューラルネットワークにより入力データを復元できるように学習することは、エナジーベースモデルにおいて、入力データの分布に関する期待値計算する際に、入力データの周りの分布をガウス分布で近似して積分することに相当する。しかしながら、入力データの周りの分布は必ずしも、ガウス分布で精度よく近似できるとは限らない。入力データ周辺の真の分布がガウス分布によって近似できない場合は、ノイズ関数の近似精度が悪くなり、異常検知方法などに適用した場合にニューラルネットワークの性能低下の要因となる。このため、異常検知における性能を向上するためには、入力データに加えるべきノイズに応じたノイズ関数の近似精度の向上が必要であると、本発明者らは見出した。
デノイジングオートエンコーダはもともと汎化性能の向上を目的として提案されており、入力データの分布を近似することは考慮していない。非特許文献1ではデノイジングオートエンコーダとエナジーベースモデルとの関係性について開示しているが、デノイジングオートエンコーダにおけるノイズの加え方については言及していない。また、特許文献1及び非特許文献2は、デノイジングオートエンコーダにおいてノイズ関数をデータごとに変更することは開示していない。そこで、本発明者らは、異常判定における性能を向上するために、以下に記載する技術を創案した。そして、以下に記載する技術は、デノイジングオートエンコーダにおけるノイズの種類を変更することで、エナジーベースモデルにおける入力データの分布に関する期待値計算をより正確に行い、正常モデルの学習を改善し、異常検知の性能を向上させることを可能にする。
本開示の一態様に係る異常判定方法は、ニューラルネットワークを用いた異常検知方法であって、(a1)データベースから、ニューラルネットワークと正常データである第1のデータとを取得し、ここで、前記正常データは、前記ニューラルネットワークにより正常と判定されるデータであり、(a2)前記第1のデータの種類に応じて予め設定された方法で、前記第1のデータに正常ノイズを付加して、第2のデータを生成し、ここで、前記第2のデータは、前記ニューラルネットワークにより正常と判定されるデータであり、(a3)前記第1のデータの種類に応じて予め設定された方法で、前記第1のデータに異常ノイズを付加して、第3のデータを生成し、ここで、前記第3のデータは、前記ニューラルネットワークにより異常と判定されるデータであり、(a4)前記第1のデータ、前記第2のデータ、及び前記第3のデータのそれぞれを前記ニューラルネットワークに入力し、第1の正常スコア、第2の正常スコア及び第3の正常スコアを算出し、ここで、前記第1の正常スコア、前記第2の正常スコア及び前記第3の正常スコアは、前記ニューラルネットワークに入力したデータの正常データらしさを数値化した値を表し、(a5)前記第1の正常スコアと前記第2の正常スコアとの差異に基づく第1差を算出し、前記第1の正常スコアと前記第3の正常スコアとの差異に基づく第2差を算出し、前記第1差と前記第2差との差異に基づく第3差を算出し、(a6)前記第3差を最小とする前記ニューラルネットワークのパラメータを算出し、(a7)前記算出したパラメータを用いて、前記ニューラルネットワークを変更し、(a8)正常か異常かが未知のデータを格納したテストデータベースから、第4のデータを取得し、前記第4のデータを、変更した前記ニューラルネットワークに入力し、第4の正常スコアを算出し、前記第4の正常スコアに基づいて、前記第4のデータが正常か異常かを判定し、前記(a1)〜前記(a8)の少なくとも1つはプロセッサによって実行される。
上記態様によれば、正常データに加えるノイズとして、正常ノイズと異常ノイズとを用いることで、正常データの分布の近似精度を向上し、学習時のニューラルネットワークの目的関数の計算をより正確に行うことが可能になる。その結果、正常モデルの学習を改善し、異常検知の性能を向上させることが可能になる。なお、データベースは、1つのデータベースで構成されてもよく、複数のデータベースで構成されてもよい。そして、ニューラルネットワークを記録するデータベースと、データ(例えば、第1のデータ)を記録するデータベースとは、同一であってもよく、異なっていてもよい。例えば、第1のデータは、後述する学習データベースに格納されてもよく、ニューラルネットワークは、後述する記憶部に格納されてもよく、学習データベースに格納されてもよく、テストデータベースに格納されてもよい。
例えば、デノイジングオートエンコーダでは、入力データが局所解となる正常モデルを学習する。単にガウスノイズを用いた場合は入力データに依らず一様にガウスノイズを加え、ノイズが加えられた入力データはすべて正常スコアが減少するものとして扱われる。しかしながら、入力データに加えるノイズが全て正常スコアを減少させるとは限らない。例えば、画像としての数字の「0」を正常とし、それ以外を異常とする場合、文字の微小な位置又は傾きが変化したり、線の太さが変化したりしても、数字の「0」であることに変わりは無いため、正常スコアは元の「0」と同等でよい。そこで、ノイズの加え方として、正常スコアを減少させる異常ノイズと、正常スコアを減少させない正常ノイズとを用いることで、これらを区別し、エナジーベースモデルにおける目的関数を精度よく算出できる。
正常スコアを減少させないノイズの加え方をすべて記述し、正常ノイズとして定義することは困難である。しかしながら、入力データに関する知見に基づき、ノイズを加えた後も入力データを正常として扱うべきノイズの加え方の一部を正常ノイズとして定義すれば、従来のデノイジングオートエンコーダでは異常ノイズに含められていた正常ノイズを適切に扱うことが出来るため、目的関数の算出精度の向上を図ることが出来る。
本開示の一態様に係る異常判定方法において、前記第1のデータが画像である場合、前記(a1)と前記(a2)との間に、(b1)前記第1のデータである画像に含まれるエッジの画素位置を検出し、(b2)前記エッジの画素位置から第1の距離の画素位置の領域を異常ノイズ領域として設定し、かつ、前記画像のうち前記異常ノイズ領域に含まれない領域を正常ノイズ領域として設定し、前記(a2)において、前記予め設定された方法として、前記正常ノイズ領域にノイズを付加して、前記第2のデータを作成し、前記(a3)において、前記予め設定された方法として、前記異常ノイズ領域にノイズを付加して、前記第3のデータを作成してもよい。
上記様態によれば、画像の被写体の形状を変化させ、異常データへと変形し得るノイズを異常ノイズとして扱い、画像データの被写体の形状を変化させず、ノイズを付加した後のデータも正常データであるノイズを正常ノイズとして扱う使うことができる。これにより、ニューラルネットワークにおける目的関数を精度よく算出し、異常検知の性能を向上させることができる。
本開示の一態様に係る異常判定方法において、前記第1のデータが、時刻毎にデータ値を有する、時系列データである場合、前記(a1)と前記(a2)との間に、(c1)前記第1のデータの平均値を算出し、(c2)前記第1のデータのうち、前記平均値を超えるデータ値である超過データ値と、前記平均値未満のデータ値である非超過データ値とのそれぞれについて、前記平均値に近いデータ値から順にデータ数をカウントし、前記超過データ値及び前記非超過データ値のそれぞれの総データ数に対し、カウント数が予め設定された割合を超えるときのデータ値をそれぞれ上閾値及び下閾値として設定し、(c3)前記上閾値と前記下閾値との範囲内に含まれる領域を正常ノイズ領域として設定し、(c4)前記正常ノイズ領域に含まれない領域を異常ノイズ領域として設定し、(c5)前記第1のデータのデータ値が正常ノイズ領域に含まれる場合に、前記第1のデータのデータ値にノイズを付加する方法を正常ノイズの付加方法として設定し、前記第1のデータのデータ値が異常ノイズ領域に含まれる場合に、前記第1のデータのデータ値にノイズを付加する方法を異常ノイズの付加方法として設定してもよい。
上記様態によれば、時系列データのパターンを変化させ、異常データに変化し得るノイズを異常ノイズとして扱い、時系列データのパターンを変化させず、正常データのままとなるノイズを正常ノイズとして扱う使うことができる。これにより、ニューラルネットワークにおける目的関数を精度よく算出し、異常検知の性能を向上させることができる。
本開示の一態様に係る異常判定方法において、前記第1のデータが、時刻毎にデータ値を有する、時系列データである場合、(d1)前記第1のデータのデータ値を微分した微分値である微分データ値を算出し、(d2)前記微分データ値の平均値を算出し、(d3)前記微分データ値のうち、前記平均値を超える微分データ値である超過データ値と、前記平均値未満の微分データ値である非超過データ値とのそれぞれについて、前記平均値に近い微分データ値から順にデータ数をカウントし、前記超過データ値及び前記非超過データ値のそれぞれの総データ数に対し、カウント数が予め設定された割合を超えるときの微分データ値をそれぞれ上閾値及び下閾値として設定し、(d4)前記上閾値と前記下閾値との範囲内に含まれる領域を正常ノイズ領域として設定し、(d5)前記正常ノイズ領域に含まれない領域を異常ノイズ領域として設定し、(d6)前記微分データ値が正常ノイズ領域に含まれる場合に、前記微分データ値にノイズを付加する方法を正常ノイズの付加方法として設定し、前記微分データ値が異常ノイズ領域に含まれる場合に、前記微分データ値にノイズを付加する方法を異常ノイズの付加方法として設定し、前記(a2)〜前記(a4)において、前記第1のデータのデータ値の代わりに、前記微分データ値を用い、前記(a8)において、前記第4のデータのデータ値の代わりに、前記第4のデータのデータ値を微分した微分値を用いてもよい。
上記様態によれば、時系列データの時間的変化について、異常データに変化し得るノイズを異常ノイズとして扱い、時系列データの時間的変化について、異常データに変化させず、正常データのままとなるノイズを正常ノイズとして扱う使うことができる。これにより、ニューラルネットワークにおける目的関数を精度よく算出し、異常検知の性能を向上させることができる。
本開示の一態様に係る異常判定方法において、前記第1のデータが、多次元データである場合、前記(a1)と前記(a2)との間に、(e1)前記第1のデータの主成分分析を行い、主成分の固有値及び固有ベクトルを算出し、(e2)前記固有値及び前記固有ベクトルに基づき、前記第1のデータの微分方向を算出し、(e3)前記微分方向を異常ノイズ方向として設定し、(e4)前記異常ノイズ方向に垂直な方向を正常ノイズ方向として設定し、前記(a2)において、前記予め設定された方法として、前記正常ノイズ方向のノイズを前記第1のデータに付加して、前記第2のデータを作成し、前記(a3)において、前記予め設定された方法として、前記異常ノイズ方向のノイズを前記第1のデータに付加して、前記第3のデータを作成してもよい。
上記様態によれば、多次元データについて、異常データに変化し得るノイズを異常ノイズとして扱い、多次元データを異常データに変化させず、正常データのままとなるノイズを正常ノイズとして扱う使うことができる。これにより、ニューラルネットワークにおける目的関数を精度よく算出し、異常検知の性能を向上させることができる。
本開示の一態様に係る異常判定方法において、前記第1のデータが多次元データである場合、前記(a1)と前記(a2)との間に、(e1)前記第1のデータの主成分分析を行い、主成分の固有値及び固有ベクトルを算出し、(e2)前記固有ベクトルを軸に、前記固有値を各軸の分散に持つガウス分布上で、データ点における微分方向を算出し、(e3)前記微分方向を異常ノイズ方向として設定し、(e4)前記異常ノイズ方向に垂直な方向を正常ノイズ方向として設定し、(e5)前記第1のデータに前記異常ノイズ方向のノイズを加えることを異常ノイズの付加方法として設定し、前記第1のデータに前記正常ノイズ方向のノイズを加えることを正常ノイズの付加方法として設定してもよい。上記様態によっても、ニューラルネットワークにおける目的関数を精度よく算出し、異常検知の性能を向上させることができる。
本開示の一態様に係る異常判定方法では、前記(a7)において、前記ニューラルネットワークの変更前後の前記第3差の変動量を算出し、前記第3差が減少する場合、前記ニューラルネットワークを変更し、前記第3差が増加する場合には、前記第3差の変動量に基づく確率で、前記ニューラルネットワークを変更してもよい。上記態様によれば、ニューラルネットワークの変更の可否を、状況に応じて決定することができる。よって、ニューラルネットワークの性能の向上が可能になる。
また、本開示の一態様に係るプログラムは、(a1)データベースから、ニューラルネットワークと正常データである第1のデータとを取得し、ここで、前記正常データは、前記ニューラルネットワークにより正常と判定されるデータであり、(a2)前記第1のデータの種類に応じて予め設定された方法で、前記第1のデータに正常ノイズを付加して、第2のデータを生成し、ここで、前記第2のデータは、前記ニューラルネットワークにより正常と判定されるデータであり、(a3)前記第1のデータの種類に応じて予め設定された方法で、前記第1のデータに異常ノイズを付加して、第3のデータを生成し、ここで、前記第3のデータは、前記ニューラルネットワークにより異常と判定されるデータであり、(a4)前記第1のデータ、前記第2のデータ、及び前記第3のデータのそれぞれを前記ニューラルネットワークに入力し、第1の正常スコア、第2の正常スコア及び第3の正常スコアを算出し、ここで、前記第1の正常スコア、前記第2の正常スコア及び前記第3の正常スコアは、前記ニューラルネットワークに入力したデータの正常データらしさを数値化した値を表し、(a5)前記第1の正常スコアと前記第2の正常スコアとの差異に基づく第1差を算出し、前記第1の正常スコアと前記第3の正常スコアとの差異に基づく第2差を算出し、前記第1差と前記第2差との差異に基づく第3差を算出し、(a6)前記第3差を最小とする前記ニューラルネットワークのパラメータを算出し、(a7)前記算出したパラメータを用いて、前記ニューラルネットワークを変更し、(a8)正常か異常かが未知のデータを格納したテストデータベースから、第4のデータを取得し、前記第4のデータを、変更した前記ニューラルネットワークに入力し、第4の正常スコアを算出し、前記第4の正常スコアに基づいて、前記第4のデータが正常か異常かを判定することを、コンピュータに実行させる。上記態様によれば、本開示の一態様に係る異常判定方法と同様の効果が得られる。
本開示の一態様に係るプログラムにおいて、前記第1のデータが画像である場合、前記(a1)と前記(a2)との間に、(b1)前記第1のデータである画像に含まれるエッジの画素位置を検出し、(b2)前記エッジの画素位置から第1の距離以下の画素位置の領域を異常ノイズ領域として設定し、かつ、前記画像のうち前記異常ノイズ領域に含まれない領域を正常ノイズ領域として設定し、前記(a2)において、前記予め設定された方法として、前記正常ノイズ領域にノイズを付加して、前記第2のデータを作成し、前記(a3)において、前記予め設定された方法として、前記異常ノイズ領域にノイズを付加して、前記第3のデータを作成してもよい。
本開示の一態様に係るプログラムにおいて、前記第1のデータが、時刻毎にデータ値を有する、時系列データである場合、前記(a1)と前記(a2)との間に、(c1)前記第1のデータの平均値を算出し、(c2)前記第1のデータのうち、前記平均値を超えるデータ値である超過データ値と、前記平均値未満のデータ値である非超過データ値とのそれぞれについて、前記平均値に近いデータ値から順にデータ数をカウントし、前記超過データ値及び前記非超過データ値のそれぞれの総データ数に対し、カウント数が予め設定された割合を超えるときのデータ値をそれぞれ上閾値及び下閾値として設定し、(c3)前記上閾値と前記下閾値との範囲内に含まれる領域を正常ノイズ領域として設定し、(c4)前記正常ノイズ領域に含まれない領域を異常ノイズ領域として設定し、(c5)前記第1のデータのデータ値が正常ノイズ領域に含まれる場合に、前記第1のデータのデータ値にノイズを付加する方法を正常ノイズの付加方法として設定し、前記第1のデータのデータ値が異常ノイズ領域に含まれる場合に、前記第1のデータのデータ値にノイズを付加する方法を異常ノイズの付加方法として設定してもよい。
本開示の一態様に係るプログラムにおいて、前記第1のデータが、時刻毎にデータ値を有する、時系列データである場合、前記(a1)と前記(a2)との間に、(d1)前記第1のデータのデータ値を微分した微分値である微分データ値を算出し、(d2)前記微分データ値の平均値を算出し、(d3)前記微分データ値のうち、前記平均値を超える微分データ値である超過データ値と、前記平均値未満の微分データ値である非超過データ値とのそれぞれについて、前記平均値に近い微分データ値から順にデータ数をカウントし、前記超過データ値及び前記非超過データ値のそれぞれの総データ数に対し、カウント数が予め設定された割合を超えるときの微分データ値をそれぞれ上閾値及び下閾値として設定し、(d4)前記上閾値と前記下閾値との範囲内に含まれる領域を正常ノイズ領域として設定し、(d5)前記正常ノイズ領域に含まれない領域を異常ノイズ領域として設定し、(d6)前記微分データ値が正常ノイズ領域に含まれる場合に、前記微分データ値にノイズを付加する方法を正常ノイズの付加方法として設定し、前記微分データ値が異常ノイズ領域に含まれる場合に、前記微分データ値にノイズを付加する方法を異常ノイズの付加方法として設定し、前記(a2)〜前記(a4)において、前記第1のデータのデータ値の代わりに、前記微分データ値を用い、前記(a8)において、前記第4のデータの値の代わりに、前記第4のデータのデータ値を微分した微分値を用いてもよい。
本開示の一態様に係るプログラムにおいて、前記第1のデータが、多次元データである場合、前記(a1)と前記(a2)との間に、(e1)前記第1のデータの主成分分析を行い、主成分の固有値及び固有ベクトルを算出し、(e2)前記固有値及び前記固有ベクトルに基づき、前記第1のデータの微分方向を算出し、(e3)前記微分方向を異常ノイズ方向として設定し、(e4)前記異常ノイズ方向に垂直な方向を正常ノイズ方向として設定し、前記(a2)において、前記予め設定された方法として、前記正常ノイズ方向のノイズを前記第1のデータに付加して、前記第2のデータを作成し、前記(a3)において、前記予め設定された方法として、前記異常ノイズ方向のノイズを前記第1のデータに付加して、前記第3のデータを作成してもよい。
本開示の一態様に係るプログラムでは、前記(a7)において、前記ニューラルネットワークの変更前後の前記第3差の変動量を算出し、前記第3差が減少する場合、前記ニューラルネットワークを変更し、前記第3差が増加する場合には、前記第3差の変動量に基づく確率で、前記ニューラルネットワークを変更してもよい。
上記の異常判定方法の作用効果は異常検知装置及び異常検知システムにおいても同様に実現される。なお、上記の包括的又は具体的な態様は、システム、装置、方法、集積回路、コンピュータプログラム又はコンピュータ読み取り可能な記録ディスク等の記録媒体で実現されてもよく、システム、装置、方法、集積回路、コンピュータプログラム及び記録媒体の任意な組み合わせで実現されてもよい。コンピュータ読み取り可能な記録媒体は、例えばCD−ROM等の不揮発性の記録媒体を含む。
[実施の形態]
以下、実施の形態について、図面を参照しながら説明する。なお、以下で説明する実施の形態は、いずれも包括的又は具体的な例を示すものである。以下の実施の形態で示される数値、形状、構成要素、構成要素の配置位置及び接続形態、ステップ(工程)、ステップの順序等は、一例であり、本開示を限定する主旨ではない。また、以下の実施の形態における構成要素のうち、最上位概念を示す独立請求項に記載されていない構成要素については、任意の構成要素として説明される。また、以下の実施の形態の説明において、略平行、略直交のような「略」を伴った表現が、用いられる場合がある。例えば、略平行とは、完全に平行であることを意味するだけでなく、実質的に平行である、すなわち、例えば数%程度の差異を含むことも意味する。他の「略」を伴った表現についても同様である。また、各図は模式図であり、必ずしも厳密に図示されたものではない。さらに、各図において、実質的に同一の構成要素に対しては同一の符号を付しており、重複する説明は省略又は簡略化される場合がある。
図1には、実施の形態に係る異常検知システム1000の機能的な構成が、ブロック図で示されている。異常検知システム1000は、ニューラルネットワークを用いて、入力データにおける異常の有無を検出する。さらに、異常検知システム1000は、ニューラルネットワークを用いた機械学習を行うことによって、異常の検出精度を向上させる。図1に示すように、異常検知システム1000は、異常検知装置100と、学習データベース(以下、「学習DB」と呼ぶ)201と、テストデータベース202(以下、「テストDB」と呼ぶ)とを備える。さらに、異常検知装置100は、入力データ取得部101と、正常ノイズ付加データ生成部102と、異常ノイズ付加データ生成部103と、正常スコア算出部104と、ネットワークパラメータ算出部105と、異常検出部106と、記憶部107とを備える。
入力データ取得部101、正常ノイズ付加データ生成部102、異常ノイズ付加データ生成部103、正常スコア算出部104、ネットワークパラメータ算出部105及び異常検出部106からなる異常検知装置100の構成要素は、CPU(Central Processing Unit)又はDSP(Digital Signal Processor)等のプロセッサ、並びに、RAM(Random Access Memory)及びROM(Read−Only Memory)等のメモリなどからなる処理回路により構成されてもよい。上記構成要素の一部又は全部の機能は、CPU又はDSPがRAMを作業用のメモリとして用いてROMに記録されたプログラムを実行することによって達成されてもよい。また、上記構成要素の一部又は全部の機能は、電子回路又は集積回路等の専用のハードウェア回路によって達成されてもよい。上記構成要素の一部又は全部の機能は、上記のソフトウェア機能とハードウェア回路との組み合わせによって構成されてもよい。プログラムは、アプリケーションとして、インターネット等の通信網を介した通信、モバイル通信規格による通信、その他の無線ネットワーク、有線ネットワーク、又は放送等で提供されるものであってもよい。
学習データベース201及びテストデータベース202は、異常検知装置100と共に1つの装置に備えられてもよく、異常検知装置100と分離した装置に備えられてもよい。後者の場合、学習データベース201及びテストデータベース202は、異常検知装置100と有線通信又は無線通信を介して接続されてもよい。無線通信の場合、学習データベース201及びテストデータベース202は、異常検知装置100と、インターネット等の通信網を介して接続されてもよく、その場合、クラウドサーバに備えられてもよい。同様に、異常検知装置100は、1つの装置に備えられてもよく、2つ以上の装置に分離して備えられてもよい。分離した装置は、有線通信又は無線通信を介して接続されてもよい。例えば、後述するニューラルネットワークの学習に関わる入力データ取得部101と、正常ノイズ付加データ生成部102と、異常ノイズ付加データ生成部103と、正常スコア算出部104と、ネットワークパラメータ算出部105とは、クラウドサーバに備えられてもよい。
学習データベース201及びテストデータベース202は、情報を格納することができ、且つ、格納した情報の取り出しを可能にする。学習データベース201は、異常検知システム1000において正常データとみなされる第1入力データを記録する。例えば、正常データは、正常な状態を示すデータ又は正確なデータ等であり、異常データは、異常な状態を示すデータ又は不正確なデータ等である。第1入力データは、画像データ、時系列データ、多次元データ等のうちのいずれでもよい。第1入力データは、データの種類と対応付けられて記憶されていてもよい。データの種類は、画像データ、時系列データ、多次元データ等によって区分される種類である。テストデータベース202は、正常か異常かが未知である第2入力データを記録する。第2入力データは、画像データ、時系列データ、多次元データのいずれでもよいが、学習データベース201と同じ種類のデータである必要がある。ここで、第1入力データは、第1のデータの一例であり、第2入力データは、第4のデータの一例である。また、学習データベース201は、データベースの一例である。
学習データベース201及びテストデータベース202は、例えば、ROM、RAM、フラッシュメモリなどの半導体メモリ、ハードディスクドライブ、又は、SSD(Solid State Drive)等の記憶装置によって実現される。
記憶部107は、情報を格納することができ、且つ、格納した情報の取り出しを可能にする。記憶部107は、異常検知装置100の各構成要素が処理を実行するためのコンピュータプログラム、識別器、学習データベース201及びテストデータベース202から取得されるデータ等を記憶する。記憶部107は、例えば、ROM、RAM、フラッシュメモリなどの半導体メモリ、ハードディスクドライブ、又はSSD等の記憶装置によって実現される。識別器は、ニューラルネットワークを用いた識別器であり、本実施の形態では、ニューラルネットワークは、それぞれが少なくとも1つのニューロンを含む複数のニューロン層を有する多層構造のニューラルネットワーク(以下、「多層ニューラルネットワーク」とも呼ぶ)である。なお、識別器は、学習データベース201又はテストデータベース202に格納されていてもよい。この場合、記憶部107は、学習データベース201又はテストデータベース202を含んでもよく、これらと別個であってもよい。つまり、記憶部107は、学習データベース201及びテストデータベース202の少なくとも一方と同じであってもよく、異なっていてもよい。また、学習データベース201は、テストデータベース202と同じであってもよく、異なっていてもよい。また、本明細書において、「識別器」のことを、単に「ニューラルネットワーク」とも称する。ここで、記憶部107は、データベースの一例である。
入力データ取得部101は、学習データベース201から正常データである第1入力データを取得し、正常ノイズ付加データ生成部102と、異常ノイズ付加データ生成部103と、正常スコア算出部104とに出力する。
正常ノイズ付加データ生成部102は、第1入力データと、第1入力データの種類とを取得する。正常ノイズ付加データ生成部102は、第1入力データに対応付けられたデータの種類を取得してもよいし、ユーザの入力に基づいてデータの種類を取得してもよい。異常検知システム1000がインタフェース部を有する場合、正常ノイズ付加データ生成部102は、インタフェース部を介して、ユーザの入力を取得してもよいし、異常検知システム1000の外部のインタフェース部を介して、有線通信又は無線通信を通じて、ユーザの入力を取得してもよい。
予め決められた1種類の入力データを用いる場合には、正常ノイズ付加データ生成部102は、第1入力データの種類を取得しなくてもよい。このとき、学習データベース201に記録される第1入力データと、後述する第1の方法及び第2の方法とが、予め決められた1種類の入力データに対応する情報のみを含んでいればよい。異常検知装置100の記憶部107又は異常検知システム1000が備える図示しないメモリは、データの種類に応じた少なくとも1つの第1の方法を記録し、正常ノイズ付加データ生成部102は、当該メモリから第1入力データの種類に応じた第1の方法を取得する。
正常ノイズ付加データ生成部102は、第1入力データに、第1入力データの種類に応じて予め設定された第1の方法で正常ノイズを加えることによって、正常ノイズ付加データを生成し、正常ノイズ付加データを正常スコア算出部104に出力する。ここで、正常ノイズを説明する。入力データは、複数のパラメータを有する。複数のパラメータは、少なくとも1つの第1パラメータと、少なくとも1つの第2パラメータとを含む。第1パラメータは、後述する正常スコアに、所定以上の影響を与えるパラメータであり、第2パラメータは、正常スコアに、所定未満の影響を与えるパラメータである。正常ノイズとは、入力データが有する複数のパラメータに含まれる少なくとも1つの第2パラメータに加えられたノイズを意味する。
異常ノイズ付加データ生成部103は、第1入力データと、第1入力データの種類とを取得する。異常ノイズ付加データ生成部103は、第1入力データに対応付けられたデータの種類を取得してもよいし、ユーザの入力に基づいてデータの種類を取得してもよい。異常検知システム1000がインタフェース部を有する場合、異常ノイズ付加データ生成部103は、インタフェース部を介して、ユーザの入力を取得してもよいし、異常検知システム1000の外部のインタフェース部を介して、有線通信又は無線通信を通じて、ユーザの入力を取得してもよい。
異常ノイズ付加データ生成部103は、入力データ取得部101から取得した第1入力データに、第1入力データの種類に応じて予め設定された第2の方法で異常ノイズを加えることによって、異常ノイズ付加データを生成し、異常ノイズ付加データを正常スコア算出部104に出力する。ここで、異常ノイズを説明する。上述のように、入力データが有する複数のパラメータは、少なくとも1つの第1パラメータと、少なくとも1つの第2パラメータとを含む。異常ノイズとは、入力データが有する複数のパラメータに含まれる少なくとも1つの第1パラメータに加えられたノイズを意味する。
正常スコア算出部104は、入力データ取得部101から取得した第1入力データと、正常ノイズ付加データ生成部102から取得した正常ノイズ付加データと、異常ノイズ付加データ生成部103から取得した異常ノイズ付加データとを、ニューラルネットワークに入力する。ニューラルネットワークは、データが入力されると、当該データの正常スコアを出力する。その結果、正常スコア算出部104は、第1入力データ、正常ノイズ付加データ及び異常ノイズ付加データそれぞれに対応する第1正常スコア、第2正常スコア及び第3正常スコアを出力結果として算出する。ここで、正常ノイズ付加データは第2のデータの一例であり、異常ノイズ付加データは、第3のデータの一例である。正常スコア算出部104は、出力結果をネットワークパラメータ算出部105に出力する。正常スコアは、ニューラルネットワークに入力したデータの正常データらしさを数値化した値を表す。正常スコアは、ニューラルネットワークに入力されたデータが正常又は正確なデータであるか否かを示す指標である。正常スコアは、例えば、0〜1の範囲の値で示され、その値が「1」に近い程、正常又は正確なデータである可能性が高いことを意味する。
ネットワークパラメータ算出部105は、正常スコア算出部104から取得する第1正常スコア、第2正常スコア及び第3正常スコアを用いて、ニューラルネットワークのパラメータを算出し、算出したパラメータを異常検出部106に出力する。具体的には、ネットワークパラメータ算出部105は、第1正常スコアと第2正常スコアとの差異に基づく第1差と、第1正常スコアと第3正常スコアとの差異に基づく第2差とを算出する。さらに、ネットワークパラメータ算出部105は、係数を掛けた第1差から係数を掛けた第2差を減算して、第3差を算出する、つまり、第1差と第2差との差異に基づく第3差を算出する。
そして、ネットワークパラメータ算出部105は、第3差を最小とするようにニューラルネットワークのパラメータを変更することによって、第3差を最小とするニューラルネットワークのパラメータを算出する。つまり、ニューラルネットワークの学習のための目的関数として、第3差を用いた目的関数を定義することができる。このような目的関数は、正常データ、正常ノイズが付加された正常データ、及び異常ノイズが付加された正常データを用いるものである。このため、目的関数は、ニューラルネットワークにおいて、ノイズの影響を受ける場合の正常データの分布の近似精度を向上することを可能にする。よって、目的関数の精度が向上する。さらに、目的関数の計算も容易である。なお、ニューラルネットワークのパラメータの例は、ニューラルネットワークに含まれるニューロン間の重み付け係数、バイアス等である。また、第1正常スコア、第2正常スコア及び第3正常スコアから第3差を算出する過程を数式で表現すると下記の式1のようになる。
ここで係数αは、ニューラルネットワークのパラメータ算出時に第1差と第2差とのいずれを重視するかを決めるパラメータであり、値域は(0,1)である。つまり、係数αは、0〜1の値をとり、0に近いほど第1差を重視することを意味し、1に近いほど第2差を重視することを意味する。具体的には、例えば、係数αの値として0.5を用いてもよい。また、第1差及び第2差の算出には、正常スコアの差の2乗の代わりに、正常スコアの差の絶対値を用いてもよい。第3差を最小とするニューラルネットワークのパラメータの算出には、例えば、特許文献1に記載されるようなバックプロパゲーション(「誤差逆伝播法」とも呼ばれる)等の、ニューラルネットワークの学習に関する公知の方法を利用することができる。バックプロパゲーションは、機械学習においてニューラルネットワークに学習させるために用いられるアルゴリズムの1つである。バックプロパゲーションを用いたニューラルネットワークの更新式には、例えば下記の式2を用いることができる。
W_t+1=W_t−γ×dD(W_t)/dW_t (式2)
W_tは、ニューラルネットワークのパラメータの更新前の値を表し、W_t+1は更新後の値を表す。D(W)は、ニューラルネットワークのパラメータがWであるときの第3差を表す。γは学習係数を表す。
上記更新式は、入力データすべてを用いて算出してもよい。又は、入力データの一部のデータを取り出し、当該一部のデータについて更新式を算出してパラメータを更新し、さらに、順次取り出すデータを変更しつつ更新を繰り返してもよい。又は、更新前後の第3差の変動量に基づき、更新を採用するか否かを決定してもよい。例えば、第3差が減少する場合には必ず更新を採用し、第3差が増加する場合には、下記の式3で示す確率で更新を採用してもよい。なお、第3差が変化しない場合、更新しなくてもよい。
(更新確率)=min(1,e) (式3)
eは自然対数を表し、Dは、第3差の減少量を表す。第3差の減少量Dは、第3差が減少する場合に正の値をとる。このような更新確率は、1及びeの小さい方の値である。更新確率が「1」であることは、更新確率が「100%」であることを示す。例えば、第3差が減少する場合、D>0であり、更新確率=min(1,e>1)=1であり、第3差が増加する場合、D<0であり、更新確率=min(1,e<1)=eである。
異常検出部106は、正常か異常かが未知であるデータを格納したテストデータベース202から第2入力データを取得する。異常検出部106は、ネットワークパラメータ算出部105から取得したパラメータを設定したニューラルネットワークに第2入力データを入力して第4正常スコアを算出する、異常検出部106は、第4正常スコアが第一閾値を超えない場合に、当該第2入力データが異常データであると判定する。ここで、第一閾値は、予め設定された閾値である。第一閾値として、例えば、学習データベース201に格納された正常データのうち、90%が正常であると判定される値を用いてもよい。又は、正常データの正常スコアの標準偏差σを算出し、正常スコアの平均値から3σを減算した値を、第一閾値として用いてもよい。
次に、図2を参照して、異常検知装置100の動作について説明する。図2は、実施の形態に係る異常検知装置100の処理の全体的な流れの一例を示すフローチャートである。
ステップS101において、入力データ取得部101は、学習DB201から正常データである第1入力データを取得する。さらに、入力データ取得部101は、第1入力データを、正常ノイズ付加データ生成部102、異常ノイズ付加データ生成部103及び正常スコア算出部104に出力する。
次いで、ステップS102において、正常ノイズ付加データ生成部102は、第1入力データの種類に応じて予め設定された正常ノイズ付加方法(「第1の方法」とも呼ぶ)で、第1入力データにノイズを付加することによって、正常ノイズ付加データを生成する。正常ノイズ付加データ生成部102は、生成した正常ノイズ付加データを正常スコア算出部104に出力する。
次いで、ステップS103において、異常ノイズ付加データ生成部103は、第1入力データの種類に応じて予め設定された異常ノイズ付加方法(「第2の方法」とも呼ぶ)で、第1入力データにノイズを付加することによって、異常ノイズ付加データを生成する。異常ノイズ付加データ生成部103は、生成した異常ノイズ付加データを正常スコア算出部104に出力する。
次いで、ステップS104において、正常スコア算出部104は、第1入力データ、正常ノイズ付加データ及び異常ノイズ付加データを、同じニューラルネットワーク(「NN」とも呼ぶ)に入力し、第1正常スコア、第2正常スコア及び第3正常スコアを算出する。正常スコア算出部104は、算出した第1正常スコア、第2正常スコア及び第3正常スコアを、ネットワークパラメータ算出部105に出力する。本例では、ニューラルネットワークは、多層ニューラルネットワークであるとし、データが入力されると、当該データに対応する正常スコアを出力する。
次いで、ステップS105において、ネットワークパラメータ算出部105は、第1正常スコアと第2正常スコアとの差異に基づく第1差を算出し、第1正常スコアと第3正常スコアとの差異に基づく第2差を算出する。さらに、ネットワークパラメータ算出部105は、第1差と第2差との差異に基づく第3差を算出する。
次いで、ステップS106において、ネットワークパラメータ算出部105は、ニューラルネットワークのパラメータを変更することによって、第3差を最小とするニューラルネットワークのパラメータを算出する。ネットワークパラメータ算出部105は、算出したパラメータを異常検出部106に出力する。
次いで、ステップS107において、異常検出部106は、テストDB202から正常か異常かが未知である第2入力データを取得する。第2入力データは、第1入力データと同じ種類のデータである。例えば、画像データ、時系列データ、多次元データ等といったデータの種類に関して、第2入力データは、第1入力データと同じ種類のデータであってもよい。また、第2入力データ及び第1入力データの対象が同じ種類であってもよい。この場合、例えば、第1入力データが、自動車から前方に見える光景の画像である場合、第2入力データも、自動車から前方に見える光景の画像である。
次いで、ステップS108において、異常検出部106は、ステップS106で算出したニューラルネットワークのパラメータをニューラルネットワークに設定することによって、ニューラルネットワークを変更、つまり更新する。さらに、異常検出部106は、第2入力データを、更新後のニューラルネットワークに入力することによって、第4正常スコアを算出する。
次いで、ステップS109において、異常検出部106は、第4正常スコアと予め設定された第一閾値とを比較する。第4正常スコアが第一閾値を超える場合(ステップS109でNo)、異常検出部106は、第2入力データが正常データであると判定する(ステップS111)。第4正常スコアが第一閾値以下である場合(ステップS109でYes)、異常検出部106は、第2入力データが異常データであると判定する(ステップS110)。
上述したように、異常検知装置100は、正常データと、正常データに正常ノイズ又は異常ノイズが付加された正常ノイズ付加データ及び異常ノイズ付加データとを用いて、ニューラルネットワークに学習させ、学習後のニューラルネットワークを用いて、正常か異常かが不明であるデータの異常判定を行う。なお、正常データ、正常ノイズ付加データ及び異常ノイズ付加データの正常スコアの差異に関連する第3差を最小にするように、ニューラルネットワークの学習が行われる。
さらに、図3を参照して、図2のステップS102の処理である正常ノイズ付加データの算出方法を、第1入力データが画像データである場合について、説明する。図3は、図2のステップS102において、第1入力データの種類が画像の場合の処理の詳細の一例を示すフローチャートである。
まず、ステップS201において、正常ノイズ付加データ生成部102は、画像データである第1入力データのエッジを検出する。つまり、正常ノイズ付加データ生成部102は、第1の入力データのエッジに対応する画素の位置を検出する。エッジの検出には、キャニー法、微分エッジ検出法を含む公知方法が利用され得る。次に、ステップS202において、正常ノイズ付加データ生成部102は、ステップS201で検出したエッジを拡張する。拡張方法は、例えば、ステップS201で検出したエッジから、予め定められた距離以内に含まれる画素を拡張後のエッジとして定義する方法であってよい。予め定められた距離は、例えば10pixelとすることができるが、これに限定はされない。このようにエッジを拡張することによって、元々のエッジの周りに拡がったエッジ領域が形成される。
次に、ステップS203において、正常ノイズ付加データ生成部102は、第1入力データのうち、ステップS202で拡張したエッジ領域に含まれない領域にノイズを加え、正常ノイズ付加データを算出する。ここで、例えば、第1入力データの画素値が0〜255である場合、平均0分散10のガウスノイズが生成され、生成されたガウスノイズが、ノイズとして画素値に加算されてもよい。ガウスノイズは、正規分布のノイズである。又は、ランダムに、例えば10%の確率で、画素値を0又は255に置き換えるごましおノイズが、ノイズとして用いられてもよい。ここで、エッジ領域に含まれない領域は、正常ノイズ領域の一例である。
ここで、図4を参照して、画像データに正常ノイズが付加される具体例を説明する。図4は、図3及び図5の処理に対応する画像データの例を示す模式図である。図4に示す画像200は、第1入力データの一例である。図4に示す画像201はステップS201の処理に対応し、画像202はステップS202の処理に対応し、画像203はステップS203の処理後の画像データである。
画像201の色無しの線分は、ステップS201で検出されるエッジに対応する。画像201の色無しの線分に対して、画像202の色無し線分は太くなっており、画像202はステップS202によりエッジが拡張された画像データに対応する。画像203は、画像202のエッジ部分に対応するエッジ領域以外の部分が、画像200の入力データに対して変化していることがわかる。画像203は、画像202のエッジ領域以外の部分に正常ノイズが付加された画像データに対応する。
上述のように、異常検知装置100は、ステップS201からステップS203の処理を行うことによって、図2のステップS102において、正常ノイズ付加データを算出する。
次に、図5を参照して、図2のステップS103の処理である異常ノイズ付加データの算出方法を、第1入力データが画像データである場合について、説明する。図5は、図2のステップS103において、第1入力データの種類が画像の場合の処理の詳細の一例を示すフローチャートである。
まず、異常ノイズ付加データ生成部103は、正常ノイズ付加データ生成部102と同様に、ステップS201及びステップS202の処理を行う。次に、ステップS303において、異常ノイズ付加データ生成部103は、第1入力データのうち、ステップS202で拡張したエッジ領域に含まれる領域にノイズを加え、異常ノイズ付加データを算出する。図4を参照すると、画像202のエッジ領域に異常ノイズが付加された画像データの例が、画像204として示されている。ここで、エッジ領域は、異常ノイズ領域の一例である。
上述のように、異常検知装置100は、ステップS201、S202及びS303の処理を行うことによって、図2のステップS103において、異常ノイズ付加データを算出する。
次に、図6を参照して、図2のステップS102の処理である正常ノイズ付加データの算出方法を、第1入力データが時系列データである場合について、説明する。図6は、図2のステップS102において、第1入力データの種類が時系列データの場合の処理の詳細の一例を示すフローチャートである。時系列データとは、複数の時刻で測定され、且つ、複数の時刻のそれぞれと測定値等のデータ値とが対応付けられたデータを含む。
まず、ステップS401において、正常ノイズ付加データ生成部102は、時系列データである第1入力データにおいて、対象とする時間区間に含まれるデータの平均値を算出する。対象とする時間時間は、第1入力データの時間区間の全区間であってもよく、一部の区間であってもよい。
次に、ステップS402において、正常ノイズ付加データ生成部102は、第1入力データのうち、ステップS401で算出した平均値を超えるデータの数量を算出する。具体的には、正常ノイズ付加データ生成部102は、平均値に近いデータから順に、平均値超のデータの数量をカウントする。さらに、正常ノイズ付加データ生成部102は、平均値超のデータの総数に対して、予め設定された第1割合を超える数量をカウントするときのデータの値を、上閾値に設定する。第1割合は、例えば80%とすることができるが、これに限定はされない。また、正常ノイズ付加データ生成部102は、第1入力データのうち、ステップS401で算出した平均値未満のデータの数量も同様に算出し、さらに、算出したデータの数量に基づき、下閾値を設定する。この場合、正常ノイズ付加データ生成部102は、平均値未満のデータの総数に対して、予め設定された第2割合を超える数量をカウントするときのデータの値を、下閾値に設定する。第2割合も、第1割合と同様に、例えば80%とすることができるが、これに限定はされない。なお、上述において、正常ノイズ付加データ生成部102は、平均値であるデータをカウントしていないが、これに限定されない。正常ノイズ付加データ生成部102は、平均値であるデータのカウント数を、平均値超のデータのカウント数及び平均値未満のデータのカウント数のいずれかに含めてもよく、それぞれに所定の割合で配分してもよい。例えば、所定の割合は、50%:50%としてもよい。
次に、ステップS403において、正常ノイズ付加データ生成部102は、第1入力データのうち、ステップS402で算出した上閾値と下閾値との間に含まれるデータにノイズを加え、正常ノイズ付加データを算出する。ここで、例えば正常ノイズ付加データをy、もとの第1入力データの値をx、平均0分散1のガウス乱数をaとする場合、正常ノイズ付加データyは、下記の式4又は式5を用いて算出することができる。
y=x×(100+a)/100 (式4)
y=x+a (式5)
ここで、図7を参照して、時系列データに正常ノイズが付加される具体例を説明する。図7は、図6及び図9の処理に対応する時系列データの例を示す模式図である。図7において、グラフ300は、第1入力データの一例であり、グラフ301は、第1入力データにおいて、同じ値のデータのカウント数の分布を示すヒストグラムである。グラフ300において、第1入力データの時間区間は、横軸の0〜1000である。正常ノイズ付加データ生成部102は、グラフ300において0〜1000の時間区間に含まれるデータの平均値Avを算出する。そして、正常ノイズ付加データ生成部102は、0〜1000の時間区間に含まれるデータをカウントし、平均値超のデータの総数に対して第1割合を超える数量をカウントするときのデータの値を、上閾値に設定する。また、正常ノイズ付加データ生成部102は、平均値未満のデータの総数に対して第2割合を超える数量をカウントするときのデータの値を、下閾値に設定する。さらに、正常ノイズ付加データ生成部102は、上閾値と下閾値との間に含まれるデータにノイズを加え、正常ノイズ付加データを算出する。上閾値と下閾値との間の領域は、図7において正常ノイズ領域である。
また、正常ノイズ付加データ生成部102は、図7のグラフに示されるような時系列データをそのまま用いて、正常ノイズ付加データを算出してもよく、上記時系列データのデータ値を微分した微分値からなるデータを用いて、正常ノイズ付加データを算出してもよい。なお、図7のグラフに示される時系列データは、例えば、計測又は検出等で得られるデータである。正常ノイズ付加データ生成部102は、第1入力データの代わりに、第1入力データの微分値を算出し用いてもよい。
例えば、図8には、第1入力データの代わりに、第1入力データの微分値を用いる場合の処理の例が模式的に示されている。図8において、グラフ400は、グラフ300のデータの微分値からなるデータの一例であり、グラフ401は、グラフ400において、同じ微分値のカウント数の分布を示すヒストグラムである。正常ノイズ付加データ生成部102は、図8に示すような微分値からなるデータに対しても、平均値、上閾値及び下閾値を算出し、上閾値と下閾値との間に含まれるデータに上記の式4又は式5に基づくノイズを加え、正常ノイズ付加データを算出する。なお、式4及び式5において、「x」には、データの微分値が適用される。上閾値と下閾値との間の領域は、図8において正常ノイズ領域である。
なお、第1入力データの代わりに、第1入力データの微分値を用いる場合、図2のステップS104において、第1入力データの微分値、第1入力データの微分値の正常ノイズ付加データ、及び、第1入力データの微分値の異常ノイズ付加データが、ニューラルネットワークに入力され、第1正常スコア、第2正常スコア及び第3正常スコアが出力される。ニューラルネットワークは、入力データの微分値が入力されると、当該微分値の正常スコアを出力するように構成される。そして、ステップS105及びS106において、出力された第1正常スコア、第2正常スコア及び第3正常スコアを用いて、第3差を最小とするニューラルネットワークのパラメータが算出される。さらに、ステップS107〜S111において、第2入力データの微分値が、ニューラルネットワークに入力され、その結果出力された第4正常スコアに基づき、第2入力データが正常であるか異常であるかが判定される。
上述のように、異常検知装置100は、ステップS401からステップS403の処理を行うことによって、図2のステップS102において、正常ノイズ付加データを算出する。
次に、図9を参照して、図2のステップS103の処理である異常ノイズ付加データの算出方法を、第1入力データが時系列データである場合について、説明する。図9は、図2のステップS103において、第1入力データの種類が時系列データの場合の処理の詳細の一例を示すフローチャートである。
まず、異常ノイズ付加データ生成部103は、正常ノイズ付加データ生成部102と同様に、ステップS401及びステップS402の処理を行う。次に、ステップS503において、異常ノイズ付加データ生成部103は、第1入力データのうち、ステップS402で算出した上閾値と下閾値との間に含まれないデータにノイズを加え、異常ノイズ付加データを算出する。例えば、図7を参照すると、上閾値と下閾値との間に含まれない領域は、2つの異常ノイズ領域である。ここで、例えば異常ノイズ付加データをy、もとの第1入力データの値をx、平均0分散1のガウス乱数をaとする場合、異常ノイズ付加データyは、下記の式6又は式7を用いて算出することができる。
y=x×(100+a)/100 (式6)
y=x+a (式7)
上述のように、異常検知装置100は、ステップS401、S402及びS503の処理を行うことによって、図2のステップS103において、異常ノイズ付加データを算出する。なお、異常ノイズ付加データを算出する場合も、異常ノイズ付加データ生成部103は、第1入力データの代わりに、第1入力データの微分値を算出し用いてもよい。
次に、図10を参照して、図2のステップS102の処理である正常ノイズ付加データの算出方法を、第1入力データが多次元データである場合について、説明する。図10は、図2のステップS102において、第1入力データの種類が多次元データの場合の処理の詳細の一例を示すフローチャートである。
まず、ステップS601において、正常ノイズ付加データ生成部102は、多次元データである第1入力データに対し主成分分析を行い、固有ベクトル及び固有値を求める。主成分分析では、多次元データの変数の数量と同じ数量の主成分が求められる。例えば、第1主成分は、変数によるあらゆる線形合成のうち、最大の分散を有する線形合成である。第2主成分は、第1主成分と無相関という条件のもと、線形合成のうちの最大の分散を有する線形合成である。第3主成分以下も同様に、その前の主成分と無相関という条件のもと、線形合成のうちの最大の分散を有する線形合成である。すなわち、変数の線形合成として、分散の大きい順に変換した直交成分が、主成分として得られる。固有値は、主成分の分散である。固有ベクトルは、主成分を多次元データの変数を用いて示す場合の、各変数に掛ける重み係数を要素とするベクトルである。
次に、ステップS602において、正常ノイズ付加データ生成部102は、ステップS601で算出した固有ベクトルを軸に持ち、固有値を対応する軸の分散にもつガウス分布上で、第1入力データについての微分方向を算出する。具体的には、第1入力データの座標におけるガウス分布の値が減少する方向が算出される。第1入力データの座標は、第一入力データの変数を要素とする多次元座標系における座標である。
次に、ステップS603において、正常ノイズ付加データ生成部102は、第1入力データに、ステップS602で算出した微分方向に垂直な方向のノイズを加え、正常ノイズ付加データを算出する。上記微分方向に垂直な方向は、正常ノイズ方向の一例である。ここで、例えば、正常ノイズ付加データをy、ステップS602で算出した微分方向をdf/dx、もとの第1入力データの値をx、平均0分散1のガウス乱数をaとする場合、正常ノイズ付加データyは、下記の式8を用いて算出することができる。ただし、式8において、「・」は内積を表す。第1入力データがM次元のデータである場合、「y」、「x」及び「a」は、M次元のベクトルである。「f」は、ステップS602で言及されているガウス分布を表し、第1入力データのベクトルxが定義されるM次元座標系の空間で定義される。「f」は、M次元→1次元(スカラー)の写像関数である。「d」は、微分演算子である。
y=x+a−((df(x)/dx)・a)df(x)/dx
=x+a−(df/dx・a)df/dx (式8)
式8において、「a」は、ノイズを示し、「(df/dx・a)df/dx」は、df/dxつまり微分方向に平行なノイズの成分を示し、「a−(df/dx・a)df/dx」は、微分方向に垂直なノイズの成分を示す。
ここで、図11を参照して、多次元データに正常ノイズが付加される具体例を説明する。図11は、図10の処理に対応する多次元データの例を示す模式図である。図11において、グラフ500は、第1入力データを主成分分析して得られる第1主成分及び第2主成分の関係の一例を示す。さらに、グラフ500において、ガウス分布の等値線Gが表されている。このガウス分布の等値線Gは、第1主成分及び第2主成分について、主成分固有ベクトルを軸に持ち、固有値を対応する軸の分散にもつガウス分布の等値線である。第1入力データに含まれる複数のデータ値それぞれに対応する等値線G上の点であるデータ点が算出され、算出されたデータ点それぞれにおいて、微分方向が算出される。例えば、図11において、第1入力データに含まれるデータ値の1つに対応する等値線G上のデータ点Pにおける微分方向が、矢印で示されている。
データ点での微分方向、つまり、当該データ点での第1主成分及び第2主成分の微分方向は、等値線Gから外向きの方向であり、異常ノイズの方向として扱われる。等値線Gから外向きの方向は、正常スコアが減少する方向でもある。微分方向に垂直な方向は、等値線Gに沿う方向、つまり接線方向であり、正常ノイズの方向として扱われる。等値線Gに沿う方向は、正常スコアが増減しない方向でもある。なお、等値線Gから内向きの方向は、正常スコアが増加する方向である。そして、式8にも示すように、等値線G上のデータ点それぞれにおいて、各データ点で算出された微分方向を用いて、当該データ点のデータ値に対する正常ノイズ付加データが算出される。
上述のように、異常検知装置100は、ステップS601からステップS603の処理を行うことによって、図2のステップS102において、正常ノイズ付加データを算出する。
次に、図12を参照して、図2のステップS103の処理である異常ノイズ付加データの算出方法を、第1入力データが多次元データである場合について、説明する。図12は、図2のステップS103において、第1入力データの種類が多次元データの場合の処理の詳細を示すフローチャートである。
まず、異常ノイズ付加データ生成部103は、正常ノイズ付加データ生成部102と同様に、ステップS601及びステップS602の処理を行う。次に、ステップS703において、異常ノイズ付加データ生成部103は、第1入力データに、ステップS602で算出した微分方向のノイズを加え、異常ノイズ付加データを算出する。上記微分方向は、異常ノイズ方向の一例であり、異常ノイズ方向は正常ノイズ方向と直交する。例えば、図11を参照すると、ガウス分布の等値線G上の点Pから外向きの微分方向は、異常ノイズの方向である。ここで、例えば異常ノイズ付加データをy、ステップS602で算出した微分方向をdf/dx、もとの第1入力データの値をx、平均0分散1のガウス乱数をaとする場合、異常ノイズ付加データyは、下記の式9を用いて算出することができる。ただし、式9の「・」は内積を表す。
y=x+|(df(x)/dx)・a|df(x)/dx
=x+|df/dx・a|df/dx (式9)
式9において、「|df/dx・a|df/dx」は、df/dxつまり微分方向に平行かつfが減少する方向のノイズの成分を示す。
上述のように、異常検知装置100は、ステップS601、S602及びS703の処理を行うことによって、図2のステップS103において、異常ノイズ付加データを算出する。
上述したように、異常検知装置100によれば、第1入力データに加えるノイズとして、正常ノイズと異常ノイズとを用いることで、正常データの分布の近似精度を向上し、学習時の目的関数の計算をより正確に行うことができる。その結果、正常モデルの学習を改善し、異常検知の性能を向上させることができる。
以上、本開示に係る異常検知装置等について、実施の形態に基づいて説明したが、本開示は、これらの実施の形態に限定されるものではない。本開示の趣旨を逸脱しない限り、当業者が思いつく各種変形を本実施の形態に施したもの、異なる実施の形態における構成要素を組み合わせて構築される形態なども、本開示の範囲内に含まれる。
上記の異常検知装置等は、具体的には、マイクロプロセッサ、ROM、RAM、ハードディスクドライブ、ディスプレイユニット、キーボード、マウスなどから構成されるコンピュータシステムとして構成されてもよい。RAM又はハードディスクドライブには、コンピュータプログラムが記憶されている。マイクロプロセッサが、コンピュータプログラムに従って動作することにより、異常検知装置等は、その機能を達成する。ここでコンピュータプログラムは、所定の機能を達成するために、コンピュータに対する指令を示す命令コードが複数個組み合わされて構成されたものである。
さらに、上記の異常検知装置等を構成する構成要素の一部又は全部は、1個のシステムLSI(Large Scale Integration:大規模集積回路)から構成されているとしてもよい。システムLSIは、複数の構成部を1個のチップ上に集積して製造された超多機能LSIであり、具体的には、マイクロプロセッサ、ROM、RAMなどを含んで構成されるコンピュータシステムである。RAMには、コンピュータプログラムが記憶されている。マイクロプロセッサが、コンピュータプログラムに従って動作することにより、システムLSIは、その機能を達成する。
さらにまた、上記の異常検知装置等を構成する構成要素の一部又は全部は、装置等に脱着可能なIC(Integrated Circuit)カード又は単体のモジュールから構成されているとしてもよい。ICカード及びモジュールは、マイクロプロセッサ、ROM、RAMなどから構成されるコンピュータシステムである。ICカード及びモジュールは、上記の超多機能LSIを含むとしてもよい。マイクロプロセッサが、コンピュータプログラムに従って動作することにより、ICカード及びモジュールは、その機能を達成する。このICカード及びモジュールは、耐タンパ性を有するとしても良い。
また、本開示の技術は、上記に示す方法であるとしてもよい。また、これらの方法をコンピュータにより実現するコンピュータプログラムであるとしてもよいし、上記コンピュータプログラムからなるデジタル信号であるとしてもよい。
さらに、本開示の技術は、上記コンピュータプログラム又は上記デジタル信号をコンピュータ読み取り可能な非一時的な記録媒体、例えば、フレキシブルディスク、ハードディスク、CD−ROM、MO、DVD、DVD−ROM、DVD−RAM、BD(Blu-ray(登録商標) Disc)、半導体メモリなどに記録したものとしてもよい。また、これらの非一時的な記録媒体に記録されている上記デジタル信号であるとしてもよい。
また、本開示の技術は、上記コンピュータプログラム又は上記デジタル信号を、電気通信回線、無線又は有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものとしてもよい。
また、本開示の技術は、マイクロプロセッサとメモリを備えたコンピュータシステムであって、上記メモリは、上記コンピュータプログラムを記憶しており、上記マイクロプロセッサは、上記コンピュータプログラムに従って動作するとしてもよい。
また、上記プログラムまたは上記デジタル信号を上記非一時的な記録媒体に記録して移送することにより、または上記プログラムまたは上記デジタル信号を、上記ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしてもよい。
本開示は、高精度な異常検知ができるので、故障検知や見守りシステムなどの異常検知を行う技術に有用である
100 異常検知装置
101 入力データ取得部
102 正常ノイズ付加データ生成部
103 異常ノイズ付加データ生成部
104 正常スコア算出部
105 ネットワークパラメータ算出部
106 異常検出部
107 記憶部(データベース)
201 学習データベース(データベース)
202 テストデータベース
1000 異常検知システム

Claims (12)

  1. ニューラルネットワークを用いた異常検知方法であって、
    (a1)データベースから、ニューラルネットワークと正常データである第1のデータとを取得し、ここで、前記正常データは、前記ニューラルネットワークにより正常と判定されるデータであり、
    (a2)前記第1のデータの種類に応じて予め設定された方法で、前記第1のデータに正常ノイズを付加して、第2のデータを生成し、ここで、前記第2のデータは、前記ニューラルネットワークにより正常と判定されるデータであり、
    (a3)前記第1のデータの種類に応じて予め設定された方法で、前記第1のデータに異常ノイズを付加して、第3のデータを生成し、ここで、前記第3のデータは、前記ニューラルネットワークにより異常と判定されるデータであり、
    (a4)前記第1のデータ、前記第2のデータ、及び前記第3のデータのそれぞれを前記ニューラルネットワークに入力し、第1の正常スコア、第2の正常スコア及び第3の正常スコアを算出し、ここで、前記第1の正常スコア、前記第2の正常スコア及び前記第3の正常スコアは、前記ニューラルネットワークに入力したデータの正常データらしさを数値化した値を表し、
    (a5)前記第1の正常スコアと前記第2の正常スコアとの差異に基づく第1差を算出し、前記第1の正常スコアと前記第3の正常スコアとの差異に基づく第2差を算出し、前記第1差と前記第2差との差異に基づく第3差を算出し、
    (a6)前記第3差を最小とする前記ニューラルネットワークのパラメータを算出し、
    (a7)前記算出したパラメータを用いて、前記ニューラルネットワークを変更し、
    (a8)正常か異常かが未知のデータを格納したテストデータベースから、第4のデータを取得し、前記第4のデータを、変更した前記ニューラルネットワークに入力し、第4の正常スコアを算出し、前記第4の正常スコアに基づいて、前記第4のデータが正常か異常かを判定し、
    前記(a1)〜前記(a8)の少なくとも1つはプロセッサによって実行される
    異常判定方法。
  2. 前記第1のデータが画像である場合、
    前記(a1)と前記(a2)との間に、
    (b1)前記第1のデータである画像に含まれるエッジの画素位置を検出し、
    (b2)前記エッジの画素位置から第1の距離以下の画素位置の領域を異常ノイズ領域として設定し、かつ、前記画像のうち前記異常ノイズ領域に含まれない領域を正常ノイズ領域として設定し、
    前記(a2)において、前記予め設定された方法として、前記正常ノイズ領域にノイズを付加して、前記第2のデータを作成し、
    前記(a3)において、前記予め設定された方法として、前記異常ノイズ領域にノイズを付加して、前記第3のデータを作成する、
    請求項1に記載の異常判定方法。
  3. 前記第1のデータが、時刻毎にデータ値を有する、時系列データである場合、
    前記(a1)と前記(a2)との間に、
    (c1)前記第1のデータの平均値を算出し、
    (c2)前記第1のデータのうち、前記平均値を超えるデータ値である超過データ値と、前記平均値未満のデータ値である非超過データ値とのそれぞれについて、前記平均値に近いデータ値から順にデータ数をカウントし、前記超過データ値及び前記非超過データ値のそれぞれの総データ数に対し、カウント数が予め設定された割合を超えるときのデータ値をそれぞれ上閾値及び下閾値として設定し、
    (c3)前記上閾値と前記下閾値との範囲内に含まれる領域を正常ノイズ領域として設定し、
    (c4)前記正常ノイズ領域に含まれない領域を異常ノイズ領域として設定し、
    (c5)前記第1のデータのデータ値が正常ノイズ領域に含まれる場合に、前記第1のデータのデータ値にノイズを付加する方法を正常ノイズの付加方法として設定し、前記第1のデータのデータ値が異常ノイズ領域に含まれる場合に、前記第1のデータのデータ値にノイズを付加する方法を異常ノイズの付加方法として設定する、
    請求項1に記載の異常判定方法。
  4. 前記第1のデータが、時刻毎にデータ値を有する、時系列データである場合、
    前記(a1)と前記(a2)との間に、
    (d1)前記第1のデータのデータ値を微分した微分値である微分データ値を算出し、
    (d2)前記微分データ値の平均値を算出し、
    (d3)前記微分データ値のうち、前記平均値を超える微分データ値である超過データ値と、前記平均値未満の微分データ値である非超過データ値とのそれぞれについて、前記平均値に近い微分データ値から順にデータ数をカウントし、前記超過データ値及び前記非超過データ値のそれぞれの総データ数に対し、カウント数が予め設定された割合を超えるときの微分データ値をそれぞれ上閾値及び下閾値として設定し、
    (d4)前記上閾値と前記下閾値との範囲内に含まれる領域を正常ノイズ領域として設定し、
    (d5)前記正常ノイズ領域に含まれない領域を異常ノイズ領域として設定し、
    (d6)前記微分データ値が正常ノイズ領域に含まれる場合に、前記微分データ値にノイズを付加する方法を正常ノイズの付加方法として設定し、前記微分データ値が異常ノイズ領域に含まれる場合に、前記微分データ値にノイズを付加する方法を異常ノイズの付加方法として設定し、
    前記(a2)〜前記(a4)において、前記第1のデータのデータ値の代わりに、前記微分データ値を用い、
    前記(a8)において、前記第4のデータのデータ値の代わりに、前記第4のデータのデータ値を微分した微分値を用いる、
    請求項1に記載の異常判定方法。
  5. 前記第1のデータが、多次元データである場合、
    前記(a1)と前記(a2)との間に、
    (e1)前記第1のデータの主成分分析を行い、主成分の固有値及び固有ベクトルを算出し、
    (e2)前記固有値及び前記固有ベクトルに基づき、前記第1のデータの微分方向を算出し、
    (e3)前記微分方向を異常ノイズ方向として設定し、
    (e4)前記異常ノイズ方向に垂直な方向を正常ノイズ方向として設定し、
    前記(a2)において、前記予め設定された方法として、前記正常ノイズ方向のノイズを前記第1のデータに付加して、前記第2のデータを作成し、
    前記(a3)において、前記予め設定された方法として、前記異常ノイズ方向のノイズを前記第1のデータに付加して、前記第3のデータを作成する、
    請求項1に記載の異常判定方法。
  6. 前記(a7)において、
    前記ニューラルネットワークの変更前後の前記第3差の変動量を算出し、
    前記第3差が減少する場合、前記ニューラルネットワークを変更し、
    前記第3差が増加する場合には、前記第3差の変動量に基づく確率で、前記ニューラルネットワークを変更する、
    請求項1〜5のいずれか一項に記載の異常判定方法。
  7. (a1)データベースから、ニューラルネットワークと正常データである第1のデータとを取得し、ここで、前記正常データは、前記ニューラルネットワークにより正常と判定されるデータであり、
    (a2)前記第1のデータの種類に応じて予め設定された方法で、前記第1のデータに正常ノイズを付加して、第2のデータを生成し、ここで、前記第2のデータは、前記ニューラルネットワークにより正常と判定されるデータであり、
    (a3)前記第1のデータの種類に応じて予め設定された方法で、前記第1のデータに異常ノイズを付加して、第3のデータを生成し、ここで、前記第3のデータは、前記ニューラルネットワークにより異常と判定されるデータであり、
    (a4)前記第1のデータ、前記第2のデータ、及び前記第3のデータのそれぞれを前記ニューラルネットワークに入力し、第1の正常スコア、第2の正常スコア及び第3の正常スコアを算出し、ここで、前記第1の正常スコア、前記第2の正常スコア及び前記第3の正常スコアは、前記ニューラルネットワークに入力したデータの正常データらしさを数値化した値を表し、
    (a5)前記第1の正常スコアと前記第2の正常スコアとの差異に基づく第1差を算出し、前記第1の正常スコアと前記第3の正常スコアとの差異に基づく第2差を算出し、前記第1差と前記第2差との差異に基づく第3差を算出し、
    (a6)前記第3差を最小とする前記ニューラルネットワークのパラメータを算出し、
    (a7)前記算出したパラメータを用いて、前記ニューラルネットワークを変更し、
    (a8)正常か異常かが未知のデータを格納したテストデータベースから、第4のデータを取得し、前記第4のデータを、変更した前記ニューラルネットワークに入力し、第4の正常スコアを算出し、前記第4の正常スコアに基づいて、前記第4のデータが正常か異常かを判定することを、
    コンピュータに実行させるプログラム。
  8. 前記第1のデータが画像である場合、
    前記(a1)と前記(a2)との間に、
    (b1)前記第1のデータである画像に含まれるエッジの画素位置を検出し、
    (b2)前記エッジの画素位置から第1の距離以下の画素位置の領域を異常ノイズ領域として設定し、かつ、前記画像のうち前記異常ノイズ領域に含まれない領域を正常ノイズ領域として設定し、
    前記(a2)において、前記予め設定された方法として、前記正常ノイズ領域にノイズを付加して、前記第2のデータを作成し、
    前記(a3)において、前記予め設定された方法として、前記異常ノイズ領域にノイズを付加して、前記第3のデータを作成する、
    請求項7に記載のプログラム。
  9. 前記第1のデータが、時刻毎にデータ値を有する、時系列データである場合、
    前記(a1)と前記(a2)との間に、
    (c1)前記第1のデータの平均値を算出し、
    (c2)前記第1のデータのうち、前記平均値を超えるデータ値である超過データ値と、前記平均値未満のデータ値である非超過データ値とのそれぞれについて、前記平均値に近いデータ値から順にデータ数をカウントし、前記超過データ値及び前記非超過データ値のそれぞれの総データ数に対し、カウント数が予め設定された割合を超えるときのデータ値をそれぞれ上閾値及び下閾値として設定し、
    (c3)前記上閾値と前記下閾値との範囲内に含まれる領域を正常ノイズ領域として設定し、
    (c4)前記正常ノイズ領域に含まれない領域を異常ノイズ領域として設定し、
    (c5)前記第1のデータのデータ値が正常ノイズ領域に含まれる場合に、前記第1のデータのデータ値にノイズを付加する方法を正常ノイズの付加方法として設定し、前記第1のデータのデータ値が異常ノイズ領域に含まれる場合に、前記第1のデータのデータ値にノイズを付加する方法を異常ノイズの付加方法として設定する、
    請求項7に記載のプログラム。
  10. 前記第1のデータが、時刻毎にデータ値を有する、時系列データである場合、
    前記(a1)と前記(a2)との間に、
    (d1)前記第1のデータのデータ値を微分した微分値である微分データ値を算出し、
    (d2)前記微分データ値の平均値を算出し、
    (d3)前記微分データ値のうち、前記平均値を超える微分データ値である超過データ値と、前記平均値未満の微分データ値である非超過データ値とのそれぞれについて、前記平均値に近い微分データ値から順にデータ数をカウントし、前記超過データ値及び前記非超過データ値のそれぞれの総データ数に対し、カウント数が予め設定された割合を超えるときの微分データ値をそれぞれ上閾値及び下閾値として設定し、
    (d4)前記上閾値と前記下閾値との範囲内に含まれる領域を正常ノイズ領域として設定し、
    (d5)前記正常ノイズ領域に含まれない領域を異常ノイズ領域として設定し、
    (d6)前記微分データ値が正常ノイズ領域に含まれる場合に、前記微分データ値にノイズを付加する方法を正常ノイズの付加方法として設定し、前記微分データ値が異常ノイズ領域に含まれる場合に、前記微分データ値にノイズを付加する方法を異常ノイズの付加方法として設定し、
    前記(a2)〜前記(a4)において、前記第1のデータのデータ値の代わりに、前記微分データ値を用い、
    前記(a8)において、前記第4のデータの値の代わりに、前記第4のデータのデータ値を微分した微分値を用いる、
    請求項7に記載のプログラム。
  11. 前記第1のデータが、多次元データである場合、
    前記(a1)と前記(a2)との間に、
    (e1)前記第1のデータの主成分分析を行い、主成分の固有値及び固有ベクトルを算出し、
    (e2)前記固有値及び前記固有ベクトルに基づき、前記第1のデータの微分方向を算出し、
    (e3)前記微分方向を異常ノイズ方向として設定し、
    (e4)前記異常ノイズ方向に垂直な方向を正常ノイズ方向として設定し、
    前記(a2)において、前記予め設定された方法として、前記正常ノイズ方向のノイズを前記第1のデータに付加して、前記第2のデータを作成し、
    前記(a3)において、前記予め設定された方法として、前記異常ノイズ方向のノイズを前記第1のデータに付加して、前記第3のデータを作成する、
    請求項7に記載のプログラム。
  12. 前記(a7)において、
    前記ニューラルネットワークの変更前後の前記第3差の変動量を算出し、
    前記第3差が減少する場合、前記ニューラルネットワークを変更し、
    前記第3差が増加する場合には、前記第3差の変動量に基づく確率で、前記ニューラルネットワークを変更する、
    請求項7〜11のいずれか一項に記載のプログラム。
JP2017187056A 2017-09-27 2017-09-27 異常判定方法及びプログラム Pending JP2019061577A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2017187056A JP2019061577A (ja) 2017-09-27 2017-09-27 異常判定方法及びプログラム
CN201811023742.0A CN109558936A (zh) 2017-09-27 2018-09-04 异常判定方法和程序
US16/135,520 US10757125B2 (en) 2017-09-27 2018-09-19 Anomaly detection method and recording medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017187056A JP2019061577A (ja) 2017-09-27 2017-09-27 異常判定方法及びプログラム

Publications (1)

Publication Number Publication Date
JP2019061577A true JP2019061577A (ja) 2019-04-18

Family

ID=65809389

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017187056A Pending JP2019061577A (ja) 2017-09-27 2017-09-27 異常判定方法及びプログラム

Country Status (3)

Country Link
US (1) US10757125B2 (ja)
JP (1) JP2019061577A (ja)
CN (1) CN109558936A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020217762A1 (ja) * 2019-04-25 2020-10-29 ソニー株式会社 通信装置、通信方法、及び通信プログラム
JP2021170204A (ja) * 2020-04-15 2021-10-28 株式会社Ridge−i 情報処理装置、情報処理方法及び情報処理プログラム

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6796092B2 (ja) * 2018-01-17 2020-12-02 株式会社東芝 情報処理装置、情報処理方法及びプログラム
US12099571B2 (en) * 2018-01-18 2024-09-24 Ge Infrastructure Technology Llc Feature extractions to model large-scale complex control systems
US10949951B2 (en) * 2018-08-23 2021-03-16 General Electric Company Patient-specific deep learning image denoising methods and systems
EP3629240B1 (en) * 2018-09-07 2023-08-23 Panasonic Intellectual Property Corporation of America Generative adversarial networks for local noise removal from an image
US12075969B2 (en) * 2018-10-04 2024-09-03 Nec Corporation Information processing apparatus, control method, and non-transitory storage medium
CA3060144A1 (en) * 2018-10-26 2020-04-26 Royal Bank Of Canada System and method for max-margin adversarial training
CN109978079A (zh) * 2019-04-10 2019-07-05 东北电力大学 一种改进的堆栈降噪自编码器的数据清洗方法
KR20230066560A (ko) * 2020-09-15 2023-05-16 삼성전자주식회사 미디어 내 아티팩트/저하를 검출 및 제거하는 방법 및 전자 장치
US20220335347A1 (en) * 2021-04-15 2022-10-20 Business Objects Software Ltd Time-series anomaly prediction and alert
US12015624B2 (en) * 2021-11-18 2024-06-18 Motorola Solutions, Inc. Automated detection of network security anomalies using a denoising diffusion probabilistic model
CN115761611B (zh) * 2022-12-18 2023-05-30 四川数聚智造科技有限公司 基于图像对比异常检测的多阶段多底图图像差异过滤方法
CN117474999B (zh) * 2023-12-25 2024-04-19 惠州市德立电子有限公司 一种微型片式电感双线绕线异常定位方法及系统

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8306931B1 (en) * 2009-08-06 2012-11-06 Data Fusion & Neural Networks, LLC Detecting, classifying, and tracking abnormal data in a data stream
US9038172B2 (en) * 2011-05-06 2015-05-19 The Penn State Research Foundation Robust anomaly detection and regularized domain adaptation of classifiers with application to internet packet-flows
KR101621019B1 (ko) * 2015-01-28 2016-05-13 한국인터넷진흥원 시계열 통계 기반 공격의심 이상징후를 탐지하기 위한 방법
WO2016132468A1 (ja) 2015-02-18 2016-08-25 株式会社日立製作所 データ評価方法および装置、故障診断方法および装置
US10469511B2 (en) * 2016-03-28 2019-11-05 Cisco Technology, Inc. User assistance coordination in anomaly detection
US10346981B2 (en) * 2016-11-04 2019-07-09 Eric Kenneth Anderson System and method for non-invasive tissue characterization and classification
US10909671B2 (en) * 2018-10-02 2021-02-02 International Business Machines Corporation Region of interest weighted anomaly detection

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020217762A1 (ja) * 2019-04-25 2020-10-29 ソニー株式会社 通信装置、通信方法、及び通信プログラム
JP2021170204A (ja) * 2020-04-15 2021-10-28 株式会社Ridge−i 情報処理装置、情報処理方法及び情報処理プログラム
JP6994224B2 (ja) 2020-04-15 2022-01-14 株式会社Ridge-i 情報処理装置、情報処理方法及び情報処理プログラム

Also Published As

Publication number Publication date
US10757125B2 (en) 2020-08-25
US20190098034A1 (en) 2019-03-28
CN109558936A (zh) 2019-04-02

Similar Documents

Publication Publication Date Title
JP2019061577A (ja) 異常判定方法及びプログラム
CN116150676B (zh) 基于人工智能的设备故障诊断与识别方法及装置
CN111738351B (zh) 模型训练方法、装置、存储介质及电子设备
CN108932301B (zh) 数据填充方法及装置
US9842279B2 (en) Data processing method for learning discriminator, and data processing apparatus therefor
CN111612041A (zh) 异常用户识别方法及装置、存储介质、电子设备
CN112685324B (zh) 一种生成测试方案的方法及系统
CN105469123A (zh) 一种基于k平面回归的缺失数据补全方法
CN112233200A (zh) 剂量确定方法及装置
CN114708264B (zh) 一种光斑质量判别方法、装置、设备和存储介质
CN111247600A (zh) 对象聚类方法和装置
CN114266894A (zh) 一种图像分割方法、装置、电子设备及存储介质
CN113487223B (zh) 一种基于信息融合的风险评估方法和评估系统
CN107220346B (zh) 一种高维不完整数据特征选择方法
US20200279148A1 (en) Material structure analysis method and material structure analyzer
EP4287083A1 (en) Determination program, determination apparatus, and method of determining
CN114239738B (zh) 小样本的医疗数据分类方法及相关设备
CN115512143A (zh) 图像聚类方法、图像增量聚类方法、计算机设备及介质
JP2020071777A (ja) 時系列特徴抽出装置、時系列特徴抽出方法及びプログラム
CN114372689A (zh) 一种基于动态规划的路网运行特征变点识别方法
CN109933579B (zh) 一种局部k近邻缺失值插补系统与方法
CN112597699A (zh) 一种融入客观赋权法的社交网络谣言源识别方法
US20230410488A1 (en) Predictor creation device and predictor creation method
US11928123B2 (en) Systems and methods for network explainability
CN116536906B (zh) 一种立体裁剪内裤的成型质量检测方法