異常検知連載シリーズその2

異常検知連載シリーズその2

自己符号化器による異常検知

こんにちは。スキルアップAIでインターンをしている岩永です。大学院では、ディープラーニングを用いた異常検知の研究をしています。

前回の記事において、深層学習による異常検知は、大きく3つのアプローチに分けられるという話をしました。第2回となる本記事では、それらアプローチのうちの1つである、自己符号化器 (AutoEncoder; AE)による異常検知に焦点を当て、その派生手法を紹介していきます。自己符号化器による異常検知の基本的な考え方については、前回の記事をご参照ください。

第1回はこちら
深層学習(ディープラーニング)による異常検知の記事一覧はこちら

1.自己符号化器による異常検知の派生手法

近年、自己符号化器を基本とした様々な異常検知手法が提案されています。それら手法のうち代表的なものを図1に示します。

図1. 自己符号化器による異常検知の派生手法

ここからは、図1に掲載した3つの派生手法を解説していきます。

2.SSIM AutoEncoder

SSIM AutoEncoder[1]は、Bergmannらによって提案された、損失関数に Structural SIMilarity (SSIM)を採用した自己符号化器です。SSIMは、2つの画像の類似度を測る指標です。
通常の自己符号化器には、「復元されたデータが少しぼやける」という課題があります。自己符号化器による異常検知において、「復元されたデータが少しぼやける」と、正常データでも復元誤差が大きくなってしまい、正常と異常を判別しにくくなることがあります。Bergmannらは、復元画像におけるぼやけを少なくすることを目的に、損失関数にSSIMを採用しました。

自己符号化器の損失関数には二乗誤差がよく用いられますが、二乗誤差は、2つの画像のピクセルどうしを単純に比較して算出されるものであり、隣接するピクセル間の関連性は考慮されません。つまり、二乗誤差は、1つ1つのピクセルが正しく復元できているのかを測る指標と言えます。ある1つのピクセルを正しく復元しようとするのは大変難しく、大きく外さないようにしようと思うと、平均的な値を返したくなります。これがぼやける原理です。

SSIMは、2つの画像の類似度を測る指標ですが、二乗誤差とは異なり、画像内の局所的な構造が正しく復元できているかを測ります。SSIM AutoEncoderでは、この SSIMを損失関数として用いることで、画像がもつ構造をうまく捉えられるようになり、ぼやけの少ない画像を復元できるようになりました。また、異常度の算出にも SSIMを用いることで、異常検知性能が向上する場合があります。

図2に、通常の自己符号化器による異常検知とSSIM AutoEncoderによる異常検知の比較図を示します。通常の自己符号化器による復元画像が全体的にぼやけているのに対して、SSIM AutoEncoderによる復元画像は入力画像を鮮明に復元できています。また、Segmentationという可視化結果を見ると、入力画像を鮮明に復元できたことにより、異常箇所をうまく特定できていることがわかります。

図2. 通常の自己符号化器とSSIM AutoEncoderによる異常検知の比較
(参考文献[1]より引用)

3.VAE-M

生成モデルである変分自己符号化器(Variational AutoEncoder; VAE)も異常検知に用いられます。

Matsubaraらは、変分自己符号化器の損失関数から、正則化項と正規化定数の対数部分を除いた非正則化異常度[2]を用いて、正常異常の判定を行う手法を提案しました。本記事では、この手法をVAE-Mと呼ぶことにします。

正則化項と正規化定数の対数部分を除く理由は、次の通りです。正則化項は、画像内の微少な特徴を感知しないため、異常画像内の大部分が正常であると値が小さくなります。よって、微少な異常を含む画像を見逃してしまいます。また、正規化定数の対数部分に含まれる標準偏差ベクトルは、複雑な正常画像についても大きくなってしまいます。よって、複雑な正常画像を異常画像と誤検知してしまいます。詳しくは原著論文[2]をご参照ください。

図3に、異常度に損失関数をそのまま用いた場合(右上段)と非正則化異常度を用いた場合(右下段)の異常度のヒートマップを示します。異常度に損失関数をそのまま用いた場合は、全体的に異常度が高くなっているのに対して、非正則化異常度を用いた場合は、異常箇所のみが異常度が高くなっていることが分かります。

図3 . 異常度のヒートマップ
(右上段:損失関数をそのまま用いた場合、右下段:非正則化異常度を用いた場合)
(参考文献[2]より引用)

4.AE-Grad

AE-Grad[3]は、2020年にDehaeneらによって発表された手法です。AE-Gradでは、復元画像を入力画像に近づくように繰り返し更新します。

自己符号化器による異常検知では、「正常データだけで学習した自己符号化器は異常データを復元できない」という考えに基づいて異常検知を行うのが基本でした。異常データを復元できないというのは、異常データ内の異常部分もうまく復元できないし、異常データ内の正常部分もうまく復元できない、ということを意味します。異常データ内の異常部分も復元できないことは問題になりませんし、むしろ望ましいのですが、異常データ内の正常部分を復元できないことは、異常な部位の特定を困難にします。

図4にAE-Gradの模式図を示します。AE-Gradでは、デコーダが出力した復元画像を、入力画像から離れすぎないようにしつつ、正常データに近づけていきます。これによって、異常な入力画像中の正常部分もうまく復元できるようになります。

図4. AE-Gradの模式図

図5に通常の自己符号化器とAE-Gradによる異常検知結果の比較図を示します。AE-Gradでは、通常の自己符号化器に比べて、上手く異常箇所を特定できていることが分かります。

図5. 通常の自己符号化器による異常検知とAE-Gradによる異常検知の比較
(参考文献[3]より引用)

5.もっと詳しく学びたい方へ

本記事では、自己符号化器による異常検知の派生手法を簡単に解説しました。スキルアップAIの現場で使える異常検知基礎講座では、本記事で解説した手法を詳しく解説しています。是非ご検討ください。また、深層学習について詳しく学びたい方は、現場で使えるディープラーニング基礎講座もご検討ください。

第1回はこちら
深層学習(ディープラーニング)による異常検知の記事一覧はこちら

6.参考文献

[1] P. Bergmann, S. Lowe, M. Fauser, D. Sattlegger, and C. Steger: Improving Unsupervised Defect Segmentation by Applying Structural Similarity to Autoencoders, 14th International Joint Conference on Computer Vision, Imaging and Computer Graphics Theory and Applications, vol. 5: VISAPP, pp. 372?380 (2019).

[2] M. Takashi, T. Ryosuke, and U. Kuniaki: Anomaly machine component detection by deep generative model with unregularized score, In 2018 International Joint Conference on Neural Networks, pp. 1–8. (2018).

[3] D. Dehaene, O. Frigo, S. Combrexelle, and P. Eline: Iterative energy-based projection on a normal data manifold for anomaly localization, International Conference on Learning Representations, (2020)

関連する講座

Page Top