SlideShare une entreprise Scribd logo
1  sur  19
Télécharger pour lire hors ligne
敵対的⽣成ネットワーク(GAN)
2020/1/10
Contents
▪ ニューラルネットワークの学習
▪ 敵対的⽣成ネットワーク(GAN)
▪ GANによる異常検知
2
ニューラルネットワークの学習
3
▪ ニューラルネットワークの学習
=パラメタの更新
▪ どうやって学習する︖
▪ 損失関数(loss)を設定しそれが⼩さくなるように
誤差逆伝播法で重みを更新していく
▪ 例︓クロスエントロピー誤差
𝐿(𝒚, 𝒕) = − ∑* 𝑡*log 𝑦*
▪ ニューラルネットワークの重要な要素
▪ ネットワーク構造
▪ 損失関数
𝑊1
𝑊2
𝒙
𝒉
𝒚
𝒉 = 𝑓 𝑊1 𝒙 + 𝒃 𝟏
𝒚 = 𝑔(𝑊2 𝒉 + 𝒃 𝟐)
0.3
0.7
𝒕
0
1
教師
ラベル
敵対的⽣成ネットワーク(GAN):
Generative Adversarial Network [Goodfellow+ 14]
▪ 画像⽣成分野で注⽬されている
ニューラルネットワークの⼀種
▪ 学習データの特徴を学習して
それっぽい画像を⽣成することができる
▪ 2つのネットワークから成る
▪ Generator: ランダムノイズから画像を⽣成する
▪ Discriminator: 画像が本物か偽物かを識別する
4
敵対的⽣成ネットワーク(GAN):
ネットワーク構造
5
Generator
Discriminator
𝑍
1 (Real)
or
0 (Fake)
⽬標:
Dに本物だと誤認識させる
ような画像を⽣成する
⽬標:
本物と偽物を⾒分ける
Real画像
Fake画像
潜在変数
(noise)
Generatorの学習
▪ ⼆つのネットワークを交互に更新していく
敵対的⽣成ネットワーク(GAN):
損失関数
6
Real画像に関する項 Fake画像に関する項
DがReal画像を正しく
認識できるほど
(=𝐷(𝑥)が1に近いほど)
⼤きくなる
DがFake画像を正しく
認識できるほど
(=𝐷(𝐺(𝑧))が0に近いほど)
⼤きくなる
GがDを誤認識させるほど
(=𝐷(𝐺(𝑧))が1に近いほど)
⼩さくなる
Discriminatorの学習
GANによる異常検知:
AnoGAN [Schlegl+ 17]
▪ GANを⽤いた教師なし異常検知の
先駆けとなった論⽂
▪ 仮説︓
正常データのみで学習した場合
GANは潜在空間上の𝑧から
異常データを⽣成することができない
▪ ⇨ 画像を潜在空間上に逆写像して
得られた𝑧から元画像が復元できれば正常
できなければ異常と判断
7
GAN: 潜在空間𝑧から観測空間𝑥に写像する𝐺(𝑧)を学習
GANによる異常検知:
AnoGAN [Schlegl+ 17]
▪ 異常検知アルゴリズム
1. GANを正常画像のみで学習
2. 判定したい画像𝑥を潜在空間上の点𝑧@に逆写像
3. 点𝑧Aから画像を⽣成(𝐺(𝑧@)を計算)
4. 元画像𝑥と⽣成画像𝐺(𝑧@)を⽐較して差が⼀定以上であれば異常と判断
8
正常画像
異常画像
2. 潜在空間に
逆写像
𝑧@
𝑧@′
1. 正常画像のみで
学習したGANの
Generator
3. 復元
4. 元画像との
差分をとる
GANによる異常検知:
AnoGAN [Schlegl+ 17]
▪ 異常検知アルゴリズム
1.
2. 判定したい画像𝑥を潜在空間上の点𝑧@に逆写像
3.
4.
9
正常画像
異常画像
2. 潜在空間に
逆写像
𝑧@
𝑧@′
1. 正常画像のみで
学習したGANの
Generator
逆写像はどうやって
求める︖
GANによる異常検知:
AnoGAN [Schlegl+ 17]
▪ 逆写像を求めることは困難…
▪ ⇨ 損失関数を導⼊して最適な𝑧@を勾配法で探索する
▪ Residual Loss: ⽣成画像と元画像の(直接的な)差
▪ Discrimination Loss: ⽣成画像と元画像の特徴量の差
(𝑓はDiscriminatorの中間層の出⼒)
10
正常画像で
学習した
Discriminator
𝑥
中間層
Real / Fake
特徴量 SDTestと同じ
GANによる異常検知:
AnoGAN [Schlegl+ 17]
▪ 勾配法とは…
▪ 解析的に解けない(微分が厳しいなど)ような関数の最⼩値や最⼤値を求めるためのアルゴリズム
▪ 関数𝑓(𝑥)の最⼩値を求めるとすると
1. 初期値𝑥を定める
2. 値𝑥における𝑓の傾き
CD
CE
を数値微分で求める
3. 傾きと学習率𝜂にもとに𝑥を更新
𝑥 ← 𝑥 − 𝜂
CD
CE
4. 傾きが0となる𝑥 を⾒つけるまで2〜3を繰り返す
11
GANによる異常検知:
AnoGAN [Schlegl+ 17]
12
▪ 異常検知アルゴリズム(訂正版)
1. GANを正常画像のみで学習
2. 判定したい画像𝑥に近い画像を⽣成できる点𝑧@を勾配法で求める
i. 初期値𝑧@を定める
ii. 損失関数𝐿(𝑧@)を計算し傾きを求める
iii. 傾きと学習率をもとに𝑧@を更新
iv. 傾きが0となる𝑧@ を⾒つけるまでii〜iiiを繰り返す
3. 点𝑧Aから画像を⽣成(𝐺(𝑧@)を計算)
4. 元画像𝑥と⽣成画像𝐺(𝑧@)を⽐較して差が⼀定以上であれば異常と判断
▪ Anomaly Score: 𝐴 𝑥 = 𝐿(𝑧@)
解決︕
GANによる異常検知:
AnoGAN [Schlegl+ 17]
▪ 異常検知アルゴリズム(訂正版)
1. GANを正常画像のみで学習
2. 判定したい画像𝑥に近い画像を⽣成できる点𝑧@を勾配法で求める
i. 初期値𝑧@を定める
ii. 損失関数𝐿(𝑧@)を計算し傾きを求める
iii. 傾きと学習率をもとに𝑧@を更新
iv. 傾きが0となる𝑧@ を⾒つけるまでii〜iiiを繰り返す
3. 点𝑧Aから画像を⽣成(𝐺(𝑧@)を計算)
4. 元画像𝑥と⽣成画像𝐺(𝑧@)を⽐較して差が⼀定以上であれば異常と判断
▪ Anomaly Score: 𝐴 𝑥 = 𝐿(𝑧@)
13
問題点:
時間がかかる…
GANによる異常検知:
Efficient GAN [Zenati+ 18]
▪ AnoGANの改良版
▪ GANのネットワークに画像𝑥から潜在変数𝑧を求めるEncoderを追加(BiGANという)
▪ ⇨ 𝑧@の探索時に時間がかかってしまう問題を解決
▪ Discriminatorは画像と潜在変数のペアを⼊⼒として(𝑥, 𝐸(𝑥)) / (𝐺(𝑧), 𝑧)を識別
14
1 (𝑥, 𝐸(𝑥))
or
0 (𝐺(𝑧), 𝑧)
Realペア Fakeペア
Realペア
Fakeペア
GANによる異常検知:
Efficient GAN [Zenati+ 18]
▪ 損失関数
15
Generatorの学習
Realペア(𝑥, 𝐸(𝑥))に関する項 Fakeペア(𝐺(𝑧), 𝑧)に関する項
Discriminatorの学習
DがRealペアを正しく
認識できるほど
(=𝐷(𝑥, 𝐸(𝑥))が1に近いほど)
⼤きくなる
DがFakeペアを正しく
認識できるほど
(=𝐷(𝐺(𝑧), 𝑧)が0に近いほど)
⼤きくなる
GがDを誤認識させるほど
(=𝐷(𝐺(𝑧), 𝑧)が1に近いほど)
⼩さくなる
Encoderの学習
EがDを誤認識させるほど
(=𝐷(𝑥, 𝐸(𝑥))が0に近いほど)
⼩さくなる
GANによる異常検知:
Efficient GAN [Zenati+ 18]
▪ 異常検知アルゴリズム
1. GANを正常画像のみで学習
2. 判定したい画像𝑥を潜在空間上の点𝑧@ = 𝐸(𝑥)を得る
3. 点𝑧Aから画像を⽣成(𝐺(𝑧@)を計算)
4. 元画像𝑥と⽣成画像𝐺(𝑧@)を⽐較して差が⼀定以上であれば異常と判断
▪ Anomaly Score:
▪ : ⽣成画像と元画像の(直接的な)差
▪ : ⽣成画像と元画像の特徴量の差
(𝑓JはDiscriminatorの中間層の出⼒)
16
⼀発で終わり︕
まとめ
▪ GAN: GeneratorとDiscriminatorの⼆つのネットワークを競わせて学習させるモデル
▪ GANによる異常検知
▪ アイデア: 正常画像のみで学習したGANは異常画像を復元できないのでは︖
▪ ⇨ 画像を潜在空間上の点に逆写像し、それをさらに復元して⽐較することで正常/異常を判定
▪ 潜在変数𝑧の求め⽅
▪ AnoGAN: 損失関数を設定し勾配法で求める
▪ Efficient GAN: 画像から潜在変数を求めるEncoderをGANに追加して学習
17
以上です︕
参考⽂献
▪ Generative Adversarial Nets
http://papers.nips.cc/paper/5423-generative-adversarial-nets
▪ Unsupervised Anomaly Detection with Generative Adversarial
Networks to Guide Marker Discovery
https://arxiv.org/abs/1703.05921
▪ Efficient GAN-Based Anomaly Detection
https://arxiv.org/abs/1802.06222
▪ Adversarial Feature Learning https://arxiv.org/abs/1605.09782
▪ 異常検知とGANのまとめ(ベースとなっている論⽂のおさらい)
https://note.com/koichirot11/n/n24151f3c7af8
18
参考⽂献(画像拝借)
▪ [簡単に分かる] プログラミング⾔語「Python」を使ったニューラルネットワークの作り⽅
https://ai-kenkyujo.com/2017/09/14/python-nn/
▪ 本物はどれ︖ AIが⽣成した「顔」がリアルすぎて最終形態に突⼊
https://nazology.net/archives/26831
▪ Deep Learningで「いらすとや⾵⼈間画像⽣成モデル」を作った話(DCGAN、
Wasserstein GAN)
https://mickey24.hatenablog.com/entry/irasutoya_deep_learning
▪ AnoGANの論⽂を読んでMNISTの異常検知をしてみた
https://qiita.com/NakaokaRei/items/231ec4efe42dfe79d1ff
▪ 誤差逆伝播法をはじめからていねいに
https://qiita.com/43x2/items/50b55623c890564f1893
19

Contenu connexe

Tendances

[DL輪読会]Pay Attention to MLPs (gMLP)
[DL輪読会]Pay Attention to MLPs	(gMLP)[DL輪読会]Pay Attention to MLPs	(gMLP)
[DL輪読会]Pay Attention to MLPs (gMLP)Deep Learning JP
 
[DL輪読会]Life-Long Disentangled Representation Learning with Cross-Domain Laten...
[DL輪読会]Life-Long Disentangled Representation Learning with Cross-Domain Laten...[DL輪読会]Life-Long Disentangled Representation Learning with Cross-Domain Laten...
[DL輪読会]Life-Long Disentangled Representation Learning with Cross-Domain Laten...Deep Learning JP
 
[DL輪読会]逆強化学習とGANs
[DL輪読会]逆強化学習とGANs[DL輪読会]逆強化学習とGANs
[DL輪読会]逆強化学習とGANsDeep Learning JP
 
猫でも分かるVariational AutoEncoder
猫でも分かるVariational AutoEncoder猫でも分かるVariational AutoEncoder
猫でも分かるVariational AutoEncoderSho Tatsuno
 
深層生成モデルと世界モデル
深層生成モデルと世界モデル深層生成モデルと世界モデル
深層生成モデルと世界モデルMasahiro Suzuki
 
画像処理AIを用いた異常検知
画像処理AIを用いた異常検知画像処理AIを用いた異常検知
画像処理AIを用いた異常検知Hideo Terada
 
[DL輪読会]When Does Label Smoothing Help?
[DL輪読会]When Does Label Smoothing Help?[DL輪読会]When Does Label Smoothing Help?
[DL輪読会]When Does Label Smoothing Help?Deep Learning JP
 
Jubatus Casual Talks #2 異常検知入門
Jubatus Casual Talks #2 異常検知入門Jubatus Casual Talks #2 異常検知入門
Jubatus Casual Talks #2 異常検知入門Shohei Hido
 
[DL輪読会]Understanding deep learning requires rethinking generalization
[DL輪読会]Understanding deep learning requires rethinking generalization[DL輪読会]Understanding deep learning requires rethinking generalization
[DL輪読会]Understanding deep learning requires rethinking generalizationDeep Learning JP
 
Generative Models(メタサーベイ )
Generative Models(メタサーベイ )Generative Models(メタサーベイ )
Generative Models(メタサーベイ )cvpaper. challenge
 
Bayesian Neural Networks : Survey
Bayesian Neural Networks : SurveyBayesian Neural Networks : Survey
Bayesian Neural Networks : Surveytmtm otm
 
[DL輪読会]Understanding Black-box Predictions via Influence Functions
[DL輪読会]Understanding Black-box Predictions via Influence Functions [DL輪読会]Understanding Black-box Predictions via Influence Functions
[DL輪読会]Understanding Black-box Predictions via Influence Functions Deep Learning JP
 
Deep Learningと画像認識   ~歴史・理論・実践~
Deep Learningと画像認識 ~歴史・理論・実践~Deep Learningと画像認識 ~歴史・理論・実践~
Deep Learningと画像認識   ~歴史・理論・実践~nlab_utokyo
 
Deeplearning輪読会
Deeplearning輪読会Deeplearning輪読会
Deeplearning輪読会正志 坪坂
 
[DL輪読会]相互情報量最大化による表現学習
[DL輪読会]相互情報量最大化による表現学習[DL輪読会]相互情報量最大化による表現学習
[DL輪読会]相互情報量最大化による表現学習Deep Learning JP
 
[DL輪読会]Wasserstein GAN/Towards Principled Methods for Training Generative Adv...
[DL輪読会]Wasserstein GAN/Towards Principled Methods for Training Generative Adv...[DL輪読会]Wasserstein GAN/Towards Principled Methods for Training Generative Adv...
[DL輪読会]Wasserstein GAN/Towards Principled Methods for Training Generative Adv...Deep Learning JP
 
モデル高速化百選
モデル高速化百選モデル高速化百選
モデル高速化百選Yusuke Uchida
 
[DL輪読会]PointNet++: Deep Hierarchical Feature Learning on Point Sets in a Metr...
[DL輪読会]PointNet++: Deep Hierarchical Feature Learning on Point Sets in a Metr...[DL輪読会]PointNet++: Deep Hierarchical Feature Learning on Point Sets in a Metr...
[DL輪読会]PointNet++: Deep Hierarchical Feature Learning on Point Sets in a Metr...Deep Learning JP
 
Curriculum Learning (関東CV勉強会)
Curriculum Learning (関東CV勉強会)Curriculum Learning (関東CV勉強会)
Curriculum Learning (関東CV勉強会)Yoshitaka Ushiku
 
Sliced Wasserstein Distance for Learning Gaussian Mixture Models
Sliced Wasserstein Distance for Learning Gaussian Mixture ModelsSliced Wasserstein Distance for Learning Gaussian Mixture Models
Sliced Wasserstein Distance for Learning Gaussian Mixture ModelsFujimoto Keisuke
 

Tendances (20)

[DL輪読会]Pay Attention to MLPs (gMLP)
[DL輪読会]Pay Attention to MLPs	(gMLP)[DL輪読会]Pay Attention to MLPs	(gMLP)
[DL輪読会]Pay Attention to MLPs (gMLP)
 
[DL輪読会]Life-Long Disentangled Representation Learning with Cross-Domain Laten...
[DL輪読会]Life-Long Disentangled Representation Learning with Cross-Domain Laten...[DL輪読会]Life-Long Disentangled Representation Learning with Cross-Domain Laten...
[DL輪読会]Life-Long Disentangled Representation Learning with Cross-Domain Laten...
 
[DL輪読会]逆強化学習とGANs
[DL輪読会]逆強化学習とGANs[DL輪読会]逆強化学習とGANs
[DL輪読会]逆強化学習とGANs
 
猫でも分かるVariational AutoEncoder
猫でも分かるVariational AutoEncoder猫でも分かるVariational AutoEncoder
猫でも分かるVariational AutoEncoder
 
深層生成モデルと世界モデル
深層生成モデルと世界モデル深層生成モデルと世界モデル
深層生成モデルと世界モデル
 
画像処理AIを用いた異常検知
画像処理AIを用いた異常検知画像処理AIを用いた異常検知
画像処理AIを用いた異常検知
 
[DL輪読会]When Does Label Smoothing Help?
[DL輪読会]When Does Label Smoothing Help?[DL輪読会]When Does Label Smoothing Help?
[DL輪読会]When Does Label Smoothing Help?
 
Jubatus Casual Talks #2 異常検知入門
Jubatus Casual Talks #2 異常検知入門Jubatus Casual Talks #2 異常検知入門
Jubatus Casual Talks #2 異常検知入門
 
[DL輪読会]Understanding deep learning requires rethinking generalization
[DL輪読会]Understanding deep learning requires rethinking generalization[DL輪読会]Understanding deep learning requires rethinking generalization
[DL輪読会]Understanding deep learning requires rethinking generalization
 
Generative Models(メタサーベイ )
Generative Models(メタサーベイ )Generative Models(メタサーベイ )
Generative Models(メタサーベイ )
 
Bayesian Neural Networks : Survey
Bayesian Neural Networks : SurveyBayesian Neural Networks : Survey
Bayesian Neural Networks : Survey
 
[DL輪読会]Understanding Black-box Predictions via Influence Functions
[DL輪読会]Understanding Black-box Predictions via Influence Functions [DL輪読会]Understanding Black-box Predictions via Influence Functions
[DL輪読会]Understanding Black-box Predictions via Influence Functions
 
Deep Learningと画像認識   ~歴史・理論・実践~
Deep Learningと画像認識 ~歴史・理論・実践~Deep Learningと画像認識 ~歴史・理論・実践~
Deep Learningと画像認識   ~歴史・理論・実践~
 
Deeplearning輪読会
Deeplearning輪読会Deeplearning輪読会
Deeplearning輪読会
 
[DL輪読会]相互情報量最大化による表現学習
[DL輪読会]相互情報量最大化による表現学習[DL輪読会]相互情報量最大化による表現学習
[DL輪読会]相互情報量最大化による表現学習
 
[DL輪読会]Wasserstein GAN/Towards Principled Methods for Training Generative Adv...
[DL輪読会]Wasserstein GAN/Towards Principled Methods for Training Generative Adv...[DL輪読会]Wasserstein GAN/Towards Principled Methods for Training Generative Adv...
[DL輪読会]Wasserstein GAN/Towards Principled Methods for Training Generative Adv...
 
モデル高速化百選
モデル高速化百選モデル高速化百選
モデル高速化百選
 
[DL輪読会]PointNet++: Deep Hierarchical Feature Learning on Point Sets in a Metr...
[DL輪読会]PointNet++: Deep Hierarchical Feature Learning on Point Sets in a Metr...[DL輪読会]PointNet++: Deep Hierarchical Feature Learning on Point Sets in a Metr...
[DL輪読会]PointNet++: Deep Hierarchical Feature Learning on Point Sets in a Metr...
 
Curriculum Learning (関東CV勉強会)
Curriculum Learning (関東CV勉強会)Curriculum Learning (関東CV勉強会)
Curriculum Learning (関東CV勉強会)
 
Sliced Wasserstein Distance for Learning Gaussian Mixture Models
Sliced Wasserstein Distance for Learning Gaussian Mixture ModelsSliced Wasserstein Distance for Learning Gaussian Mixture Models
Sliced Wasserstein Distance for Learning Gaussian Mixture Models
 

Plus de TRUE_RUTILEA

RUTILEA社内勉強会第8回 「シリアル通信」
RUTILEA社内勉強会第8回 「シリアル通信」RUTILEA社内勉強会第8回 「シリアル通信」
RUTILEA社内勉強会第8回 「シリアル通信」TRUE_RUTILEA
 
RUTILEA社内勉強会第7回 「LSTMを用いた異常検知」
RUTILEA社内勉強会第7回 「LSTMを用いた異常検知」RUTILEA社内勉強会第7回 「LSTMを用いた異常検知」
RUTILEA社内勉強会第7回 「LSTMを用いた異常検知」TRUE_RUTILEA
 
RUTILEA社内勉強会第6回 「超解像」
RUTILEA社内勉強会第6回 「超解像」RUTILEA社内勉強会第6回 「超解像」
RUTILEA社内勉強会第6回 「超解像」TRUE_RUTILEA
 
RUTILEA社内勉強会第5回 「強化学習」
RUTILEA社内勉強会第5回 「強化学習」RUTILEA社内勉強会第5回 「強化学習」
RUTILEA社内勉強会第5回 「強化学習」TRUE_RUTILEA
 
RUTILEA社内勉強会第2回 「多重検定」
RUTILEA社内勉強会第2回 「多重検定」RUTILEA社内勉強会第2回 「多重検定」
RUTILEA社内勉強会第2回 「多重検定」TRUE_RUTILEA
 
RUTILEA社内勉強会第1回 「転移学習」
RUTILEA社内勉強会第1回 「転移学習」RUTILEA社内勉強会第1回 「転移学習」
RUTILEA社内勉強会第1回 「転移学習」TRUE_RUTILEA
 
RUTILEA社内勉強会第3回 「意外な統計」
RUTILEA社内勉強会第3回 「意外な統計」RUTILEA社内勉強会第3回 「意外な統計」
RUTILEA社内勉強会第3回 「意外な統計」TRUE_RUTILEA
 

Plus de TRUE_RUTILEA (7)

RUTILEA社内勉強会第8回 「シリアル通信」
RUTILEA社内勉強会第8回 「シリアル通信」RUTILEA社内勉強会第8回 「シリアル通信」
RUTILEA社内勉強会第8回 「シリアル通信」
 
RUTILEA社内勉強会第7回 「LSTMを用いた異常検知」
RUTILEA社内勉強会第7回 「LSTMを用いた異常検知」RUTILEA社内勉強会第7回 「LSTMを用いた異常検知」
RUTILEA社内勉強会第7回 「LSTMを用いた異常検知」
 
RUTILEA社内勉強会第6回 「超解像」
RUTILEA社内勉強会第6回 「超解像」RUTILEA社内勉強会第6回 「超解像」
RUTILEA社内勉強会第6回 「超解像」
 
RUTILEA社内勉強会第5回 「強化学習」
RUTILEA社内勉強会第5回 「強化学習」RUTILEA社内勉強会第5回 「強化学習」
RUTILEA社内勉強会第5回 「強化学習」
 
RUTILEA社内勉強会第2回 「多重検定」
RUTILEA社内勉強会第2回 「多重検定」RUTILEA社内勉強会第2回 「多重検定」
RUTILEA社内勉強会第2回 「多重検定」
 
RUTILEA社内勉強会第1回 「転移学習」
RUTILEA社内勉強会第1回 「転移学習」RUTILEA社内勉強会第1回 「転移学習」
RUTILEA社内勉強会第1回 「転移学習」
 
RUTILEA社内勉強会第3回 「意外な統計」
RUTILEA社内勉強会第3回 「意外な統計」RUTILEA社内勉強会第3回 「意外な統計」
RUTILEA社内勉強会第3回 「意外な統計」
 

RUTILEA社内勉強会第4回 「敵対的生成ネットワーク(GAN)」