top of page

時系列の深層異常検知(2):検知の難しさと主な手法

1 時間前
読了時間: 7分

概要

前回の「時系列の深層異常検知(1)」では、時系列データの特徴と異常の種類を紹介しました。今回は、異常検知が難しい理由と、さまざまな検知方法を解説します。


なぜ異常検知は難しいのか

AIは、画像認識、自動運転、音声認識、音声合成など多くの分野で進歩してきました。代表例が画像分類です。画像を入力し、その種類を判別します。ImageNet Large Scale Visual Recognition Challenge(ILSVRC)[1]では、大規模な画像データを使って1,000種類を分類する課題が設定され、その後の画像認識研究を大きく進めました。

一方、異常検知は、特有の複雑さによって実用化が難しい場面があります。Ruffらのレビュー[2]を踏まえ、ここでは主な課題を3つ紹介します。


数え切れない異常パターン

異常とは、普段とは異なる状態を意味します。正常なパターン以外には、多様な状態が考えられます。正常なパターンが限られていても、異常の現れ方は数多くあり、多変量時系列では変数間の組み合わせによってさらに複雑になります。

過去に一度も観測されていない異常が発生する可能性もあります。この多様性が、検知を難しくします。


データの不均衡

一般に、異常を含むデータは正常データより少なくなります。このようにクラスの割合が大きく異なる状態をデータの不均衡と呼び、学習時にも運用時にも課題となります。


機械学習、とりわけディープラーニングでは、十分な学習データが重要です。図は、データ量と性能の関係を概念的に示しています。正常データが多くても、学習に必要な異常の例が極端に少なければ、異常の特徴を捉えるのは難しくなります。


実運用では、正常を異常と判定する偽陽性(第1種の過誤)と、異常を正常と判定する偽陰性(第2種の過誤)のバランスも問題です。設備監視などでは見逃しが重大になり得ますが、見逃しを減らそうとして正常の多くを警報にすると、現場が対応できません。どちらの誤りをどの程度許容するかは用途によって異なります。


第1種・第2種の過誤の例(出典:Netflix Blog)


異常の種類による違い

異常の種類については、前回の「時系列の深層異常検知(1)」で詳しく説明しました。


点異常、文脈異常、集団異常は、それぞれ特徴が異なります。そのため、すべてを一つの方法で高精度に検知するのは難しい課題です。詳しくは前回の記事を参照してください。


異常検知のさまざまな方法

これらの課題に対して、多くの手法が研究されています。本稿ですべてを分類することはできないため、従来の方法、その限界、代替となる考え方を順に紹介します。


従来の異常検知

代表例として、3σ法、箱ひげ図、ARIMAの3つを簡単に紹介します。


正規分布では、平均から±3標準偏差の範囲に約99.7%の値が入ります。3σ法は、この範囲外を異常候補とする方法です。箱ひげ図では、四分位数と四分位範囲を使って外れ値の基準を定めます。ARIMA(自己回帰和分移動平均)は主に時系列予測に使われ、予測と観測の誤差や予測分布から、異常の可能性を判断できます。




単変量時系列のARIMAの例(出典:Jenniferz28 / Time-Series-ARIMA-XGBOOST-RNN)


ここで紹介した基本的な使い方は単変量を対象としています。また、時間的な文脈を加えずに使う3σ法や箱ひげ図は、主として点異常を捉える方法です。


予測に基づく異常検知

ARIMAのように通常の時系列を予測し、観測がそこからどれだけ外れたかを見る考え方は、多変量時系列にも応用できます。予測が適切なら、単一の値の外れだけでなく、時間的なパターンの崩れも捉えられる可能性があります。


ただし、予測には不確実性があります。Makridakis competitions(M Competition)のM5では、予測精度[3]に加え、不確実性を評価する課題[4]も設けられました。1つの予測値を当てるだけでなく、起こり得る結果の幅を適切に表すことも重要です。


複雑な多変量時系列では、予測誤差と異常を区別することが難しい場合があります。予測の不確実性を適切にモデル化し、そのデータで検証できれば、予測に基づく異常検知は有効な選択肢になります。


教師あり学習による異常検知

予測以外の方法でAIを使うなら、まずどのような方法が考えられるでしょうか。


直感的なのは、時系列を正常と異常に分類するモデルです。画像分類と同様に、あらかじめ正解ラベルを付けて学習する方法を教師あり学習と呼びます。時系列予測も、過去の値から将来の値を学ぶ形では教師あり学習として構成できます。


例えば「9:00〜9:10は正常」「9:10〜9:20も正常」「9:20〜9:30は異常」とラベルを付けて学習します。十分な代表例と適切なモデルがあれば、点異常、文脈異常、集団異常の検知に高い性能を期待できます。


しかし、異常データは少なく、人が該当箇所を探してラベルを付ける作業も大変です。学習データをそろえること自体が難しく、準備できても不均衡によって正常側へ偏ったモデルになるおそれがあります。


教師なし学習による異常検知

ラベルを必要としない方法はあるのでしょうか。正解ラベルなしでデータの構造を学ぶ方法を、教師なし学習(Unsupervised Learning)と呼びます。


代表例の一つがオートエンコーダー(Autoencoder)[5]です。典型的な構成では、入力を低次元の表現へ圧縮するEncoderと、その表現から元の入力に近いデータを復元するDecoderを組み合わせます。


オートエンコーダーの概念(出典:Wikipedia)


圧縮と復元には、どのような意味があるのでしょうか。ここでは、高次元のデータが、より少ない次元の構造、すなわち多様体(Manifold)に沿って分布すると考えます。オートエンコーダーは、その構造を表す特徴と、そこから復元する方法を学びます。



高次元データ(左)を低次元の多様体(右)で表す例


異常データ(×印)が、正常データの構造に近い表現へ写される概念図


主に正常データで学習すれば、正常に共通する特徴を復元しやすくなります。一方、学習にあまり現れない異常の特徴は復元しにくいことがあります。この場合、入力と出力の差である再構成誤差(Reconstruction Error)が大きくなり、その差を異常スコアとして使えます。


この方法は、異常の種類を事前に列挙せず、正常パターンからの逸脱を検知しようとするものです。ただし、モデル構造やハイパーパラメーターによって学習される表現が変わり、性能も大きく変動します。適切な設定を見つけることは容易ではありません。


また、異常が正常に似ている場合や、モデルが異常もよく復元できてしまう場合には、再構成誤差が小さくなり、見逃す可能性があります。


半教師あり学習と正常データを使う学習

ここまでは、正常・異常のラベルを使う方法と、ラベルを使わない方法を紹介しました。一部のデータだけにラベルがある場合は、半教師あり学習(Semi-supervised Learning)として活用できます。異常検知の文献では、正常と分かっているデータで通常状態を学ぶ設定を、この分類に含める場合もあります。


関連する代表的な手法にDeep SVDD[6]があります。これはSVDD(Support Vector Data Description)に深層学習を取り入れた一クラス学習の手法です。データを特徴空間へ写し、主に正常なデータの表現を小さな超球へ集めます。中心からの距離などを基に異常を判定します。少数の異常ラベルも使う一般的な半教師あり分類とは、学習設定を区別して考える必要があります。



Deep SVDDの概念:データ(左)をモデル(中央)で特徴空間(右)へ写し、正常の表現を超球内へ集め、外側の値を異常候補とする


このほかにも、さまざまな視点から異常検知を扱う研究があります。関連する方向性をいくつか挙げます。


  • 分布外検知(Out-of-Distribution Detection/OOD):学習時の分布と異なる入力を見分け、未知のデータとして扱うための研究。

  • 対照学習(Contrastive Learning):データ間の類似・非類似の関係を使って表現を学ぶ方法。正常・異常のラベルが乏しい場面でも、特徴学習への活用が期待されます。

  • 生成モデル(Generative Model):VAEやGANなどでデータの分布や構造を学び、異常検知へ利用する方法。

  • Transformer:自然言語処理などで発展したTransformerを、時系列の関係や異常の検知に応用する方法。

これらの研究には画像を対象としたものも多くあります。では、画像向けの考え方を時系列へ応用するには、どうすればよいでしょうか。


方法の一つは、STFT(短時間フーリエ変換)、CWT(連続ウェーブレット変換)、CQT(定Q変換)などで、信号を時間と周波数に関する表現へ変換することです。AIモデルへ入力する前に、こうした変換やさまざまな加工を行います。この準備を前処理(Preprocessing)と呼びます。時系列の前処理は、別の機会に詳しく紹介したいと思います。



STFTの例(出典:Digital Signal Processing System Design)


まとめ

時系列の異常を検知するさまざまな方法を紹介しました。それぞれが異なる課題を解決するために提案されています。対象業務、データの特性、利用できるラベル、許容できる見逃しや誤警報に合う方法を選び、検証することが、異常検知を導入する出発点になります。


参考文献


  • [1]Russakovsky, Olga, et al. “ImageNet Large Scale Visual Recognition Challenge.” International Journal of Computer Vision 115.3 (2015): 211–252.

  • [2]Ruff, Lukas, et al. “A Unifying Review of Deep and Shallow Anomaly Detection.” Proceedings of the IEEE (2021).

  • [3]Makridakis, S., E. Spiliotis, and V. Assimakopoulos. “The M5 Accuracy Competition: Results, Findings and Conclusions.”

  • [4]Makridakis, S., et al. “The M5 Uncertainty Competition: Results, Findings and Conclusions.”

  • [5]Wikipedia: Autoencoder.

 
 
電話
英語
bottom of page