異常検知の代表的な手法

プラントデータ活用/異常検知と機械学習異常検知と機械学習の2本目(全2本)公開更新広告

異常検知の代表的な手法を、外れ値、変化点、異常な区間、データの再現性という見方で分けて解説します。

この記事の内容
  1. 異常データの特徴
  2. 外れ値で検知する
  3. 変化点で検知する
  4. 異常な区間から見つける
  5. データの再現性で判断する
  6. 関連記事

異常データの特徴

まずは異常検知に必要な異常データについて基本事項を押さえておきます。

異常データは少ない

製造において異常状態が発生する頻度は限られており、ましてや機器の故障データは皆無に近い場合もあります。

そうした異常頻度の低さから異常データを集める作業ができません。

また異常の要因は様々であり、網羅したデータを用意することは至難の業です。

そのため基本的に教師なし学習を採用します。

具体的には”正常データと違う”ことを検知します。

静的と動的な異常

異常データには”静的な異常”と”動的な異常”の2種類があります。

”静的な異常”は各データ間に順序性等の関係がないものです。

”動的な異常”は時系列データのようにデータ間に順序性等の関係があるものを指します。

外れ値で検知する

普段のデータの分布から外れるような値(外れ値)を検知して異常と判断します。

個々のデータ点で見ることができるため、後述する変化点や区間での検知よりも比較的扱いやすい手法です。

ホテリング法

ホテリング法は古くからある統計的な手法です。

正常データの平均や分散を使って異常度という指標を算出し、新たなデータが異常度の取りうる範囲に収まっているかで正常/異常を判断します。

異常度

$$ a(x)=\left(\frac{x-μ}{σ}\right)^{2}$$

式は横にスクロールできます

a(x):異常度、x:新たなデータ、μ:正常データの平均、σ:正常データの標準偏差

異常度がカイ二乗分布という形状の取りうる範囲であることが分かっており、カイ二乗分布からの外れ具合で見ています。

データが正規分布であると仮定した考え方で、正常状態が正規分布ではないデータ・複数の正常状態が組み合わさったデータには適用できません。

2変数の点の上に、平均と分散から決めた楕円(T²の範囲)を重ねた2段の図。上は正常が1つのまとまりで、楕円の外の点が異常。下は正常が2つの状態で、楕円が群の間の何も無い所まで覆い、そこの点も正常と判定される。
ホテリングの T²:楕円の内側が正常(点は乱数で作った例。2変数に広げた形)

k近傍法

近傍法は、あるデータ点から他データ点までの距離が一定以上離れているときに異常値とみなします。

中でも、あるデータからk番目に近いデータまでの距離を調べるような手法をk近傍法と呼びます。

距離で見ているため、正常データ群(クラスター)ごとに正しい距離が大きく異なる場合には適用できません。

こうした場合には次で解説するLOFが使われます。

密な正常群と疎な正常群、その近くの異常の点を並べ、各点から5番目に近い点までの距離を円で示した図。疎な群の正常な点の円は、異常の点の円とほぼ同じ大きさになる。
k=5 番目の近傍までの距離(円)。疎な群では正常でも大きい(例)

LOF法(局所外れ値因子法)

LOFは先に解説した近傍法に似た考え方で、データの距離ではなく密度で考えます。

つまり、あるデータからk番目に近いそれぞれのデータの密度と比較します。

下図は、注目する点の円の半径と、その近くの点の円の半径を比較したものです。

正確には局所密度という距離の逆数の指標が用いられています。

k近傍法と同じ点の並びで、異常の点の円と、その近傍の5点それぞれの円を描いた図。異常の点の円は近傍の点の円よりずっと大きく、局所密度が低い。LOFの値は異常の点が約8.5、正常の点は1前後。
注目の点の半径と、近傍の点の半径を比べる(LOF の値は例の計算結果)

One-Class SVM

One-Class SVMでは、分類の機械学習手法の1つであるサポートベクターマシン(SVM)を異常検知に応用しています。

具体的には原点に近いデータを異常とみなします。

そのためにまず行うのは、正常データを原点から離す操作(写像)です。

例えば2次元では正常/異常を分類できないデータでも、3次元のような別の角度から見て正常/異常を検出できるようにしています。

この時カーネルトリックと呼ばれる手法が用いられています。

変化点で検知する

普段のデータの傾向が変化したことを検知して異常と判断します。

時系列予測モデルからの乖離

事前に時系列予測モデルを作成し、実際のデータとの差が大きくなった点を変化点として検出できます。

つまり予想と違う=異常という判断です。

例えば (予測値-実測値)2 を指標として用います。

累積和法

累積和法では閾値を設け、その閾値から離れた値を次々に足し合わせた時の値(累積和)で変化点と判断する手法です。

上段は50番目から平均が1.5上がる時系列の測定値。下段は閾値を超えた分を足し合わせた累積和で、変化点の後に増え続け、警報の値を超えた所で検出する。
平均のずれを足し合わせて目立たせる(乱数で作った例。閾値は0.5、警報の値は10)

Change Finder

時系列のデータには外れ値と変化点が混ざっています。

Change Finderは多数の外れ値処理を行うことで変化点のみを見つける手法です。

具体的には外れ値である可能性を表す外れ値スコアという評価指標を求め、その推移を見ています。

以下のようなフローを経ることで変化点を際立たせて検出することができます。

  1. 外れ値スコアの推移を求める
  2. 外れ値スコアの推移に対して移動平均をとり平準化する
  3. 再度外れ値スコアの推移を求める

異常な区間から見つける

時系列データをある区間に区切り、正常データとの違いを見つけます。

区切ったデータはk近傍法を用い、正常データと半径が異なる場合に異常と判断します。

時系列を12の区間に区切り、振動の速さが変わった1区間を枠で囲んだ上段と、区間ごとの特徴(振動の大きさと変化の速さ)を点にした下段。異常な区間の点だけ、正常な区間の点から5番目の近傍までの距離が大きい。
区間ごとの特徴を点にして、正常と比べる(乱数で作った例)

データの再現性で判断する

ニューラルネットワークのアルゴリズムの1つにオートエンコーダーがあります。

オートエンコーダーは入力データを一度圧縮し、再度元のデータへ戻せるようなパラメータを学習するものです。

学習時には入力データと再構成された出力データとの差を最小化するように学習されます。

異常検知においては学習したモデルにデータを入力し、再現できれば正常データ、再現できなければ異常データとして判断します。

4つの入力を2つに圧縮して4つに復元する構造図と、正常データでは入力と復元した出力がほぼ重なり、異常データでは差が大きいことを示す2つの比較。
入力を圧縮して戻す。元に戻らなければ異常(線形の例を計算して描画)

関連記事

データ分析の進め方

プラント制御へのAIの活用事例

機械学習の分類とプラントでの使い方

異常検知と機械学習の前後の記事

関連する書籍

執筆・監修のご依頼は、ご相談のページで受け付けています。