前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >BEGAN解读

BEGAN解读

作者头像
DoubleV
发布2018-09-12 15:09:27
5830
发布2018-09-12 15:09:27
举报
文章被收录于专栏:GAN&CVGAN&CV

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_25737169/article/details/77575617

BEGAN

立论基础

BEGAN是Google在17年上半年出的一篇论文,此论文对GAN做了进一步的改进,提出了一种新的评价生成器生成质量的方式,使GAN即使使用很简单的网络,不加一些训练trick比如BN,minibatch,使用SELU激活函数等等,也能实现很好的训练效果,完全不用担心模式崩溃(model collapse)和训练不平衡的问题。 以往的GAN以及其变种都是希望生成器生成的数据分布尽可能的接近真实数据的分布,当生成数据分布等同于真实数据分布时,我们就确定生成器G经过训练可以生成和真实数据分布相同的样本,即获得了生成足以以假乱真数据的能力,所以从这一点出发,研究者们设计了各种损失函数去令G的生成数据分布尽可能接近真实数据分布。 直观来讲,如果两个分布越相近, 我们可以认为他们越相似,当生成数据分布非常接近于真实数据分布的时候,这时候生成器就有足够的生成能力。其中比较好的改进成果主要有DCGAN、WGAN、WGAN-GP等等。 BEGAN代替了这种估计概率分布方法,它不直接去估计生成分布Pg与真实分布Px的差距,而是估计分布的误差的分布之间的差距,作者认为只要分布之间的误差分布相近的话,也可以认为这些分布是相近的(接下来会详细介绍)。

BEGAN中,作者做出了以下四个贡献: 1. 提出了一种新的简单强大GAN网络结构,使用标准的训练方式不加训练trick也能很快且稳定的收敛(有一种将自己乱走火的王八盖子换了一个准点打击的狙的感觉) 2. 对于GAN中G,D的能力的平衡提出了一种均衡的概念(GAN的理论基础就是goodfellow理论上证明了GAN均衡点的存在,但是一直没有一个准确的衡量指标说明GAN的均衡程度) 3. 提供了一个超参数,这个超参数可以在图像的多样性和生成质量之间做均衡(熟悉GAN的小伙伴就知道这又多难得) 4. 提出了一种收敛程度的估计,这个机制只在WGAN中出现过。作者在论文中也提到,他们的灵感来自于WGAN

对于DCGAN, WGAN,WGAN-GP.都不做详细介绍了,想了解后两者的可以去看郑华斌的知乎专栏,讲的非常详细。 接下来进入正题,作者希望去估计分布的分布误差之间的相似度而不是分布之间的相似度。如果分布的误差很接近,那么分布肯定相差不远。首先从损失函数说起:

为了估计分布的误差,作者使用了auto-encoder作为D,D的输入是图像V,维度为RNx,输出的也是维度为RNx的图片,本文中n=1,自编码器的模型如下

此处的L(v)是一个pixel-wise的损失,表示真实输入图像v和经过自编码网络D输出的D(v)的相似程度,L越小,说明v, D(v)越相似。 同样的,我们可以得到 L’(v)=|v-G(v)|n 这样一个pixl-wise误差。 此时重点来了,由于两者都是pixel-wise的, 那么L里的数值一定满足某种分布,在有足够大的像素的情况下,假设像素是满足IID即独立同分布条件,根据中心极限定理,像素的误差近似满足正太分布,那就是说L(v)和L’(v)分别是µ1 = N(m1; C1)和 µ2 = N(m2; C2)的正太分布,m为均值,维度为Rp,c为方差维度为Rp×p 。 那么根据wassertein公式,两个正太分布µ1、µ2的距离为:

trace是求迹操作,P=1时,简化为如下形式:

作者就开始研究,是否上式的第一项就足以优化W2,答案是肯定的,只要满足以下条件:

条件(1)

满足条件(1)情况下,问题就简化为:

成正比 对比WGAN就可以发现,这里不需要lipschize限制,这时,我们就可以给GAN分配任务了,令D不断的最大化m2,最小化m1,而G则不断最小化m2,当m2 接近m1的时候我们就认为GAN完成了训练。 分析到这里我们得出结论,我们可以去估计误差的分布而不是直接估计分布去拟合GAN,但是损失函数究竟是怎么样的呢?看下文

损失函数

网络结构如下:

论文中给出的损失函数如下形式,关于另一个参数Kt上述图片没有表述出来:

D,G的损失在图片中已经给出了描述,从以上分析的结果来看,只要按步骤优化损失函数,就能完成GAN的训练,但是还没有那么简单,或许也注意到,为什么论文的名字叫做Boundary Equilibrium GAN,到这里完全没有涉及到Boundary Equilibrium的概念,我们继续分析

Equilibrium

试分析以下,GAN完成训练时的结果是什么样子的,理想情况下肯定是m1=m2的时候是最好的,即:

分布的期望相等,那就是G产生的图片和真实图像分布相同,这时出现了一个问题,m1=m2条件下,条件1不再是一个不可忽略项,反而趋近于无穷,作者为了解决这个问题,特意加入了一个超参数,γ 取值 [0;1]之间定义:

有了这个限制,就不会出现m1=m2的情形了,这就相当于一个boundary 将均衡条件限制住了,这就是论文名字的由来。 另外一个重要的参数就是Mgloable了,形式如下:

这个参数表示训练程度的多少,越小的话,训练程度越好,从公式中可见一斑。

网络结构

如此简单的网络,训练出来的结果是这样的:

(不同的r可以改变图像的生成结果)

是这样的:

完全足以以假乱真的好不好 作者是在360k的cele数据集上做的训练,数据集数量比标准的cele数据集多了160k张,不过在标准的数据集上依然能得到很好的结果

结论

我也使用BEGAN的代码在mnist数据集和其他数据集上做了测试,发现的确和论文中所介绍的一样,网络收敛很快,震荡很小,基本上一直在收敛,代码写的比较烂,整理好后会放在GitHub上。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017年08月25日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • BEGAN
    • 立论基础
      • 损失函数
        • Equilibrium
          • 网络结构
            • 结论
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档