ただし、教師データなしの異常検知には限界があります。工程管理表などのプロットであれば管理幅を自分たちで決めることができますが、機械学習の場合でも、やはり正常か異常かの判断の際の閾値は人間が設定する必要があります。
また、教師データなしの異常検知は正常なデータからその構造を学習し、そのデータの分布から外れた値を検知して知らせますが、ここで注意しなければならないのは、異常検知がデータ分布上異常値として検知した場合でも、実務上の異常と一致するとは限らないということです。反対に、データが正常でも、現実では異常が発生することがあります。これは異常検知の着目ポイントと、実際の故障や不良のイベントがずれることによって起こります。
そのため、機械学習で異常検知をする場合は、実務知識に基づいた故障原因の仮説設計を行った上でデータを活用する必要があります。「取りあえずデータを収集して異常を検知してみよう」という使い方では、うまくいかない場合が多いのです。
一例としては、物流ソリューションを提供するダイフクが、DataRobotを活用して仮説に基づいた異常検知を実施しています。設備に何かしらの異常が発生する際、物流における特定箇所の入出力の値に異常な値が観測されることを確認されていました。そこでダイフクでは、当該データを用いて異常検知モデルを構築し、さらにドメイン知識に基づいてこの異常に関連し得ない特徴量を削減していくことで良好な異常検知性能を達成しました。
別のユーザーのケースでは、設備不良が発生する際にしばらく前から低音の異音がすることが確認されていました。この知見から、振動データをフーリエ変換し、低周波領域のデータに対して異常検知を用いることで教師なし異常検知を実現しました。
これらの事例のように教師なし異常検知で故障を事前に予知するためには、仮説ドリブンでプロジェクトを進めることが非常に重要です。
なお、説明変数の多い高次元データの場合には、一般に機械学習が難しくなります。これは教師なし異常検知の場合にはより顕著であり、従って、仮説を基に必要な変数をあらかじめ絞り込むことが重要となります。絞り込みには、異常スコアに関連しない変数を見分けられる事業ドメインの知識が求められます。上記の事例は、事業や設備のドメイン知識と機械学習アルゴリズムがうまく機能した事例といえます。
機械学習を異常検知で使う場合、必ずしも事前にパフォーマンスが測れないという限界があります。教師データに基づく機械学習の予測モデルであれば、生成したモデルに教師データを当てはめて精度をバリデーション(検証)できますが、異常検知の場合はこれができない、ないし少数の検証データを用いた定性的な評価にとどまらざるを得ない場合が多いでしょう。つまり、教師データありの機械学習は、予測精度のパフォーマンスが高いこと、事前に定量的に検証可能であること、という2つのメリットがあります。
そこで、最初は教師なし異常検知を実施して、教師データとなる異常や故障のポジティブデータがたまってきたら、それを教師データとして予測に移行する方法をお薦めします。例えば、製品出荷前の検品の際に教師なし異常検知を元に優先順位づけを行うなどです。こうして収集された実際の異常は教師あり学習のための教師データとすることができます。
一般に異常のパターンは複数になるため、教師データにないパターンは予測できないケースもありますが、データが増えるほど精度は上がってきます。教師なし異常検知から始めて、教師データありの予測にステップアップすれば、教師あり学習のパワフルさを存分に実感することができるでしょう。
山本 祐也(やまもと ゆうや) DataRobot データサイエンティスト
DataRobot入社前は雪印メグミルクで約3年間、有限要素法と機械学習による計算設計を用いた乳製品の包装材料の開発に携わる。またその前は富士フイルムで約5年間、位相差フィルム、ミラーフィルム、光学的に透明な接着フィルム、透明導電フィルムなど、タッチパネルに関連する機能性フィルムの開発に従事。2010年に東京大学で物質科学分野の博士号を取得。Kaggleでのランキング上位入賞経験多数。
Copyright © ITmedia, Inc. All Rights Reserved.