GANを用いた異常検知手法、AnoGANについての論文を読んだのでまとめてみた

## 概要
病気の進行具合や治療経過の観察に有用な画像の特徴を捉えるためのモデルを作成することは困難である．モデルは通常，既知のマーカーのラベルが与えられた例を含む大量のデータに基づいて自動検出することを目的としている．しかし，アノテーションにかかる労力は大きく，また，既知のマーカーに制限されてしまうため，このようなアプローチの性能は限定的である．
本資料では教師なし学習により画像データ中の異常をマーカーの候補として抽出する．画像空間から潜在空間へのマッピングに基づく新しい異常の採点方式に従い，正常な解剖学的変動の多様体を学習するための敵対的深層畳み込み生成ネットワーク，AnoGANを提案する．モデルを新しいデータに適用すると，異常をラベル付けし，学習された分布への適合度を示すパッチを採点する．網膜の光干渉断層撮影(以下，OCT)[^1]の画像を用いた結果，網膜液[^2]やHRF[^3]を含む画像などの異常画像を正しく識別できることが示された．
 

[^1]: 光干渉断層撮影(OCT)：光の干渉性を利用して試料内部の構造を高分解能・高速で撮影する技術
[^2]: 網膜液：網膜の外側にある脈絡膜の血管から漏れ出した液
[^3]: HRF：Hyper-reactive foci, 黄斑疾患の画像で観察される網膜内の異常反射点


## 従来手法
[^4]: 複数の制約付きボルツマンマシンを階層構造に積み重ねたネットワーク
[^5]: GANを改良した手法，GANよりも自然な画像の生成が可能

異常検知とは，学習時に見られる正常なデータ分布に当てはまらないテストデータを特定する作業である．Carreraらは，テクスチャ画像の異常領域を検出するために，畳み込みスパースモデルを利用している．Erfaniらは，教師なし異常検出のために，one-class SVM（OC-SVM）を用いたハイブリッドモデルを提案した．このOC-SVMは，Deep belief network (DBN)[^4]によって学習された特徴量から学習されたものである．これらの研究は，1次元入力や合成データ，テクスチャ画像など，医療用画像と比較して低次元であったりデータ特性が異なる実データセットに対して行われたものである．
OCTにおいて，Ven-huizen らは，疾患患者と健常者を区別するために，教師ありランダムフォレストの学習に bag-of-word 特徴を使用した．Schleglらは，OCTデータ中の網膜液領域をセグメント化するために畳み込みニューラルネットワーク(以下，CNN)を利用し，診断書から抽出した病変と部位のペアの意味記述に基づく弱教師あり学習を用いている．
これらの手法と本資料で紹介する異常検出手法の主な違いは，学習したDCGAN[^5]を利用し，生成モデルとマッピング手法により，局所的な異常の外観を正確に識別可能にするものである．これにより，微小な異常の検出が可能になる．さらに，この手法では既知の異常だけでなく，新規の異常も検出できる．

## 提案手法
[^6]: t-SNE : 高次元データを2次元又は3次元に変換して可視化するための次元削減アルゴリズム


### 正常画像に類似する画像の生成モデル
学習では正常画像I_m(m = 1,2,...M)(健常者の解剖学的構造を示すM枚の医用画像の集合)のみを与え, 教師なしで訓練画像の変動性を表す多様体X（図2の青色領域）を学習する生成敵対モデルを訓練する．モデルは基本的なGANと同様に，Generatorが畳み込みデコーダとして一次元のベクトルを二次元画像に復元する．   Discriminator が標準的なCNNである．正常画像と生成画像両方を入力とし，画像が正常画像か生成画像なのかを出力する．Generatorは，1次元ベクトルであるz を健常者の例で構成される画像空間多様体Xの2次元画像のマッピングG(z)に復元することにより学習する．Discriminatorは標準的なCNNであり，2次元の健常者の画像と生成画像両方を単一のスカラー値D(-)にマッピングする．出力D(-)は，Discriminatorへの入力が，学習データXからサンプリングされた実画像xであるか，Generatorによって生成されたG(z)であるかの確率として解釈できる．図１がそのイメージである．
 
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2663514/68404cd1-534c-e817-4201-2d790e5f5968.png)
図１　敵対的畳み込み生成ネットワーク
 
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2663514/2b6fe936-44db-ba39-fe75-60b159a32ea5.png)
図2 Discriminatorの最後の畳み込み層（図1のオレンジ色）の特徴表現に正常画像（青色）と異常画像（赤色）をt-SNE[^6]で埋め込んだもの

Discriminator とGeneratorは同時に，式(1)を最小化していくことによって最適化される．
![スクリーンショット 2022-05-12 16.24.00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2663514/3c8a58be-04c1-9a84-ce7e-4765a8e4bb48.png)
Discriminatorは正常画像が正常として識別され，生成画像が偽であると識別されるように訓練される．Generatorは式(2)を最小化することにより，Discriminatorを騙すように訓練される．
![スクリーンショット 2022-05-12 16.24.32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2663514/fcd6cf73-dfac-38f6-0ad3-d750805cf773.png)
これは式(3)を最大化することと等価である．
![スクリーンショット 2022-05-12 16.24.51.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2663514/b5c0d72b-1248-934a-40b1-b85002945a33.png)
このようにして，敵対的訓練中にGeneratorは正常画像に類似した画像を生成する性能を，Discriminatorは正常画像と生成画像を正しく識別する性能を向上させる．

### 新しい画像の潜在空間へのマッピング
敵対的学習が完了すると，Generatorは潜在空間表現zから正常な画像xへのマッピングを学習している．しかし，GANは学習と同時にx からz への逆マッピングを得られるわけではない．潜在空間内の近い2点からサンプリングすると，視覚的に類似した2つの画像が生成される．画像 x が与えられたとき，画像 x と視覚的に最も類似し，かつ多様体 X 上に位置する画像 G(z)  に対応する潜在空間内の点 z を見つけることを目標とする．xとG(z)の類似度は，画像xがGeneratorの学習に用いられたデータ分布p_gにどの程度従っているかによって決まる．最適なz を見つけるために，まず潜在空間分布Zからz_1をランダムにサンプリングし，それを学習済みのGeneratorに与えて生成画像G(z_1)を得ます．このG(z_1 )と元画像xの誤差関数を元に勾配降下により z_2に更新することで学習する．G(z_Γ )が最も正常画像に近づけるために，z_γ(γ=1,2,…,Γ)を誤差逆伝播により更新する．
潜在空間への新しい画像のマッピングのための損失関数は2つの成分，Residual LossとDiscrimination Lossからなる．Residual Lossは，式(4)で生成画像G(z_γ)とクエリ画像xの間の視覚的な類似性を高める．
![スクリーンショット 2022-05-12 16.25.27.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2663514/45a0d731-b170-1c6c-e1cd-6e234d5a1808.png)

Discrimination Lossは生成画像と元画像をDiscriminatorの中間層を通した時の差である．この誤差関数によってより画像の潜在ベクトルを近づけようとする．
![スクリーンショット 2022-05-12 16.25.49.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2663514/45360065-eda0-b012-3140-c4160188cec1.png)

これらをまとめた以下の式を誤差関数として誤差逆伝播し，zの係数を学習する．これにより元画像に近い画像を生成できるような z を探す．
![スクリーンショット 2022-05-12 16.26.04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2663514/bda070bc-8f97-8765-2274-493d03b4c959.png)


### 評価
異常度の評価は式(7)によって行う．これは前の式(6)から直接導出できるものである．異常度合いとはできるだけ元画像に近い画像を生成できるようなベクトルによって生成した画像と元画像の誤差である．病変画像は大きな異常スコアとなる一方で，類似した画像が学習データ（正常データ）にあった画像は異常スコアが小さくなる．
![スクリーンショット 2022-05-12 16.26.22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2663514/936f74d9-116e-2ff7-59d9-9ebecce1647a.png)

## 実験
データセット
網膜の高解像度OCTデータ (496×512×49)
学習データ：網膜流体を含まない健常者270人分
テストデータ：網膜流体を含まない健常者10人分，網膜流体を含む病変部位ある人10人分　
64×64の画像として100万枚のパッチをランダムに抽出し，その内8192パッチをテストパッチとする
異常検出の性能評価として，以下の実験を行った．

### 実験1
本モデルが正常な画像を生成できるかどうかを定性的に検討した．この評価は，トレーニングセットまたはテストセットから抽出した健康な症例の画像パッチに対して行った．

### 実験2
アノテーションされたテストセットから抽出された画像に対して，本手法の異常検出精度を定量的に評価した．異常スコアA(x)，ResidualスコアR(x)とDiscriminationスコアD(x)またはどちらか一方のみ，に基づいて異常検出を行い，対応する異常検出性能の画像レベルでのROCを報告した．

### 実験3
個々の構成要素の役割と提案手法のメリットをより詳細に説明するために，多様体学習において，異常スコアの定義を変更しないまま，敵対的学習をDCGANではなく敵対的畳み込みオートエンコーダ（adversarial convolutional autoencoder, 以下aCAE）で行った場合の異常検出性能の影響を評価した．aCAEはDiscriminatorを実装するが，Generatorをオートエンコーダに置き換える．
また，ROC曲線上の最適なカットオフ値における感度，特異度，精度，再現率を算出し，AnoGANと比較手法との結果を報告する．

## 結果
#### 実験１：定性的評価
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2663514/1ff43a2a-e82b-951e-a603-40bcd62633e8.png)
図３　異常検知の定性的評価結果

図３の1行目は入力画像，2行目は対応ベクトルによる生成画像，3行目は残差を重ねたもの，赤がResidualスコアによるもの，黄色がDiscriminationスコアによるもの，4行目は病変のアノテーションである．また，左３列がトレーニングセット，次の３列がテストセットの正常画像，次の５列がテストセットの病変画像である．この図の正常画像と病変画像を比較すると，病変画像の方が残差（赤色の部分）が大きくなっていることが見てとれる．

### 実験２：定量的評価
定量的に表したのが図４である．Residualスコア，Discriminationスコアそれぞれの値の分布は，それぞれ図４（c）（d）のような結果となっており，正常画像と病変画像でのスコア分布がずれていることがみて取れる．
 
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2663514/893c3a4f-ea45-7ba3-0598-1e3f5a7c2e3f.png)
図4 定量的評価の結果

### 実験3：他のモデルとの比較
画像レベルのラベルに対してaCAE，P_D，GAN_R，AnoGAN の異常検知性能を評価した．その結果を表1にまとめ，対応するROC曲線を図4（a）に示す．aCAEはテスト時の実行時間の点で有利であるが，AnoGANと比較して異常検出では性能が悪かった．これは，aCAEのオートエンコーダが異常な画像に対しても適応してしまう傾向があることが原因である

表1 他の手法との比較
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2663514/542b4ed9-7ef1-5057-711f-1b9d7a0e785e.png)


## 結論
Deep Generative adversarial networksに基づく異常検知を提案した．この手法では生成モデルとDiscriminatorを同時に学習させることで，正常データに教師なし学習に基づいて，未知のデータに対する異常の識別を可能にする．その結果，網膜液やHRFなど，学習中に一度も検出されたことのない異常を検出できることが示された．したがって，このモデルは新規の異常を発見することが期待できる．先行研究とは対照的に，画像から潜在空間へのマッピングにおいて，Residual Lossのみを利用することで良い結果が得ることができた


### 参考文献
[1] Thomas Schlegl, Philipp Seeböck, Sebastian M. Waldstein, Ursula Schmidt-Erfurth, Georg Langs. “Unsupervised Anomaly Detection with Generative Adversarial Networks to Guide Marker Discovery” arXiv preprint arXiv:1703.05921, 2017.