前言:
这里面结合纳什均衡,分析GAN损失函数优化的原理
- 优化目标
- 纳什均衡-D
- JS 散度
- 纳什均衡-G
- DCGAN
目录:
1: 纳什均衡-D
2: 纳什均衡-G
3: JS 散度缺陷
一 训练方法
1.1 损失函数
1.2 训练方法
二 纳什均衡-G
问题: 固定编码器G,鉴别器D的最优解是什么
解:
j简写形式:
因为编码器G 固定了,,所以
因为编码器固定,则可以认为两个分布都是常数
设
对鉴别器D,微分求极值点
固定编码器G后,根据最优的鉴别器,此刻的
三 JS 散度
KL 散度:
JS 散度:
在0到1之间,JS散度的值越接近于0则意味着两个概率分布越相似,而值越接近于1则意味着两个概率分布越不相似。JS散度值在0.1以下可以认为两个分布相似性较高,而在0.5以上则可以认为两个分布差异较大。
性质:
非负性
非对称性
非负性证明:
利用 琴生不等式性质
因为
设
所以
利用Jensen 不等式展开
JS 散度是由两个最小为0的KL 散度组成,所以最小值也是0
二 纳什均衡-G
前面已经得到鉴别器D的最优解,在得到最优鉴别器D后,
生成器G的最优解是什么?
证明:
所以,固定鉴别器D后,生成器G最优解如下:
生成器的优化目标是求最小值,当
三 DCGAN
全称是Deep Convolution Generative Adversarial Networks(深度卷积生成对抗网络)。是2014年Ian J.Goodfellow 的那篇开创性的[GAN论文](之后一个新的提出将GAN和卷积网络结合起来,以解决GAN训练不稳定的问题的一篇paper.
GAN 网络主要由 编码器G 和鉴别器D 组成
3.1 编码器G结构
- 使用ReLU作为激活函数,最后一层使用Tanh作为激活函数。
- 去掉了FC层,使网络变为全卷积网络。
3.2 鉴别器D 结构
D中取消所有的池化层,使用转置卷积(transposed convolutional layer)并且步长大于等于2进行上采样。
D网中也加入stride的卷积代替pooling。
在D网和G网中均使用批量归一化(batch normalization)
最后一层时通常不会使用batch normalization:这是为了保证模型能够学习到数据的正确均值和方差。
D网络中使用LeakyReLU作为激活函数。
DCGAN中换成了两个卷积神经网络(CNN)的G和D,可以刚好的学习对输入图像层次化的表示,尤其在生成器部分会有更好的模拟效果。DCGAN在训练过程中会使用Adam优化算法
对抗神经网络(二)——DCGAN_全部梭哈一夜暴富的博客-CSDN博客。
理论篇:快速了解Jensen's Inequality与KL散度 - 知乎