G A N GAN GAN 的流程介绍见上一篇博客GAN(生成对抗网络)
G e n e r a t o r Generator Generator的目标是什么
生成数据的分布和真实数据的分布越接近越好,这样的话,随机生成的一份数据才更接近真实数据中的一份数据
- 输入是服从一种已知分布的数据,通过 G G G,得到服从一种新的分布的数据
- 我们的目标是让生成的数据的分布和真实的数据的分布越接近越好
- 这时候我们利用 D i v ( P G , P d a t a ) Div(P_G,P_{data}) Div(PG,Pdata) 来表示两组数据之间的差异
- 但是我们甚至不知道
P
G
P_G
PG ,
P
d
a
t
a
P_{data}
Pdata 的分布是什么样的,自然无法计算出两组数据之间的
D
i
v
e
r
g
e
n
c
e
Divergence
Divergence
GAN可以通过抽样计算Divergence
- 不需要知道
P
G
P_G
PG 和
P
d
a
t
a
P_{data}
Pdata 的式子,只需要sample
通过 D i s c r i m i n a t o r Discriminator Discriminator
D i s c r i m i n a t o r Discriminator Discriminator 的目标就是给真实图像一个比较大的分数,给生成图像一个比较小的分数
-
这个问题可以看做是二分类问题, D i s c r i m i n a t o r Discriminator Discriminator 可以当做 C l a s s i f i e r Classifier Classifier 来训练
-
这里的 D ( y ) D(y) D(y) 就是 D i s c r i m i n a t o r Discriminator Discriminator 对一个输入产生的分数
O b j e c t i v e F u n c t i o n Objective \quad Function ObjectiveFunction 的最大值反映了 D i v e r g e n c e Divergence Divergence 的大小 -
如果生成图片和真实图片的差距很小( D i v e r g e n c e Divergence Divergence 小), D i s c r i m i n a t o r Discriminator Discriminator 就不容易将这两类分开,目标方程的最大值就比较小
-
如果生成图片和真实图片的差距很大( D i v e r g e n c e Divergence Divergence 大), D i s c r i m i n a t o r Discriminator Discriminator 就很容易将这两类分开,目标方程的最大值就比较大
因此我们可以用上面的 m a x V ( D , G ) max V(D,G) maxV(D,G) 来代替 G ∗ G^* G∗ 中的 D i v e r g e n c e Divergence Divergence
至此, G e n e r a t o r Generator Generator 和 D i s c r i m i n a t o r Discriminator Discriminator 都有具体的目标方程,可以进行迭代优化