摘要
生成对抗网络(GAN)能够有效地为真实数据学习生产模型。然而,现有的GANs(GAN及其变体)往往存在诸如不稳定性和模式崩溃等训练问题。在本文中,我们提出一种新的GAN框架,称为进化生成对抗网络(E-GAN)来稳定GAN训练和提高生成性能。传统的GANs一般采用提前定义好的对抗目标迭代地训练Generators和Discriminator,而我们利用不同的对抗训练目标作为变异算子,并演化为Generators种群来适应对抗Discriminator。我们同时利用一种评价机制测试生成样本的质量和多样性,以便保留良好性能的Generator并用于进一步训练。这样,E-GAN克服了单个对抗训练目标的局限性,能够一直保留最好的后代,有助于GAN的进步和成功。实验结果也验证了E-GAN良好的性能。
引言
生成对抗网络(GAN)是用于从复杂的真实数据中学习生产模型的主要方法之一。除了使用Generator从标准信号分布中合成语义上有意义的数据外,GANs(GAN及其变体)训练Discriminator以区分训练数据集中的实际样本和由Generator合成的假样本。训练过程就好像一种对抗游戏,作为对抗者,Generators旨在通过生成更逼真的样本来欺骗Discriminator。训练过程一直持续到Generator赢得对抗性游戏为止;也就是说,Discriminator无法再准确地区分输入值是真实数据还是Generator生产的数据。GAN最近已成功应用于图像生成、图像编辑、视频预测以及其他任务中。
尽管GAN已经在各种应用中得到了很好的应用,但是它们依然存在难以训练的难题。如果数据分布和生产的分布没有实质性重叠(通常在训练开始时),Generator梯度可能会指向随机方向或甚至导致梯度消失问题。GAN也可能遭受模式崩塌,即,Generator将其所有概率聚集到给空间中的一个小区域。另外,合适的超参Hyper-parameters(例如:学习率和更新步数)和网络结构都是GAN的关键配置。不合适的设置会降低GAN的性能,甚至无法产生任何合理的结果。
最近关于GAN的许多努力都侧重于通过制定各种对抗性训练目标来克服这些训练困难。典型地,首先为Generator假设最优的Discriminator,则Generator的不同的目标函数旨在通过不同指标测量真实数据分布与生产的分布之间的距离。最初的GAN使用Jensen-Shannon散度作为度量。随后,引入了许多指标来改善GAN的性能,例如最小二乘、绝对偏差、Kullback-Leibler散度和Wasserstein距离。然而,根据理论分析和实验结果,这些指标有其自身的缺点,例如:尽管测量Kullback-Leibler散度在很大程度上消除了消失梯度问题,但它容易导致模式崩溃。同样,Wasserstein距离大大提供了训练稳定性,但在平衡附近具有非收敛极限环。
为了利用这些优势并抑制不同指标(即GAN目标)的弱点,我们设计了一个利用不同指标来共同优化Generator的框架。这样,我们改善了训练稳定性和生成性能。我们构建了一种进化生成对抗网络(E-GAN),将对抗训练过程视为优化问题。特别地,Discriminator作为环境(例如:提供适当的损失函数),Generator的种群来优化对环境的回应。在每个对抗(演化)迭代期间,仍然训练Discriminator来识别样本的真伪。但是,在E-GAN中,作为父代,Generator经历不同的突变mutations以产生后代来适应环境。不同的对抗目标函数旨在最小化所生成的分布和数据分布之间的不同距离,从而导致不同的变异。同时,给定当前的最佳Discriminator,我们测量由更新的后代产生的样本质量和多样性。最后,按照“适者生存”原则,去除表现不佳的后代,并保留剩余的表现良好的后代(即Generator)并用于进一步训练。
基于优化AN的进化范式,所提出的E-GAN克服了个体对对抗训练目标中的固有局限性,并始终保留由不同训练目标(即突变)产生的最佳后代。通过这种方式,我们为GAN的进步和成功做出了贡献。在几个数据集上的实验验证了集成不同对抗训练目标的优势和E-GAN令人信服的图像生成性能。
相关工作
本节我们首先回顾当前一些致力于提高GAN的训练稳定性和生成性能的相关工作。然后简单地总结一些深度神经网络中的进化算法。
生产对抗网络
GAN为学习深度生成模型提供了一个很好的框架,旨在捕获给定数据的概率分布。与其它生成模型相比,GAN通过使用方向传播算法交替更新Generator和Discriminator可以很容易地被训练。在许多生成任务中,GANs(GAN及其变体)性能要比其它生成模型性能要好。
然而,在GANs的训练过程中依然存在一些问题。在原始的GAN中,训练Generator相当于最小化数据分布和生成分布的Jensen-Shannon散度,这容易导致梯度消失问题。为了解决该问题,采用一种非饱和启发式目标(例如,‘-log D欺骗’)替换极小极大目标函数来惩罚Generator。另外,还有通过设计特殊网络结构(DCGAN)以及提出一些启发式欺骗(例如,feature matching,one-side label smoothing,virtual batch normalization)来提高训练稳定性。虽然这些方法在一定程度上增加了训练的稳定性,实际上,网络结构和训练过程依然需要仔细地设计来维持Discriminator-Generator平衡。最近,Wasserstein GAN (WGAN)和它的变体WGAN-GP提出最小化生成分布和数据分布的Wasserstein-1距离。但是Wasserstein-1距离必须是连续函数且在最小假设下可导的情况下才能提供训练的稳定性。然而,为了计算生成分布和数据分布的Wasserstein-1距离,要求它们对Discriminator强制执行Lipschitz约束,这可能会限制Discriminator的能力并导致一些优化困难。
进化算法
在过去二十年里,进化算法在广泛的计算任务中取得了很大的成功,包括建模、优化和设计。受到自然进化的启发,进化算法的本质是将可能的解决方案等同于种群中的个体,通过变化产生后代,并根据适应度选择适当的解决方案。
最近,进化算法已经被用于解决深度学习问题。为了最大限度地减少人为参与设计深度算法并自动搜索相关配置,已经进行了许多尝试来优化深度学习超参并通过进化搜索设计深度网络结构。进化算法已经被验证了它在优化深度学习的能力。另外,最近提出的采用优化策略作为MDP-based 强化学习算法的替代方案,在强化学习基准测试中实现了强大的性能。最后,进化计算还被用于自动消除冗余卷积滤波器来压缩深度学习模型。
方法
本节中,我们首先回顾GAN,然后介绍E-GAN算法。通过说明E-GAN的突变和评估机制,我们进一步讨论了所提供的框架的优势。最后,我们介绍整个E-GAN的训练流程。
生成对抗网络
GAN研究辨别网络D和生成网络G之间双人极小极大游戏。将噪声样本(均匀分布或者标准分布)作为输入,生成网络G输出新的数据,其分布应该尽可能地接近数据分布。另外,辨别网络D用来区分真实数据样本和生成的样本。在原始的GAN中,对抗训练过程可以表示为:
对抗过程如图1(a)所示。大部分GANs都具有相似的过程仅对抗目标函数不同。
进化算法
与传统的采用迭代更新G和D方式的GANs不同。我们设计一种进化算法在给定的环境下(例如G)来优化G的种群。在该种群中,每个个体表示在生成网络G中的参数空间中的一种可能解。在进化过程中,我们期望种群能够逐渐适应它的环境,也就是说进化的能够生成更加真实的样本并最终学习到真实数据分布。如图1(b)所示,在进化过程中,每个步骤由三个阶段组成:
Variation变异:给定种群中的一个个体,我们利用变异算子产生新的子代。特别地,每个父代通过不同的变异方式生成了多个副本。每个副本作为一个子代。
Evaluation评价:对于子代,它们的性能通过当前环境下的适应度函数来评价。
Selection选择:子代根据它们的适应度值进行选择,删除差的部分,剩余的优秀个体被保留到下一代。
在每个进化步骤之后,辨别网络D将更新从而进一步区分真实样本和由优化后的Gs生成的虚假样本。例如,
因此,辨别网络D能够持续提供自适应的损失来驱使进化产生更好的解。接下来,我们将详细讨论一些变异和评价算子。
变异
我们采用具有不同突变的无性繁殖来生产下一代的个体(子代)。具体而已,这些变异算子对应不同的训练目标,企图从不同的角度缩小所生成的分布与数据分布之间的距离。为了分析这些变异算子的性质,我们假设在每一进化步骤中Discriminator 为最优辨别网络。
Minimax mutation 极小极大变异
极小极大变异对应原始GAN中的极小极大目标函数:
根据原文的理论分析,当给出最优Discriminator ,极小极大变异的目的在于最小化数据分布和生成分布的Jensen-Shannon散度(JSD)。虽然极小极大游戏容易被解释和理论分析,但是它在实际应用中性能不是很理想,主要问题是因为在优化Generator时出现无效梯度现象。如果两个分布属于两种流行,则JSD将是常数,导致梯度消失。如图2所示,当Discriminator以高置信度拒绝所生成的样本(即)时,梯度会趋于消失。然而,如果生成的分布与数据分布重叠,意味着Discriminator不能完全区分真实样本和伪样本,则极小极大突变提供有效梯度并且不断缩小数据分布与生成的分布之间的差距。
Heuristic mutation 启发式变异
与极小极大变异(最小化Discriminator正确的对数概率)不同,启发式突变旨在最大化Discriminator错误的对数概率:
与极小极大变异相比,当Discriminator拒绝生成的样本时,启发式变异不会饱和。因此,它可以避免梯度消失并提供有效的Generator更新(如图2)。然而,根据公式1,当给定最优Discriminator,最小化启发式变异相当于最小化。例如:Inverted KL minus two JSDs。直观地说,JSD为负数,这意味着推动这两个分布彼此远离。在实践中,这可能导致训练不稳定和生成质量波动。
Least-squares mutation 最小二乘法变异
最小二乘法变异来源于LSGAN,最小二乘法目标利用惩罚它的Generator来欺骗Discriminator。在本文中,我们定义最小二乘法变异如下:
如图1所示,最小二乘法变异是非饱和的当Discriminator能够识别生成样本()时。当Dsicriminator输出增长时,最小二乘法突变饱和,最终接近0。因此,与启发式变异相似,最小二乘法变异在Discriminator占据显著优势的情况下能够避免梯度消失。同时,比较启发式变异,尽管最小二乘法变异不会产生极高的成本来生成假样本,但它也不会为了模式下降分配极低的成本,这在一定程度上避免了模式崩溃。
评价
在进化算法中,评价是指对个体质量的测量操作。为了确定进化方向(即个体选择),我们设计了一种评估(或适应度)函数来衡量进化个体的表现。首先,我们简单地将G生成的图像输入到D并观察输出的平均值,我你将其命名为质量适应度分数:
注意,D在训练过程中不断更新为最佳,反映了每个进化(或对抗)步骤中G的质量。如果G获得相对高质量的分数,则其生成的样本可以欺骗G,并且生成的分布进一步接近数据分布。
除了生成的质量,我们还关注生成样本的多样性并尝试克服在GAN优化过程中模式崩溃的问题。最近,基于梯度的正则化来稳定GAN优化并抑制模式崩溃。通过他们的观察,当G陷入到一个小区域时,D随后会用明显的对策塌陷点collapsed points标记为假标签。
我们采用类似的原理来评估G优化的稳定性和生成多样性。形式上,多样性适应度分数定义为:
更新D的对数梯度值用于测量生成的样本的多样性。如果更新的G获得相对高的多样性分数,其对应于小的D梯度,则其生成的样本具有足够的广度,以避免D具有明显的对策。因此,可以抑制模式崩溃问题并且D将平滑地改变,这有助于提高训练稳定性。
基于前面提到的两个适应度,最终的评价函数如下所示:
其中平衡两个测量:生成质量和多样性。总之,的适应度分数越高,说明训练效率越高和生成性能更好。
E-GAN
E-GAN算法的训练流程如算法1所示。一般而言,在E-GAN中,Generators视为进化种群,Discriminator D作为环境。对于每次进化步骤,Generators更新不同的目标(变异)来适应当前的环境。根据“适者生存”原则,只有性能好的子代存活并参加后面的对抗训练。与传统的GAN中具有固定和静态对抗训练目标的双人游戏不同,E-GAN允许该算法整合不同对抗目标的优点并产生最具竞争力的解决方案。因此,在训练过程中,进化算法不仅在很大程度上抑制了个体对抗性目标的局限性(梯度消失,模式崩溃等),而且还利用它们的优势来寻找更好的解决方案。
代码借鉴:GitHub - WANG-Chaoyue/EvolutionaryGAN: Evolutionary Generative Adversarial Networks (E-GAN)
文章地址:[1803.00657] Evolutionary Generative Adversarial Networks