Share
Embed
生成モデルの今までと異常検知への応用(GAN,anoGAN,ganomaly,efficient,skip))
体裁を整えたもの。まだ追加する予定。2020/10/30
Ringa_hyj
October 30, 2020
Transcript
73 slides
-
起こるかもしれない確率・範囲、 を基準に異常を判定する (確率分布を 仮定or求める) 例:混合正規分布, X-bar管理図 集団からの離れ具合、 を基準に異常を判定する (計算された空間中の距離を比較) 例:マハラノビス,
1C-SVM 異常検知とは 両者は概念の提案であって根本的には同じ -
離れ具合、確率 を計算する関数(model)A = A(・) データ X をモデル A に入れたときに出てくる値 A(X)
A(X) が基準 Φ よりも大きかったら異常 A(X) > Φ Φは基準であり、ヒューリスティックに決める 異常検知とは -
生成モデルのスタート地点としてAEを考える Auto encoder (science,2006,hinton) Reducing the Dimensionality of Data with
Neural Networks ニューラルネットを使って次元削減 手元の画像を入力として、画像自身を再構成する ネットワークを作る。 ネットワークは中央の層をくびれさせた構造をとることで、 高次元入力を低次元で表現できるようになる。 (ノイズ特徴量減・過学習防止) 再度同じ画像へ展開するために最低限必要な次元数(情報)を決めるのは難しい 主成分分析のような考え方。 抽出された中央の層は「潜在変数 Latent Variable」と呼ばれる。 潜在変数がどのようなパターンを持っているのか理解できれば、 元の画像がなくとも新しい画像が作れるのでは? = 生成モデルの考え 構造は全結合やReLU CNN 損失は再構成画像との L2 loss 2 Auto encoderの紹介 -
生成モデルの俯瞰 2017,Ian,NIPS 2016 Tutorial:Generative Adversarial Networks 再構成のための関数は最尤法によって求める 明示的(Explicit)に密度関数を仮定する場合と 暗黙的(Implicit)に密度関数など求めない場合 VAEは潜在変数を正規分布だと仮定する
正規分布に変換,当てはめ(近似)する (Markovでpdfを近似する場合もある) 分布をNN等で表す (Tractable)方法 GANはそもそも密度関数とか潜在変数に関係なく、 ゲーム理論的に2人のゲームプレイヤーが 互いに高め合うことで、 結果生成モデルができる 生成モデルの俯瞰 -
Pixel-RNN 2016, Pixel Recurrent Neural Networks,AVDoord 端のピクセルから横や下に伝播して情報を伝える。 (previous) 過去のピクセル値パターンから近傍ピクセルの情報を推定 大変生成が遅い。
(colabのGPUを借りてMNIST1epoc 30s, 自前CPUなら3000s) ピクセルが増えるともう… 図はBiLSTMのもの Pixel-RNN -
Pixel-CNN 2016, Conditional Image Generation with PixelCNN Decoders,AVDoord RNNが前後(previous)の関係であったものに対して、 CNNは周辺(region)の情報を見て次のピクセルの内容を推定する。
RNNに同じく大変遅い。 やっていることは 周辺ピクセルが得られた時 次のピクセル値を返す関数の尤度最大化 データの分布(関数)はNNによって表現される。 遅い対策として畳み込みゲートを追加する、スキップ構造を採用する等 Pixel-CNN -
D(x)が1(max)になるようにDを最適化 Z generator G(Z) discriminator G(Z)なら0 Xなら1を返す X 1-D(G(Z))が1(max)になるようにDを最適化 1-D(G(Z))が0(min)になるようにDを最適化
Generatorの気持ち: Discriminatorの気持ち: 敵対 乱数 GANのやりたいこと -
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の気持ち: 敵対 乱数 -
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の精度が上がる -
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^) ) -
generatorはupconvの構造 Unsupervised Representation Learning with Deep Convolutional Generative Adversarial Networks,
2016 図はDCGANの様子 ジェネレータ構造:DCGAN -
DCGANより all-conv-CNN ・mini-batch 128 ・データは正規化しておく(0,sd=0.2) ・leakyReLUの傾き0.2 ・adam最適化を使い、lr=0.0002, momentum = 0.5
STRIVING FORSIMPLICITY:THEALLCONVOLUTIONALNET, 2015, springberg DCGAN論文中での実験条件 -
モード崩壊 Mode Collapse UNROLLEDGENERATIVEADVERSARIALNETWORKS, L Metz,2017 generatorが同じような画像を生成し続けてしまう問題 同じような出力で止まっている ある一つの出力しかしなくなる 原因?
discriminatorを騙しやすい画像を見つけると、 そればかり生成して損失を小さくしようとしてしまう adaGAN VEEGAN WGAN UnrolledGAN などが解決に向けて研究している Mode Collapse -
PGGAN PROGRESSIVE GROWING OF GANS FOR IMPROVED QUALITY, STABILITY, AND
VARIATION, 2018 小さいサイズの画像を生成するネットワークから、 徐々に大きい画像生成ネットワークへと層を追加していく(PROGRESSIVE) 層を追加するといっても簡単に学習は進まないので、 学習途中に影響力を弱めた新しい層を挟み学習させる方法を使う 高精度の画像を作る事ができる その他GAN -
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 -
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 -
GANによって生成Gは潜在空間zからリアルな画像xをつくるための写像G(z)=z→xを学習した 逆写像をμとすると、μ(x)は潜在空間への写像だが、これはまだ得られていない 潜在空間は滑らかな遷移(smooth transitions)をもつので(DCGANの論文)、 潜在空間内の近い二点は近似した画像を生成することになる。 逆写像を求めることができれば、リアルな画像が潜在空間のどの位置に存在するのかを求めることができる こうすることで、潜在空間上で異常な部分や正常な部分が議論できる。 特徴量 空間 generator
G(Z) でも、潜在空間への逆写像を求めることが大変に難しい よって、G(Z)を生成するための新しい中間層を特徴量の後に作り、 そこで調節してもダメだったなら以上だろう、と判断する anoGAN -
Z空間からz1をサンプリングする 学習済み生成器に入れて画像を生成する G(z1) 損失関数を小さくするように次のz2を選ぶ これをガンマ回繰り返す residual loss 生成画像G(zガンマ) と 画像x
の類似度を比較 discrimination loss 生成画像G(zガンマ) と 多様体カイ上の比較?? anoGAN-アルゴリズム -
Residual Loss 画像 x と G(zガンマ) の非類似度の測定 完璧な生成器ならば、その写像は全く同じ画像をつくるので損失は0になる Discrimination Loss
G(zガンマ)をdiscriminatorに入れる。D(G(zガンマ)) α=1として シグモイドエントロピー σ() を計算する。 でもコレは使わないらしい (つかった実装も示されていない) anoGAN-アルゴリズム -
feature matchingのアイデア 生成器の訓練を目的とせず、潜在空間へのマッピングのためにfeature matchingをつかう discriminator lossは以下を提案する 異常のlossから逆写像が求まらない代わりに、 discriminatorの最終層の値って潜在空間のように考えられそうだよね。 って考えから特徴量(最終層の出力)は、元の画像の特性をよく表していることが期待できるので、 これを利用する
中間層の出力 f() は調整前の中間層の値? 以上からzの係数を最適化する ←再学習はさせない? 最適化の実装がみつからない そのための加重和の損失 これが潜在空間へのマッピングに使用される損失関数 anoGAN-アルゴリズム -
anoGANは 逆写像を求められないので、入力ノイズとジェネレータの間で、 正常画像に特化した重み層を作り出し、潜在空間を疑似的に調整した。 毎回?重み層を探索する必要があるので、遅い efficientganは逆写像に相当する部分もNNによって再現することでのアプローチを行う この「逆写像NNはエンコーダー」と呼ばれ、正常画像xを潜在空間に写像する エンコーダーはG,Dとともに学習される。 そのため、検証時に重み層を探索するような計算コストは必要ない この考え方は主にBiGAN(Adversarial Feature
Learning,2016)に触発されたもの 同時に学習する枠組みは以下 efficient-gan -
異常度は 最高性損失 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 -
画像空間から潜在空間への逆写像をするエンコーダーも学習 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 -
GANOMALY, 2018 正常画像はおおくとも異常画像は少ない モデル f は正常画像の分布pXを学習し、 画像に対して異常スコア A(X) を返すことが望ましい A(X)がφよりも大きければ異常とする
学習時にはこのスコアを最小にするように進める という考えはいつも通り GANOMALY -
GANとは ・ペアネットワークの共訓練 ・潜在空間から画像を生成する anoGANでは ・潜在ベクトルがデータの真の分布であれば、画像から潜在空間への逆写像を行うことで、潜在空間上の距離 を比べたら異常度の指標になるだろう という考え ・ただ、この逆写像関数を求めるのが非常に困難 ・調整層を追加して擬似的に潜在空間を作り出し、差分を確認する ・BiGANがこの逆写像を学習させることに成功した(MNISTだけです)ことで、anoGANが早くなった
Adversarial Feature Learning, 2017 Efficient GAN-Based Anomaly Detection 2019 [EGBAD] 最近では2つのC-GAN(クラス別条件付き)を使ったアプローチによる異常検知も成果を上げている Training Adversarial Discriminators for Cross-channel Abnormal Event Detection in Crowds, 2018 GANOMALY:今までのおさらい -
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の関係論文 -
Towards Automatic Threat Detection: A Survey of Advances of Deep
Learning within X-ray Security Imaging, 2020 -
Modeling the Distribution of Normal Data in Pre-Trained Deep Features
for Anomaly Detection 2020 (efficianNetのADを超えた最近pubされたもの) -
参考 https://francisleon.github.io/2018/07/23/semi-supervised-seg-GAN/ https://guimperarnau.com/blog/2017/03/Fantastic-GANs-and-where-to-find-them https://blog.negativemind.com/2019/10/05/conditional-gan/ https://jaan.io/what-is-variational-autoencoder-vae-tutorial/ https://wiseodd.github.io/techblog/2016/12/10/variational-autoencoder/ https://towardsdatascience.com/auto-regressive-generative-models-pixelrnn-pixelcnn- 32d192911173https://keras.io/examples/generative/pixelcnn/ https://isabelaalb.wordpress.com/2017/03/07/first-results-l1-vs-l2-loss-cnn-autoencoder/ http://cs231n.stanford.edu/slides/2017/cs231n_2017_lecture13.pdf
https://www.renom.jp/ja/notebooks/tutorial/generative-model/VAE/notebook.html https://www.slideshare.net/yuifu/ss-49489128https://qiita.com/takuro- Ishida/items/2ecfafc679260211a0ab https://machinethink.net/blog/coreml-upsampling/ https://cedar.buffalo.edu/~srihari/CSE676/22.3-GAN%20Mode%20Collapse.pdf