Divide-and-Assemble: Learning Block-wise Memory for Unsupervised Anomaly Detection
Divide-and-Assemble: Learning Block-wise Memory for Unsupervised Anomaly Detection
https://arxiv.org/abs/2107.13118
Nov 4, 2021
Anomaly Detection, Unsupervised Learning, GAN,
ICCV (2021)
1. どんなもの?
UNet構造にメモリを取り入れ、敵対的学習も行う再構成ベース異常検知
2. 先行研究と比べてどこがすごい?
AEではニューラルネットの汎化性を制御することが困難
マルチスケール・ブロックワイズ・メモリー・モジュールによって、正常の良い再構成と異常の不十分な再構成のトレードオフを実現
敵対的学習を導入することで、微小な異常検知性能も上昇
3. 技術や手法の”キモ”はどこ?
マルチスケール・ブロックワイズ・メモリー・モジュール
正常なパターンの記憶に使用
細かい仕組み
特徴マップを$Q=r_h \times r_w \times r_c$に分割
平滑化
アテンション重み $w$ を計算
\[w_i = \frac{exp(\frac{q^k \quad m^T_i}{\| q^k \| \quad \| m_i \|})}{\sum^N_{j=1} exp(\frac{q^k \quad m^T_j}{\| q^k \| \quad \| m_j \|})}\]
$w$ を用いて、クエリ $q_k$ に最も関連するメモリアイテムを探索し対応する $\hat{q}^k$ を生成
\[\hat{q}^k = wM = \sum^N_{i=1} w_im_i\]
形を戻してDecoderへ
変数定義
学習
ネットワーク構造
Loss関数
\[\mathcal{L} = \lambda_{rec} \mathcal{L}_{rec} + \lambda_{adv} \mathcal{L}_{adv} + \lambda_{ali} \mathcal{L}_{ali}\]
再構成Loss
\[\mathcal{L}_{rec} = \mathbb{E}_{x \sim p_x} \| x - \hat{x} \|_2\]
L2距離
敵対的Loss
\[\mathcal{L}_{adv} = \mathbb{E}_{x \sim p_x} [\log D(x)] + \mathbb{E}_{x \sim p_x} [\log (1-D(G(x)))]\]
識別器の学習用に使用する、GANで提案されたLoss
アライメントLoss
\[\mathcal{L}_{ali} = \mathbb{E}_{x \sim p_x} \| f_D(x) - f_D(\hat{x}) \|_2\]
識別機の中間特徴の一致
推論(異常度の算出)
ネットワーク構造
異常度の算出
\[A(x) = \gamma R(x) + (1-\gamma) L(x)\]
$R(x)$ は再構成Lossと同じ
$L(x)$ はアライメントLossと同じ
4. どうやって有効だと検証した?
5. 関連文献
Dong Gong, Lingqiao Liu, Vuong Le, Budhaditya Saha,
Moussa Reda Mansour, Svetha Venkatesh, and Anton
van den Hengel. Memorizing normality to detect anomaly:
Memory-augmented deep autoencoder for unsupervised
anomaly detection. In Proceedings of the IEEE International
Conference on Computer Vision, pages 1705–1714, 2019. 2,