深度学习【43】BEGAN

BEGAN解决了GAN训练的稳定性问题,实现了D和G网络的平衡,以及生成多样性与质量的控制。它利用了自编码器的重构误差作为损失函数,并通过Jensen不等式优化Wasserstein距离的下界。实验结果显示,BEGAN能生成高质量且多样性的图像。

GAN有不少未解决的问题:1、虽然在DCGAN和improveGAN中提出了不少训练GAN的tricks,但是GAN还是很难训练。2、很难控制G网络的多样性。3、D网络和G网络之间的平衡性很难控制,大部分情况下D网络在训练之初能力会更强。
而BEGAN提出了能够使得训练过程快又稳定的方法;解决了D网络和G网络能力平衡问题;有能力控制生成图片的多样性和质量平衡问题以及衡量收敛性的近似方法。

BEGAN

这里写图片描述
上图是BEGAN在mnist数据上设计的一个模型,借助了EBGAN的encoder-decoder作为D网络结构的思想。一共有三个网络,分别是G网络,以及D网络中的encoder和decoder。其中G网络和decoder的网络结构是一样的,这两个网络旁边灰色部分是可选的优化结构(跳跃连接和加入h0信息)。

看完模型结构例子,我们在看看began的损失函数:
这里写图片描述
这里写图片描述
其中L 表示重构误差:
(x)=L1_loss(yyD)L(x)=L1_loss(采样而来的真实图片y−y经过D网络重构出来的图片)
(G(zG))=L1loss(zGdecoderGD)L(G(zG))=L1loss(随机向量zG经过decoder生成的图片−G网络生成的图片经过D网络重构出来的图片)

γ[0,1]γ∈[0,1] 是一个超参数。值越低表示生成的样本的多样性越低。λkλkkt+1kt+1 的更新步长。

另外论文还提出了衡量模型训练收敛性的公式:
这里写图片描述

其实到这边BEGAN的内容就差不多了。但由于论文的大部分内容都是在讲损失函数是怎么来的,所以我们接着看看上面的损失函数的由来。

BEGAN损失函数的由来

由上面的介绍我们知道L 是一个自编码器的重构误差函数。现在我们假设自编码有两个重构误差的分布函数分别是μ1,μ2μ1,μ2,并用
Γ(μ1,μ2)Γ(μ1,μ2) 表示μ1,μ2μ1,μ2 的所有可能集合,m1,2m1,2μ1,μ2μ1,μ2 的期望。这样我可以将Wasserstein 距离定义为:
这里写图片描述
其中,x1,x2x1,x2 分别为从γ=(μ1,μ2)γ=(μ1,μ2) 采样出来的两个损失函数值。

要真正优化上面的公式是不可能的,因为ΓΓ 的样本空间太大了。但是使用Jensen不等式我们可以得到:
这里写图片描述

|m1m2||m1−m2| 是Wasserstein距离的一个更低的界。
在BEGAN里,我们令μ1μ1(x)L(x) 的分布,μ2μ2(G(z))L(G(z)) 的分布。又因为最大化|m1m2||m1−m2|,只有两种情况:
这里写图片描述

同时我们目标是让G网络生成的图片更接近真实。因此我们选择(b),于是有:
这里写图片描述

这就是BEGAN的损失函数了。为了控制G网络和D网络之间能力的平衡,以及G网络生成样本多样性和质量之间的平衡,作者还引入一开始介绍的BEGAN损失函数最终形式中的k和γγ 两个参数。

实验结果

看一个就好了,简直惊人。
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值