DAGMM:オートエンコーダとガウス混合を同時学習する異常検知

高次元のデータから異常を見つけるとき、よくある手はまず次元を削減して低次元で密度を推定することだ。だが、ここに落とし穴がある。次元削減(オートエンコーダ)と密度推定(ガウス混合など)を別々に行うと、削減後の表現が密度推定にとって都合の悪い形になり、異常がうまく分離されないことが多い。この「2段階の分断」を、両者を同時に学習することで解いたのが DAGMM(Deep Autoencoding Gaussian Mixture Model; Zong et al., ICLR 2018) だ。

本記事は、CPS多変量異常検知の俯瞰記事の個別深掘りとして、DAGMM を原論文の図を全て引用しながら掘り下げる。応用先は広く、ネットワーク侵入検知や設備の異常検知など、ラベルのない高次元データ全般に効く密度推定ベースの定番だ。

DAGMMの低次元表現の動機(出典: Zong et al., ICLR 2018, Fig.1)

出典: Zong et al., “Deep Autoencoding Gaussian Mixture Model for Unsupervised Anomaly Detection”, ICLR 2018, Fig.1。

Fig.1 が DAGMM の動機を一枚で語っている。オートエンコーダの潜在表現だけ、あるいは再構成誤差だけでは、正常(青)と異常(赤)がうまく分離しない。ところが両者を組み合わせた低次元空間では、異常がはっきり浮き上がる。「潜在表現」と「再構成誤差」の両方を密度推定に渡すことが鍵だ ―― なぜそれが効くのか、アーキテクチャで見ていく。

前提知識

アーキテクチャ ― 2つのネットワークの同時学習

DAGMMのアーキテクチャ(出典: Zong et al., ICLR 2018, Fig.2)

出典: Zong et al., ICLR 2018, Fig.2。

Fig.2 のアーキテクチャは2つのネットワークから成る。

圧縮ネットワーク(compression network) はオートエンコーダだ。入力 $\bm{x}$ をエンコーダで低次元の潜在 $\bm{z}_c$ に圧縮し、デコーダで $\hat{\bm{x}}$ に復元する。ここで重要なのは、潜在 $\bm{z}_c$ だけでなく、再構成誤差から導いた特徴 $\bm{z}_r$(コサイン類似度やユークリッド距離など)も作ることだ。両者を連結して

$$ \begin{equation} \bm{z} = [\,\bm{z}_c,\ \bm{z}_r\,] \end{equation} $$

という低次元ベクトルを得る。これが Fig.1 で見た「潜在+再構成誤差」の空間にあたる。この連結を図にすると次のようになる。

DAGMMの潜在と再構成誤差特徴の連結

入力 $\bm{x}$ はエンコーダで潜在 $\bm{z}_c$ になり、デコーダで $\hat{\bm{x}}$ に復元される。同時に「$\bm{x}$ と $\hat{\bm{x}}$ がどれだけ違うか」を表す再構成誤差特徴 $\bm{z}_r$ を作る。なぜ $\bm{z}_r$ が要るのか。潜在 $\bm{z}_c$ だけだと、異常サンプルも「それらしい低次元点」に押し込められて正常に紛れてしまうことがある。だが異常は復元が下手なので $\bm{z}_r$ が大きくなる。「どこにいるか($\bm{z}_c$)」と「どれだけ復元できないか($\bm{z}_r$)」を合わせることで、はじめて異常が浮かぶ。

推定ネットワーク(estimation network) は、$\bm{z}$ を入力に取る softmax 付きの多層パーセプトロンで、各サンプルが GMM の $K$ 個の成分のどれにどれだけ所属するか(メンバーシップ $\hat{\gamma}$)を出力する。メンバーシップから GMM のパラメータ(混合比 $\phi_k$、平均 $\bm{\mu}_k$、共分散 $\bm{\Sigma}_k$)をその場で推定する。EMアルゴリズムを使わず、ネットワークの順伝播で GMM を組み立てるのがうまい点だ。

学習は、3つの項を合わせた目的関数を最小化する。

$$ \begin{equation} J = \frac{1}{N}\sum_{i=1}^{N}\lVert \bm{x}_i – \hat{\bm{x}}_i\rVert_2^2 \;+\; \frac{\lambda_1}{N}\sum_{i=1}^{N} E(\bm{z}_i) \;+\; \lambda_2\, P(\bm{\Sigma}) \end{equation} $$

第1項は再構成誤差で、「復元しやすい潜在」を促す。第2項はサンプルのエネルギー $E(\bm{z})$(次節で定義)の平均で、「密度の高い潜在」を促す。第3項 $P(\bm{\Sigma})=\sum_k\sum_j 1/\Sigma_{kjj}$ は共分散の対角が小さくなりすぎる(特異化する)のを防ぐ正則化だ。$\lambda_1,\lambda_2$ は重み。

ここが DAGMM の肝だ。第1項だけ(=ただのオートエンコーダ)では潜在が密度推定に向かず、第2項だけ(=ただのGMM)では低次元表現が育たない。2項を一緒に最小化することで、再構成しやすく、かつ GMM で密度が測りやすい低次元表現が同時に得られる。

DAGMMの分離学習と同時学習の比較

左は次元削減と密度推定を別々に行った場合のイメージで、潜在表現の中で正常と異常が混ざってしまう。右が DAGMM の同時学習で、潜在+再構成誤差の空間で正常(左下に密集)と異常(右上に逸脱)がくっきり分かれる。この分離のよさが、次に見るエネルギーによる異常判定を効かせる土台になる。

異常スコア ― サンプルのエネルギー

DAGMM の異常スコアは、サンプルのエネルギー(負の対数尤度)だ。GMM 下での確率密度が低いサンプルほど、エネルギーが高く、異常とみなす。

$$ \begin{equation} E(\bm{z}) = -\log \sum_{k=1}^{K} \phi_k\, \frac{\exp\!\left(-\tfrac{1}{2}(\bm{z}-\bm{\mu}_k)^{\top}\bm{\Sigma}_k^{-1}(\bm{z}-\bm{\mu}_k)\right)} {\sqrt{|2\pi\bm{\Sigma}_k|}} \end{equation} $$

ここで $\phi_k$ は混合比、$\bm{\mu}_k,\bm{\Sigma}_k$ は成分 $k$ の平均と共分散で、いずれも推定ネットワークが出すメンバーシップ $\hat{\gamma}$ から

$$ \begin{equation} \phi_k = \frac{1}{N}\sum_{i}\hat{\gamma}_{ik}, \quad \bm{\mu}_k = \frac{\sum_i \hat{\gamma}_{ik}\,\bm{z}_i}{\sum_i \hat{\gamma}_{ik}}, \quad \bm{\Sigma}_k = \frac{\sum_i \hat{\gamma}_{ik}\,(\bm{z}_i-\bm{\mu}_k)(\bm{z}_i-\bm{\mu}_k)^{\top}}{\sum_i \hat{\gamma}_{ik}} \end{equation} $$

と、その場で計算される。EMアルゴリズムの「Eステップ=所属確率、Mステップ=パラメータ更新」を、ネットワークの順伝播1回で代替しているわけだ。

DAGMMのエネルギー等高線と異常

上の図は、学習された GMM のエネルギー $E(\bm{z})$ を等高線で描いたものだ。色が暗い(エネルギーが低い)谷が正常サンプルの集まる高密度領域で、白い点(正常)はそこに収まる。一方、赤い星(異常)は密度の低い高エネルギー領域に落ちる。エネルギーがそのまま異常スコアになることが直感的に見て取れる。

学習時はこのエネルギーの期待値を下げる(正常サンプルの密度を高める)ように動く。テスト時は、エネルギーが閾値を超えたサンプルを異常と判定する。エネルギーが微分可能なので、圧縮ネットワークと推定ネットワークをエンドツーエンドで一緒に学習できる点が、別々に学習する古典的な2段階法との決定的な違いだ。学習された空間がどう見えるかを可視化で確かめよう。

学習された潜在空間の可視化

KDDCUPの学習3次元空間(出典: Zong et al., ICLR 2018, Fig.3)

出典: Zong et al., ICLR 2018, Fig.3。

Fig.3 は KDDCUP(ネットワーク侵入検知)のサンプルを、学習された3次元空間にプロットしたものだ。正常と異常が異なる塊に分かれ、密度推定で分離しやすい配置になっていることがわかる。

エネルギーの累積分布(出典: Zong et al., ICLR 2018, Fig.4)

出典: Zong et al., ICLR 2018, Fig.4。

Fig.4 は各データセットでのサンプルエネルギーの累積分布だ。正常サンプルが低エネルギー側に集中し、高エネルギー側のテールに異常が来る。閾値をテール側に置けば異常を拾えるという、スコアの分離のよさを示している。

1次元縮約空間(出典: Zong et al., ICLR 2018, Fig.5)

出典: Zong et al., ICLR 2018, Fig.5。

Fig.5 は1次元に縮約した空間で、全サンプル(左)と正常のみ(右)を比べている。正常(赤)が狭い範囲に密集する一方、異常(青)はそこから外れて広く散らばる。1次元でも正常と異常の分離が見えることは、学習された表現の質の高さを物語る。

学習3次元空間(出典: Zong et al., ICLR 2018, Fig.6)

出典: Zong et al., ICLR 2018, Fig.6。

Fig.6 は別データセットでの3次元空間で、やはり正常と異常が分かれたクラスタ構造になっている。これらの可視化が一貫して示すのは、「同時学習で得た低次元空間では、GMM による密度推定が素直に効く」ということだ。

まとめ

本記事では、DAGMM を原論文の全図とともに深掘りしました。

  • 同時学習が核心:次元削減(オートエンコーダ)と密度推定(GMM)を別々でなく一緒に学ぶことで、密度推定に都合のよい低次元表現が育つ。
  • 潜在+再構成誤差:圧縮ネットワークは潜在 $\bm{z}_c$ と再構成誤差特徴 $\bm{z}_r$ を連結し、両方を密度推定に渡す。
  • 異常スコア=エネルギー:GMM 下の負の対数尤度。微分可能なのでエンドツーエンド学習できる。
  • 可視化:学習空間で正常と異常がきれいに分かれ、エネルギーの累積分布でも明確に分離する。

時系列依存は明示的に扱わないため、時系列に効かせるには窓化などの工夫が要りますが、表データを含む高次元異常検知の汎用ベースラインとして今も有用です。

CPS多変量時系列の異常検知を論文で深掘りする
DAGMMを含む8手法を4系統で俯瞰する親記事。
USAD:敵対的に訓練した2つのオートエンコーダによる異常検知
同じ再構成系でも敵対訓練で異常を増幅するアプローチ。
時系列異常検知のサーベイ
密度・距離ベースを含むパラダイム分類の全体像。