Upgrade to Pro — share decks privately, control downloads, hide ads and more …

生成モデルの今までと異常検知への応用(GAN,anoGAN,ganomaly,efficien...

Ringa_hyj
October 30, 2020
2.3k

 生成モデルの今までと異常検知への応用(GAN,anoGAN,ganomaly,efficient,skip))

体裁を整えたもの。まだ追加する予定。2020/10/30

Ringa_hyj

October 30, 2020
Tweet

Transcript

  1. 離れ具合、確率 を計算する関数(model)A = A(・) データ X をモデル A に入れたときに出てくる値 A(X)

    A(X) が基準 Φ よりも大きかったら異常 A(X) > Φ Φは基準であり、ヒューリスティックに決める 異常検知とは
  2. 生成モデルのスタート地点としてAEを考える Auto encoder (science,2006,hinton) Reducing the Dimensionality of Data with

    Neural Networks ニューラルネットを使って次元削減 手元の画像を入力として、画像自身を再構成する ネットワークを作る。 ネットワークは中央の層をくびれさせた構造をとることで、 高次元入力を低次元で表現できるようになる。 (ノイズ特徴量減・過学習防止) 再度同じ画像へ展開するために最低限必要な次元数(情報)を決めるのは難しい 主成分分析のような考え方。 抽出された中央の層は「潜在変数 Latent Variable」と呼ばれる。 潜在変数がどのようなパターンを持っているのか理解できれば、 元の画像がなくとも新しい画像が作れるのでは? = 生成モデルの考え 構造は全結合やReLU CNN 損失は再構成画像との L2 loss 2 Auto encoderの紹介
  3. 生成モデルの俯瞰 2017,Ian,NIPS 2016 Tutorial:Generative Adversarial Networks 再構成のための関数は最尤法によって求める 明示的(Explicit)に密度関数を仮定する場合と 暗黙的(Implicit)に密度関数など求めない場合 VAEは潜在変数を正規分布だと仮定する

    正規分布に変換,当てはめ(近似)する (Markovでpdfを近似する場合もある) 分布をNN等で表す (Tractable)方法 GANはそもそも密度関数とか潜在変数に関係なく、 ゲーム理論的に2人のゲームプレイヤーが 互いに高め合うことで、 結果生成モデルができる 生成モデルの俯瞰
  4. Pixel-CNN 2016, Conditional Image Generation with PixelCNN Decoders,AVDoord RNNが前後(previous)の関係であったものに対して、 CNNは周辺(region)の情報を見て次のピクセルの内容を推定する。

    RNNに同じく大変遅い。 やっていることは 周辺ピクセルが得られた時 次のピクセル値を返す関数の尤度最大化 データの分布(関数)はNNによって表現される。 遅い対策として畳み込みゲートを追加する、スキップ構造を採用する等 Pixel-CNN
  5. GAN

  6. D(x)が1(max)になるようにDを最適化 Z generator G(Z) discriminator G(Z)なら0 Xなら1を返す X discriminatorが訓練される →

    偽物と本物がわかる 1-D(G(Z))が1(max)になるようにDを最適化 1-D(G(Z))が0(min)になるようにDを最適化 Generatorの気持ち: Discriminatorの気持ち: 敵対 乱数
  7. D(x)が1(max)になるようにDを最適化 Z generator G(Z) discriminator G(Z)なら0 Xなら1を返す X 訓練されたdiscriminatorを騙そうとgeneratorが頑張る →

    より本物らしい画像が生成される 1-D(G(Z))が1(max)になるようにDを最適化 1-D(G(Z))が0(min)になるようにDを最適化 Generatorの気持ち: Discriminatorの気持ち: 敵対 乱数 理論的なゴールはdiscriminatorが0.5を出すようになること(ナッシュ均衡) 本物と偽物の区別がつかないくらいgeneratorの精度が上がる
  8. min-max損失の欠点 log(1-D(G(z))) D(G(z)) 0 1 生成画像が明らかにfakeである時、 D()の出力は0になる しかし損失関数の購買はほとんど0 なので学習は進まない 0

    0 0 D(G(z)) 1 - log D(G(z)) 非飽和GAN(non-saturating) の損失の場合 初期状態の学習は素早く反映される (代わりに収束する補償はなくなる) binary cross entropy : y(log y^) + (1-y)(log (1-y^) )
  9. モード崩壊 Mode Collapse UNROLLEDGENERATIVEADVERSARIALNETWORKS, L Metz,2017 generatorが同じような画像を生成し続けてしまう問題 同じような出力で止まっている ある一つの出力しかしなくなる 原因?

    discriminatorを騙しやすい画像を見つけると、 そればかり生成して損失を小さくしようとしてしまう adaGAN VEEGAN WGAN UnrolledGAN などが解決に向けて研究している Mode Collapse
  10. PGGAN PROGRESSIVE GROWING OF GANS FOR IMPROVED QUALITY, STABILITY, AND

    VARIATION, 2018 小さいサイズの画像を生成するネットワークから、 徐々に大きい画像生成ネットワークへと層を追加していく(PROGRESSIVE) 層を追加するといっても簡単に学習は進まないので、 学習途中に影響力を弱めた新しい層を挟み学習させる方法を使う 高精度の画像を作る事ができる その他GAN
  11. pix2pix Image-to-Image Translation with Conditional Adversarial Networks, 2018 cycle GAN

    Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks, 2017→2020 image-to-imageのGAN 線画→色付き シマウマ→縞なし 写真→ゴッホの画風 GANを二本用意して逆方向に走らせることで実現 その他GAN
  12. anoGAN GANをつかった異常検知の初めての例 らしい Unsupervised Anomaly Detection with Generative Adversarial Networks

    to Guide Marker Discovery, 2017 異常位置のアノテーション無しでも(特徴量空間の差異を可視化したら) 異常部位のマーカーを付けることができる 異常度の診断は、特徴空間上での離れ具合についてで判断される。 この以前の画像異常検知の研究では 世の中にはDBN(ディープビリーフネット)から特徴量を抽出して1classSVMで異常検知を行うアプローチもあった High-dimensional and large-scale anomaly detection using a linearone-class SVM with deep learning, Erfani, 2016 畳み込みAE+SVMでの正常学習とか Identifying and Categorizing Anomalies in Retinal Imaging Data anoGAN
  13. Residual Loss 画像 x と G(zガンマ) の非類似度の測定 完璧な生成器ならば、その写像は全く同じ画像をつくるので損失は0になる Discrimination Loss

    G(zガンマ)をdiscriminatorに入れる。D(G(zガンマ)) α=1として シグモイドエントロピー σ() を計算する。 でもコレは使わないらしい (つかった実装も示されていない) anoGAN-アルゴリズム
  14. 異常度は 最高性損失 LG 識別機の損失 LD 二つの損失が定義できる どっち使ってもいい から、anoGANのように以下で定義する LG(x) =

    ||x − G(E(x))||1 LD(x) =σ(D(x, E(x)), 1) LD(x) = ||fD(x, E(x)) − fD(G(E(x)), E(x))||1 サンプルが実データの分布から来た事を評価 feature-matching lossとして定義 再構成するときの特徴量が真の特徴量と似ているかどうかを評価できる efficient-gan
  15. 画像空間から潜在空間への逆写像をするエンコーダーも学習 anoGANもそうだけど、画像の異常は潜在空間にも表れるだろうという考えがある(feature matching) 原文「abnormal samples differ from normality in not

    only high-dimensional image space but also with lower-dimensional latent space」 anoGANは事前に学習させたネットワークと調整層を使い、判定のために再度学習させ無理やり復元、 ここの学習に時間がかかり、efficientでなかった。 efficient-gan
  16. GAN + 1C-SVM : Adversarially Learned One-Class Classifier for Novelty

    Detection, 2016 GANより簡単の特徴量を使ったものだと Learning Deep Features for One-Class Classification、2018 があって、こっちは異常が画像の差分として出てくるので、異常部分の可視化ができる 再構築した画像が 「正常から再構成された画像」か「異常から再構成された画像」か を判定するCNNをGANの後ろにくっつけたもの 1C-SVMとGANの関係論文
  17. Towards Automatic Threat Detection: A Survey of Advances of Deep

    Learning within X-ray Security Imaging, 2020
  18. Modeling the Distribution of Normal Data in Pre-Trained Deep Features

    for Anomaly Detection 2020 (efficianNetのADを超えた最近pubされたもの)