BeatGAN:敵対的に生成した正常波形と比べて異常時刻を指し示す

再構成ベースの異常検知には、本シリーズで何度も触れてきた共通の弱点がある。オートエンコーダ(AE)は表現力が高すぎて、学習に含まれない異常パターンまでそこそこ滑らかに再構成してしまう。すると異常の再構成誤差が小さくなり、正常と区別がつかなくなる。MEMTO は「記憶」で、USAD は「敵対訓練」でこれに立ち向かった。では、もっと素直に GAN(敵対的生成ネットワーク) の力で「正常らしさ」の基準を鍛えたらどうなるか。

これに答えたのが BeatGAN(Zhou et al., “BeatGAN: Anomalous Rhythm Detection using Adversarially Generated Time Series,” IJCAI 2019)である。BeatGAN は心電図(ECG)の鼓動(beat)を対象に、AEに敵対的正則化を加えて正常波形を精密に生成し、入力と生成波形の残差で異常を捉える。しかも、どの時刻が異常かを残差で指し示す(局在化)。心電図で約0.95 AUC、1ビートあたり2.6ミリ秒という速さを達成した。

本記事は論文(IJCAI 2019)を一次情報から読み込み、再構成ベースの統一枠組み・AE+敵対正則化・pairwise feature matching・time warping拡張を数式と図で深掘りする。なぜこれを学ぶのか ―― 「GANで正常の境界を鋭くする」という発想が、再構成ベース異常検知をどう底上げするかを掴むためだ。

BeatGANの概念:敵対的に生成した正常な鼓動と比べて異常時刻を指し示す

全体像はこうだ。正常な鼓動だけでAE生成器 $G$ を学習し、判別器 $D$ で敵対正則化をかける。テスト時は入力ビート $x$ を生成器に通して再構成 $x’=G(x)$ を得て、残差 $\lVert x-x’ \rVert$ で異常を判定する。まず、BeatGAN が立つ「再構成ベース」という土台を一般化して見てみよう。

再構成ベース異常検知の統一枠組み

論文の見通しの良さは、多くの再構成ベース手法をひとつの枠組みで捉えるところにある。再構成モデルの学習目的は、

$$ \begin{equation} L = \lVert X – G(X) \rVert^2 + R(G) = \sum_x \lVert x – G(x) \rVert^2 + R(G) \end{equation} $$

そして $x$ の異常スコアは、

$$ \begin{equation} A(x) = \lVert x – G(x) \rVert^2 \end{equation} $$

ここで $G(\cdot)$ は再構成モデル、$R(G)$ はモデルごとの正則化項だ。

再構成ベース異常検知の統一枠組み:SVD・AE・VAE・BeatGANは再構成Gと正則化Rの違いだけ

この枠組みで見ると、多くの手法は「再構成関数 $G$」と「正則化 $R$」の違いに還元される。SVDは低ランク近似 $\sum_k \sigma_k u_k v_k^T$ で再構成し直交制約をかける。AEは $G_D(G_E(x))$ で再構成し正則化なし。VAEは同じ $G_D(G_E(x))$ にKLダイバージェンス正則化 $\lambda D_{KL}[Q(z|x)\|P(z)]$ を加える。そして BeatGAN は $G_D(G_E(x))$ に敵対正則化を採用する ―― これが本質的な差分だ。では、その敵対正則化を具体的に見ていく。

アーキテクチャ:CNNオートエンコーダ + 判別器

BeatGAN の生成器は、エンコーダ $G_E$ とデコーダ $G_D$ からなるオートエンコーダだ。$G_E(x)$ が入力 $x$ を重要な特徴を表す潜在ベクトル $z$ に符号化し、$G_D(z)$ が $z$ から時系列 $x’$ を生成する。つまり再構成は $G(x) = G_D(G_E(x))$。

アーキテクチャ:CNNオートエンコーダ生成器とCNN判別器

エンコーダ・デコーダとも、時間方向に1次元でフィルタをスライドさせるCNN(畳み込みニューラルネット) を使う。論文は、CNNが時系列に対してLSTMより頑健で、適切な受容野サイズを取ればLSTMのような長期依存も捉えられる、と述べる(実際、デコーダ $G_D$ はDCGANの生成器に倣い、512(10/1)-256(4/2)-128(4/2)-64(4/2)-32(4/2)の5層転置畳み込みで構成される)。エンコーダ $G_E$ はその鏡像、判別器 $D$ は $G_E$ と同じ構造だ。この判別器が、敵対正則化の主役になる。

敵対的正則化:min-maxゲーム

GANの枠組みでは、生成器と判別器が二人プレイヤーのmin-maxゲームを戦う。判別器 $D$ は本物のサンプルと合成サンプルを見分けようとし、生成器は判別器を騙すサンプルを作ろうとする。

敵対的正則化:生成器と判別器のmin-maxゲーム

判別器 $D$ は次の損失を最大化する。

$$ \begin{equation} L_D = \mathbb{E}_{x\sim P_r}[\log D(x)] + \mathbb{E}_{z\sim P_z}[\log(1 – D(G(z)))] \end{equation} $$

これは生成された $x’$ をクラスラベル0、本物の $x$ をラベル1として識別する。一方、生成器 $G$ は次を最小化する。

$$ \begin{equation} L_G = \mathbb{E}_{z\sim P_z}[\log(1 – D(G(z)))] \end{equation} $$

つまり生成を判別器に見分けられないように(ラベル1に近づくように)する。判別器が「本物らしさ」の基準を学び、生成器はその基準で正常を精密に再構成する ―― 結果として、単なるAEより鋭い正常の境界が学習され、異常の再構成残差が際立つようになる。ただし、この $L_G$ をそのまま使うと問題が起きる。

pairwise feature matching:勾配消失とモード崩壊を防ぐ

実際には、$L_G$ を直接、敵対正則化として使うと、勾配消失やモード崩壊のためにうまくいかない。そこで BeatGAN は、隠れ空間の $z$ ではなく、AEを介して元の $x$ と再構成 $x’$ の関係を立てたうえで、pairwise feature matching損失を使う。判別器 $D$ の隠れ層の活性ベクトルを $f_D(\cdot)$ とすると、

$$ \begin{equation} L_{pfm} = \lVert f_D(x) – f_D(x’) \rVert^2 \end{equation} $$

pairwise feature matching損失:判別器の中間特徴の統計を一致させる

これは、元の時系列と生成された時系列の統計量の差(判別器の隠れ層で学習される)を最小化する。判別器の出力そのものではなく中間特徴を一致させることで、勾配消失やモード崩壊を避けつつ「本物らしい」生成を促す。結局、敵対正則化つきの再構成の目的は、次の損失を最小化することになる。

$$ \begin{equation} L_G = \lVert x – x’ \rVert^2 + \lambda \lVert f_D(x) – f_D(x’) \rVert^2 \end{equation} $$

ここで $x’ = G(x)$、$\lambda$ は敵対正則化の影響を調整する重みだ(論文では $\lambda = 0.01$)。第1項が再構成損失、第2項が敵対正則化(feature matching)である。一方、判別器は次を最大化する。

$$ \begin{equation} L_D = \frac{1}{N}\sum_i^N [\log D(x_i) + \log(1 – D(x’_i))] \end{equation} $$

この敵対正則化が実際に何をもたらすかを、簡単なデモで確かめてみよう。

敵対正則化は何を変えるか

正常な鼓動が「鋭いピーク」を持ち、異常な鼓動が「鈍く幅広い」形だとする。素のAEと敵対正則化つきで、異常入力をどう再構成するかを比べる。

素AEは異常を鈍く再構成するが、敵対正則化は正常の鋭い形へ引き戻す

左の素のAEは、異常入力をそのまま鈍く追従して再構成してしまい、残差が小さい(平均 0.05)。これでは異常を見逃しやすい。一方、右の敵対正則化つきは、正常波形の鋭いピーク形を学習しているため、鈍い異常入力に対しても正常のピーク形を生成しようとする。その結果、入力との残差が大きくなり(平均 0.14)、異常がくっきり浮かび上がる。判別器が「本物の鼓動らしさ」を厳しく見張ることで、生成器が安易に異常を再構成できなくなる ―― これが敵対正則化の効果だ。さらに、心電図特有のばらつきに備える工夫が加わる。

time warping:速度変動への頑健性

心電図の鼓動は、自然に少し速くなったり遅くなったりする。この速度変動に頑健になるため、時系列の類似度尺度 DTW(動的時間伸縮) が知られているが、DTWは微分不可能なので目的関数(式6)の再構成誤差には直接使えない。

time warping拡張:一部をspeed up/slow downして速度変動への頑健性を獲得

そこで BeatGAN は、データ拡張のための修正版time warpingを提案する。各訓練ビート $x$ について、少数 $k$ 個の時刻をランダムに選んで「遅く」し、別の $k$ 個の時刻を「速く」する。速くする時刻ではデータ値を削除し、遅くする時刻では値を複製・補間する ―― これで自然な速度変動を模した訓練データを増やす。図のように、元の正常ビートの一部を伸縮させた波形を生成し、訓練に加える。これにより、実際の鼓動の速度ゆらぎを異常と誤検知しない頑健性が得られる。学習が済めば、異常の検出と局在化はシンプルだ。

異常スコアと局在化

異常スコアは統一枠組みのとおり $A(x) = \lVert x – G(x) \rVert^2$ だ。BeatGAN の特長は、これを時刻ごとに分解して「どの時刻が異常か」を指し示せることにある。

異常スコアと局在化:時刻ごとの残差が異常箇所を指し示す

上段が異常入力 $x$ と生成された正常波形 $x’$、下段が時刻ごとの残差 $|x_t – x’_t|^2$ だ。残差が最大になる時刻が、最も異常な箇所を指す。心電図なら、医師の注意を異常な時刻(たとえば心室補充収縮の鈍ったピーク)へ誘導できる ―― 検出するだけでなく説明するのだ。これが「explainable(説明可能)」を掲げる所以である。この設計が実データで効くことを、結果が裏づける。

評価:敵対正則化が再構成を底上げする

論文は MIT-BIH 不整脈データセット(48レコード、9.7万ビート、2860万時刻)を中心に評価している。

ECG異常検出:BeatGAN AUC 0.9447が全ベースライン最良

ECG異常検出のAUCで、BeatGAN は 0.9447(AP 0.9108)を達成し、PCA(0.8164)・OCSVM(0.7917)・VAE(0.8316)・AnoGAN(0.8642)・AE(0.8944)・Ganomaly(0.9083)といった全ベースラインを上回った。time warpingでデータを3倍に拡張した BeatGANaug はさらに 0.9475 へ伸びる。注目点は2つ。第一に、非線形手法(AE/VAE/AnoGAN/Ganomaly/BeatGAN)がPCA・OCSVMより一貫して高く、複雑な心電図には非線形モデルが有利なこと。第二に、同じAE構造でも敵対正則化を加えた BeatGAN が素のAEを大きく上回る(0.8944→0.9447)こと ―― 敵対正則化が再構成ベース異常検知を底上げする効果が明確に出ている。なお、訓練データに0.1%の異常を混ぜても AUC 0.9425 を保ち、頑健性も示した。

まとめ

BeatGAN のエッセンスを整理する。

  • 統一枠組み:再構成ベース異常検知は $\min L=\lVert x-G(x)\rVert^2+R(G)$、スコア $A(x)=\lVert x-G(x)\rVert^2$ に一般化できる。SVD/AE/VAE/BeatGANは $G$ と $R$ の違い(式1-2)。
  • AE + 敵対正則化:CNNオートエンコーダ $G_D(G_E(x))$ に、判別器 $D$ によるGANの敵対正則化を加える。判別器が「本物らしさ」を学び、正常の境界を鋭くする。
  • pairwise feature matching:$L_G$ 直接使用は勾配消失・モード崩壊を起こす→判別器中間特徴の一致 $\lVert f_D(x)-f_D(x’)\rVert^2$ で安定化。生成器目的は $\lVert x-x’\rVert^2+\lambda\lVert f_D(x)-f_D(x’)\rVert^2$(式5-7)。
  • time warping拡張:$k$ 個の時刻を speed up/slow down してデータ拡張。微分不可なDTWの代わりに速度変動への頑健性を得る。
  • 検出と局在化:時刻ごとの残差 $|x_t-x’_t|^2$ で異常箇所を指し示す(explainable)。
  • 結果:ECGで AUC 0.9447(+aug 0.9475)、素AE(0.8944)を大きく超える。1ビート2.6msと高速。

BeatGAN は「GANで正常の境界を鋭くする」というシンプルな発想で、再構成ベース異常検知を一段引き上げた。USAD が二つのAEの敵対で、MEMTO が記憶で過剰汎化に挑んだのに対し、BeatGAN は判別器による敵対正則化と局在化という独自の位置を占めている。

USAD:敵対訓練で再構成を強化する異常検知
同じく敵対の発想で再構成を鍛えるが、二つのAEのmin-maxという別構成。BeatGANの判別器型と比較したい。
画像なし
MEMTO:正常パターンを記憶するメモリ誘導Transformer
過剰汎化に記憶で挑む手法。敵対正則化で挑むBeatGANと、同じ問題への異なる解法を読み比べたい。
時系列異常検知の基礎
再構成誤差で異常を測る基本の考え方。BeatGANの統一枠組みの土台として読みたい。