GenerativeAdversarial Nets生成对抗式网络

GAN(GenerativeAdversarial Nets)生成对抗式网络

G(Generator):模拟数据分布,目的是最大化D犯错的概率

D(Discriminator):估计一个样本来自训练集的概率,目的是最小化D犯错的概率

最后达到1/2的平衡状态。G和D由多层感知机定义,系统使用反向传播(backpropagation)训练。训练或产生样本的时候不需要马尔科夫链或者展开的近似推理网络,G和D的关系类似于制造假币商和警察。

G需要从数据x上学习分布pg,为此我们定义一个噪声向量z的先验概率pz(z),然后用G(z;θg)表示到数据空间的映射,其中 G 是一个具有参数θg的多层感知机的可微函数。

多层感知机D(x;θd)输出一个单独的标量,D(x)表示x来自训练集的概率。我们训练D来最大化正确识别数据集和来自G的样本的概率,同时训练G来最小化log(1-D(G(z)))

也就是说,D和G之间是一个minimax游戏,价值函数如下:


如图,蓝点是D的分布,绿线是G的分布,黑点是实际样本的分布,z从x轴均匀采样,向上的箭头表示映射x=G(z)如何对变换样本施加非均匀分布pg。G在高密度的地方收缩,在低密度的地方舒展。(a)最初G模仿实际样本,D是个部分准确的分类器。(b)D被训练用来识别G和实际样本,最终收敛为pdata(x)/(pdata(x)+pg(x))。(c)更新G,使G更容易被D识别为实际样本。(d)经过多步训练,G和D会达到一个平衡点,在该点双方都不能再改变了,因为pg=pdata。D不能识别G和实际样本,也就是D(x)=0.5。

算法等理论结果

下面的证明都似懂非懂,不过贴出来,说不定哪天看懂了呢。。

命题1 对于固定的G,最优D是:

证:给定任何G,D要最大化V(G,D)

对于任何(a,b),函数alog(y)+blog(1-y)的最大值是a/(a+b)。

价值函数表示如下:

定理1 当且仅的pg=pdata,C(G)达到全局最小值-log4

证:对于pg=pdata,D*(G)=0.5,由命题1可得,C(G)=log(0.5)+log(0.5)=-log4。

我们得到:

KL是Kullback-Leibler收敛,常用来衡量两个概率分布的距离。

C(G)又用以下形式表示:

其中:

命题2 如果G和D有足够的容量,那么在Algorithm1的每一步,给定G,D能够达到它的最优值,pg更新,以提高

然后pg收敛到pdata。

证:

实验

数据库:MNIST,Toronto Face,CIFAR-10

G:RELU激活函数和sigmoid激活函数

D:maxout激活函数

优点和缺点

优点:不需要马尔科夫链。

缺点:pg(x)没有清晰的表示,D在训练过程中并没有和G同步得很好(G不能被训练太多次而没有更新D,这样是为了避免Helvetica scenario,在这种场景下,G让太多z崩溃到相同值x,以拥有足够的多样性来模拟pdata),很像波兹曼机必须在学习步骤之间保持最新的负链。

未来工作

1.      通过添加c作为G和D的输入,得到条件生成模型p(x|c)。

2.      给定x,通过训练,学习近似推理,预测z。这和wake-sleep算法训练的推理网络相似,但是有一个优点:推理网络用于在G结束训练之后的固定的G。

3.      为所有条件建立模型,其中S是x的索引的子集,通过训练共享参数的条件模型建立模型。还可以使用生成网络实现决定性MP-DBM的随机扩展。

4.      半监督学习:当有限的标记数据可用时,从D或者推理网络的特征可以提高分类器的性能。

5.      效率提高:通过划分协调G和D的方法或者在训练期间确定更好的样本z的分布,可以加快训练速度。

 

转载于:https://www.cnblogs.com/mandalalala/p/6798263.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值