Upload
-
View
90
Download
0
Embed Size (px)
Citation preview
今回取り上げるのはこれ
[1] Generative Adversarial Nets: Goodfellow, Ian et al, Advances in Neural Information Processing Systems 27, 2014 対立する2つのユニットを交互に学習させるという、新たな生成モデルを提案している! →今日に至るGANブームの先駆け論文
論文全体はsshoji氏のQiita記事 http://qiita.com/sshoji/items/306bd8aa8359bca73208 などを参照してください。 今回は ① 全体のアーキテクチャ ② 学習方法 のみ解説
全体のアーキテクチャ
生成器 (generator)
実際のdata
識別器 (discriminator)
本物? 偽物?
ノイズ
z ≈ pz z( )
D G z( )( )
これは偽物?G z( )
全体のアーキテクチャ
生成器 (generator)
実際のdata
識別器 (discriminator)
本物? 偽物?
ノイズ
識別器をどんどん学習させると、本物か偽物か見分ける精度が増すだろう
全体のアーキテクチャ
生成器 (generator)
実際のdata
識別器 (discriminator)
本物? 偽物?
ノイズ
その上で、識別器に見破られないように生成器を学習させると、本物っぽい画像を生成するようになるだろう
学習の方法
生成器 (generator)
実際のdata
識別器 (discriminator)
ノイズ
D (x) を得る
0.30.8!0.4
⎛
⎝
⎜⎜⎜⎜
⎞
⎠
⎟⎟⎟⎟
・・・ x
D x( )
学習の方法
生成器 (generator)
実際のdata
識別器 (discriminator)
ノイズ
対数をとる
minGmaxDV D,G( ) = Εx≈pdata x( ) logD x( )⎡⎣ ⎤⎦+Εz≈pz z( ) log 1−D G x( )( )( )⎡
⎣⎤⎦
・・・ 0.30.8!0.4
⎛
⎝
⎜⎜⎜⎜
⎞
⎠
⎟⎟⎟⎟
x
D x( )
学習の方法
生成器 (generator)
実際のdata
識別器 (discriminator)
ノイズ
m 個のルノワールっぽい画像 G(z) を生成
・・・
36!9
⎛
⎝
⎜⎜⎜⎜
⎞
⎠
⎟⎟⎟⎟
z
G x( )
学習の方法
生成器 (generator)
実際のdata
識別器 (discriminator)
ノイズ これを識別器に入れる
・・・
36!9
⎛
⎝
⎜⎜⎜⎜
⎞
⎠
⎟⎟⎟⎟
z
G x( )
学習の方法
生成器 (generator)
実際のdata
識別器 (discriminator)
ノイズ
・・・
36!9
⎛
⎝
⎜⎜⎜⎜
⎞
⎠
⎟⎟⎟⎟
D(G (z)) を得る
0.1−4.7!
−8.0
⎛
⎝
⎜⎜⎜⎜
⎞
⎠
⎟⎟⎟⎟
G x( ) D G x( )( )z
学習の方法
生成器 (generator)
実際のdata
識別器 (discriminator)
ノイズ
・・・
36!9
⎛
⎝
⎜⎜⎜⎜
⎞
⎠
⎟⎟⎟⎟
0.1−4.7!
−8.0
⎛
⎝
⎜⎜⎜⎜
⎞
⎠
⎟⎟⎟⎟
minGmaxDV D,G( ) = Εx≈pdata x( ) logD x( )⎡⎣ ⎤⎦+Εz≈pz z( ) log 1−D G x( )( )( )⎡
⎣⎤⎦
G x( ) D G x( )( )z
学習の方法
生成器 (generator)
実際のdata
識別器 (discriminator)
ノイズ
∇θd
1m
logD xi( )⎡⎣
⎤⎦+ log 1−D G zi( )( )( )⎡⎣⎢
⎤⎦⎥
⎡⎣⎢
⎤⎦⎥
i=1
m
∑
識別器に関する勾配を計算する
学習の方法
生成器 (generator)
実際のdata
識別器 (discriminator)
ノイズ
∇θd
1m
logD xi( )⎡⎣
⎤⎦+ log 1−D G zi( )( )( )⎡⎣⎢
⎤⎦⎥
⎡⎣⎢
⎤⎦⎥
i=1
m
∑
勾配分を足し、パラメータを更新する
学習の方法
生成器 (generator)
実際のdata
識別器 (discriminator)
ノイズ
m 個のルノワールっぽい画像を生成
・・・
84!7
⎛
⎝
⎜⎜⎜⎜
⎞
⎠
⎟⎟⎟⎟
G x( )
z
学習の方法
生成器 (generator)
実際のdata
識別器 (discriminator)
ノイズ これを識別器に入れる
・・・
84!7
⎛
⎝
⎜⎜⎜⎜
⎞
⎠
⎟⎟⎟⎟
G x( )
z
学習の方法
生成器 (generator)
実際のdata
識別器 (discriminator)
ノイズ
・・・
D(G (z)) を得る
−2.6−9.7!
−2.3
⎛
⎝
⎜⎜⎜⎜
⎞
⎠
⎟⎟⎟⎟
84!7
⎛
⎝
⎜⎜⎜⎜
⎞
⎠
⎟⎟⎟⎟
G x( ) D G x( )( )z
学習の方法
生成器 (generator)
実際のdata
識別器 (discriminator)
ノイズ
∇θg1m
log 1−D G zi( )( )( )⎡⎣⎢
⎤⎦⎥
i=1
m
∑
生成器に関する勾配を計算する
36!9
⎛
⎝
⎜⎜⎜⎜
⎞
⎠
⎟⎟⎟⎟
−2.6−9.7!
−2.3
⎛
⎝
⎜⎜⎜⎜
⎞
⎠
⎟⎟⎟⎟
G x( ) D G x( )( )z
学習の方法
生成器 (generator)
実際のdata
識別器 (discriminator)
ノイズ
∇θg1m
log 1−D G zi( )( )( )⎡⎣⎢
⎤⎦⎥
i=1
m
∑
勾配分を引き、パラメータを更新する
まとめ
l GANは生成器 G と識別器 D を対立させながら交互に学習する新手法である
l 識別器 D は目的関数を最大化させるように学習す
る
l 生成器 G は目的関数の G に関する項を最小化させるよう学習する