論文紹介 Attribute Restoration Framework for Anomaly Detection

# 論文紹介 Attribute Restoration Framework for Anomaly Detection
個人的に読んだ論文をメモを兼ねて紹介します。
本記事では、論文の詳細な部分までは踏み込まず、**何をやったかざっくりお気持ちを理解することを目的**として書いており、曖昧な表現やふんわりした表現が含まれます。
また、自分なりの理解の範囲で紹介するため、**誤った解釈や説明がある場合があります**。予めご了承ください。
詳細な点は、原論文を読むことをお勧めします。

今回紹介する論文は<INS>「Attribute Restoration Framework for Anomaly Detection」</INS>
(F. Ye, C. Huang, J. Cao, M. Li, Y. Zhang and C. Lu, "Attribute Restoration Framework for Anomaly Detection," in IEEE Transactions on Multimedia, vol. 24, pp. 116-127, 2022, doi: 10.1109/TMM.2020.3046884.)
https://ieeexplore.ieee.org/document/9311201
です。

一言で説明するなら、
<INS>「画像の異常検知において、入力画像を加工し画像復元のフレームワークを適用した結果、性能を向上させた」</INS>
となります。

以下の順で説明します。
1. 異常検知とは
2. 関連研究 one-class classification based と surrogate supervision based 
3. 提案手法 画像復元を用いた手法

## 1.異常検知とは
異常検知は、コンピューターサイエンスにおける代表的な問題の一つで、'普通ではないデータや動きを検出する'ことが目的です。代表的な応用例として、サイバーセキュリティにおける攻撃や不審な行動の検出などに使われます。
<div align="center">
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2058791/17025e68-4aaa-cb3e-f965-5f114fd09ee5.jpeg" width=50%>
</div>

前提として、多くの場合、普通のデータは多く手に入りますが、異常なデータは数が少なく種類も多様なことが多いため、学習用のデータは普通のデータのみから構成されます。

## 2.関連研究
異常検知には代表的なアプローチが二つあります。one-class classification based と surrogate supervision based です。
簡単に言うと、前者はデータをベクトルに変換して分類を行い、後者は異常検知の問題を別の問題に置き換えて解くアプローチです。
### 2-1.one-class classification based approach
このアプローチは主に以下のステップからなります。
a.学習データについて、何らかの方法(CNNやAE等いろいろ)を使ってデータをベクトルに変換します
b.SVMや分布のモデルを仮定するなどして分類するルールを決めます
c.評価データについて、同様の方法でベクトルに変換しルールに基づいて分類します
bについては、カーネルを使って超平面を見つける方法や、学習データを内包する超級面の大きさが小さくなるNNを学習するものなどが紹介されています。異常データを作り出す手法もあるようです。

### 2-2.surrogate supervision based approach
このアプローチでは、異常検知を別の問題に置き換えて解きます。代表的にはAutoEncoder(AE)等を用いた再構築問題(Reconstruction Problem)などに置き換えられます。
<div align="center">
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2058791/b7d72c61-871c-5283-76c2-7c6614744810.png" width=50%>
</div>

引用「https://codezine.jp/article/detail/11687 1.1.2　教師なし学習」
再構築問題では画像などのデータをAE等を使って復元する問題です。ここで学習されるモデルは入力を復元するようなモデルです。ただしこのモデルは学習データから大きく離れるような、つまり異常なデータはうまく再構築できません。この性質を利用して、うまく復元できない画像は異常と分類します。
このアプローチは主に以下のステップからなります。
a.学習データで入力を復元するようなモデルを学習します
b.評価データをaのモデルに通し、復元がうまくいかない場合は異常とする
問題点として、複雑なデータに対しては単純なパターンしか学習できず異常なデータでも同じような精度の復元ができてしまうようです。

## 3.Attribute Restration FrameWork
提案手法のフレームワークは、先ほどのsurrogate supervision based approachに当たる手法です。再構築(同じもの→同じもの)ではなく復元(不完全なもの→完全なもの)を行っています。また、提案手法は画像の異常検知を想定した手法です。
提案手法は以下のようになっています。
a.AEMという手法で入力データを不完全なデータにします
b.不完全なデータを入力として、ARNetというNNを使い、元々の入力データを出力するように学習/推論します。
c.出力ともともとのデータを比べ差が大きい場合は異常とします(学習時はL2ノルム,推論時はL1ノルムを使用)

AEMでは次の3つの条件を持つような特徴量を消すと最終的な復元でうまく分類できます。
1. 普通のデータ群では共通の性質や値を持つこと
2. 普通のデータ群と違うデータ群では違う性質や値を持つこと
3. 追加データなしでその特徴量を消す処理を行えること
例として、車と数字の9の画像を分けようと考えたとき、"〇の形の位置"が車は下(タイヤ)、9は上の部分に来ます。これは1,2を満たしている特徴量です。この特徴量を消すには画像の回転処理が挙げられます。この処理は追加データが必要ないので3を満たします。
<div align="center">
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2058791/6b89d540-4edc-787e-1f82-263b404d89dc.png" width=50%>
</div>

引用「Attribute Restoration Framework for Anomaly Detection :SectionⅢ https://ieeexplore-ieee-org.kyoto-u.idm.oclc.org/document/9311201」
これがうまくいく理由として、データの復元には再構築よりもより高度な情報が必要だということが挙げられます。つまり、AEMでうまく重要な(区別に必要な)情報を落として学習させることで、モデルはそのような情報を復元するよう学習し、最終的に普通のデータと異常なデータの復元の出来に差が生まれます。

説明は以上です。もし誤っている部分などがあればお気軽にご指摘ください。