(57)【要約】【課題】ニューラルネットワークを用いた異常検知の精度を向上する異常判定方法等を提供する。【解決手段】ニューラルネットワークを用いた異常検知方法は、第１のデータに正常ノイズを付加して、第２のデータを生成し、前記第１のデータに異常ノイズを付加して、第３のデータを生成し、前記第１のデータ、前記第２のデータ及び前記第３のデータのそれぞれをニューラルネットワークに入力し、第１の正常スコア、第２の正常スコア及び第３の正常スコアを算出し、前記第１の正常スコア及び前記第２の正常スコアの差異に基づく第１差と、前記第１の正常スコア及び前記第３の正常スコアの差異に基づく第２差とに基づき、第３差を算出し、前記第３差を最小とするように前記ニューラルネットワークを変更し、正常か異常かが未知の第４のデータを、変更した前記ニューラルネットワークに入力し、前記第４のデータが正常か異常かを判定する。【選択図】図１
2019061577.tif 000002
【特許請求の範囲】
【請求項１】
ニューラルネットワークを用いた異常検知方法であって、
（ａ１）データベースから、ニューラルネットワークと正常データである第１のデータとを取得し、ここで、前記正常データは、前記ニューラルネットワークにより正常と判定されるデータであり、
（ａ２）前記第１のデータの種類に応じて予め設定された方法で、前記第１のデータに正常ノイズを付加して、第２のデータを生成し、ここで、前記第２のデータは、前記ニューラルネットワークにより正常と判定されるデータであり、
（ａ３）前記第１のデータの種類に応じて予め設定された方法で、前記第１のデータに異常ノイズを付加して、第３のデータを生成し、ここで、前記第３のデータは、前記ニューラルネットワークにより異常と判定されるデータであり、
（ａ４）前記第１のデータ、前記第２のデータ、及び前記第３のデータのそれぞれを前記ニューラルネットワークに入力し、第１の正常スコア、第２の正常スコア及び第３の正常スコアを算出し、ここで、前記第１の正常スコア、前記第２の正常スコア及び前記第３の正常スコアは、前記ニューラルネットワークに入力したデータの正常データらしさを数値化した値を表し、
（ａ５）前記第１の正常スコアと前記第２の正常スコアとの差異に基づく第１差を算出し、前記第１の正常スコアと前記第３の正常スコアとの差異に基づく第２差を算出し、前記第１差と前記第２差との差異に基づく第３差を算出し、
（ａ６）前記第３差を最小とする前記ニューラルネットワークのパラメータを算出し、
（ａ７）前記算出したパラメータを用いて、前記ニューラルネットワークを変更し、
（ａ８）正常か異常かが未知のデータを格納したテストデータベースから、第４のデータを取得し、前記第４のデータを、変更した前記ニューラルネットワークに入力し、第４の正常スコアを算出し、前記第４の正常スコアに基づいて、前記第４のデータが正常か異常かを判定し、
前記（ａ１）〜前記（ａ８）の少なくとも１つはプロセッサによって実行される
異常判定方法。
【請求項２】
前記第１のデータが画像である場合、
前記（ａ１）と前記（ａ２）との間に、
（ｂ１）前記第１のデータである画像に含まれるエッジの画素位置を検出し、
（ｂ２）前記エッジの画素位置から第１の距離以下の画素位置の領域を異常ノイズ領域として設定し、かつ、前記画像のうち前記異常ノイズ領域に含まれない領域を正常ノイズ領域として設定し、
前記（ａ２）において、前記予め設定された方法として、前記正常ノイズ領域にノイズを付加して、前記第２のデータを作成し、
前記（ａ３）において、前記予め設定された方法として、前記異常ノイズ領域にノイズを付加して、前記第３のデータを作成する、
請求項１に記載の異常判定方法。
【請求項３】
前記第１のデータが、時刻毎にデータ値を有する、時系列データである場合、
前記（ａ１）と前記（ａ２）との間に、
（ｃ１）前記第１のデータの平均値を算出し、
（ｃ２）前記第１のデータのうち、前記平均値を超えるデータ値である超過データ値と、前記平均値未満のデータ値である非超過データ値とのそれぞれについて、前記平均値に近いデータ値から順にデータ数をカウントし、前記超過データ値及び前記非超過データ値のそれぞれの総データ数に対し、カウント数が予め設定された割合を超えるときのデータ値をそれぞれ上閾値及び下閾値として設定し、
（ｃ３）前記上閾値と前記下閾値との範囲内に含まれる領域を正常ノイズ領域として設定し、
（ｃ４）前記正常ノイズ領域に含まれない領域を異常ノイズ領域として設定し、
（ｃ５）前記第１のデータのデータ値が正常ノイズ領域に含まれる場合に、前記第１のデータのデータ値にノイズを付加する方法を正常ノイズの付加方法として設定し、前記第１のデータのデータ値が異常ノイズ領域に含まれる場合に、前記第１のデータのデータ値にノイズを付加する方法を異常ノイズの付加方法として設定する、
請求項１に記載の異常判定方法。
【請求項４】
前記第１のデータが、時刻毎にデータ値を有する、時系列データである場合、
前記（ａ１）と前記（ａ２）との間に、
（ｄ１）前記第１のデータのデータ値を微分した微分値である微分データ値を算出し、
（ｄ２）前記微分データ値の平均値を算出し、
（ｄ３）前記微分データ値のうち、前記平均値を超える微分データ値である超過データ値と、前記平均値未満の微分データ値である非超過データ値とのそれぞれについて、前記平均値に近い微分データ値から順にデータ数をカウントし、前記超過データ値及び前記非超過データ値のそれぞれの総データ数に対し、カウント数が予め設定された割合を超えるときの微分データ値をそれぞれ上閾値及び下閾値として設定し、
（ｄ４）前記上閾値と前記下閾値との範囲内に含まれる領域を正常ノイズ領域として設定し、
（ｄ５）前記正常ノイズ領域に含まれない領域を異常ノイズ領域として設定し、
（ｄ６）前記微分データ値が正常ノイズ領域に含まれる場合に、前記微分データ値にノイズを付加する方法を正常ノイズの付加方法として設定し、前記微分データ値が異常ノイズ領域に含まれる場合に、前記微分データ値にノイズを付加する方法を異常ノイズの付加方法として設定し、
前記（ａ２）〜前記（ａ４）において、前記第１のデータのデータ値の代わりに、前記微分データ値を用い、
前記（ａ８）において、前記第４のデータのデータ値の代わりに、前記第４のデータのデータ値を微分した微分値を用いる、
請求項１に記載の異常判定方法。
【請求項５】
前記第１のデータが、多次元データである場合、
前記（ａ１）と前記（ａ２）との間に、
（ｅ１）前記第１のデータの主成分分析を行い、主成分の固有値及び固有ベクトルを算出し、
（ｅ２）前記固有値及び前記固有ベクトルに基づき、前記第１のデータの微分方向を算出し、
（ｅ３）前記微分方向を異常ノイズ方向として設定し、
（ｅ４）前記異常ノイズ方向に垂直な方向を正常ノイズ方向として設定し、
前記（ａ２）において、前記予め設定された方法として、前記正常ノイズ方向のノイズを前記第１のデータに付加して、前記第２のデータを作成し、
前記（ａ３）において、前記予め設定された方法として、前記異常ノイズ方向のノイズを前記第１のデータに付加して、前記第３のデータを作成する、
請求項１に記載の異常判定方法。
【請求項６】
前記（ａ７）において、
前記ニューラルネットワークの変更前後の前記第３差の変動量を算出し、
前記第３差が減少する場合、前記ニューラルネットワークを変更し、
前記第３差が増加する場合には、前記第３差の変動量に基づく確率で、前記ニューラルネットワークを変更する、
請求項１〜５のいずれか一項に記載の異常判定方法。
【請求項７】
（ａ１）データベースから、ニューラルネットワークと正常データである第１のデータとを取得し、ここで、前記正常データは、前記ニューラルネットワークにより正常と判定されるデータであり、
（ａ２）前記第１のデータの種類に応じて予め設定された方法で、前記第１のデータに正常ノイズを付加して、第２のデータを生成し、ここで、前記第２のデータは、前記ニューラルネットワークにより正常と判定されるデータであり、
（ａ３）前記第１のデータの種類に応じて予め設定された方法で、前記第１のデータに異常ノイズを付加して、第３のデータを生成し、ここで、前記第３のデータは、前記ニューラルネットワークにより異常と判定されるデータであり、
（ａ４）前記第１のデータ、前記第２のデータ、及び前記第３のデータのそれぞれを前記ニューラルネットワークに入力し、第１の正常スコア、第２の正常スコア及び第３の正常スコアを算出し、ここで、前記第１の正常スコア、前記第２の正常スコア及び前記第３の正常スコアは、前記ニューラルネットワークに入力したデータの正常データらしさを数値化した値を表し、
（ａ５）前記第１の正常スコアと前記第２の正常スコアとの差異に基づく第１差を算出し、前記第１の正常スコアと前記第３の正常スコアとの差異に基づく第２差を算出し、前記第１差と前記第２差との差異に基づく第３差を算出し、
（ａ６）前記第３差を最小とする前記ニューラルネットワークのパラメータを算出し、
（ａ７）前記算出したパラメータを用いて、前記ニューラルネットワークを変更し、
（ａ８）正常か異常かが未知のデータを格納したテストデータベースから、第４のデータを取得し、前記第４のデータを、変更した前記ニューラルネットワークに入力し、第４の正常スコアを算出し、前記第４の正常スコアに基づいて、前記第４のデータが正常か異常かを判定することを、
コンピュータに実行させるプログラム。
【請求項８】
前記第１のデータが画像である場合、
前記（ａ１）と前記（ａ２）との間に、
（ｂ１）前記第１のデータである画像に含まれるエッジの画素位置を検出し、
（ｂ２）前記エッジの画素位置から第１の距離以下の画素位置の領域を異常ノイズ領域として設定し、かつ、前記画像のうち前記異常ノイズ領域に含まれない領域を正常ノイズ領域として設定し、
前記（ａ２）において、前記予め設定された方法として、前記正常ノイズ領域にノイズを付加して、前記第２のデータを作成し、
前記（ａ３）において、前記予め設定された方法として、前記異常ノイズ領域にノイズを付加して、前記第３のデータを作成する、
請求項７に記載のプログラム。
【請求項９】
前記第１のデータが、時刻毎にデータ値を有する、時系列データである場合、
前記（ａ１）と前記（ａ２）との間に、
（ｃ１）前記第１のデータの平均値を算出し、
（ｃ２）前記第１のデータのうち、前記平均値を超えるデータ値である超過データ値と、前記平均値未満のデータ値である非超過データ値とのそれぞれについて、前記平均値に近いデータ値から順にデータ数をカウントし、前記超過データ値及び前記非超過データ値のそれぞれの総データ数に対し、カウント数が予め設定された割合を超えるときのデータ値をそれぞれ上閾値及び下閾値として設定し、
（ｃ３）前記上閾値と前記下閾値との範囲内に含まれる領域を正常ノイズ領域として設定し、
（ｃ４）前記正常ノイズ領域に含まれない領域を異常ノイズ領域として設定し、
（ｃ５）前記第１のデータのデータ値が正常ノイズ領域に含まれる場合に、前記第１のデータのデータ値にノイズを付加する方法を正常ノイズの付加方法として設定し、前記第１のデータのデータ値が異常ノイズ領域に含まれる場合に、前記第１のデータのデータ値にノイズを付加する方法を異常ノイズの付加方法として設定する、
請求項７に記載のプログラム。
【請求項１０】
前記第１のデータが、時刻毎にデータ値を有する、時系列データである場合、
前記（ａ１）と前記（ａ２）との間に、
（ｄ１）前記第１のデータのデータ値を微分した微分値である微分データ値を算出し、
（ｄ２）前記微分データ値の平均値を算出し、
（ｄ３）前記微分データ値のうち、前記平均値を超える微分データ値である超過データ値と、前記平均値未満の微分データ値である非超過データ値とのそれぞれについて、前記平均値に近い微分データ値から順にデータ数をカウントし、前記超過データ値及び前記非超過データ値のそれぞれの総データ数に対し、カウント数が予め設定された割合を超えるときの微分データ値をそれぞれ上閾値及び下閾値として設定し、
（ｄ４）前記上閾値と前記下閾値との範囲内に含まれる領域を正常ノイズ領域として設定し、
（ｄ５）前記正常ノイズ領域に含まれない領域を異常ノイズ領域として設定し、
（ｄ６）前記微分データ値が正常ノイズ領域に含まれる場合に、前記微分データ値にノイズを付加する方法を正常ノイズの付加方法として設定し、前記微分データ値が異常ノイズ領域に含まれる場合に、前記微分データ値にノイズを付加する方法を異常ノイズの付加方法として設定し、
前記（ａ２）〜前記（ａ４）において、前記第１のデータのデータ値の代わりに、前記微分データ値を用い、
前記（ａ８）において、前記第４のデータの値の代わりに、前記第４のデータのデータ値を微分した微分値を用いる、
請求項７に記載のプログラム。
【請求項１１】
前記第１のデータが、多次元データである場合、
前記（ａ１）と前記（ａ２）との間に、
（ｅ１）前記第１のデータの主成分分析を行い、主成分の固有値及び固有ベクトルを算出し、
（ｅ２）前記固有値及び前記固有ベクトルに基づき、前記第１のデータの微分方向を算出し、
（ｅ３）前記微分方向を異常ノイズ方向として設定し、
（ｅ４）前記異常ノイズ方向に垂直な方向を正常ノイズ方向として設定し、
前記（ａ２）において、前記予め設定された方法として、前記正常ノイズ方向のノイズを前記第１のデータに付加して、前記第２のデータを作成し、
前記（ａ３）において、前記予め設定された方法として、前記異常ノイズ方向のノイズを前記第１のデータに付加して、前記第３のデータを作成する、
請求項７に記載のプログラム。
【請求項１２】
前記（ａ７）において、
前記ニューラルネットワークの変更前後の前記第３差の変動量を算出し、
前記第３差が減少する場合、前記ニューラルネットワークを変更し、
前記第３差が増加する場合には、前記第３差の変動量に基づく確率で、前記ニューラルネットワークを変更する、
請求項７〜１１のいずれか一項に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、ニューラルネットワークを用いた異常判定方法及びプログラムに関する。
【背景技術】
【０００２】
例えば、非特許文献１は、スコアマッチングと呼ばれる学習方法とデノイジングオートエンコーダと呼ばれる学習方法との関係を開示する。スコアマッチングは、様々なモデルに適用できるというメリットがある一方で、学習が困難であるという欠点があった。しかしながら、スコアマッチングとデノイジングオートエンコーダとのそれぞれから得られる解が一致することが示された。このため、モデルの表現についてはスコアマッチングに基づくことによって、学習方法についてはデノイジングオートエンコーダに基づくことによって、様々なモデルに適用できるというメリットを保ったまま、学習が容易になった。また、非特許文献２は、非特許文献１が開示する方法に基づき、画像データ、時系列データ及び多次元データに対し多層ニューラルネットワークを用いた異常検知方法を開示する。特許文献１は、復元型ニューラルネットワークを用いて故障を検知する方法を開示する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】国際公開第２０１６／１３２４６８号
【非特許文献】
【０００４】
【非特許文献１】Ｐａｓｃａｌ  Ｖｉｎｃｅｎｔ、「Ａ  Ｃｏｎｎｅｃｔｉｏｎ  Ｂｅｔｗｅｅｎ  Ｓｃｏｒｅ  Ｍａｔｃｈｉｎｇ  ａｎｄ  Ｄｅｎｏｉｓｉｎｇ  Ａｕｔｏｅｎｃｏｄｅｒｓ」、Ｎｅｕｒａｌ  Ｃｏｍｐｕｔａｔｉｏｎ、２０１１年７月、Ｖｏｌ．  ２３、Ｉｓｓｕｅ  ７、Ｐ．１６６１−１６７４
【非特許文献２】Ｓｈｕａｎｇｆｅｉ  Ｚｈａｉ他、「Ｄｅｅｐ  ｓｔｒｕｃｔｕｒｅｄ  ｅｎｅｒｇｙ  ｂａｓｅｄ  ｍｏｄｅｌｓ  ｆｏｒ  ａｎｏｍａｌｙ  ｄｅｔｅｃｔｉｏｎ」、Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  ３３ｒｄ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｍａｃｈｉｎｅ  Ｌｅａｒｎｉｎｇ（ＩＣＭＬ．２０１６）、２０１６年６月、Ｖｏｌ．４８、Ｐ．１１００−１１０９
【非特許文献３】Ｊ．  Ｎｇｉａｍ、Ｚ．  Ｃｈｅｎ、Ｐ．Ｗ．Ｋｏｈ及びＡ．Ｙ．Ｎｇ、「Ｌｅａｒｎｉｎｇ  Ｄｅｅｐ  Ｅｎｅｒｇｙ  Ｍｏｄｅｌｓ」、Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  ２８ｔｈ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｍａｃｈｉｎｅ  Ｌｅａｒｎｉｎｇ（ＩＣＭＬ．２０１１）、２０１１年、Ｐ１１０５−１１１２．
【非特許文献４】Ｐａｓｃａｌ  Ｖｉｎｃｅｎｔ他、「Ｅｘｔｒａｃｔｉｎｇ  ａｎｄ  ｃｏｍｐｏｓｉｎｇ  ｒｏｂｕｓｔ  ｆｅａｔｕｒｅｓ  ｗｉｔｈ  ｄｅｎｏｉｓｉｎｇ  ａｕｔｏｅｎｃｏｄｅｒｓ」、Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  ２５ｔｈ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｍａｃｈｉｎｅ  ｌｅａｒｎｉｎｇ（ＩＣＭＬ．２００８）、２００８年、Ｐ１０９６−１１０３
【発明の概要】
【発明が解決しようとする課題】
【０００５】
非特許文献１及び２に記載の技術を、特許文献１のようなニューラルネットワークを用いた異常検知に適用すると、精度が低くなる可能性がある。
【０００６】
本開示は、ニューラルネットワークを用いた異常検知の精度を向上する異常判定方法及びプログラムを提供する。
【課題を解決するための手段】
【０００７】
本開示の一態様に係る異常判定方法は、ニューラルネットワークを用いた異常検知方法であって、（ａ１）データベースから、ニューラルネットワークと正常データである第１のデータとを取得し、ここで、前記正常データは、前記ニューラルネットワークにより正常と判定されるデータであり、（ａ２）前記第１のデータの種類に応じて予め設定された方法で、前記第１のデータに正常ノイズを付加して、第２のデータを生成し、ここで、前記第２のデータは、前記ニューラルネットワークにより正常と判定されるデータであり、（ａ３）前記第１のデータの種類に応じて予め設定された方法で、前記第１のデータに異常ノイズを付加して、第３のデータを生成し、ここで、前記第３のデータは、前記ニューラルネットワークにより異常と判定されるデータであり、（ａ４）前記第１のデータ、前記第２のデータ、及び前記第３のデータのそれぞれを前記ニューラルネットワークに入力し、第１の正常スコア、第２の正常スコア及び第３の正常スコアを算出し、ここで、前記第１の正常スコア、前記第２の正常スコア及び前記第３の正常スコアは、前記ニューラルネットワークに入力したデータの正常データらしさを数値化した値を表し、（ａ５）前記第１の正常スコアと前記第２の正常スコアとの差異に基づく第１差を算出し、前記第１の正常スコアと前記第３の正常スコアとの差異に基づく第２差を算出し、前記第１差と前記第２差との差異に基づく第３差を算出し、（ａ６）前記第３差を最小とする前記ニューラルネットワークのパラメータを算出し、（ａ７）前記算出したパラメータを用いて、前記ニューラルネットワークを変更し、（ａ８）正常か異常かが未知のデータを格納したテストデータベースから、第４のデータを取得し、前記第４のデータを、変更した前記ニューラルネットワークに入力し、第４の正常スコアを算出し、前記第４の正常スコアに基づいて、前記第４のデータが正常か異常かを判定し、前記（ａ１）〜前記（ａ８）の少なくとも１つはプロセッサによって実行される。
【０００８】
本開示の一態様に係るプログラムは、（ａ１）データベースから、ニューラルネットワークと正常データである第１のデータとを取得し、ここで、前記正常データは、前記ニューラルネットワークにより正常と判定されるデータであり、（ａ２）前記第１のデータの種類に応じて予め設定された方法で、前記第１のデータに正常ノイズを付加して、第２のデータを生成し、ここで、前記第２のデータは、前記ニューラルネットワークにより正常と判定されるデータであり、（ａ３）前記第１のデータの種類に応じて予め設定された方法で、前記第１のデータに異常ノイズを付加して、第３のデータを生成し、ここで、前記第３のデータは、前記ニューラルネットワークにより異常と判定されるデータであり、（ａ４）前記第１のデータ、前記第２のデータ、及び前記第３のデータのそれぞれを前記ニューラルネットワークに入力し、第１の正常スコア、第２の正常スコア及び第３の正常スコアを算出し、ここで、前記第１の正常スコア、前記第２の正常スコア及び前記第３の正常スコアは、前記ニューラルネットワークに入力したデータの正常データらしさを数値化した値を表し、（ａ５）前記第１の正常スコアと前記第２の正常スコアとの差異に基づく第１差を算出し、前記第１の正常スコアと前記第３の正常スコアとの差異に基づく第２差を算出し、前記第１差と前記第２差との差異に基づく第３差を算出し、（ａ６）前記第３差を最小とする前記ニューラルネットワークのパラメータを算出し、（ａ７）前記算出したパラメータを用いて、前記ニューラルネットワークを変更し、（ａ８）正常か異常かが未知のデータを格納したテストデータベースから、第４のデータを取得し、前記第４のデータを、変更した前記ニューラルネットワークに入力し、第４の正常スコアを算出し、前記第４の正常スコアに基づいて、前記第４のデータが正常か異常かを判定することを、コンピュータに実行させる。
【０００９】
なお、上記の包括的又は具体的な態様は、システム、装置、方法、集積回路、コンピュータプログラム又はコンピュータ読み取り可能な記録ディスク等の記録媒体で実現されてもよく、システム、装置、方法、集積回路、コンピュータプログラム及び記録媒体の任意な組み合わせで実現されてもよい。コンピュータ読み取り可能な記録媒体は、例えばＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ−Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）等の不揮発性の記録媒体を含む。
【発明の効果】
【００１０】
本開示の異常判定方法等によると、ニューラルネットワークを用いた異常検知の精度を向上することが可能になる。
【図面の簡単な説明】
【００１１】
【図１】実施の形態に係る異常検知システムの機能的な構成を示すブロック図である。
【図２】実施の形態に係る異常検知装置の処理の全体的な流れの一例を示すフローチャートである。
【図３】図２のステップＳ１０２において、入力データが画像である場合の処理の詳細の一例を示すフローチャートである。
【図４】図３及び図５の処理に対応する画像データの例を示す模式図である。
【図５】図２のステップＳ１０３において、入力データが画像である場合の処理の詳細の一例を示すフローチャートである。
【図６】図２のステップＳ１０２において、入力データが時系列データである場合の処理の詳細の一例を示すフローチャートである。
【図７】図６及び図９の処理に対応する時系列データの例を示す模式図である。
【図８】入力データの代わりに、入力データの微分値を用いる場合の処理の例を示す模式図である。
【図９】図２のステップＳ１０３において、入力データが時系列データである場合の処理の詳細の一例を示すフローチャートである。
【図１０】図２のステップＳ１０２において、入力データが多次元データである場合の処理の詳細の一例を示すフローチャートである。
【図１１】図１０の処理に対応する多次元データの例を示す模式図である。
【図１２】図２のステップＳ１０３において、入力データが多次元データである場合の処理の詳細の一例を示すフローチャートである。
【発明を実施するための形態】
【００１２】
［本開示に至った知見］
近年、画像認識及び自然言語処理などの分野において、多層ニューラルネットワークによる認識及び識別方法が、著しい進歩を遂げており、異常検知方法にも応用され始めている。例えば、特許文献１は、復元型ニューラルネットワークと識別型ニューラルネットワークとを組み合わせて機器の故障を検知するシステムを開示している。復元型ニューラルネットワークは、オートエンコーダ（自己符号化器）である。例えば、非特許文献４は、学習データにノイズを加え、オートエンコーダによってノイズを除去するデノイジングオートエンコーダを開示している。ノイズには一般にガウスノイズが用いられる。例えば、非特許文献３は、多層ニューラルネットワークの出力をエネルギーとして扱い、教師なし学習を行うエナジーベースモデルを開示している。
【００１３】
デノイジングオートエンコーダを用いる場合は、学習の指針となる目的関数が、入力データと復元データとの誤差として定義される。その計算は容易であるが、一方で、エンコーダとデコーダとが必要となるため、計算に用いるパラメータが増大する、又は、利用可能なネットワーク構造が限定されるというデメリットがある。エナジーベースモデルを用いる場合は、デノイジングオートエンコーダにおけるデコーダに相当するネットワークが不要のため、多様なネットワーク構造が利用できるというメリットがある。しかしながら、学習指針となる目的関数の計算が困難である。
【００１４】
また、非特許文献１は、デノイジングオートエンコーダとスコアマッチングとの関係を開示する。具体的には、非特許文献１は、デノイジングオートエンコーダと、スコアマッチングが適用されるエナジーベースモデルとの関連性について開示している。これによれば、目的関数の計算が容易であるというデノイジングオートエンコーダのメリットと、多様なネットワーク構造が利用可能であるというエナジーベースモデルのメリットとの双方を組み合わせた学習が可能となる。非特許文献１では、エナジーベースモデルとデノイジングオートエンコーダとから得る解が一致するとし、学習データ周辺の真の分布がガウス分布により近似可能であるという仮定に基づき、デノイジングオートエンコーダのノイズ関数にガウス分布を用いている。また、非特許文献２は、非特許文献１が開示する方法に基づき、画像データ、時系列データ及び多次元データに対する多層ニューラルネットワークを用いた異常検知方法を、開示している。
【００１５】
しかしながら、本発明者らは、非特許文献１が開示するデノイジングオートエンコーダとエナジーベースモデルとの関連性において、近似計算の精度に関して改善の余地があることを見出した。デノイジングオートエンコーダにおいて、入力データにガウスノイズを加え、ニューラルネットワークにより入力データを復元できるように学習することは、エナジーベースモデルにおいて、入力データの分布に関する期待値計算する際に、入力データの周りの分布をガウス分布で近似して積分することに相当する。しかしながら、入力データの周りの分布は必ずしも、ガウス分布で精度よく近似できるとは限らない。入力データ周辺の真の分布がガウス分布によって近似できない場合は、ノイズ関数の近似精度が悪くなり、異常検知方法などに適用した場合にニューラルネットワークの性能低下の要因となる。このため、異常検知における性能を向上するためには、入力データに加えるべきノイズに応じたノイズ関数の近似精度の向上が必要であると、本発明者らは見出した。
【００１６】
デノイジングオートエンコーダはもともと汎化性能の向上を目的として提案されており、入力データの分布を近似することは考慮していない。非特許文献１ではデノイジングオートエンコーダとエナジーベースモデルとの関係性について開示しているが、デノイジングオートエンコーダにおけるノイズの加え方については言及していない。また、特許文献１及び非特許文献２は、デノイジングオートエンコーダにおいてノイズ関数をデータごとに変更することは開示していない。そこで、本発明者らは、異常判定における性能を向上するために、以下に記載する技術を創案した。そして、以下に記載する技術は、デノイジングオートエンコーダにおけるノイズの種類を変更することで、エナジーベースモデルにおける入力データの分布に関する期待値計算をより正確に行い、正常モデルの学習を改善し、異常検知の性能を向上させることを可能にする。
【００１７】
本開示の一態様に係る異常判定方法は、ニューラルネットワークを用いた異常検知方法であって、（ａ１）データベースから、ニューラルネットワークと正常データである第１のデータとを取得し、ここで、前記正常データは、前記ニューラルネットワークにより正常と判定されるデータであり、（ａ２）前記第１のデータの種類に応じて予め設定された方法で、前記第１のデータに正常ノイズを付加して、第２のデータを生成し、ここで、前記第２のデータは、前記ニューラルネットワークにより正常と判定されるデータであり、（ａ３）前記第１のデータの種類に応じて予め設定された方法で、前記第１のデータに異常ノイズを付加して、第３のデータを生成し、ここで、前記第３のデータは、前記ニューラルネットワークにより異常と判定されるデータであり、（ａ４）前記第１のデータ、前記第２のデータ、及び前記第３のデータのそれぞれを前記ニューラルネットワークに入力し、第１の正常スコア、第２の正常スコア及び第３の正常スコアを算出し、ここで、前記第１の正常スコア、前記第２の正常スコア及び前記第３の正常スコアは、前記ニューラルネットワークに入力したデータの正常データらしさを数値化した値を表し、（ａ５）前記第１の正常スコアと前記第２の正常スコアとの差異に基づく第１差を算出し、前記第１の正常スコアと前記第３の正常スコアとの差異に基づく第２差を算出し、前記第１差と前記第２差との差異に基づく第３差を算出し、（ａ６）前記第３差を最小とする前記ニューラルネットワークのパラメータを算出し、（ａ７）前記算出したパラメータを用いて、前記ニューラルネットワークを変更し、（ａ８）正常か異常かが未知のデータを格納したテストデータベースから、第４のデータを取得し、前記第４のデータを、変更した前記ニューラルネットワークに入力し、第４の正常スコアを算出し、前記第４の正常スコアに基づいて、前記第４のデータが正常か異常かを判定し、前記（ａ１）〜前記（ａ８）の少なくとも１つはプロセッサによって実行される。
【００１８】
上記態様によれば、正常データに加えるノイズとして、正常ノイズと異常ノイズとを用いることで、正常データの分布の近似精度を向上し、学習時のニューラルネットワークの目的関数の計算をより正確に行うことが可能になる。その結果、正常モデルの学習を改善し、異常検知の性能を向上させることが可能になる。なお、データベースは、１つのデータベースで構成されてもよく、複数のデータベースで構成されてもよい。そして、ニューラルネットワークを記録するデータベースと、データ（例えば、第１のデータ）を記録するデータベースとは、同一であってもよく、異なっていてもよい。例えば、第１のデータは、後述する学習データベースに格納されてもよく、ニューラルネットワークは、後述する記憶部に格納されてもよく、学習データベースに格納されてもよく、テストデータベースに格納されてもよい。
【００１９】
例えば、デノイジングオートエンコーダでは、入力データが局所解となる正常モデルを学習する。単にガウスノイズを用いた場合は入力データに依らず一様にガウスノイズを加え、ノイズが加えられた入力データはすべて正常スコアが減少するものとして扱われる。しかしながら、入力データに加えるノイズが全て正常スコアを減少させるとは限らない。例えば、画像としての数字の「０」を正常とし、それ以外を異常とする場合、文字の微小な位置又は傾きが変化したり、線の太さが変化したりしても、数字の「０」であることに変わりは無いため、正常スコアは元の「０」と同等でよい。そこで、ノイズの加え方として、正常スコアを減少させる異常ノイズと、正常スコアを減少させない正常ノイズとを用いることで、これらを区別し、エナジーベースモデルにおける目的関数を精度よく算出できる。
【００２０】
正常スコアを減少させないノイズの加え方をすべて記述し、正常ノイズとして定義することは困難である。しかしながら、入力データに関する知見に基づき、ノイズを加えた後も入力データを正常として扱うべきノイズの加え方の一部を正常ノイズとして定義すれば、従来のデノイジングオートエンコーダでは異常ノイズに含められていた正常ノイズを適切に扱うことが出来るため、目的関数の算出精度の向上を図ることが出来る。
【００２１】
本開示の一態様に係る異常判定方法において、前記第１のデータが画像である場合、前記（ａ１）と前記（ａ２）との間に、（ｂ１）前記第１のデータである画像に含まれるエッジの画素位置を検出し、（ｂ２）前記エッジの画素位置から第１の距離の画素位置の領域を異常ノイズ領域として設定し、かつ、前記画像のうち前記異常ノイズ領域に含まれない領域を正常ノイズ領域として設定し、前記（ａ２）において、前記予め設定された方法として、前記正常ノイズ領域にノイズを付加して、前記第２のデータを作成し、前記（ａ３）において、前記予め設定された方法として、前記異常ノイズ領域にノイズを付加して、前記第３のデータを作成してもよい。
【００２２】
上記様態によれば、画像の被写体の形状を変化させ、異常データへと変形し得るノイズを異常ノイズとして扱い、画像データの被写体の形状を変化させず、ノイズを付加した後のデータも正常データであるノイズを正常ノイズとして扱う使うことができる。これにより、ニューラルネットワークにおける目的関数を精度よく算出し、異常検知の性能を向上させることができる。
【００２３】
本開示の一態様に係る異常判定方法において、前記第１のデータが、時刻毎にデータ値を有する、時系列データである場合、前記（ａ１）と前記（ａ２）との間に、（ｃ１）前記第１のデータの平均値を算出し、（ｃ２）前記第１のデータのうち、前記平均値を超えるデータ値である超過データ値と、前記平均値未満のデータ値である非超過データ値とのそれぞれについて、前記平均値に近いデータ値から順にデータ数をカウントし、前記超過データ値及び前記非超過データ値のそれぞれの総データ数に対し、カウント数が予め設定された割合を超えるときのデータ値をそれぞれ上閾値及び下閾値として設定し、（ｃ３）前記上閾値と前記下閾値との範囲内に含まれる領域を正常ノイズ領域として設定し、（ｃ４）前記正常ノイズ領域に含まれない領域を異常ノイズ領域として設定し、（ｃ５）前記第１のデータのデータ値が正常ノイズ領域に含まれる場合に、前記第１のデータのデータ値にノイズを付加する方法を正常ノイズの付加方法として設定し、前記第１のデータのデータ値が異常ノイズ領域に含まれる場合に、前記第１のデータのデータ値にノイズを付加する方法を異常ノイズの付加方法として設定してもよい。
【００２４】
上記様態によれば、時系列データのパターンを変化させ、異常データに変化し得るノイズを異常ノイズとして扱い、時系列データのパターンを変化させず、正常データのままとなるノイズを正常ノイズとして扱う使うことができる。これにより、ニューラルネットワークにおける目的関数を精度よく算出し、異常検知の性能を向上させることができる。
【００２５】
本開示の一態様に係る異常判定方法において、前記第１のデータが、時刻毎にデータ値を有する、時系列データである場合、（ｄ１）前記第１のデータのデータ値を微分した微分値である微分データ値を算出し、（ｄ２）前記微分データ値の平均値を算出し、（ｄ３）前記微分データ値のうち、前記平均値を超える微分データ値である超過データ値と、前記平均値未満の微分データ値である非超過データ値とのそれぞれについて、前記平均値に近い微分データ値から順にデータ数をカウントし、前記超過データ値及び前記非超過データ値のそれぞれの総データ数に対し、カウント数が予め設定された割合を超えるときの微分データ値をそれぞれ上閾値及び下閾値として設定し、（ｄ４）前記上閾値と前記下閾値との範囲内に含まれる領域を正常ノイズ領域として設定し、（ｄ５）前記正常ノイズ領域に含まれない領域を異常ノイズ領域として設定し、（ｄ６）前記微分データ値が正常ノイズ領域に含まれる場合に、前記微分データ値にノイズを付加する方法を正常ノイズの付加方法として設定し、前記微分データ値が異常ノイズ領域に含まれる場合に、前記微分データ値にノイズを付加する方法を異常ノイズの付加方法として設定し、前記（ａ２）〜前記（ａ４）において、前記第１のデータのデータ値の代わりに、前記微分データ値を用い、前記（ａ８）において、前記第４のデータのデータ値の代わりに、前記第４のデータのデータ値を微分した微分値を用いてもよい。
【００２６】
上記様態によれば、時系列データの時間的変化について、異常データに変化し得るノイズを異常ノイズとして扱い、時系列データの時間的変化について、異常データに変化させず、正常データのままとなるノイズを正常ノイズとして扱う使うことができる。これにより、ニューラルネットワークにおける目的関数を精度よく算出し、異常検知の性能を向上させることができる。
【００２７】
本開示の一態様に係る異常判定方法において、前記第１のデータが、多次元データである場合、前記（ａ１）と前記（ａ２）との間に、（ｅ１）前記第１のデータの主成分分析を行い、主成分の固有値及び固有ベクトルを算出し、（ｅ２）前記固有値及び前記固有ベクトルに基づき、前記第１のデータの微分方向を算出し、（ｅ３）前記微分方向を異常ノイズ方向として設定し、（ｅ４）前記異常ノイズ方向に垂直な方向を正常ノイズ方向として設定し、前記（ａ２）において、前記予め設定された方法として、前記正常ノイズ方向のノイズを前記第１のデータに付加して、前記第２のデータを作成し、前記（ａ３）において、前記予め設定された方法として、前記異常ノイズ方向のノイズを前記第１のデータに付加して、前記第３のデータを作成してもよい。
【００２８】
上記様態によれば、多次元データについて、異常データに変化し得るノイズを異常ノイズとして扱い、多次元データを異常データに変化させず、正常データのままとなるノイズを正常ノイズとして扱う使うことができる。これにより、ニューラルネットワークにおける目的関数を精度よく算出し、異常検知の性能を向上させることができる。
【００２９】
本開示の一態様に係る異常判定方法において、前記第１のデータが多次元データである場合、前記（ａ１）と前記（ａ２）との間に、（ｅ１）前記第１のデータの主成分分析を行い、主成分の固有値及び固有ベクトルを算出し、（ｅ２）前記固有ベクトルを軸に、前記固有値を各軸の分散に持つガウス分布上で、データ点における微分方向を算出し、（ｅ３）前記微分方向を異常ノイズ方向として設定し、（ｅ４）前記異常ノイズ方向に垂直な方向を正常ノイズ方向として設定し、（ｅ５）前記第１のデータに前記異常ノイズ方向のノイズを加えることを異常ノイズの付加方法として設定し、前記第１のデータに前記正常ノイズ方向のノイズを加えることを正常ノイズの付加方法として設定してもよい。上記様態によっても、ニューラルネットワークにおける目的関数を精度よく算出し、異常検知の性能を向上させることができる。
【００３０】
本開示の一態様に係る異常判定方法では、前記（ａ７）において、前記ニューラルネットワークの変更前後の前記第３差の変動量を算出し、前記第３差が減少する場合、前記ニューラルネットワークを変更し、前記第３差が増加する場合には、前記第３差の変動量に基づく確率で、前記ニューラルネットワークを変更してもよい。上記態様によれば、ニューラルネットワークの変更の可否を、状況に応じて決定することができる。よって、ニューラルネットワークの性能の向上が可能になる。
【００３１】
また、本開示の一態様に係るプログラムは、（ａ１）データベースから、ニューラルネットワークと正常データである第１のデータとを取得し、ここで、前記正常データは、前記ニューラルネットワークにより正常と判定されるデータであり、（ａ２）前記第１のデータの種類に応じて予め設定された方法で、前記第１のデータに正常ノイズを付加して、第２のデータを生成し、ここで、前記第２のデータは、前記ニューラルネットワークにより正常と判定されるデータであり、（ａ３）前記第１のデータの種類に応じて予め設定された方法で、前記第１のデータに異常ノイズを付加して、第３のデータを生成し、ここで、前記第３のデータは、前記ニューラルネットワークにより異常と判定されるデータであり、（ａ４）前記第１のデータ、前記第２のデータ、及び前記第３のデータのそれぞれを前記ニューラルネットワークに入力し、第１の正常スコア、第２の正常スコア及び第３の正常スコアを算出し、ここで、前記第１の正常スコア、前記第２の正常スコア及び前記第３の正常スコアは、前記ニューラルネットワークに入力したデータの正常データらしさを数値化した値を表し、（ａ５）前記第１の正常スコアと前記第２の正常スコアとの差異に基づく第１差を算出し、前記第１の正常スコアと前記第３の正常スコアとの差異に基づく第２差を算出し、前記第１差と前記第２差との差異に基づく第３差を算出し、（ａ６）前記第３差を最小とする前記ニューラルネットワークのパラメータを算出し、（ａ７）前記算出したパラメータを用いて、前記ニューラルネットワークを変更し、（ａ８）正常か異常かが未知のデータを格納したテストデータベースから、第４のデータを取得し、前記第４のデータを、変更した前記ニューラルネットワークに入力し、第４の正常スコアを算出し、前記第４の正常スコアに基づいて、前記第４のデータが正常か異常かを判定することを、コンピュータに実行させる。上記態様によれば、本開示の一態様に係る異常判定方法と同様の効果が得られる。
【００３２】
本開示の一態様に係るプログラムにおいて、前記第１のデータが画像である場合、前記（ａ１）と前記（ａ２）との間に、（ｂ１）前記第１のデータである画像に含まれるエッジの画素位置を検出し、（ｂ２）前記エッジの画素位置から第１の距離以下の画素位置の領域を異常ノイズ領域として設定し、かつ、前記画像のうち前記異常ノイズ領域に含まれない領域を正常ノイズ領域として設定し、前記（ａ２）において、前記予め設定された方法として、前記正常ノイズ領域にノイズを付加して、前記第２のデータを作成し、前記（ａ３）において、前記予め設定された方法として、前記異常ノイズ領域にノイズを付加して、前記第３のデータを作成してもよい。
【００３３】
本開示の一態様に係るプログラムにおいて、前記第１のデータが、時刻毎にデータ値を有する、時系列データである場合、前記（ａ１）と前記（ａ２）との間に、（ｃ１）前記第１のデータの平均値を算出し、（ｃ２）前記第１のデータのうち、前記平均値を超えるデータ値である超過データ値と、前記平均値未満のデータ値である非超過データ値とのそれぞれについて、前記平均値に近いデータ値から順にデータ数をカウントし、前記超過データ値及び前記非超過データ値のそれぞれの総データ数に対し、カウント数が予め設定された割合を超えるときのデータ値をそれぞれ上閾値及び下閾値として設定し、（ｃ３）前記上閾値と前記下閾値との範囲内に含まれる領域を正常ノイズ領域として設定し、（ｃ４）前記正常ノイズ領域に含まれない領域を異常ノイズ領域として設定し、（ｃ５）前記第１のデータのデータ値が正常ノイズ領域に含まれる場合に、前記第１のデータのデータ値にノイズを付加する方法を正常ノイズの付加方法として設定し、前記第１のデータのデータ値が異常ノイズ領域に含まれる場合に、前記第１のデータのデータ値にノイズを付加する方法を異常ノイズの付加方法として設定してもよい。
【００３４】
本開示の一態様に係るプログラムにおいて、前記第１のデータが、時刻毎にデータ値を有する、時系列データである場合、前記（ａ１）と前記（ａ２）との間に、（ｄ１）前記第１のデータのデータ値を微分した微分値である微分データ値を算出し、（ｄ２）前記微分データ値の平均値を算出し、（ｄ３）前記微分データ値のうち、前記平均値を超える微分データ値である超過データ値と、前記平均値未満の微分データ値である非超過データ値とのそれぞれについて、前記平均値に近い微分データ値から順にデータ数をカウントし、前記超過データ値及び前記非超過データ値のそれぞれの総データ数に対し、カウント数が予め設定された割合を超えるときの微分データ値をそれぞれ上閾値及び下閾値として設定し、（ｄ４）前記上閾値と前記下閾値との範囲内に含まれる領域を正常ノイズ領域として設定し、（ｄ５）前記正常ノイズ領域に含まれない領域を異常ノイズ領域として設定し、（ｄ６）前記微分データ値が正常ノイズ領域に含まれる場合に、前記微分データ値にノイズを付加する方法を正常ノイズの付加方法として設定し、前記微分データ値が異常ノイズ領域に含まれる場合に、前記微分データ値にノイズを付加する方法を異常ノイズの付加方法として設定し、前記（ａ２）〜前記（ａ４）において、前記第１のデータのデータ値の代わりに、前記微分データ値を用い、前記（ａ８）において、前記第４のデータの値の代わりに、前記第４のデータのデータ値を微分した微分値を用いてもよい。
【００３５】
本開示の一態様に係るプログラムにおいて、前記第１のデータが、多次元データである場合、前記（ａ１）と前記（ａ２）との間に、（ｅ１）前記第１のデータの主成分分析を行い、主成分の固有値及び固有ベクトルを算出し、（ｅ２）前記固有値及び前記固有ベクトルに基づき、前記第１のデータの微分方向を算出し、（ｅ３）前記微分方向を異常ノイズ方向として設定し、（ｅ４）前記異常ノイズ方向に垂直な方向を正常ノイズ方向として設定し、前記（ａ２）において、前記予め設定された方法として、前記正常ノイズ方向のノイズを前記第１のデータに付加して、前記第２のデータを作成し、前記（ａ３）において、前記予め設定された方法として、前記異常ノイズ方向のノイズを前記第１のデータに付加して、前記第３のデータを作成してもよい。
【００３６】
本開示の一態様に係るプログラムでは、前記（ａ７）において、前記ニューラルネットワークの変更前後の前記第３差の変動量を算出し、前記第３差が減少する場合、前記ニューラルネットワークを変更し、前記第３差が増加する場合には、前記第３差の変動量に基づく確率で、前記ニューラルネットワークを変更してもよい。
【００３７】
上記の異常判定方法の作用効果は異常検知装置及び異常検知システムにおいても同様に実現される。なお、上記の包括的又は具体的な態様は、システム、装置、方法、集積回路、コンピュータプログラム又はコンピュータ読み取り可能な記録ディスク等の記録媒体で実現されてもよく、システム、装置、方法、集積回路、コンピュータプログラム及び記録媒体の任意な組み合わせで実現されてもよい。コンピュータ読み取り可能な記録媒体は、例えばＣＤ−ＲＯＭ等の不揮発性の記録媒体を含む。
【００３８】
［実施の形態］
以下、実施の形態について、図面を参照しながら説明する。なお、以下で説明する実施の形態は、いずれも包括的又は具体的な例を示すものである。以下の実施の形態で示される数値、形状、構成要素、構成要素の配置位置及び接続形態、ステップ（工程）、ステップの順序等は、一例であり、本開示を限定する主旨ではない。また、以下の実施の形態における構成要素のうち、最上位概念を示す独立請求項に記載されていない構成要素については、任意の構成要素として説明される。また、以下の実施の形態の説明において、略平行、略直交のような「略」を伴った表現が、用いられる場合がある。例えば、略平行とは、完全に平行であることを意味するだけでなく、実質的に平行である、すなわち、例えば数％程度の差異を含むことも意味する。他の「略」を伴った表現についても同様である。また、各図は模式図であり、必ずしも厳密に図示されたものではない。さらに、各図において、実質的に同一の構成要素に対しては同一の符号を付しており、重複する説明は省略又は簡略化される場合がある。
【００３９】
図１には、実施の形態に係る異常検知システム１０００の機能的な構成が、ブロック図で示されている。異常検知システム１０００は、ニューラルネットワークを用いて、入力データにおける異常の有無を検出する。さらに、異常検知システム１０００は、ニューラルネットワークを用いた機械学習を行うことによって、異常の検出精度を向上させる。図１に示すように、異常検知システム１０００は、異常検知装置１００と、学習データベース（以下、「学習ＤＢ」と呼ぶ）２０１と、テストデータベース２０２（以下、「テストＤＢ」と呼ぶ）とを備える。さらに、異常検知装置１００は、入力データ取得部１０１と、正常ノイズ付加データ生成部１０２と、異常ノイズ付加データ生成部１０３と、正常スコア算出部１０４と、ネットワークパラメータ算出部１０５と、異常検出部１０６と、記憶部１０７とを備える。
【００４０】
入力データ取得部１０１、正常ノイズ付加データ生成部１０２、異常ノイズ付加データ生成部１０３、正常スコア算出部１０４、ネットワークパラメータ算出部１０５及び異常検出部１０６からなる異常検知装置１００の構成要素は、ＣＰＵ（Central Processing Unit）又はＤＳＰ（Digital Signal Processor）等のプロセッサ、並びに、ＲＡＭ（Random Access Memory）及びＲＯＭ（Read−Only Memory）等のメモリなどからなる処理回路により構成されてもよい。上記構成要素の一部又は全部の機能は、ＣＰＵ又はＤＳＰがＲＡＭを作業用のメモリとして用いてＲＯＭに記録されたプログラムを実行することによって達成されてもよい。また、上記構成要素の一部又は全部の機能は、電子回路又は集積回路等の専用のハードウェア回路によって達成されてもよい。上記構成要素の一部又は全部の機能は、上記のソフトウェア機能とハードウェア回路との組み合わせによって構成されてもよい。プログラムは、アプリケーションとして、インターネット等の通信網を介した通信、モバイル通信規格による通信、その他の無線ネットワーク、有線ネットワーク、又は放送等で提供されるものであってもよい。
【００４１】
学習データベース２０１及びテストデータベース２０２は、異常検知装置１００と共に１つの装置に備えられてもよく、異常検知装置１００と分離した装置に備えられてもよい。後者の場合、学習データベース２０１及びテストデータベース２０２は、異常検知装置１００と有線通信又は無線通信を介して接続されてもよい。無線通信の場合、学習データベース２０１及びテストデータベース２０２は、異常検知装置１００と、インターネット等の通信網を介して接続されてもよく、その場合、クラウドサーバに備えられてもよい。同様に、異常検知装置１００は、１つの装置に備えられてもよく、２つ以上の装置に分離して備えられてもよい。分離した装置は、有線通信又は無線通信を介して接続されてもよい。例えば、後述するニューラルネットワークの学習に関わる入力データ取得部１０１と、正常ノイズ付加データ生成部１０２と、異常ノイズ付加データ生成部１０３と、正常スコア算出部１０４と、ネットワークパラメータ算出部１０５とは、クラウドサーバに備えられてもよい。
【００４２】
学習データベース２０１及びテストデータベース２０２は、情報を格納することができ、且つ、格納した情報の取り出しを可能にする。学習データベース２０１は、異常検知システム１０００において正常データとみなされる第１入力データを記録する。例えば、正常データは、正常な状態を示すデータ又は正確なデータ等であり、異常データは、異常な状態を示すデータ又は不正確なデータ等である。第１入力データは、画像データ、時系列データ、多次元データ等のうちのいずれでもよい。第１入力データは、データの種類と対応付けられて記憶されていてもよい。データの種類は、画像データ、時系列データ、多次元データ等によって区分される種類である。テストデータベース２０２は、正常か異常かが未知である第２入力データを記録する。第２入力データは、画像データ、時系列データ、多次元データのいずれでもよいが、学習データベース２０１と同じ種類のデータである必要がある。ここで、第１入力データは、第１のデータの一例であり、第２入力データは、第４のデータの一例である。また、学習データベース２０１は、データベースの一例である。
【００４３】
学習データベース２０１及びテストデータベース２０２は、例えば、ＲＯＭ、ＲＡＭ、フラッシュメモリなどの半導体メモリ、ハードディスクドライブ、又は、ＳＳＤ（Solid State Drive）等の記憶装置によって実現される。
【００４４】
記憶部１０７は、情報を格納することができ、且つ、格納した情報の取り出しを可能にする。記憶部１０７は、異常検知装置１００の各構成要素が処理を実行するためのコンピュータプログラム、識別器、学習データベース２０１及びテストデータベース２０２から取得されるデータ等を記憶する。記憶部１０７は、例えば、ＲＯＭ、ＲＡＭ、フラッシュメモリなどの半導体メモリ、ハードディスクドライブ、又はＳＳＤ等の記憶装置によって実現される。識別器は、ニューラルネットワークを用いた識別器であり、本実施の形態では、ニューラルネットワークは、それぞれが少なくとも１つのニューロンを含む複数のニューロン層を有する多層構造のニューラルネットワーク（以下、「多層ニューラルネットワーク」とも呼ぶ）である。なお、識別器は、学習データベース２０１又はテストデータベース２０２に格納されていてもよい。この場合、記憶部１０７は、学習データベース２０１又はテストデータベース２０２を含んでもよく、これらと別個であってもよい。つまり、記憶部１０７は、学習データベース２０１及びテストデータベース２０２の少なくとも一方と同じであってもよく、異なっていてもよい。また、学習データベース２０１は、テストデータベース２０２と同じであってもよく、異なっていてもよい。また、本明細書において、「識別器」のことを、単に「ニューラルネットワーク」とも称する。ここで、記憶部１０７は、データベースの一例である。
【００４５】
入力データ取得部１０１は、学習データベース２０１から正常データである第１入力データを取得し、正常ノイズ付加データ生成部１０２と、異常ノイズ付加データ生成部１０３と、正常スコア算出部１０４とに出力する。
【００４６】
正常ノイズ付加データ生成部１０２は、第１入力データと、第１入力データの種類とを取得する。正常ノイズ付加データ生成部１０２は、第１入力データに対応付けられたデータの種類を取得してもよいし、ユーザの入力に基づいてデータの種類を取得してもよい。異常検知システム１０００がインタフェース部を有する場合、正常ノイズ付加データ生成部１０２は、インタフェース部を介して、ユーザの入力を取得してもよいし、異常検知システム１０００の外部のインタフェース部を介して、有線通信又は無線通信を通じて、ユーザの入力を取得してもよい。
【００４７】
予め決められた１種類の入力データを用いる場合には、正常ノイズ付加データ生成部１０２は、第１入力データの種類を取得しなくてもよい。このとき、学習データベース２０１に記録される第１入力データと、後述する第１の方法及び第２の方法とが、予め決められた１種類の入力データに対応する情報のみを含んでいればよい。異常検知装置１００の記憶部１０７又は異常検知システム１０００が備える図示しないメモリは、データの種類に応じた少なくとも１つの第１の方法を記録し、正常ノイズ付加データ生成部１０２は、当該メモリから第１入力データの種類に応じた第１の方法を取得する。
【００４８】
正常ノイズ付加データ生成部１０２は、第１入力データに、第１入力データの種類に応じて予め設定された第１の方法で正常ノイズを加えることによって、正常ノイズ付加データを生成し、正常ノイズ付加データを正常スコア算出部１０４に出力する。ここで、正常ノイズを説明する。入力データは、複数のパラメータを有する。複数のパラメータは、少なくとも１つの第１パラメータと、少なくとも１つの第２パラメータとを含む。第１パラメータは、後述する正常スコアに、所定以上の影響を与えるパラメータであり、第２パラメータは、正常スコアに、所定未満の影響を与えるパラメータである。正常ノイズとは、入力データが有する複数のパラメータに含まれる少なくとも１つの第２パラメータに加えられたノイズを意味する。
【００４９】
異常ノイズ付加データ生成部１０３は、第１入力データと、第１入力データの種類とを取得する。異常ノイズ付加データ生成部１０３は、第１入力データに対応付けられたデータの種類を取得してもよいし、ユーザの入力に基づいてデータの種類を取得してもよい。異常検知システム１０００がインタフェース部を有する場合、異常ノイズ付加データ生成部１０３は、インタフェース部を介して、ユーザの入力を取得してもよいし、異常検知システム１０００の外部のインタフェース部を介して、有線通信又は無線通信を通じて、ユーザの入力を取得してもよい。
【００５０】
異常ノイズ付加データ生成部１０３は、入力データ取得部１０１から取得した第１入力データに、第１入力データの種類に応じて予め設定された第２の方法で異常ノイズを加えることによって、異常ノイズ付加データを生成し、異常ノイズ付加データを正常スコア算出部１０４に出力する。ここで、異常ノイズを説明する。上述のように、入力データが有する複数のパラメータは、少なくとも１つの第１パラメータと、少なくとも１つの第２パラメータとを含む。異常ノイズとは、入力データが有する複数のパラメータに含まれる少なくとも１つの第１パラメータに加えられたノイズを意味する。
【００５１】
正常スコア算出部１０４は、入力データ取得部１０１から取得した第１入力データと、正常ノイズ付加データ生成部１０２から取得した正常ノイズ付加データと、異常ノイズ付加データ生成部１０３から取得した異常ノイズ付加データとを、ニューラルネットワークに入力する。ニューラルネットワークは、データが入力されると、当該データの正常スコアを出力する。その結果、正常スコア算出部１０４は、第１入力データ、正常ノイズ付加データ及び異常ノイズ付加データそれぞれに対応する第１正常スコア、第２正常スコア及び第３正常スコアを出力結果として算出する。ここで、正常ノイズ付加データは第２のデータの一例であり、異常ノイズ付加データは、第３のデータの一例である。正常スコア算出部１０４は、出力結果をネットワークパラメータ算出部１０５に出力する。正常スコアは、ニューラルネットワークに入力したデータの正常データらしさを数値化した値を表す。正常スコアは、ニューラルネットワークに入力されたデータが正常又は正確なデータであるか否かを示す指標である。正常スコアは、例えば、０〜１の範囲の値で示され、その値が「１」に近い程、正常又は正確なデータである可能性が高いことを意味する。
【００５２】
ネットワークパラメータ算出部１０５は、正常スコア算出部１０４から取得する第１正常スコア、第２正常スコア及び第３正常スコアを用いて、ニューラルネットワークのパラメータを算出し、算出したパラメータを異常検出部１０６に出力する。具体的には、ネットワークパラメータ算出部１０５は、第１正常スコアと第２正常スコアとの差異に基づく第１差と、第１正常スコアと第３正常スコアとの差異に基づく第２差とを算出する。さらに、ネットワークパラメータ算出部１０５は、係数を掛けた第１差から係数を掛けた第２差を減算して、第３差を算出する、つまり、第１差と第２差との差異に基づく第３差を算出する。
【００５３】
そして、ネットワークパラメータ算出部１０５は、第３差を最小とするようにニューラルネットワークのパラメータを変更することによって、第３差を最小とするニューラルネットワークのパラメータを算出する。つまり、ニューラルネットワークの学習のための目的関数として、第３差を用いた目的関数を定義することができる。このような目的関数は、正常データ、正常ノイズが付加された正常データ、及び異常ノイズが付加された正常データを用いるものである。このため、目的関数は、ニューラルネットワークにおいて、ノイズの影響を受ける場合の正常データの分布の近似精度を向上することを可能にする。よって、目的関数の精度が向上する。さらに、目的関数の計算も容易である。なお、ニューラルネットワークのパラメータの例は、ニューラルネットワークに含まれるニューロン間の重み付け係数、バイアス等である。また、第１正常スコア、第２正常スコア及び第３正常スコアから第３差を算出する過程を数式で表現すると下記の式１のようになる。
【００５４】
【数１】
2019061577.tif 000003
【００５５】
ここで係数αは、ニューラルネットワークのパラメータ算出時に第１差と第２差とのいずれを重視するかを決めるパラメータであり、値域は（０，１）である。つまり、係数αは、０〜１の値をとり、０に近いほど第１差を重視することを意味し、１に近いほど第２差を重視することを意味する。具体的には、例えば、係数αの値として０．５を用いてもよい。また、第１差及び第２差の算出には、正常スコアの差の２乗の代わりに、正常スコアの差の絶対値を用いてもよい。第３差を最小とするニューラルネットワークのパラメータの算出には、例えば、特許文献１に記載されるようなバックプロパゲーション（「誤差逆伝播法」とも呼ばれる）等の、ニューラルネットワークの学習に関する公知の方法を利用することができる。バックプロパゲーションは、機械学習においてニューラルネットワークに学習させるために用いられるアルゴリズムの１つである。バックプロパゲーションを用いたニューラルネットワークの更新式には、例えば下記の式２を用いることができる。
【００５６】
Ｗ＿ｔ＋１＝Ｗ＿ｔ−γ×ｄＤ（Ｗ＿ｔ）／ｄＷ＿ｔ                （式２）
Ｗ＿ｔは、ニューラルネットワークのパラメータの更新前の値を表し、Ｗ＿ｔ＋１は更新後の値を表す。Ｄ（Ｗ）は、ニューラルネットワークのパラメータがＷであるときの第３差を表す。γは学習係数を表す。
【００５７】
上記更新式は、入力データすべてを用いて算出してもよい。又は、入力データの一部のデータを取り出し、当該一部のデータについて更新式を算出してパラメータを更新し、さらに、順次取り出すデータを変更しつつ更新を繰り返してもよい。又は、更新前後の第３差の変動量に基づき、更新を採用するか否かを決定してもよい。例えば、第３差が減少する場合には必ず更新を採用し、第３差が増加する場合には、下記の式３で示す確率で更新を採用してもよい。なお、第３差が変化しない場合、更新しなくてもよい。
【００５８】
（更新確率）＝ｍｉｎ（１，ｅＤ）            （式３）
ｅは自然対数を表し、Ｄは、第３差の減少量を表す。第３差の減少量Ｄは、第３差が減少する場合に正の値をとる。このような更新確率は、１及びｅＤの小さい方の値である。更新確率が「１」であることは、更新確率が「１００％」であることを示す。例えば、第３差が減少する場合、Ｄ＞０であり、更新確率＝ｍｉｎ（１，ｅＤ＞１）＝１であり、第３差が増加する場合、Ｄ＜０であり、更新確率＝ｍｉｎ（１，ｅＤ＜１）＝ｅＤである。
【００５９】
異常検出部１０６は、正常か異常かが未知であるデータを格納したテストデータベース２０２から第２入力データを取得する。異常検出部１０６は、ネットワークパラメータ算出部１０５から取得したパラメータを設定したニューラルネットワークに第２入力データを入力して第４正常スコアを算出する、異常検出部１０６は、第４正常スコアが第一閾値を超えない場合に、当該第２入力データが異常データであると判定する。ここで、第一閾値は、予め設定された閾値である。第一閾値として、例えば、学習データベース２０１に格納された正常データのうち、９０％が正常であると判定される値を用いてもよい。又は、正常データの正常スコアの標準偏差σを算出し、正常スコアの平均値から３σを減算した値を、第一閾値として用いてもよい。
【００６０】
次に、図２を参照して、異常検知装置１００の動作について説明する。図２は、実施の形態に係る異常検知装置１００の処理の全体的な流れの一例を示すフローチャートである。
【００６１】
ステップＳ１０１において、入力データ取得部１０１は、学習ＤＢ２０１から正常データである第１入力データを取得する。さらに、入力データ取得部１０１は、第１入力データを、正常ノイズ付加データ生成部１０２、異常ノイズ付加データ生成部１０３及び正常スコア算出部１０４に出力する。
【００６２】
次いで、ステップＳ１０２において、正常ノイズ付加データ生成部１０２は、第１入力データの種類に応じて予め設定された正常ノイズ付加方法（「第１の方法」とも呼ぶ）で、第１入力データにノイズを付加することによって、正常ノイズ付加データを生成する。正常ノイズ付加データ生成部１０２は、生成した正常ノイズ付加データを正常スコア算出部１０４に出力する。
【００６３】
次いで、ステップＳ１０３において、異常ノイズ付加データ生成部１０３は、第１入力データの種類に応じて予め設定された異常ノイズ付加方法（「第２の方法」とも呼ぶ）で、第１入力データにノイズを付加することによって、異常ノイズ付加データを生成する。異常ノイズ付加データ生成部１０３は、生成した異常ノイズ付加データを正常スコア算出部１０４に出力する。
【００６４】
次いで、ステップＳ１０４において、正常スコア算出部１０４は、第１入力データ、正常ノイズ付加データ及び異常ノイズ付加データを、同じニューラルネットワーク（「ＮＮ」とも呼ぶ）に入力し、第１正常スコア、第２正常スコア及び第３正常スコアを算出する。正常スコア算出部１０４は、算出した第１正常スコア、第２正常スコア及び第３正常スコアを、ネットワークパラメータ算出部１０５に出力する。本例では、ニューラルネットワークは、多層ニューラルネットワークであるとし、データが入力されると、当該データに対応する正常スコアを出力する。
【００６５】
次いで、ステップＳ１０５において、ネットワークパラメータ算出部１０５は、第１正常スコアと第２正常スコアとの差異に基づく第１差を算出し、第１正常スコアと第３正常スコアとの差異に基づく第２差を算出する。さらに、ネットワークパラメータ算出部１０５は、第１差と第２差との差異に基づく第３差を算出する。
【００６６】
次いで、ステップＳ１０６において、ネットワークパラメータ算出部１０５は、ニューラルネットワークのパラメータを変更することによって、第３差を最小とするニューラルネットワークのパラメータを算出する。ネットワークパラメータ算出部１０５は、算出したパラメータを異常検出部１０６に出力する。
【００６７】
次いで、ステップＳ１０７において、異常検出部１０６は、テストＤＢ２０２から正常か異常かが未知である第２入力データを取得する。第２入力データは、第１入力データと同じ種類のデータである。例えば、画像データ、時系列データ、多次元データ等といったデータの種類に関して、第２入力データは、第１入力データと同じ種類のデータであってもよい。また、第２入力データ及び第１入力データの対象が同じ種類であってもよい。この場合、例えば、第１入力データが、自動車から前方に見える光景の画像である場合、第２入力データも、自動車から前方に見える光景の画像である。
【００６８】
次いで、ステップＳ１０８において、異常検出部１０６は、ステップＳ１０６で算出したニューラルネットワークのパラメータをニューラルネットワークに設定することによって、ニューラルネットワークを変更、つまり更新する。さらに、異常検出部１０６は、第２入力データを、更新後のニューラルネットワークに入力することによって、第４正常スコアを算出する。
【００６９】
次いで、ステップＳ１０９において、異常検出部１０６は、第４正常スコアと予め設定された第一閾値とを比較する。第４正常スコアが第一閾値を超える場合（ステップＳ１０９でＮｏ）、異常検出部１０６は、第２入力データが正常データであると判定する（ステップＳ１１１）。第４正常スコアが第一閾値以下である場合（ステップＳ１０９でＹｅｓ）、異常検出部１０６は、第２入力データが異常データであると判定する（ステップＳ１１０）。
【００７０】
上述したように、異常検知装置１００は、正常データと、正常データに正常ノイズ又は異常ノイズが付加された正常ノイズ付加データ及び異常ノイズ付加データとを用いて、ニューラルネットワークに学習させ、学習後のニューラルネットワークを用いて、正常か異常かが不明であるデータの異常判定を行う。なお、正常データ、正常ノイズ付加データ及び異常ノイズ付加データの正常スコアの差異に関連する第３差を最小にするように、ニューラルネットワークの学習が行われる。
【００７１】
さらに、図３を参照して、図２のステップＳ１０２の処理である正常ノイズ付加データの算出方法を、第１入力データが画像データである場合について、説明する。図３は、図２のステップＳ１０２において、第１入力データの種類が画像の場合の処理の詳細の一例を示すフローチャートである。
【００７２】
まず、ステップＳ２０１において、正常ノイズ付加データ生成部１０２は、画像データである第１入力データのエッジを検出する。つまり、正常ノイズ付加データ生成部１０２は、第１の入力データのエッジに対応する画素の位置を検出する。エッジの検出には、キャニー法、微分エッジ検出法を含む公知方法が利用され得る。次に、ステップＳ２０２において、正常ノイズ付加データ生成部１０２は、ステップＳ２０１で検出したエッジを拡張する。拡張方法は、例えば、ステップＳ２０１で検出したエッジから、予め定められた距離以内に含まれる画素を拡張後のエッジとして定義する方法であってよい。予め定められた距離は、例えば１０ｐｉｘｅｌとすることができるが、これに限定はされない。このようにエッジを拡張することによって、元々のエッジの周りに拡がったエッジ領域が形成される。
【００７３】
次に、ステップＳ２０３において、正常ノイズ付加データ生成部１０２は、第１入力データのうち、ステップＳ２０２で拡張したエッジ領域に含まれない領域にノイズを加え、正常ノイズ付加データを算出する。ここで、例えば、第１入力データの画素値が０〜２５５である場合、平均０分散１０のガウスノイズが生成され、生成されたガウスノイズが、ノイズとして画素値に加算されてもよい。ガウスノイズは、正規分布のノイズである。又は、ランダムに、例えば１０％の確率で、画素値を０又は２５５に置き換えるごましおノイズが、ノイズとして用いられてもよい。ここで、エッジ領域に含まれない領域は、正常ノイズ領域の一例である。
【００７４】
ここで、図４を参照して、画像データに正常ノイズが付加される具体例を説明する。図４は、図３及び図５の処理に対応する画像データの例を示す模式図である。図４に示す画像２００は、第１入力データの一例である。図４に示す画像２０１はステップＳ２０１の処理に対応し、画像２０２はステップＳ２０２の処理に対応し、画像２０３はステップＳ２０３の処理後の画像データである。
【００７５】
画像２０１の色無しの線分は、ステップＳ２０１で検出されるエッジに対応する。画像２０１の色無しの線分に対して、画像２０２の色無し線分は太くなっており、画像２０２はステップＳ２０２によりエッジが拡張された画像データに対応する。画像２０３は、画像２０２のエッジ部分に対応するエッジ領域以外の部分が、画像２００の入力データに対して変化していることがわかる。画像２０３は、画像２０２のエッジ領域以外の部分に正常ノイズが付加された画像データに対応する。
【００７６】
上述のように、異常検知装置１００は、ステップＳ２０１からステップＳ２０３の処理を行うことによって、図２のステップＳ１０２において、正常ノイズ付加データを算出する。
【００７７】
次に、図５を参照して、図２のステップＳ１０３の処理である異常ノイズ付加データの算出方法を、第１入力データが画像データである場合について、説明する。図５は、図２のステップＳ１０３において、第１入力データの種類が画像の場合の処理の詳細の一例を示すフローチャートである。
【００７８】
まず、異常ノイズ付加データ生成部１０３は、正常ノイズ付加データ生成部１０２と同様に、ステップＳ２０１及びステップＳ２０２の処理を行う。次に、ステップＳ３０３において、異常ノイズ付加データ生成部１０３は、第１入力データのうち、ステップＳ２０２で拡張したエッジ領域に含まれる領域にノイズを加え、異常ノイズ付加データを算出する。図４を参照すると、画像２０２のエッジ領域に異常ノイズが付加された画像データの例が、画像２０４として示されている。ここで、エッジ領域は、異常ノイズ領域の一例である。
【００７９】
上述のように、異常検知装置１００は、ステップＳ２０１、Ｓ２０２及びＳ３０３の処理を行うことによって、図２のステップＳ１０３において、異常ノイズ付加データを算出する。
【００８０】
次に、図６を参照して、図２のステップＳ１０２の処理である正常ノイズ付加データの算出方法を、第１入力データが時系列データである場合について、説明する。図６は、図２のステップＳ１０２において、第１入力データの種類が時系列データの場合の処理の詳細の一例を示すフローチャートである。時系列データとは、複数の時刻で測定され、且つ、複数の時刻のそれぞれと測定値等のデータ値とが対応付けられたデータを含む。
【００８１】
まず、ステップＳ４０１において、正常ノイズ付加データ生成部１０２は、時系列データである第１入力データにおいて、対象とする時間区間に含まれるデータの平均値を算出する。対象とする時間時間は、第１入力データの時間区間の全区間であってもよく、一部の区間であってもよい。
【００８２】
次に、ステップＳ４０２において、正常ノイズ付加データ生成部１０２は、第１入力データのうち、ステップＳ４０１で算出した平均値を超えるデータの数量を算出する。具体的には、正常ノイズ付加データ生成部１０２は、平均値に近いデータから順に、平均値超のデータの数量をカウントする。さらに、正常ノイズ付加データ生成部１０２は、平均値超のデータの総数に対して、予め設定された第１割合を超える数量をカウントするときのデータの値を、上閾値に設定する。第１割合は、例えば８０％とすることができるが、これに限定はされない。また、正常ノイズ付加データ生成部１０２は、第１入力データのうち、ステップＳ４０１で算出した平均値未満のデータの数量も同様に算出し、さらに、算出したデータの数量に基づき、下閾値を設定する。この場合、正常ノイズ付加データ生成部１０２は、平均値未満のデータの総数に対して、予め設定された第２割合を超える数量をカウントするときのデータの値を、下閾値に設定する。第２割合も、第１割合と同様に、例えば８０％とすることができるが、これに限定はされない。なお、上述において、正常ノイズ付加データ生成部１０２は、平均値であるデータをカウントしていないが、これに限定されない。正常ノイズ付加データ生成部１０２は、平均値であるデータのカウント数を、平均値超のデータのカウント数及び平均値未満のデータのカウント数のいずれかに含めてもよく、それぞれに所定の割合で配分してもよい。例えば、所定の割合は、５０％：５０％としてもよい。
【００８３】
次に、ステップＳ４０３において、正常ノイズ付加データ生成部１０２は、第１入力データのうち、ステップＳ４０２で算出した上閾値と下閾値との間に含まれるデータにノイズを加え、正常ノイズ付加データを算出する。ここで、例えば正常ノイズ付加データをｙ、もとの第１入力データの値をｘ、平均０分散１のガウス乱数をaとする場合、正常ノイズ付加データｙは、下記の式４又は式５を用いて算出することができる。
ｙ＝ｘ×（１００＋ａ）／１００              （式４）
ｙ＝ｘ＋ａ                                  （式５）
【００８４】
ここで、図７を参照して、時系列データに正常ノイズが付加される具体例を説明する。図７は、図６及び図９の処理に対応する時系列データの例を示す模式図である。図７において、グラフ３００は、第１入力データの一例であり、グラフ３０１は、第１入力データにおいて、同じ値のデータのカウント数の分布を示すヒストグラムである。グラフ３００において、第１入力データの時間区間は、横軸の０〜１０００である。正常ノイズ付加データ生成部１０２は、グラフ３００において０〜１０００の時間区間に含まれるデータの平均値Ａｖを算出する。そして、正常ノイズ付加データ生成部１０２は、０〜１０００の時間区間に含まれるデータをカウントし、平均値超のデータの総数に対して第１割合を超える数量をカウントするときのデータの値を、上閾値に設定する。また、正常ノイズ付加データ生成部１０２は、平均値未満のデータの総数に対して第２割合を超える数量をカウントするときのデータの値を、下閾値に設定する。さらに、正常ノイズ付加データ生成部１０２は、上閾値と下閾値との間に含まれるデータにノイズを加え、正常ノイズ付加データを算出する。上閾値と下閾値との間の領域は、図７において正常ノイズ領域である。
【００８５】
また、正常ノイズ付加データ生成部１０２は、図７のグラフに示されるような時系列データをそのまま用いて、正常ノイズ付加データを算出してもよく、上記時系列データのデータ値を微分した微分値からなるデータを用いて、正常ノイズ付加データを算出してもよい。なお、図７のグラフに示される時系列データは、例えば、計測又は検出等で得られるデータである。正常ノイズ付加データ生成部１０２は、第１入力データの代わりに、第１入力データの微分値を算出し用いてもよい。
【００８６】
例えば、図８には、第１入力データの代わりに、第１入力データの微分値を用いる場合の処理の例が模式的に示されている。図８において、グラフ４００は、グラフ３００のデータの微分値からなるデータの一例であり、グラフ４０１は、グラフ４００において、同じ微分値のカウント数の分布を示すヒストグラムである。正常ノイズ付加データ生成部１０２は、図８に示すような微分値からなるデータに対しても、平均値、上閾値及び下閾値を算出し、上閾値と下閾値との間に含まれるデータに上記の式４又は式５に基づくノイズを加え、正常ノイズ付加データを算出する。なお、式４及び式５において、「ｘ」には、データの微分値が適用される。上閾値と下閾値との間の領域は、図８において正常ノイズ領域である。
【００８７】
なお、第１入力データの代わりに、第１入力データの微分値を用いる場合、図２のステップＳ１０４において、第１入力データの微分値、第１入力データの微分値の正常ノイズ付加データ、及び、第１入力データの微分値の異常ノイズ付加データが、ニューラルネットワークに入力され、第１正常スコア、第２正常スコア及び第３正常スコアが出力される。ニューラルネットワークは、入力データの微分値が入力されると、当該微分値の正常スコアを出力するように構成される。そして、ステップＳ１０５及びＳ１０６において、出力された第１正常スコア、第２正常スコア及び第３正常スコアを用いて、第３差を最小とするニューラルネットワークのパラメータが算出される。さらに、ステップＳ１０７〜Ｓ１１１において、第２入力データの微分値が、ニューラルネットワークに入力され、その結果出力された第４正常スコアに基づき、第２入力データが正常であるか異常であるかが判定される。
【００８８】
上述のように、異常検知装置１００は、ステップＳ４０１からステップＳ４０３の処理を行うことによって、図２のステップＳ１０２において、正常ノイズ付加データを算出する。
【００８９】
次に、図９を参照して、図２のステップＳ１０３の処理である異常ノイズ付加データの算出方法を、第１入力データが時系列データである場合について、説明する。図９は、図２のステップＳ１０３において、第１入力データの種類が時系列データの場合の処理の詳細の一例を示すフローチャートである。
【００９０】
まず、異常ノイズ付加データ生成部１０３は、正常ノイズ付加データ生成部１０２と同様に、ステップＳ４０１及びステップＳ４０２の処理を行う。次に、ステップＳ５０３において、異常ノイズ付加データ生成部１０３は、第１入力データのうち、ステップＳ４０２で算出した上閾値と下閾値との間に含まれないデータにノイズを加え、異常ノイズ付加データを算出する。例えば、図７を参照すると、上閾値と下閾値との間に含まれない領域は、２つの異常ノイズ領域である。ここで、例えば異常ノイズ付加データをｙ、もとの第１入力データの値をｘ、平均０分散１のガウス乱数をaとする場合、異常ノイズ付加データｙは、下記の式６又は式７を用いて算出することができる。
ｙ＝ｘ×（１００＋ａ）／１００              （式６）
ｙ＝ｘ＋ａ                                  （式７）
【００９１】
上述のように、異常検知装置１００は、ステップＳ４０１、Ｓ４０２及びＳ５０３の処理を行うことによって、図２のステップＳ１０３において、異常ノイズ付加データを算出する。なお、異常ノイズ付加データを算出する場合も、異常ノイズ付加データ生成部１０３は、第１入力データの代わりに、第１入力データの微分値を算出し用いてもよい。
【００９２】
次に、図１０を参照して、図２のステップＳ１０２の処理である正常ノイズ付加データの算出方法を、第１入力データが多次元データである場合について、説明する。図１０は、図２のステップＳ１０２において、第１入力データの種類が多次元データの場合の処理の詳細の一例を示すフローチャートである。
【００９３】
まず、ステップＳ６０１において、正常ノイズ付加データ生成部１０２は、多次元データである第１入力データに対し主成分分析を行い、固有ベクトル及び固有値を求める。主成分分析では、多次元データの変数の数量と同じ数量の主成分が求められる。例えば、第１主成分は、変数によるあらゆる線形合成のうち、最大の分散を有する線形合成である。第２主成分は、第１主成分と無相関という条件のもと、線形合成のうちの最大の分散を有する線形合成である。第３主成分以下も同様に、その前の主成分と無相関という条件のもと、線形合成のうちの最大の分散を有する線形合成である。すなわち、変数の線形合成として、分散の大きい順に変換した直交成分が、主成分として得られる。固有値は、主成分の分散である。固有ベクトルは、主成分を多次元データの変数を用いて示す場合の、各変数に掛ける重み係数を要素とするベクトルである。
【００９４】
次に、ステップＳ６０２において、正常ノイズ付加データ生成部１０２は、ステップＳ６０１で算出した固有ベクトルを軸に持ち、固有値を対応する軸の分散にもつガウス分布上で、第１入力データについての微分方向を算出する。具体的には、第１入力データの座標におけるガウス分布の値が減少する方向が算出される。第１入力データの座標は、第一入力データの変数を要素とする多次元座標系における座標である。
【００９５】
次に、ステップＳ６０３において、正常ノイズ付加データ生成部１０２は、第１入力データに、ステップＳ６０２で算出した微分方向に垂直な方向のノイズを加え、正常ノイズ付加データを算出する。上記微分方向に垂直な方向は、正常ノイズ方向の一例である。ここで、例えば、正常ノイズ付加データをｙ、ステップＳ６０２で算出した微分方向をｄｆ／ｄｘ、もとの第１入力データの値をｘ、平均０分散１のガウス乱数をaとする場合、正常ノイズ付加データｙは、下記の式８を用いて算出することができる。ただし、式８において、「・」は内積を表す。第１入力データがＭ次元のデータである場合、「ｙ」、「ｘ」及び「ａ」は、Ｍ次元のベクトルである。「ｆ」は、ステップＳ６０２で言及されているガウス分布を表し、第１入力データのベクトルｘが定義されるＭ次元座標系の空間で定義される。「ｆ」は、Ｍ次元→１次元（スカラー）の写像関数である。「ｄ」は、微分演算子である。
【００９６】
ｙ＝ｘ＋ａ−（（ｄｆ（ｘ）／ｄｘ）・ａ）ｄｆ（ｘ）／ｄｘ
＝ｘ＋ａ−（ｄｆ／ｄｘ・ａ）ｄｆ／ｄｘ                            （式８）
式８において、「ａ」は、ノイズを示し、「（ｄｆ／ｄｘ・ａ）ｄｆ／ｄｘ」は、ｄｆ／ｄｘつまり微分方向に平行なノイズの成分を示し、「ａ−（ｄｆ／ｄｘ・ａ）ｄｆ／ｄｘ」は、微分方向に垂直なノイズの成分を示す。
【００９７】
ここで、図１１を参照して、多次元データに正常ノイズが付加される具体例を説明する。図１１は、図１０の処理に対応する多次元データの例を示す模式図である。図１１において、グラフ５００は、第１入力データを主成分分析して得られる第１主成分及び第２主成分の関係の一例を示す。さらに、グラフ５００において、ガウス分布の等値線Ｇが表されている。このガウス分布の等値線Ｇは、第１主成分及び第２主成分について、主成分固有ベクトルを軸に持ち、固有値を対応する軸の分散にもつガウス分布の等値線である。第１入力データに含まれる複数のデータ値それぞれに対応する等値線Ｇ上の点であるデータ点が算出され、算出されたデータ点それぞれにおいて、微分方向が算出される。例えば、図１１において、第１入力データに含まれるデータ値の１つに対応する等値線Ｇ上のデータ点Ｐにおける微分方向が、矢印で示されている。
【００９８】
データ点での微分方向、つまり、当該データ点での第１主成分及び第２主成分の微分方向は、等値線Ｇから外向きの方向であり、異常ノイズの方向として扱われる。等値線Ｇから外向きの方向は、正常スコアが減少する方向でもある。微分方向に垂直な方向は、等値線Ｇに沿う方向、つまり接線方向であり、正常ノイズの方向として扱われる。等値線Ｇに沿う方向は、正常スコアが増減しない方向でもある。なお、等値線Ｇから内向きの方向は、正常スコアが増加する方向である。そして、式８にも示すように、等値線Ｇ上のデータ点それぞれにおいて、各データ点で算出された微分方向を用いて、当該データ点のデータ値に対する正常ノイズ付加データが算出される。
【００９９】
上述のように、異常検知装置１００は、ステップＳ６０１からステップＳ６０３の処理を行うことによって、図２のステップＳ１０２において、正常ノイズ付加データを算出する。
【０１００】
次に、図１２を参照して、図２のステップＳ１０３の処理である異常ノイズ付加データの算出方法を、第１入力データが多次元データである場合について、説明する。図１２は、図２のステップＳ１０３において、第１入力データの種類が多次元データの場合の処理の詳細を示すフローチャートである。
【０１０１】
まず、異常ノイズ付加データ生成部１０３は、正常ノイズ付加データ生成部１０２と同様に、ステップＳ６０１及びステップＳ６０２の処理を行う。次に、ステップＳ７０３において、異常ノイズ付加データ生成部１０３は、第１入力データに、ステップＳ６０２で算出した微分方向のノイズを加え、異常ノイズ付加データを算出する。上記微分方向は、異常ノイズ方向の一例であり、異常ノイズ方向は正常ノイズ方向と直交する。例えば、図１１を参照すると、ガウス分布の等値線Ｇ上の点Ｐから外向きの微分方向は、異常ノイズの方向である。ここで、例えば異常ノイズ付加データをｙ、ステップＳ６０２で算出した微分方向をｄｆ／ｄｘ、もとの第１入力データの値をｘ、平均０分散１のガウス乱数をaとする場合、異常ノイズ付加データｙは、下記の式９を用いて算出することができる。ただし、式９の「・」は内積を表す。
【０１０２】
ｙ＝ｘ＋｜（ｄｆ（ｘ）／ｄｘ）・ａ｜ｄｆ（ｘ）／ｄｘ
＝ｘ＋｜ｄｆ／ｄｘ・ａ｜ｄｆ／ｄｘ                            （式９）
式９において、「｜ｄｆ／ｄｘ・ａ｜ｄｆ／ｄｘ」は、ｄｆ／ｄｘつまり微分方向に平行かつｆが減少する方向のノイズの成分を示す。
【０１０３】
上述のように、異常検知装置１００は、ステップＳ６０１、Ｓ６０２及びＳ７０３の処理を行うことによって、図２のステップＳ１０３において、異常ノイズ付加データを算出する。
【０１０４】
上述したように、異常検知装置１００によれば、第１入力データに加えるノイズとして、正常ノイズと異常ノイズとを用いることで、正常データの分布の近似精度を向上し、学習時の目的関数の計算をより正確に行うことができる。その結果、正常モデルの学習を改善し、異常検知の性能を向上させることができる。
【０１０５】
以上、本開示に係る異常検知装置等について、実施の形態に基づいて説明したが、本開示は、これらの実施の形態に限定されるものではない。本開示の趣旨を逸脱しない限り、当業者が思いつく各種変形を本実施の形態に施したもの、異なる実施の形態における構成要素を組み合わせて構築される形態なども、本開示の範囲内に含まれる。
【０１０６】
上記の異常検知装置等は、具体的には、マイクロプロセッサ、ＲＯＭ、ＲＡＭ、ハードディスクドライブ、ディスプレイユニット、キーボード、マウスなどから構成されるコンピュータシステムとして構成されてもよい。ＲＡＭ又はハードディスクドライブには、コンピュータプログラムが記憶されている。マイクロプロセッサが、コンピュータプログラムに従って動作することにより、異常検知装置等は、その機能を達成する。ここでコンピュータプログラムは、所定の機能を達成するために、コンピュータに対する指令を示す命令コードが複数個組み合わされて構成されたものである。
【０１０７】
さらに、上記の異常検知装置等を構成する構成要素の一部又は全部は、１個のシステムＬＳＩ（Large Scale Integration：大規模集積回路）から構成されているとしてもよい。システムＬＳＩは、複数の構成部を１個のチップ上に集積して製造された超多機能ＬＳＩであり、具体的には、マイクロプロセッサ、ＲＯＭ、ＲＡＭなどを含んで構成されるコンピュータシステムである。ＲＡＭには、コンピュータプログラムが記憶されている。マイクロプロセッサが、コンピュータプログラムに従って動作することにより、システムＬＳＩは、その機能を達成する。
【０１０８】
さらにまた、上記の異常検知装置等を構成する構成要素の一部又は全部は、装置等に脱着可能なＩＣ（Integrated Circuit）カード又は単体のモジュールから構成されているとしてもよい。ＩＣカード及びモジュールは、マイクロプロセッサ、ＲＯＭ、ＲＡＭなどから構成されるコンピュータシステムである。ＩＣカード及びモジュールは、上記の超多機能ＬＳＩを含むとしてもよい。マイクロプロセッサが、コンピュータプログラムに従って動作することにより、ＩＣカード及びモジュールは、その機能を達成する。このＩＣカード及びモジュールは、耐タンパ性を有するとしても良い。
【０１０９】
また、本開示の技術は、上記に示す方法であるとしてもよい。また、これらの方法をコンピュータにより実現するコンピュータプログラムであるとしてもよいし、上記コンピュータプログラムからなるデジタル信号であるとしてもよい。
【０１１０】
さらに、本開示の技術は、上記コンピュータプログラム又は上記デジタル信号をコンピュータ読み取り可能な非一時的な記録媒体、例えば、フレキシブルディスク、ハードディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＢＤ（Blu-ray（登録商標） Disc）、半導体メモリなどに記録したものとしてもよい。また、これらの非一時的な記録媒体に記録されている上記デジタル信号であるとしてもよい。
【０１１１】
また、本開示の技術は、上記コンピュータプログラム又は上記デジタル信号を、電気通信回線、無線又は有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものとしてもよい。
【０１１２】
また、本開示の技術は、マイクロプロセッサとメモリを備えたコンピュータシステムであって、上記メモリは、上記コンピュータプログラムを記憶しており、上記マイクロプロセッサは、上記コンピュータプログラムに従って動作するとしてもよい。
【０１１３】
また、上記プログラムまたは上記デジタル信号を上記非一時的な記録媒体に記録して移送することにより、または上記プログラムまたは上記デジタル信号を、上記ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしてもよい。
【産業上の利用可能性】
【０１１４】
本開示は、高精度な異常検知ができるので、故障検知や見守りシステムなどの異常検知を行う技術に有用である
【符号の説明】
【０１１５】
１００  異常検知装置
１０１  入力データ取得部
１０２  正常ノイズ付加データ生成部
１０３  異常ノイズ付加データ生成部
１０４  正常スコア算出部
１０５  ネットワークパラメータ算出部
１０６  異常検出部
１０７  記憶部（データベース）
２０１  学習データベース（データベース）
２０２  テストデータベース
１０００  異常検知システム
【図１】
2019061577.tif 000004
【図２】
2019061577.tif 000005
【図３】
2019061577.tif 000006
【図４】
2019061577.tif 000007
【図５】
2019061577.tif 000008
【図６】
2019061577.tif 000009
【図７】
2019061577.tif 000010
【図８】
2019061577.tif 000011
【図９】
2019061577.tif 000012
【図１０】
2019061577.tif 000013
【図１１】
2019061577.tif 000014
【図１２】
2019061577.tif 000015