著者:Rosaria Silipo (KNIME)
原文:https://www.knime.com/blog/anomaly-detection-techniques-defining-normal
本記事は、後編です。前編はこちら。
「異常検知」 の問題は新しいものではなく、長年にわたって多くの解決策がすでに提案されています。様々な手法に取り組む前に、必要な前提について再認識しましょう。それは、すべての異常検知の手法には、異常が発生していない状態のトレーニングセットが必要となりますが、事例ががない場合でも疑わしい事象を特定しなければならないことです。
今回、「正常」イベントのみで構成されるトレーニングセットについて説明します。「正常」の定義は、もちろん任意です。異常検出の場合、「正常」 なイベントとは、トレーニングセットで表されるイベントだけを指し、いくつかのアプローチがあります。
トレーニングセットで計算された統計的分布の範囲外にあるものはすべて異常と見なされます。
最も単純な統計的方法は管理図です。ここで、各フィーチャの平均および標準偏差がトレーニングセットで計算されます。次に、しきい値を平均値を中心にしきい値を 「k*std」 偏差として定義します。この 「k」 は任意の係数で、通常は1.5~3.0 の間でアルゴリズムの保守性に応じて決まります。
デプロイ中に両方向でしきい値を突破するポイントは、異常イベントの疑わしい候補です。この手法は実装が簡単で実行が高速、静的データと時系列データの両方に適合しますが、単純なので微妙な異常を検出できない場合があります。
その他の手法としては 「クラスタリング」 が推奨されることが多いです。異常クラスがトレーニングセットにない場合、クラスタリングアルゴリズムが適しているかもしれません。
このアルゴリズムは、トレーニングセットからいくつかのクラスターを作成します。デプロイ中に現在のデータポイントとクラスター間の距離が計算され、距離が所定のしきい値を超える場合、データポイントは異常イベントの疑わしい候補になります。使用される距離測定と集約ルールに応じて、さまざまなクラスタリングアルゴリズムが設計され、さまざまなクラスターが作成されます。
ただし、クラスターの固定セットは時間の経過をキャプチャできないため、このアプローチは時系列データに適合しません。
教師あり学習のアルゴリズムは異常検出にも使用できます。静的分類だけでなく時系列予測の問題にも適用できるため、すべてのデータ状況をカバーします。ただ、関係するすべてのクラスのサンプルセットを必要とするため、視点を少し変える必要があります。
「異常検知」 の場合、教師あり学習モデルは「正常」のデータだけでトレーニングでき、入力データが異常であるかどうかの評価は、分類/予測が行われた後デプロイしたときに行われます。
教師あり学習モデルを使用した異常検知には、一般的に二つのアプローチがあります。
一つ目は、オートエンコーダです。
オートエンコーダは、入力パターンを出力層に再現するようにトレーニングされています。入力パターンがトレーニングセットの例に類似している限り、パターンの再現は正常に機能します。(入力レイヤーに新しい異なる形状ベクトルがある場合、あまりうまく機能せず、ネットワークは入力ベクトルを出力層に適切に再現できません。)
ネットワークの入力と出力の間の距離が計算される場合、距離の値は、「正常」 のイベントよりも異常の方が高くなり、この距離測定のしきい値を定義すると、異常の候補が見つかります。
このアプローチは、静的なデータポイントには適していますが、時系列データには適合しません。
二つ目のアプローチは、時系列予測のアルゴリズムを使用します。
モデルは、「正常」 な値のトレーニングセットの前のサンプルに基づいて次のサンプルの値を予測するようにトレーニングされます。デプロイ中、次のサンプル値の予測は比較的正確になります。(過去のサンプルが 「正常」 状態で動作していたシステムの場合、実際のサンプル値に近い)
使用した過去のサンプルが 「正常」 の状態で動作しなくなったシステムからのものである場合、予測値は現実からさらに遠くなります。この場合、予測されたサンプル値と実際のサンプル値の間で計算された距離測定により、異常イベントの候補が分離されます。
詳細はこちらを参照してください。
このサイトでは、クッキー (cookie)などの技術を使用して取得したアクセス情報等のユーザ情報を取得しております。
この表示を閉じる場合、プライバシーポリシーに同意いただきますよう、お願いいたします。