[Paper][Code]
本文提出了一種基於雙指向性GAN異常檢測的方法ALAD,使用對抗學習到的特徵的重建誤差決定樣本是否異常。ALAD建立在確認數據空間和潛在空間的循環一致性損失、穩定的GAN訓練上,達到了SOTA。
AnoGAN首先提出了在眼部圖像上使用一個標準GAN結構做異常檢測的方法,然而在測試階段,爲了找到潛在向量z,該方法需要對每個測試樣本解決優化問題,之後通過z計算每個樣本的異常分數,因此在實時應用中或應用於大型數據集時實現起來非常不現實。
本文提出的ALAD算法不僅十分有效,而且測試簡便,利用一類GAN在訓練時同時學習一個編碼網絡,除此之外還結合了一些現有的技術提升編碼網絡、穩定GAN訓練,通過消融實驗顯示這些技術確實提高了異常檢測的效果。
創新點:
建立在雙指向性GAN的結構上,因此也包括一個將數據樣本映射到潛在變量的編碼網絡,避免了昂貴的計算過程,潛在變量在測試時只需要在編碼網絡中通過一個簡單的前向傳播就可以獲得;
評價指標與AnoGAN不同;
結合最新進展以穩定GAN訓練過程。
A. GAN結構
Dzz/ Dxz/ Dxx表示判別器,G爲生成器,E爲編碼器,這些網絡在訓練時同時學習。
B. 穩定的GAN訓練過程
C. 檢測異常
ALAD是以重建爲基礎的異常檢測技術,主要評估測試樣本與GAN的生成圖像差異。正常樣本會通過GAN精準重建,而異常樣本重建的差異將非常大。首先需要使用GAN,對數據分佈進行有效建模;同時我們需要學習數據的流形以便恢復精確的潛在表達。這兩個對稱的條件熵循環一致正則項能夠保證這兩點。
十字爲異常樣本,圈爲正常樣本。
另一個ALAD的重要組成部分是使用異常分數量化原始樣本和重建樣本之間的距離,本文提出在特徵空間中計算循環一致性判別器Dxx的樣本距離。
f(·,·) 表示給定一對輸入樣本時Dxx網絡中在logits前一層的激勵函數,A(x) 值越大,樣本更可能爲異常。這個損失靈感來源於GAN穩定訓練中的特徵匹配損失,但不同的是本文使用的是Dxx判別器(兩個輸入)。
實驗
圖像數據 :SVHN & CIFAR-10
以一類爲正常圖像,其餘9類均爲異常。對於每個數據集,使用80%數據用於訓練,剩餘20%作爲測試數據;在訓練集中額外分出25%作爲驗證集,在訓練、驗證集中不使用任何異常樣本。
本文使用AUROC評價模型。
Baseline
- OC-SVM
- Isolation Forests
- DSEBM:基於能量的模型算法中的SOTA
- DAGMM:基於自動編碼器算法中的SOTA
- AnoGAN:唯一基於GAN的異常檢測算法
圖像數據集實驗結果
誤差分析
第一行爲正常類別,第二行爲正常類別的重建圖像;第三行爲異常類別,第四行爲異常類別的重建圖像。
消融實驗
SN:譜歸一化
DL:潛在空間中的判別器
不同的異常分數模型實驗