2026年6月7日更新
多変量時系列データの異常検知の現状
しかし、多変量時系列データの異常検知になると、1D-CNN による AutoEncoder はその効力は全く発揮できません。そして、2026年現在、最先端の研究レベルは以下の通りと言えます。
Anomaly Transformer(2022) などの Transformer 系の研究もされてはいますが、大きな成果は出ていないというのが現状でしょう。
CPU使用率、メモリ使用量、ネットワークスループットなど、合計 38次元 のメトリクスがある 28台のサーバー運用ログである SMD (Server Machine Dataset) データセットを使用してこれらの最先端の異常検知手法をテストした結果、TimesNet と KAN-AD が
F1-score で 0.8 程度であり、MAAT が 0.9 程度でした。しかも、この数値は、殆どの論文で採用されている
Point Adjustment (PA) というルールに基づいて計算されていますので、現実のレベルより高スコアになっている点に注意する必要があります。
多変量時系列データの異常検知における AutoEncoder の弱点
AutoEncoder では、一定の区間(窓幅)を一定量(1ステップ、半窓幅、全窓幅)ずらしながらデータを生成します(スライディングウィンドウ方式)。そして、多変量の AutoEncoder では、正常データのみで学習したチェックポイントを使用して、Encoder ⇒ Decoder を通すことにより、各時系列点の再構成誤差を予測し、これが閾値を超えたかどうかにより異常を判定します。
実プロセスへの応用という面では、各時系列点の異常判定ももちろん重要ですが、それ以上に、一定区間(窓幅)で異常が発生したかという判定も重要になります。この際、前述の通り、殆どの論文では
Point Adjustment (PA) という緩いルールが適用されます。
図1 では区間B のみが異常というのが正解です。この図には、再構成誤差と異常判定の閾値(破線)も表示されていますが、区間B では 5点がこの閾値超えていますが、区間A と区間C では 1点のみしか超えていません。この場合、論文の PA を適用した異常の判定では、区間B は全区間異常、区間A と区間C では 1点のみ異常と判定されます。それぞれの区間の時系列データの点数が100点あるとすると、区間A と区間C では 1点のみ異常ですので 99% 正解となり、区間B は全区間異常ですので 100% 正解となります。
ところが、実際の操業データでは、どの区間が正常でどの区間が異常というラベルはついていませんので、再構成誤差により窓幅全体の正常/異常を判定すると大変な事態に陥ります。仮に、図1 のケースで、再構成誤差が 1回でも閾値を超えた区間(窓幅)を異常と判定した場合、全区間異常という判定になり、正解率は 33% になってしまいます。論文値では99%以上の正解値をはじき出すモデルでも、実際の応用では 33% と、とてもかけ離れた値になってしまう訳なのです。
図1 AutoEncoder で異常検知が困難な理由
多変量時系列データの異常検知手法の改良 - MT 法の導入
前項で AutoEncoder を実際の操業データに適用する際の問題点を提示しましたが、この問題は、 AutoEncoder が窓幅全体の統計量を見ている訳ではないので、窓全体の総合的な異常判定が不可能であることに起因していますので、これを改良してやれば AutoEncoder の弱点を克服できる訳です。
窓幅全体の正常/異常を判定する方法としては、
Isolation Forest(2008) 適用の可能性はあるでしょうが、多変量の相関の崩れを正確に捉えることができる
MT(Maharanobis-Taguchi)法 をお勧めします。MT法は、相関係数行列( \(R\) )の逆行列を内積で挟み込む構造になっているため、変数が多くなっても相関の崩れを正確に捉えることができるのです。MT 法で窓幅全体の相関の崩れを Maharanobis 距離として捉え、 AutoEncoder で窓のどの部分が異常かを判定すればよい訳です。
多変量時系列データ処理における MT 法の弱点
多変量時系列データ処理における MT 法の改良
異常検知の性能を見る指標の意味
-
Precision(精度・適合率) -「異常だと判定したもの」のうち、実際に異常だった割合
※「空振りの少なさ」を表します。
$$P = \frac{TP}{TP + FP}$$
-
Recall(再現率) - 「実際に存在する異常」のうち、正しく検知できた割合
※「見逃しの少なさ」を表します。
$$R = \frac{TP}{TP + FN}$$
-
F1-score - Precision と Recall の調和平均をとった指標
※ 両者はトレードオフの関係にあるため、総合的な評価に用います。
$$F1 = \frac{2 \cdot P \cdot R}{P + R}$$
各変数の定義:
| TP (True Positive) |
異常を正しく「異常」と判定した数 |
| FP (False Positive) |
正常なのに「異常」と誤検知した数(空振り) |
| FN (False Negative) |
異常なのに「正常」と見逃した数(見逃し) |
| TN (True Negative) |
正常を正しく「正常」と判定した数 |
Point Adjustment (PA) について
時系列異常検知の論文を読む際、提示されているベンチマークの数値には注意が必要です。
多くの論文の値は Point Adjustment (PA) という 「異常期間のうち1点でも当てれば、その全期間(連続する異常セグメントすべて)を正解(TP)としてカウントし直す」 というルールに基づいて計算されています。
このルールを適用すると、実態よりも指標(特にRecallやF1)が極端に高く出やすくなり、実務での実力値(PAなしのPoint-wise評価)とかけ離れる原因になるため、評価の際はPAの有無を必ず確認する必要があります。
多変量時系列データの異常検知の課題解決方法