生成对抗网络GAN(一) 简介和变种


基本概念[1]

目标函数

零和游戏(zero-sum game)
纳什均衡
minimax算法
GAN借鉴了零和游戏的思想,引入生成网络和辨别网络,让两个网络互相博弈,当辨别网络不能辨别数据来自于真实分布还是生成网络的时候,此时的生成网络可以当做一个数据分布到另一个数据分布的转化器。
假设生成网络 G ,辨别网络 D ,noise数据 z ,noise分布 pz(z) ,data数据 x ,data分布 pg
目标函数:

minGmaxDV(D,G)=Expdata(x)[logD(x)]+Ezpz(z)[log(1D(G(z)))]

max: 最大化辨别网络的辨别能力
min: 相当于最大化把 G(z) 当成 x 的概率(以假乱真)

训练流程

这里写图片描述
实际参数更新如下图
这里写图片描述

优缺点

优点:
- 不需要马尔科夫链
- 不需要对隐变量做推断

缺点:
- pg(x) 没有显式的表达
- D G 的训练需要同步,不好训练

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:
Alt text
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

猜你喜欢

转载自blog.csdn.net/xmdxcsj/article/details/78512889
今日推荐