異常検知

異常検知とは

異常検知(Anomaly detection) とは、データの中から異常な状態、すなわち通常のパターンとは異なる挙動を検出することをいいます。「異常」はアプリケーションや状況によって、外れ値(Outlier)、変化点(Change point)、逸脱 (Deviation)、誤作動 (Fault)、侵入 (Intrusion)、詐欺 (Fraud)などと呼ばれます。

異常検知には専門家の目視による古典的な方法も有効ですが、ここでは多くの変数からなる複雑なデータからでも、自動でかつ早期に異常を見つけ出すことが期待できる機械学習を用いた統計的手法をご紹介します。

データ解析を応用した異常検知の代表的な利点

  • 診断(Diagnostic):異常を自動で診断することにより人的工数を削減。
  • 予知(Predictive):現在の状態から将来的な異常を検知することにより、突然の異常による人的、経済的ロスを低減。
  • 処方(Prescriptive):将来的な異常を自動で修正することにより、稼働率・生産性を向上

心電図の異常検知:Keogh, E., Lin, J. and Fu, A.: HOT SAX : Efficiently Finding the Most Unusual Time Series Subsequence, in Proceedings of the Fifth IEEE International Conference on Data Mining, ICDM 05, pp.226-233.

異常検知の活用事例

センサーやネットワーク・計算機の飛躍的な発展によりビッグデータの活用が盛んになる中で、異常検知の応用先は多岐にわたっています。監視カメラ動画からの侵入者検知、身近な例ですとクレジットカードの不正利用検知なども異常検知の一例です。他にも医療(例:喘息の発作の検知)や金融(例:ヘッジファンドの不正検出)分野での事例も見られ、産業機械の稼働状況や製造過程の画像による製品異常の検出、構造物の遠隔監視にも異常検知の適応が進んできています。

また異常の有無をデータから診断 (diagnose) することから一歩進み、異常の予兆を検知(prognoses)する予知保全の枠組みも注目を浴びており精力的に研究が行われています。事前に故障を予測し故障そのものの発生を回避することができれば、安全性の向上だけでなくメンテナンスコストの削減にもつながると期待されています(参考:予知保全)。

異常検知の解析技術

単純な1変数からの異常検知ならば統計学の分野で古くから研究されてきた手法も有力ですが、変数が多く複雑なシステムの異常検知になると機械学習の手法が力を発揮します。

例えばデータの分布を正規分布に従っていると仮定して、標準偏差の数倍を超えると異常値と判断する方法や、または箱ひげ図を描き四分位数(25パーセンタイル値や75パーセンタイル値)を利用して上下限値を決定する方法など、データの傾向から直感的に閾値を設ける古典的な異常検知は以前より活用されていました。
ただ、それぞれデータが仮定された分布に従っていない場合は検知の正確性に疑問が残りますし、システムが複雑化することで異常は特定の変数だけに顕著に現れるものでなく複数の変数を組み合わせてはじめて異常検出できるものである場合も考えらます。そのような状況で、変数が数百になってもロバストに異常検知を行えることが機械学習の利点です。

機械学習には2つの流派が存在し、1つは用意された学習用データを使って学習器を作成する場合の教師あり学習。もう一方はデータの特性からグループ分けを行う場合の教師なし学習です。教師あり学習は過去に発生した異常を元に学習させるため、類似の異常を精度良く検出できる利点がありますが、正常・異常のラベルが事前につけられた学習用データを用意する必要があります。異常の発生頻度が低く学習用データを用意することが困難な場合は教師なし学習が向いています。教師なし学習は、設備やシステムが正常に稼働しているデータから現在のデータがどれだけ逸脱しているかを、アルゴリズムにより数値化し異常度を判断します。

異常検出によく使用される教師なし学習アルゴリズムとしてPCA (Principal Component Analysis, 主成分分析)クラスタリングk最近傍法 などが挙げられます。他にもサポートベクターマシン (SVM: Support Vector Machine)をレアイベント検出に応用した1-class SVM も有効なアルゴリズムです。

心電図の部分時系列に対してk最近傍法を用いて異常なパターンを検出。ここで部分時系列は時系列データをスライド窓に沿って切り出したベクトルデータを示します。Keogh, E., Lin, J. and Fu, A. : HOT SAX : Efficiently Finding the Most Unusual Time Series Subsequence, in Proceedings of the Fifth IEEE International Conference on Data Mining, ICDM 05, pp.226-233.

Class SVMによりデータの異常度を等高線図で表示した例。右端の2点が異常なデータ点。

MATLAB環境を活用した異常検知システムの構築

異常検知のシステムを実現する上で、開発の初期段階から実装まで統一された開発環境は大きなメリットとなります。データの読み込みから異常検知に最適なアルゴリズムの選定、そしてシステムへの実装に至るまでの行程を効率よく行うことが出来ます。

例えば産業機器の遠隔監視システムを構築するに当たって、センサーデータは様々な保存形式で保存されている場合や、非構造データである場合も考えられます。使用するアルゴリズムの選定に関してもすべての状況に適用できる手法は一般的に存在せず、産業機器に対する専門的な知識をベースにして様々なアルゴリズムを試し、異常検知の精度を繰り返し検証する作業は避けることはできません。

また試行錯誤の後、完成したモデルはサーバー上や一般的なITシステムに展開し、ユーザーがウェブ経由で簡単に機器の状況を確認できるようなシステム構築も遠隔監視には必要になります。

MATLABアプリケーションをデスクトップ、Web、およびエンタープライズ システムに実装。

MATLABではそれぞれの開発フェーズに最適な環境をご提供します。

データインポート

MATLAB®は様々なファイル形式のファイルに対応し、Database Toolbox™を活用してデータベースとMATLABを連携し、ファイルを介さずにセンサーデータを処理することが可能になります。

アルゴリズム開発

Statistics and Machine Learning Toolbox™ とNeural Network Toolbox™ で実装済みの機械学習アルゴリズムを迅速に比較検討することができ、開発プロセスを短縮します。また、Econometrics Toolbox™はARIMAX/GARCHなど、より高度な時系列モデル構築をサポートします。

エンタープライズシステムへの統合

MATLAB Compiler SDK™ および MATLAB Production Server™ 使用してMATLABで開発したアルゴリズムを、プログラムを書き直すことなくサーバー環境に展開・運用できます。

参考: 機械学習, 教師なし学習, 教師あり学習, クラスタリング, 予測モデリング