GAN生成的结果多样性不足怎么办?那就再添一个鉴别器!

近期,澳大利亚迪肯大学图像识别和数据分析中心发表了一篇新的论文,由Tu Dinh Nguyen, Trung Le, Hung Vu, Dinh Phung编写,该论文就生成对抗网络(GAN)的模式崩溃问题进行了讨论并给出了一种新的有效的解决方案 D2GAN,论文译稿由雷锋网 AI 科技评论编辑,原文连接请点击。html

这篇文章介绍了一种解决生成对抗网络(GAN)模式崩溃问题的方法。这种方法很直观可是证明有效,特别是当对GAN预先设置一些限制时。在本质上,它结合了Kullback-Leibler(KL)和反向KL散度的差别,生成一个目标函数,从而利用这些分支的互补统计特性捕捉多模式下分散预估密度。这种方法称为双鉴别器生成对抗网络(Dual discriminator generative adversarial nets, D2GAN),顾名思义,与GAN不一样的是,D2GAN有两个鉴别器。这两个鉴别器仍然与一个生成器一块儿进行极大极小的博弈,一个鉴别器会给符合分布的数据样本给与高奖励,而另一个鉴别器却更喜欢生成器生成的数据。生成器就要尝试同时欺骗两个鉴别器。理论分析代表,假设使用最强的鉴别器,优化D2GAN的生成器可让原始数据库和生成器产生的数据间的KL和反向KL散度最小化,从而有效地避免模式崩溃的问题。做者进行了大量的合成和真实数据库的实验(MNIST,CIFAR-10,STL-10,ImageNet),对比D2GAN和最新的GAN变种的方法,并进行定性定量评估。实验结果有效地验证了D2GAN的竞争力和优越的性能,D2GAN生成样本的质量和多样性要比基准模型高得多,并可扩展到ImageNet数据库。数据库

简介

生成式模型是研究领域的一大分支而且在最近几年获得了飞速的成长,成功地部署到不少现代的应用中。通常的方法是经过解决密度预测问题,即学习模型分布Pmodel来预测置信度,在数据分布Pdata未知的状况下。这种方法的实现须要解决两个基本问题。markdown

首先,生成模型的学习表现基于训练这些模型的目标函数的选择。最为普遍使用的目标,即事实标准目标,是遵循遵循最大似然估计原理,寻求模型参数以最大限度地提升训练数据的似然性。这与最小化KL散度数据分布和模型分布上的差别的方法类似GAN生成的结果多样性不足怎么办?那就再添一个鉴别器!。这种最小化会致使Pmodel覆盖Pdata的多种模式,可是可能会引发一些彻底看不到的和潜在的不但愿的样本。相反地,另一种方法经过交换参数,最小化:GAN生成的结果多样性不足怎么办?那就再添一个鉴别器!,通常称其为反KL散度。观察发现,对反KL散度准则优化模拟了模式搜索的过程,Pmodel集中在Pdata的单一模式,而忽略了其余模式,称这种问题为模式崩溃。网络

第二个问题是密度函数Pmodel公式的选择问题。一种方法是定义一个明确的密度函数,而后直接的根据最大似然框架进行参数估计。另一种方法是使用一个不明确的密度函数记性数据分布估计,不须要使用Pmodel的解析形式。还有一些想法是借用最小包围球的原理来训练生成器,训练和生成的数据,在被映射到特征空间后,被封闭在同一个球体中。这种方法最为著名的先驱应用是生成对抗网络(GAN),它是一种表达生成模型,具有生成天然场景的尖锐和真实图像的能力。与大多数生成模型不一样的是,GAN使用了一种激进的方法,模拟了游戏中两个玩家对抗的方法:一个生成器G经过从噪声空间映射输入空间来生成数据;鉴别器D则表现得像一个分类器,区分真实的样本和生成器生成的伪图像。生成器G和鉴别器D都是经过神经网络参数化得来的,所以,这种方法能够归类为深度生成模型或者生成神经模型。架构

GAN的优化其实是一个极大极小问题,即给定一个最优的D,学习的目标变成寻找能够最小化Jensen-Shannon散度(JSD)的G:GAN生成的结果多样性不足怎么办?那就再添一个鉴别器!。JSD最小化的行为已经被实践证明相较于KL散度更近似于反KL散度。这,另外一方面,也致使了以前提到的模式崩溃问题,在GAN的应用领域臭名昭著,即生成器只能生成类似的图片,低熵分布,样本种类匮乏。框架

近期的研究经过改进GAN的训练方式来解决模式崩溃的问题。一个方法是使用mini-batch分辨法巧妙地让鉴别器分辨与其余生成样本非正常类似的图片。尽管这种启发方式能够帮助快速生成具备视觉吸引力的样本,可是它的计算代价很高,所以,一般应用于鉴别器的最后一个隐藏层。另一个方法是把鉴别器的优化经过几个步骤展开,在训练中产生一个代理目标来进行生成器的更新。第三种方法是训练多个生成器,发现不一样的数据模式。同期的,还有一些其余的方法,运用autoencoders进行正则化或者辅助损失来补偿丢失的模式等。这些方法均可以在必定程度上改善模式崩溃的问题,可是由此带来了更高的计算复杂度,从而没法扩展到ImageNet这种大规模的和具备挑战性的视觉数据库上。
iphone

应对这些挑战,做者们在这篇论文中提出了一种新的方法,既能够高效地避免模式崩溃问题又能够扩展到庞大的数据库(好比:ImageNet等)。经过结合KL和反KL散度生成一个统一的目标函数,从而利用了两种散度的互补统计特性,有效地在多模式下分散预估密度。使用GAN的框架,量化这种思路,便造成了一种新颖的生成对抗架构:鉴别器D1(经过鉴别数据来自于Pdata而不在生成分布PG中获取高分),鉴别器D2(相反地,来自于PG而不在Pdata中)和生成器G(尝试欺骗D一、D2两个鉴别器)。做者将这种方法命名为双鉴别器生成对抗网络(D2GAN)。函数

实验证实,训练D2GAN与训练GAN会遇到一样的极大极小问题,经过交替更新生成器和鉴别器能够获得解决。理论分析代表,若是G、D1和D2具备足够的容量,如非参数的限制下,在最佳点,对KL和反KL散度而言,训练标准确实致使了数据和模型分布之间的最小距离。这有助于模型在各类数据分布模式下进行公平的几率分布,使得生成器可一次完成数据分布恢复和生成多样样本。另外,做者还引入了超参数实现稳定地学习和各类散度影响的控制。性能

做者进行了大量的实验,包括一个合成数据库和具有不一样特征的四个真实大规模数据库(MNIST、CIFAR十、STL-十、ImageNet)。众所周知,评估生成模型是很是困难的,做者花费了不少时间,使用了各类评估办法,定量的对比D2GAN和最新的基线方法。实验结果代表,D2GAN能够在保持生成样本质量的同时提升样本的多样性。更重要的是,这种方法能够扩展到更大规模的数据库(ImageNet),并保持具备竞争力的多样性结果和生成合理的高品质样本图片。学习

简而言之,这种方法具备三个重要的贡献:(i)一种新颖的生成对抗模型,提升生成样本的多样性;(ii)理论分析证明这种方法的目标是优化KL和反KL散度的最小差别,并在PG=Pdata时,实现全局最优;(iii)使用大量的定量标准和大规模数据库对这种方法进行综合评估。

做者们的实现方法以下:

生成对抗网络

首先介绍一下生成对抗网络(GAN),具备两个玩家:鉴别器D和生成器G。鉴别器D(x),在数据空间中取一个点x,而后计算x在数据分布Pdata中而不是生成器G生成的几率。同时,生成器先向数据空间映射一个取自先导P(z)的噪声向量z,获取一个相似于训练数据的样本G(z),而后使用这个样原本欺骗鉴别器。G(z)造成了一个在数据域的生成分布PG,和几率密度函数PG(x)。G和D都由神经网络构成(见图1a),并经过以下的极大极小优化得以学习:

GAN生成的结果多样性不足怎么办?那就再添一个鉴别器!

GAN生成的结果多样性不足怎么办?那就再添一个鉴别器!

学习遵循一个迭代的过程,其中鉴别器和生成器交替地更新。假设固定G,最大化D能够得到最优鉴别器GAN生成的结果多样性不足怎么办?那就再添一个鉴别器!,同时,固定最优D*,最小化G能够实现最小化Jensen-Shannon(JS)散度(数据和模型分布:GAN生成的结果多样性不足怎么办?那就再添一个鉴别器!)。在博弈的纳什均衡下,模型分布彻底恢复了数据分布:PG=Pdata,从而鉴别器如今没法分辨真假数据:GAN生成的结果多样性不足怎么办?那就再添一个鉴别器!

因为JS散度经过大量的实验数据证明与反KL散度的特性相同,GAN也会有模式崩溃的问题,所以,其生成的数据样本多样性很低。

双鉴别器生成对抗网络

为了解决GAN的模式崩溃问题,下方介绍了一种框架,寻求近似分布来有效地涵盖多模式下的多模态数据。这种方法也是基于GAN,可是有三个组成部分,包括两个不一样的鉴别器D一、D2和一个生成器G。假定一个数据空间中的样本x,若是x是数据分布Pdata中的,D1(x)得到高分,若是是模式分布PG中的,则得到低分。相反地,若是x是模式分布PG中的,D2(x)得到高分,若是是数据分布Pdata中的,D2(x)得到低分。与GAN不一样的是,得分的表现形式为R+而不是[0,1]中的几率。生成器G的角色与GAN中的类似,即从噪声空间中映射数据与真实数据进行合成后欺骗D1和D2两个鉴别器。这三个部分都由神经网络参数化而成,其中D1和D2不分享它们的参数。这种方法被称为双鉴别器生成对抗网络(D2GAN),见上图1b。D一、D2和G遵循以下的极大极小公式:

GAN生成的结果多样性不足怎么办?那就再添一个鉴别器!

其中超参数GAN生成的结果多样性不足怎么办?那就再添一个鉴别器!为了实现两个目的。第一个是为了稳定化模型的学习过程。两个鉴别器的输出结果都是正的,D1(G(z))和D2(x)可能会变得很大并比LogD1(x)和LogD2(x)有指数性的影响,最终会致使学习的不稳定。为了克服这个问题,下降α和β的值。第二个目的是控制KL和反KL散度对优化的影响。后面介绍过优化方法后再对这个部分进行讨论。

与GAN类似的是,经过交替更新D一、D2和G能够训练D2GAN。

理论分析

经过理论分析发现,假设G、D1和D2具有足够的容量,如非参数的限制下,在最佳点,G能够经过最小化模型和数据分布的KL和反KL散度恢复数据分布。首先,假设生成器是固定的,经过(w.r.t)鉴别器进行优化分析:

GAN生成的结果多样性不足怎么办?那就再添一个鉴别器!

证实:根据诱导测度定理,两个指望相等:

GAN生成的结果多样性不足怎么办?那就再添一个鉴别器!时,GAN生成的结果多样性不足怎么办?那就再添一个鉴别器!。目标函数能够推演以下:

GAN生成的结果多样性不足怎么办?那就再添一个鉴别器!

考虑到里面的函数积分,给定x,经过两个变量D一、D2最大化函数,获得D1*(x)和D2*(x)。将D1和D2设置为0,能够获得:

GAN生成的结果多样性不足怎么办?那就再添一个鉴别器!

 GAN生成的结果多样性不足怎么办?那就再添一个鉴别器!是非正数,则证实成立并获得了最大值。

接下来,GAN生成的结果多样性不足怎么办?那就再添一个鉴别器!,计算生成器G的最优方案G*。

GAN生成的结果多样性不足怎么办?那就再添一个鉴别器!

证实:将D1*和D2*代入极大极小方程,获得:

 GAN生成的结果多样性不足怎么办?那就再添一个鉴别器!

 GAN生成的结果多样性不足怎么办?那就再添一个鉴别器!分别是KL和反KL散度。这些散度一般是非负的,而且只在PG*=Pdata时等于0。换言之,生成器生成的分布PG*与数据分布彻底等同,这就意味着因为两个分布的返回值都是1,两个鉴别器在这种状况下就不能分辨真假样本了。

如上公式中生成器的偏差代表提升α能够促进最小化KL散度(GAN生成的结果多样性不足怎么办?那就再添一个鉴别器!)的优化,提升β可促进最小化反KL散度(GAN生成的结果多样性不足怎么办?那就再添一个鉴别器!)的优化。经过调整α和β这两个超参数,能够平衡KL散度和反KL散度的影响,从而有效地避免模式崩溃的问题。

实验

在这个部分,做者进行了普遍的实验来验证的提升模式覆盖率和提出的方法应用在大规模数据库上的能力。使用一个合成的2D数据库进行视觉和数值验证,并使用四个真实的数据库(具备多样性和大规模)进行数值验证。同时,将D2GAN和最新的GAN的应用进行对比。

从大量的实验得出结论:(i)鉴别器的输出具备softplus activations:GAN生成的结果多样性不足怎么办?那就再添一个鉴别器!,如正ReLU;(ii)Adam优化器,学习速率0.0002,一阶动量0.5;(iii)64个样本做为训练生成器和鉴别器的minibatch训练单元;(iv)0.2斜率的Leaky ReLU;(v)权重从各项同性的高斯(Gaussian)分布:GAN生成的结果多样性不足怎么办?那就再添一个鉴别器!进行初始化,0误差。实现的过程使用了TensorFlow,而且在文章发表后发布出来。下文将介绍实验过程,首先是合成数据库,而后是4个真实数据库。

合成数据库

在第一个实验中,使用已经设计好的实验方案对D2GAN处理多模态数据的能力进行评估。特别的是,从2D混合8个高斯分布和协方差矩阵0.02获取训练数据,同时中位数分布在半径2.0零质心的圆中。使用一个简单的架构,包含一个生成器(两个全链接隐藏层)和两个鉴别器(一个ReLU激发层)。这个设定是相同的,所以保证了公平的对比。图2c显示了512个由D2GAN和基线生成的样本。能够看出,常规的GAN产生的数据在数据分布的有效模式附近的一个单一模式上奔溃了。而unrolledGAN和D2GAN能够在8个混合部分分布数据,这就印证了可以成功地学习多模态数据的能力。最后,D2GAN所截取的数据比unrolledGAN更精确,在各类模式下,unrolledGAN只能集中在模式质心附近的几个点,而D2GAN产生的样本全分布在全部模式附近,这就意味着D2GAN产生的样本比unrolledGAN多得多。

GAN生成的结果多样性不足怎么办?那就再添一个鉴别器!

下一步,定量的进行生成数据质量的对比。由于已知真实的分布Pdata,只需进行两步测量,即对称KL散度和Wasserstein距离。这些测量分别是对由D2GAN、unrolledGAN和GAN的10000个点归一化直方与真实的Pdata之间的距离计算。图2a/b再次清楚了代表了D2GAN相对于unrolled和GAN的优点(距离越小越好);特别是Wasserstein度量,D2GAN离真实分布的距离基本上减少到0了。这些图片也表达了D2GAN相对于GAN(绿色曲线)和unrolledGAN(蓝色曲线)在训练时的稳定性。

真实数据库

下面,使用真实数据库对D2GAN进行评估。在真实数据库条件下,数据拥有更高的多样性和更大的规模。对含有卷积层的网络,根据DCGAN进行设计分析。鉴别器使用带步长的卷积,生成器使用分步带步长的卷积。每一个层都进行批处理标准化,除了生成器输出层和鉴别器的输入层。鉴别器还使用Leaky ReLU 激发层,生成器使用ReLU层,除非其输出是tanh,缘由是各像素的强度值在反馈到D2GAN模型前已经变换到[-1,1]的区间内。惟一的区别是,在D2GAN下,当从N(0,0.01)初始化权重时,其表现比从N(0,0.02)初始化权重的效果好。架构的细节请看论文附件。

评估方式

评估生成对抗模型产生的样本是很难的,缘由有生成几率判断标准繁多、缺少有意义的图像类似性度量标准。尽管生成器能够产生看似真实的图像,可是若是这些图像看起来很是近似,样本依然不可以使用。所以,为了量化各类模式下的图像质量,同时生产高质量的样本图样,使用各类不用的ad-hoc度量进行不一样的实验来进行D2GAN方法与各基线方法的效果对比。

首先,使用起始分值(Inception Score),计算经过:GAN生成的结果多样性不足怎么办?那就再添一个鉴别器!,这里P(y|x)是经过预训练的初始模型的图像x的条件标签分布,P(y)是边际分布:GAN生成的结果多样性不足怎么办?那就再添一个鉴别器!。这种度量方式会给质量高的多样的图片给高分,可是有时候很容易被崩溃的模式欺骗,致使产生很是低质量的图片。所以,这种方式不能用于测量模型是否陷入了错误的模式。为了解决这个问题,对有标签的数据库,使用MODE score:GAN生成的结果多样性不足怎么办?那就再添一个鉴别器!

这里,GAN生成的结果多样性不足怎么办?那就再添一个鉴别器!是训练数据的预估标签的经验分布。MODE score的值能够充分的反应生成图像的多样性和视觉质量。

手写数字图像

这个部分使用手写数字图像-MNIST,数据库包含有60,000张训练图像和10,000张测试灰度图(28*28像素),数值区间从0到9。首先,假设MNIST有10个模式,表明了数据分支的链接部分,分为10个数字等级。而后使用不一样的超参数配置进行扩展的网格搜索,使用两个正则常数α和β,数值为{0.01,0.05,0.1,0.2}。为了进行公平的对比,对不一样的架构使用相同的参数和全链接层。

评估部分,首先训练一个简单的但有效的3-layer卷积网络(MNIST测试库实现0.65%的偏差),而后将它应用于预估标签的几率和生成样本的MODE score计算中。图3左显示了3个模式下MODE score的分布。清晰的看到,D2GAN相对于标准GAN和Reg-GAN的巨大优越性,其分数的最大值基本落在区间【8.0-9.0】。值得注意的是,尽管提升网络的复杂度,MODE score基本保持高水平。这幅图片中只表现了最小网络和最少层和隐藏单元的结果。

为了研究α和β的影响,在不一样的α和β的数值下进行试验(图3右)。结果代表,给定α值,D2GAN能够在β达到必定数值时得到更好的MODE score,当β数值继续增大,MODE score下降。

GAN生成的结果多样性不足怎么办?那就再添一个鉴别器!

MNIST-1K.   假定10个模式的标准MNIST数据库至关简单。所以,基于这个数据库,做者使用一个更具挑战性的数据库进行测试。沿用上述的方式,假定一个新的有1000个等级的MNIST数据库(MNIST-1K),方法为用3个随机数字组成一个RGB图像。由此,能够组成1000个离散的模式,从000到999。

在这个实验中,使用一个更强大的模型,鉴别器使用卷积层,生成器使用转置卷积。经过测试模式的数量进行模型的性能评估,其中模型在25,600个样本中至少产生一个模式,同时反KL散度分布介于模型分布(如从预训练的MNIST分类器预测的标签分布)和指望的数据分布之间。表1报告了D2GAN与GAN、unrolledGAN、GCGAN和Reg-GAN之间的对比。经过对比能够看出D2GAN具备极大的优点,同时模型分布和数据分布之间的差距几近为0。

GAN生成的结果多样性不足怎么办?那就再添一个鉴别器!

天然场景图像

 下面是将D2GAN应用到更普遍的天然场景图像上,用于验证其在大规模数据库上的表现。使用三个常常被使用的数据库:CIFAR-10,STL-10和ImageNet。CIFAR-10包含50,000张32*32的训练图片,有10个等级:飞机,摩托车,鸟,猫,鹿,狗,青蛙,马,船和卡车(airplane, automobile, bird, cat, deer, dog, frog, horse, ship, and truck)。STL-10,是ImageNet的子数据集,包含10,000张未被标记的96*96的图片,相对于CIFAR-10更多样,可是少于ImageNet。将全部的图片向下缩小3倍至32*32分辨率后,再对网络进行训练。ImageNet很是庞大,拥有120百万天然图片,包含1000个类别,一般ImageNet是深度网络领域训练使用的最为庞大和复杂的数据库。使用这三个数据库进行蓄念和计算,Inception score的结果以下图和下方表格所示:

GAN生成的结果多样性不足怎么办?那就再添一个鉴别器!

表格中和图4中表示了Inception score在不一样数据库和不一样模型上的不一样值。值得注意的是,这边的对比是在一个完美无监督的方法下,而且没有标签的信息。在CIFAR-10数据库上使用的8个基线模型,而在STL-10和ImageNet数据库上使用了DCGAN、DFM(denoising feature matching)做对比。在D2GAN的实现上使用了与DCGAN彻底一致的网络架构,以作公平的对比。在这三个实验结果中,能够看出,D2GAN的表现低于DFM,可是在很大的程度高于其余任何一个基线模型。这种逊于DFM的结果印证了对高级别的特征进行自动解码是提升多样性的一种有效方法。D2GAN可与这种方式兼容,所以融合这种作法能够为将来的研究带来更好的效果。

最后,在图5中展示了使用D2GAN生成的样本图片。这些图片都是随机产生的,而不是特别挑选的。从图片中能够看出,D2GAN生成了能够视觉分辨的车,卡车,船和马(在CIFAR-10数据库的基础上)。在STL-10的基础上,图片看起来相对比较难以辨认,可是飞机,车,卡车和动物的轮廓仍是能够识别的;同时图片还具有了多种背景,如天空,水下,山和森林(在ImageNet的基础上)。这印证了使用D2GAN能够生成多样性的图片的结论。

GAN生成的结果多样性不足怎么办?那就再添一个鉴别器!

结论

总结全文,做者介绍了一种全新的方法,结合KL(Kullback-Leibler)和反KL散度生成一个统一的目标函数来解决密度预测问题。这种方法利用了这两种散度的互补统计特性来提升生成器产生的图像的质量和样本的多样性。基于这个原理,做者引入了一种新的网络,基于生成对抗网络(GAN),由三方构成:两个鉴别器和一个生成器,并命其为双鉴别器生成对抗网络(dual discriminator GAN, D2GAN)。若是设定两个鉴别器是固定的,同时优化KL和反KL散度进行生成器的学习,经过这种方法能够帮助解决模式崩溃的问题(GAN的一大亟待突破的难点)。

做者经过大量的实验对其提出的方法进行了验证。这些实验的结果证明了D2GAN的高效性和扩展性。实验使用的数据库包括合成数据库和大规模真实图片数据库,即MNIST、CIFAR-10,STL-10和ImageNet。相较于最新的基线方法,D2GAN更具扩展性,能够应用于业内最为庞大和复杂的数据库ImageNet,尽管取得了比融合DFM(denoising feature matching)和GAN的方法低的Inception score,但远远高于其余GAN应用的实验结果。最后,做者指出,将来的研究能够借鉴融合DFM和GAN的作法,在现有的方法基础上增长相似半监督学习、条件架构和自动编码等的技术,更进一步的解决生成对抗网络在应用中的问题。








本文做者:雪莉•休斯敦
本文转自雷锋网禁止二次转载,原文连接