(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022020940
(43)【公開日】2022-02-02
(54)【発明の名称】異常診断システム
(51)【国際特許分類】
G06N 3/04 20060101AFI20220126BHJP
【FI】
G06N3/04
【審査請求】未請求
【請求項の数】1
【出願形態】OL
(21)【出願番号】P 2020124230
(22)【出願日】2020-07-21
(71)【出願人】
【識別番号】000003207
【氏名又は名称】トヨタ自動車株式会社
(71)【出願人】
【識別番号】504139662
【氏名又は名称】国立大学法人東海国立大学機構
(74)【代理人】
【識別番号】100105957
【弁理士】
【氏名又は名称】恩田 誠
(74)【代理人】
【識別番号】100068755
【弁理士】
【氏名又は名称】恩田 博宣
(72)【発明者】
【氏名】毛利 昌弘
(72)【発明者】
【氏名】武田 一哉
(72)【発明者】
【氏名】大谷 健登
(57)【要約】
【課題】入力データが正常であるにも拘わらず、異常であると診断してしまうことを抑制できる異常診断システムを提供する。
【解決手段】この異常診断システムは、入力層と入力層よりもノードの数が少ない中間層とを有し、入力データに基づいて中間データを出力するエンコーダと、入力層と同じ数のノードを有する出力層を有し、中間データにノイズεを加えて導出した潜在変数を入力してエンコーダへの入力データを復元した復元データを出力層から出力するデコーダと、を備えた自己符号化器を、正常な入力データからなる訓練データを用いて学習した学習済み自己符号化器のエンコーダを用いて異常を診断する。この異常診断システムでは、実行装置が、記憶装置に記憶されている学習済みのエンコーダに入力データを入力して得られた中間データが既定の範囲から逸脱している場合に入力データが異常であると診断する。
【選択図】
図3
【特許請求の範囲】
【請求項1】
複数のノードを有する入力層と前記入力層よりもノードの数が少ない中間層とを有し、前記入力層に入力された入力データに基づいて前記入力データよりも次元の低い中間データを出力するエンコーダと、前記入力層と同じ数のノードを有する出力層を有し、前記中間データにノイズを加えて導出した潜在変数を入力して前記エンコーダへの入力データを復元した復元データを前記出力層から出力するデコーダと、を備え、正常な入力データからなる訓練データを前記入力層に入力して、前記出力層から出力された復元データと前記訓練データとの乖離を小さくするように学習した学習済み自己符号化器のエンコーダを用いて異常を診断する異常診断システムであり、
実行装置と、記憶装置とを備え、
前記学習済み自己符号化器のエンコーダが前記記憶装置に記憶されており、
前記実行装置が、前記記憶装置に記憶されている前記エンコーダに入力データを入力して得られた中間データが前記訓練データから得られる中間データの範囲に基づいて設定された既定の範囲から逸脱している場合に当該入力データが異常であると診断する異常診断システム。
【発明の詳細な説明】
【技術分野】
【0001】
この発明は異常を診断する異常診断システムに関するものである。
【背景技術】
【0002】
特許文献1には、入力データから潜在変数を推論するエンコーダと、エンコーダが推論した潜在変数から復元データを生成するデコーダと、を備える自己符号化器を用いた異常診断システムが開示されている。この異常診断システムでは、正常データからなる訓練データをエンコーダに入力してデコーダによって入力データを復元するように自己符号化器を学習させている。そして、この異常診断システムでは、学習済みの自己符号化器における入力データと復元データとのずれに基づいて、入力データが正常であるのか異常であるのかを診断する。すなわち、この異常診断システムでは、学習済みの自己符号化器の復元データと、入力データとの乖離が大きい場合に、入力データが異常であると診断している。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
ところで、特許文献1に開示されている異常診断システムは、訓練データと復元データとの乖離が小さくなるように自己符号化器を学習させている。学習済みの自己符号化器を用いて異常診断を行う際には、当然ながら訓練データと同一のデータが入力されるわけではない。そのため、入力データと訓練データとの相違の態様によっては、正常な入力データが入力されたにも拘わらず、復元データが入力データと乖離したものになってしまう可能性がある。すなわち、入力データが正常であっても、誤って異常であると診断してしまうおそれがある。
【課題を解決するための手段】
【0005】
以下、上記課題を解決するための手段及びその作用効果について記載する。
上記課題を解決するための異常診断システムは、複数のノードを有する入力層と前記入力層よりもノードの数が少ない中間層とを有し、前記入力層に入力された入力データに基づいて前記入力データよりも次元の低い中間データを出力するエンコーダと、前記入力層と同じ数のノードを有する出力層を有し、前記中間データにノイズを加えて導出した潜在変数を入力して前記エンコーダへの入力データを復元した復元データを前記出力層から出力するデコーダと、を備え、正常な入力データからなる訓練データを前記入力層に入力して、前記出力層から出力された復元データと前記訓練データとの乖離を小さくするように学習した学習済み自己符号化器のエンコーダを用いて異常を診断する。この異常診断システムは、実行装置と、記憶装置とを備えている。そして、この異常診断システムでは、前記学習済み自己符号化器のエンコーダが前記記憶装置に記憶されており、前記実行装置が、前記記憶装置に記憶されている前記エンコーダに入力データを入力して得られた中間データが前記訓練データから得られる中間データの範囲に基づいて設定された既定の範囲から逸脱している場合に当該入力データが異常であると診断する。
【0006】
正常な入力データからなる訓練データによって学習した学習済み自己符号化器の中間データは、訓練データの特徴を抽出した主成分である。そのため、中間データを用いた場合であっても入力データが正常なデータであるのか否か、すなわち正常なデータであるのか異常なデータであるのかを診断することができる。
【0007】
なお、自己符号化器は、訓練データと復元データの乖離を小さくするように学習が行われている。つまり、学習の過程では、中間データの値の大きさがどうなるのかは考慮されていない。そのため、学習済みの自己符号化器に異常な入力データを入力した場合であっても、中間データに大きなずれが生じず、異常であることを診断できないことも考えられる。
【0008】
これに対して、上記の異常診断システムでは、中間データにノイズを加えて導出した潜在変数をデコーダに入力して学習させた学習済み自動符号化器におけるエンコーダが記憶されている。そして、この異常診断システムでは、実行装置が、記憶装置に記憶されているこのエンコーダの出力である中間データが既定の範囲から逸脱していることに基づいて入力データが異常であると診断する。
【0009】
上記の異常診断システムでは、中間データにノイズを加えて導出した潜在変数を用いて学習しているため、学習済みの自己符号化器は、訓練データとは差違のある入力がなされた場合であっても、中間データに生じるずれが学習の際に加えたノイズの範囲程度であれば、入力データを復元できるように学習される。こうして学習された学習済みの自己符号化器は、訓練データに対する入力の相違に対してより頑強な、ロバスト性の高い自己符号化器になる。そして、こうして学習された自己符号化器のエンコーダは、訓練データのみに縛られない正常な入力データの特徴を捉えた中間データを出力するものになる。したがって、このエンコーダでは、異常な入力データに基づいて出力される中間データと正常な入力データに基づいて出力される中間データがより乖離しやすくなる。
【0010】
すなわち、上記の異常診断システムによれば、中間データを用いてより正確な診断ができるようになる。ひいては、入力データが正常であるにも拘わらず、異常であると診断してしまうことを抑制できる。
【図面の簡単な説明】
【0011】
【
図1】異常診断システムの一実施形態についてその概略構成を示すブロック図。
【
図2】一般的な自己符号化器におけるニューラルネットワークの構成を示す模式図。
【
図3】実施形態の異常診断システムに用いるエンコーダを生成するために学習する自己符号化器のニューラルネットワークの構成を示す模式図。
【
図4】実施形態の異常診断システムの記憶装置に記憶されているエンコーダにおけるニューラルネットワークの構成を示す模式図。
【
図5】自己符号化器の学習における処理の流れを示すフローチャート。
【
図6】実施形態の異常診断システムが実行する診断ルーチンにおける一連の処理の流れを示すフローチャート。
【
図7】正常な入力データに基づいて出力される中間データの分布と、異常な入力データに基づいて出力される中間データとの関係を示す説明図。
【
図8】入力データのガウス分布における平均と標準偏差を中間データとして出力する場合における、潜在変数zの導出方法を説明する模式図。
【発明を実施するための形態】
【0012】
以下、異常診断システムの一実施形態について、
図1~
図7を参照して説明する。
図1に示すように、異常診断システム100は、記憶装置120と、実行装置110とを備えている。実行装置110は、プログラムを実行し、異常診断を行う。記憶装置120は、異常診断に用いるデータを記憶している。また、記憶装置120は、異常診断を行う際に一時的なデータの記憶なども行う。
【0013】
異常診断システム100には、センサ10と表示装置20が接続されている。ここでは、センサ10は、加速度センサであり、検査対象の物体に取り付けられて検査対象の振動を検出する。例えば、異常診断システム100は、エンジンに取り付けられた加速度センサが検出する振動の一定期間の時系列データに基づいてエンジンに異常が生じているか否かを診断する。
【0014】
表示装置20は、ディスプレイである。異常診断システム100は、センサ10から入力された入力データに基づいて異常診断を行うと、診断結果を表示装置20に表示させる。
【0015】
異常診断システム100は、ディープラーニングの一種である自己符号化器の仕組みを利用して異常診断を行う。
図2は、一般的な自己符号化器におけるニューラルネットワークの構成を示している。ここで示す自己符号化器は、全結合型ニューラルネットワークである。なお、
図2では、隣り合う層のノードを繋ぐ伝送路の表記を省略している。
【0016】
図2の左端に示すように自己符号化器は、複数のノードを有する入力層を備えている。入力層のノードの数は、入力データの次元の数と等しい。なお、ここでは、入力データは振動の一定期間の時系列データである。すなわち、入力データは、一定期間の間に等時間間隔で検出したデータの集合である。例えば、一定期間の間に50回の検出が行われる場合には、入力データは、50個のデータからなる50次元のデータである。この場合には、入力層のノードの数は、50個になる。
【0017】
図2の右端に示すように、自己符号化器は、入力層と同じ数のノードを有する出力層を備えている。そして、自己符号化器は、入力層と出力層の間に入力層及び出力層よりもノードの数が少ない中間層を含む複数の層からなる隠れ層を備えている。
【0018】
この自己符号化器における入力層から中間層までの部分は、入力層に入力された入力データを中間層のノードの数と等しい次元数のデータに圧縮する。すなわち、この自己符号化器における入力層から中間層までの部分は、入力データから次元数のより低い中間データを出力するエンコーダになっている。
【0019】
また、この自己符号化器における中間層から出力層までの部分は、中間データから入力層のノードの数と等しい次元数のデータを導出する。自己符号化器では、正常な入力データからなる複数の訓練データを用いて学習を行い、入力データと出力層から出力される出力データとのずれを小さくするように誤差逆伝播によりニューラルネットワークの重みを調整する。そのため、学習済みの自己符号化器における中間層から出力層までの部分は、中間データから入力データを復元した復元データを生成するデコーダになっている。
【0020】
異常診断システム100では、
図3に示すように、中間層から出力される中間データにノイズεを加えて潜在変数zを導出し、潜在変数zに基づいて復元データを生成する学習済み自己符号化器を応用している。具体的には、この学習済み自己符号化器のエンコーダを利用して異常診断を行う。
【0021】
潜在変数zの導出は、例えば、
図3に示すように、中間データが4つの値を含むデータである場合、4つの値に、所定量のノイズεをランダムな比率で割り振って加算する。こうしてノイズεを加算したデータを潜在変数zとする。
図3に示す自己符号化器ではこうして導出した潜在変数zから復元データを生成する。
【0022】
なお、ノイズεの大きさは、異常診断を行う際に、適切に異常を診断できるように調整した上で設定されるハイパーパラメータである。また、自己符号化器における隠れ層の層数や、隠れ層の各層における次元数もハイパーパラメータである。
【0023】
異常診断システム100の記憶装置120には、
図3に示した学習済み自己符号化器のエンコーダが記憶されている。すなわち正常な状態における入力データからなる訓練データを用いて訓練データと復元データとの乖離を小さくする学習が完了し、入力データを復元することができるようになっている学習済みの自己符号化器におけるエンコーダのデータが記憶装置120に記憶されている。
【0024】
図4は、記憶装置120に記憶されているエンコーダのニューラルネットワークを示している。
図5には、このエンコーダを生成するために、
図3に示す自己符号化器を学習させる処理の流れが示されている。
【0025】
図5に示すように、この学習においては、まず、ステップS100の処理として、正常データを
図3に示す自己符号化器に入力する。すなわち、正常な状態のエンジンを運転させて取得したセンサ10の検出値の複数の時系列データを訓練データとして自己符号化器に入力する。そして、ステップS110の処理として、入力した訓練データと復元データとの乖離が小さくなるようにニューラルネットワークの重みを調整する。すなわち、入力した訓練データを復元することができるようにニューラルネットワークの重みを調整する。
【0026】
異常診断システム100の記憶装置120には、こうして学習が完了した自己符号化器におけるエンコーダ、すなわち
図4に示したエンコーダのデータが記憶されている。異常診断システム100では、記憶装置120に記憶されているエンコーダを用いて入力データが正常なものであるか否かを診断する。
【0027】
次に、
図6を参照して異常診断システム100における診断処理について説明する。
図6には、実行装置110が実行する診断処理のルーチンにおける一連の処理の流れが示されている。
【0028】
異常診断システム100では、診断の対象となる入力データである判定データを取得する度に、実行装置110がこのルーチンを実行する。このルーチンを開始すると、実行装置110は、まずステップS200において、判定データを
図4に示した学習済みのエンコーダの入力層に入力する。そして、実行装置110は、次のステップS210の処理において学習済みのエンコーダを用いた演算を行い、中間データを導出する。
【0029】
そして、次に、実行装置110は、ステップS220の処理において中間データの乖離度合いを算出する。
図7には、学習済みのエンコーダを用いて訓練データから導出される中間データを、丸印で示している。そして、判定データから導出した中間データを、三角印で示している。
図5を参照して説明した学習を通じて自己符号化器のニューラルネットワークは訓練データに基づいて正常な入力データを復元できるように調整されている。
図3に示した自己符号化器は、中間データにノイズεを加えて導出した潜在変数zを用いて学習しているため、学習済みの自己符号化器は、訓練データとは差違のある入力がなされた場合であっても、中間データに生じるずれが学習の際に加えたノイズεの範囲程度であれば、入力データを復元できるように学習される。こうして学習された学習済みの自己符号化器は、
図2に示した自己符号化器と比較して訓練データに対する入力の相違に対してより頑強な、ロバスト性の高い自己符号化器になっている。
【0030】
そして、こうして学習された自己符号化器のエンコーダは、訓練データのみに縛られない正常な入力データの特徴を捉えた中間データを出力するものになっている。そのため、記憶装置120に記憶されているエンコーダでは、正常な入力データに基づいて出力される中間データがある程度の範囲に集まりやすい。その結果、異常な入力データに基づいて出力される中間データと正常な入力データに基づいて出力される中間データが、
図2に示した自己符号化器におけるエンコーダと比較してより乖離しやすくなっている。
【0031】
ステップS220の処理では、実行装置110は、中間データの乖離の度合いとして、例えば、判定データから導出した中間データと、学習処理を通じて訓練データから導出した中間データの集合との距離の指標値を算出する。例えば、この距離の指標値は、丸印で示されている中間データのうち、三角印で示した中間データからの距離が短い中間データを、距離が短い順に上位から3つ抽出し、これら3つの中間データそれぞれから三角印で示した中間データまでの距離の和である。そして、実行装置110は、この距離の指標値を中間データの乖離度合いとする。
【0032】
そして、次に、ステップS230の処理において、実行装置110は、乖離度合いが閾値よりも大きいか否かを判定する。なお、閾値は、
図7に破線で囲んだ中間データの分布の範囲に基づいて設定されている。すなわち、上記の距離の指標値が閾値よりも大きい場合には、判定データに基づく中間データが
図7に示す破線の外側に位置するようになり、上記の距離の指標値が閾値以下である場合には、判定データに基づく中間データが
図7に示す破線の内側に位置するように、閾値の大きさが設定されている。
【0033】
ステップS230の処理において、乖離度合いである上記の距離の指標値が閾値よりも大きいと判定した場合(ステップS230:YES)には、実行装置110は、入力データである判定データに異常が生じているとの診断を下す。一方で、ステップS230の処理において、乖離度合いである上記の距離の指標値が閾値以下であると判定した場合(ステップS230:NO)には、実行装置110は、入力データである判定データが正常であるとの診断を下す。
【0034】
こうしてステップS240又はステップS250の処理を通じて診断を行うと、実行装置110は、この一連の処理を一旦終了する。
なお、異常診断システム100は、実行装置110によって異常が生じているとの診断が下された場合には、表示装置20に異常が生じていることを示すアイコンや、文章などを表示させる。
【0035】
本実施形態の作用について説明する。
このように異常診断システム100によれば、中間データにノイズεを加えて導出した潜在変数zから入力データを復元するように学習された自己符号化器のエンコーダを用いて異常診断が行われる。そして、異常診断システム100では、エンコーダに判定データを入力して得られた中間データの乖離度合いが閾値よりも大きい場合に、入力データが異常であると診断する。すなわち、この異常診断システム100では、
図7に示すように、三角印で示した判定データから導出された中間データが、丸印で示されている訓練データから得られる中間データの範囲に基づいて設定された、
図7に破線で示されている既定の範囲から逸脱している場合に、入力データが異常であると診断する。
【0036】
本実施形態の効果について説明する。
(1)正常な入力データからなる訓練データによって学習した学習済み自己符号化器の中間データは、訓練データの特徴を抽出した主成分である。そのため、中間データを用いた場合であっても入力データが正常なデータであるのか否か、すなわち正常なデータであるのか異常なデータであるのかを診断することができる。
【0037】
(2)異常診断システム100では、中間データにノイズεを加えて導出した潜在変数zを用いて学習しているため、学習済みの自己符号化器は、訓練データとは差違のある入力がなされた場合であっても、中間データに生じるずれが学習の際に加えたノイズの範囲程度であれば、入力データを復元できるように学習される。こうして学習された学習済みの自己符号化器は、訓練データに対する入力の相違に対してより頑強な、ロバスト性の高い自己符号化器になる。そして、こうして学習された自己符号化器のエンコーダは、訓練データのみに縛られない正常な入力データの特徴を捉えた中間データを出力するものになる。したがって、このエンコーダでは、異常な入力データに基づいて出力される中間データと正常な入力データに基づいて出力される中間データがより乖離しやすくなる。
【0038】
すなわち、上記の異常診断システム100によれば、中間データを用いてより正確な診断ができるようになる。ひいては、入力データが正常であるにも拘わらず、異常であると診断してしまうことを抑制できる。
【0039】
本実施形態は、以下のように変更して実施することができる。本実施形態及び以下の変更例は、技術的に矛盾しない範囲で互いに組み合わせて実施することができる。
・入力データは、時系列データに限らない。多次元のデータであればよい。例えば、温度センサ、速度センサ、圧力センサなど検出する対象の異なる複数種類のセンサからのデータによって構成された入力データであってもよい。また、入力データは画像データであってもよい。画像データを入力する場合にはエンコーダは畳み込みニューラルネットワークを利用して画像データから中間データを導出する。
【0040】
・異常診断システム100として、エンジンの異常を診断するシステムを例示したが、上記実施形態と同様の異常診断システムは、エンジンの異常診断システムに限らずに適用することができる。すなわち、センサで検出したデータを取得して入力データとし、入力データに基づいて異常が生じているか否かを診断するものに適用できる。例えば、画像データを用いて異常診断を行う異常診断システムとしては、イメージセンサで製品の画像データを取得し、製品の外観の異常を検知する異常診断システムが考えられる。
【0041】
・中間データへのノイズεの加え方は適宜変更することができる。例えば、中間層から出力される中間データに含まれる全ての値にノイズεを加えるのではなく、いくつかの値に限ってノイズεを加えるようにしてもよい。例えば、中間データに含まれる複数の値のうち、どの値にノイズεを加えるかをその都度ランダムに決定して、中間データにノイズεを加えるようにしてもよい。
【0042】
・ノイズεの加え方は、中間データの値にノイズεを加算する方法に限らない。例えば、中間データの値にノイズεの係数を乗じて潜在変数zを導出する方法や、中間データの値にノイズεの係数を乗じる方法と、ノイズεの係数を加算する方法とを組み合わせて潜在変数zを導出する方法を採用してもよい。また、係数の乗除加減を組み合わせて潜在変数zを導出してもよい。例えば、中間データに含まれる値のうち、いずれかの値には係数を乗算し、他のいずれかの値には係数を加算するといった方法も考えられる。
【0043】
・また、入力データのガウス分布の平均μと標準偏差σとを中間データとして導出するようにエンコーダを構成した自己符号化器を用いるようにしてもよい。この場合には、例えば、
図8に示すように、標準偏差σの値にノイズεの係数を乗じた積と平均μとの和を算出し、この値を潜在変数zにする。そして、デコーダはこうした潜在変数zから入力データを復元するように構成する。こうした自己符号化器において学習を行って調整した学習済みのエンコーダを記憶装置120に記憶させた異常診断システムによっても上記の実施形態と同様の効果を得ることができる。
【0044】
なお、平均μと標準偏差σを中間データとして算出する自己符号化器の場合、平均μと標準偏差σとの双方に係数を乗算し、これらの積を加算して潜在変数zを導出するようにしてもよい。また、平均μと標準偏差σの双方に係数を加算して、これらの和同士を加算して潜在変数zを導出するようにしてもよい。
【0045】
・異常診断システムは、(a)コンピュータプログラム(ソフトウェア)に従って動作する1つ以上のプロセッサ、(b)各種処理のうち少なくとも一部の処理を実行する特定用途向け集積回路(ASIC)等の1つ以上の専用のハードウェア回路、或いは(c)それらの組み合わせ、を含む実行装置によって構成されることができる。プロセッサは、CPU並びに、RAM及びROM等のメモリを含み、メモリは、処理をCPUに実行させるように構成されたプログラムコードまたは指令を格納している。メモリすなわちコンピュータ可読媒体は、汎用または専用のコンピュータでアクセスできるあらゆる利用可能な媒体を含む。
【符号の説明】
【0046】
10…センサ
20…表示装置
100…異常診断システム
110…実行装置
120…記憶装置