6.オートエンコーダを用いた時系列データの異常検知

[9],[10]

この節では、非線形システム同定の一つの手法であるオートエンコーダを用いた時系列データの異常検知[9],[10]について紹介する。

 

6.1.オートエンコーダ

まず、非線形システム同定の一つの手法としてオートエンコーダ[36],[37]を紹介する。

オートエンコーダは3層ニューラルネットにおいて、入力層と出力層に同じデータを用いて教師あり学習させたものである。バックプロパゲーションの特殊な場合と言える。学習は、バックプロパゲーションで行うため非線形最適化問題となる。中間層と出力層の活性化関数はそれぞれ任意に選ぶことができる。教師データが実数値で値域がない場合、出力層の活性化関数は恒等写像が選ばれる(つまり何も変化させない)ことが多い。中間層の活性化関数も恒等写像を選ぶと結果は主成分分析とほぼ一致する。

 

(1)スパース・オートエンコーダ

スパース・オートエンコーダ(sparse autoencoder)とは、フィードフォワードニューラルネットワークの学習において汎化能力を高めるため、正則化項を追加したオートエンコーダのことをいう。ただし、ネットワークの重みではなく、中間層の値自体を0に近づける。

 

(2)ディープ・オートエンコーダ

中間層が2層以上あるニューラルネットワークをディープ・ニューラルネットワーク(英: deep neural network)と呼ぶが、バックプロパゲーションでは、中間層が2層以上ある場合、通常、不適切な極小解に収束してしまうため、うまく行かない。なので、中間層を2層以上積み上げる場合は、まず、中間層1層だけで作り、次に、出力層を取り除き、中間層を入力層と見なし、もう1層積み上げる。これを繰り返して作る方法をジェフリー・ヒントンらが2006年に提案した。積層自己符号化器(英: stacked autoencoder)とも言う。

 

ジェフリー・ヒントンらの2006年の論文では、画像の次元を 2000 → 1000 → 500 → 30 と圧縮し、30 → 500 → 1000 → 2000 と復元した事例が紹介されている[1]。

 

オートエンコーダは、時系列データに対する非線形自己回帰モデル、次元圧縮、分類、回帰などに利用することが出来る。

6.2.時系列データからの異常検出

心電図のデータから異常の部分を推定する問題を考える[11],[12]。

 オートエンコーダを使った異常検知の場合、あらかじめ正常な状態の波形からとった入力データを用いてオートエンコーダを学習させておく。具体的には、ある定められたウインドウ幅に含まれる部分時系列を取り出し、オートエンコーダに学習させる。

 オートエンコーダは、正常な波形を再現するように学習させる。このように学習させたオートエンコーダに、正常でない波形を入力すると、正常な波形に近づけようとする。この性質を利用すると異常波形を検出することができる。

  このように正常波形で学習させたオートエンコーダに対し、異常波形を含む心電図の信号を入力すると、正常な波形の場合は、きれいに元の波形を生成する。一方、異常な波形に対しては、その波形を正常な波形に戻すような出力を出す。

 この性質を用いると、異常状態を含む心電図の波形を正常な波形で学習させたオートエンコーダに入力し、入力信号とオートエンコーダの出力信号を比較することにより、異常状態の波形を検出することが出来る。

 図11の原信号とオートエンコーダで再構成された信号との平均二乗誤差から、異常波形およびその異常波形が発生した変化点を検出することができる。

 今回は、対象システムの時系列信号のモデリングに、非線形自己回帰モデルの一つであるオートエンコーダ(各層は、シグモイド関数をノードにもつ階層型ニューラルネットワーク)を用いたが、それ以外に5.3節で紹介した非線形自己回帰モデルを適用することができる。

 このように、自己回帰モデルを用いた異常検知では、異常状態の信号の発生がとてもまれで、異常状態を教師あり学習データとして使うのが困難な場合でも適用できることが利点である。

 


このコンテンツは会員限定のコンテンツです。
会員登録または、ログインしてください。

あわせて読みたい