PR

正常を学習して異常を検知

 もう1つのパッケージである異常検知は、過去に例のない特異な状態や、これまでと大きく異なる状況を検知する手法である。工場向けのIoT、いわゆるIIoT(Industrial IoT)では、装置が完全に故障する前に予兆を検知して計画的に交換可能にする「予防保全」が代表的な応用例だ。DIMoが提供する深層学習アルゴリズムを利用すると、従来手法と比べて非常に早い段階で異常を検知できる。例えば、従来の手法では発生直前まで検出できず対処不能であった故障を40日前に検知できた。この結果、実際に故障する前に部品を交換するといった対処が可能になった(図6)。

図6 故障を40日前に検知
図6 故障を40日前に検知
従来手法ではロボットの故障は発生直前まで分からなかった(a)。我々のアルゴリズムを使うと故障を40日前に検知するといったことが可能になる(b)。生産機器には、生産への影響を考慮すると部品交換に適した期間があり(図中の部品交換が可能な期間)、その期間内で誤検出なく正確に故障を予測できるかどうかが重要だ。ファナックとPFNの共同実験の結果による。
[画像のクリックで拡大表示]

 DIMoが提供する異常検知用の深層学習アルゴリズムは現時点では1種類である。このアルゴリズムは教師なし学習に基づく。そもそも異常はまれにしか生じないためデータ量が少なく、特に未知の異常が発生する場合は教師あり学習がそぐわない場合も多い。異常検知の対象である製造装置や機材は置かれた環境や使用状況に差があり、同じ設計の機器だったとしても必ずしも同一のモデルを使い回せない事情もある。

 DIMoが採用したアルゴリズムは、個別の機械ごとに「正常な状態」を逐次学習することで、これらの問題を回避する。製造装置や機材に取り付けたセンサーの情報を入力し続けると、自動的にモデルが構築される。モデルは正常な状態を継続的に学習するとともに、現在の状態が正常な状態からどれくらい乖離しているかを示す「異常度」を出力する。モデルは、現時点のセンサーのデータが観測される確率を出力するような深層学習ベースの生成モデルを利用しており、確率が低いほど異常度が高いと判断する。

 アプリケーション側では、異常度の数値に応じてアクションを設定する。例えば予防保全で故障を60日前に検知したい場合、過去に故障した機材のデータにアルゴリズムを適用して、故障60日前の平均的な異常度を算出する。その値をしきい値とし、個々の装置のモデルが出力する異常度がしきい値を超えたタイミングで警告する、といった利用方法が考えられる注2)

注2)なお、モデルが検出できるのはあくまで「今まで起きなかったこと」で、常に故障の予兆とは限らない。また、異常が起きたときに機械のどこに問題があるのかも今のところ検知できない。