論文読みメモ: 深層自己符号化器+混合ガウスモデルによる教師なし異常検知(その1)

以下の論文を読みます。

Bo Zong, Qi Song, Martin Renqiang Min, Wei Cheng, Cristian Lumezanu, Daeki Cho, Haifeng Chen. Deep Autoencoding Gaussian Mixture Model for Unsupervised Anomaly Detection. International Conference on Learning Representations, 2018. https://openreview.net/forum?id=BJJLHbb0-
※ キャラクターに元ネタはないです。お気付きの点がありましたらお手数ですがコメント等にてご指摘ください。
次回:まだ
f:id:cookie-box:20180513082851p:plain:w60

多次元データの教師なし異常検知をするときは次元削減と密度推定の2段階のアプローチをするのが常套手段ですが、次元削減は次元削減で、密度推定は密度推定で学習しているために局所最適解に陥りやすい、という問題提起です。次元削減の段階で異常検知に必要な情報が失われてしまう可能性があると。

f:id:cookie-box:20180513082908p:plain:w60

そりゃ次元削減で情報が失われるかもって言われたら失われるかもしれないけど…じゃあどうするのかな?

f:id:cookie-box:20180513082851p:plain:w60

なので次元削減と密度推定をもっと効果的に組合せたいということですが…この方針は何もこの研究が初出ということではなく、過去に既に考案されているらしいです。ただそれらの先行研究では低次元空間での特徴保存や、密度推定モデルの表現力や、密度推定の学習アルゴリズムに難があったと。

f:id:cookie-box:20180513082908p:plain:w60

まあコンセプトが同じだったら何が優れているのか明記しなきゃだしね。

f:id:cookie-box:20180513082851p:plain:w60

それで提案手法の深層自己符号化混合ガウスモデル(Deep Autoencoding Gaussian Mixture Model: DAGMM)ですが、このモデルでは深層自己符号化器によって低次元の特徴を生成し、また再構築時の誤差も得て、それらを混合ガウスモデルに導入すると。深層自己符号化器と混合ガウスモデルは別々に学習するのではなく、通常のEMアルゴリズムで学習するのでもなく、深層自己符号化器と混合ガウスモデルのパラメータを同時に最適化すると。

f:id:cookie-box:20180513082908p:plain:w60

再構築時の誤差も導入するの? 低次元の特徴だけではなくて? なんでだろう。

f:id:cookie-box:20180513082851p:plain:w60

Introduction でこの DAGMM のウリが3つ紹介されているんですが、たぶんその1つ目の内容がそれを説明していますね。1つ目のウリはDAGMM は従来手法と違って入力データ中の必要な情報をちゃんと保持できる。次元削減してから密度推定するとき、密度が小さいところに異常データは位置しますが、そもそも異常なデータは次元削減しにくい=次元削減した点から再構築したときの誤差が大きくなるものだとこの論文は主張しています。なので、この再構築エラーをも低次元の特徴に concatinate して、この新しい特徴ベクトルの空間で密度推定すると。Figure 1 で例が示されていますね。x 軸近辺のデータはほとんど再構築エラーがなかった=適切に次元削減されたデータで、この x 軸近辺でも正常データと異常データは分離されていますが、それに加えて再構築エラーが大きいという y 軸方向にも正常データと異常データは分離されています。従来手法はこの y 軸方向の広がりを見逃していたと。でも DAGMM の第一段階「圧縮ネットワーク」は自己符号化器によって次元削減し、低次元の特徴に再構築エラーをくっつけて密度推定のプロセスに渡すと。

f:id:cookie-box:20180513082908p:plain:w60

そっか。「入力データ中の必要な情報を保持できる」ってどういうことかと思ったけど、従来手法では失われていた情報をサルベージしたって雰囲気なのかな。必要な情報を拾い切ってやったっていうよりは。

f:id:cookie-box:20180513082851p:plain:w60

2つ目のウリは、密度推定に混合ガウスモデルを採用する。従来手法は混合モデルでないので表現力に乏しいと。ただ、混合モデルを採用する場合、混合モデルは通常EMアルゴリズムでパラメータ推定しますが、これは次元削減と密度推定を同時に最適化するには具合が悪いです。

f:id:cookie-box:20180513082908p:plain:w60

うーん、EステップとMステップを反復するのが厄介ってことかな。それで完結しちゃうと次元削減側に示唆がないよね。わかんないけど。じゃあどうやって混合分布のパラメータを最適化するのかな?

f:id:cookie-box:20180513082851p:plain:w60

そこで「推定ネットワーク」を導入してそのサンプル(の特徴)が何番目の分布に帰属するかの予測を出力します。それをもとに混合分布のパラメータを直接推定します。入力データのもとで尤度が最大のパラメータを。Eステップなんて必要なかったんです。

f:id:cookie-box:20180513082908p:plain:w60

ええ…それって自然な発想なのかな…。まあ、「特徴分布は2つのガウス分布の混合らしい」とか最初からわかってたら、各サンプルがどちらに属すだろうかっていうクラス分類をニューラルネットワークでやっちゃえっていうのはわからなくもない、のかな。あと、それで全体を学習するときって、あくまで「圧縮ネットワーク」は再構築エラーを目的関数に学習して「推定ネットワーク」はその特徴のもとでの尤度を目的関数に学習するの? それとも、全体として尤度を目的関数にする? 後者だと自己符号化器部分が自己符号化器じゃなくなっちゃうけど、前者だとそれって「次元削減と密度推定の同時学習」っていえるのかな。

f:id:cookie-box:20180513082851p:plain:w60

Introduction だけ読むと前者にはみえますが、おいおい数式が出てくればわかるでしょう。3つ目のウリは、もう散々言及されてしまいましたが、次元削減と密度推定の同時学習が実現でき、ネットワークの事前学習も不要ということですね。

(次回があれば)つづく