基本概念[1]
目标函数
零和游戏(zero-sum game)
纳什均衡
minimax算法
GAN借鉴了零和游戏的思想,引入生成网络和辨别网络,让两个网络互相博弈,当辨别网络不能辨别数据来自于真实分布还是生成网络的时候,此时的生成网络可以当做一个数据分布到另一个数据分布的转化器。
假设生成网络
目标函数:
max: 最大化辨别网络的辨别能力
min: 相当于最大化把
训练流程
实际参数更新如下图
优缺点
优点:
- 不需要马尔科夫链
- 不需要对隐变量做推断
缺点:
-
-
GAN种类
DCGAN[2]
DCGAN(deep convolutional generative adversarial networks)主要的贡献是成功的将CNN用到GAN,然后可以使用训练好的GAN当做监督学习的特征提取器。
对CNN结构的主要调整包括:
- 不再使用pooling,discriminator和generator分别使用strided convolution和fractional-strided convolution
- generator和discriminator使用batchnorm,对于训练深层的generator非常关键,generator的输出层和discriminator的输入层不使用batchnorm
- 删除深层网络中的全连接层
- generator的所有层的**函数(最后一层使用Tanh)使用ReLU
- discriminator所有层的**函数使用LeakyReLU
LS-GAN[3]
LS-GAN使用least squares作为loss function:
a是fake data的label,b是real data的label
相比于原始GAN的sigmoid的交叉熵,有两个优势:
- 得到的分布更接近真实分布,效果更好(不仅考虑分类正确,还对距离远的施加惩罚)
- 训练过程稳定,减弱了vanishing gradient的影响(对比两个函数曲线可知)
两组参数
a=-1, b=1, c=0
a=0, b=1, c=1
参考文献
[1].Generative Adversarial Nets
[2].Unsupervised representation learning with deep convolutional generative adversarial networks.
[3].Least Squares Generative Adversarial Networks
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:生成对抗网络GAN(一) 简介和变种 - Python技术站