生成对抗网络GAN的应用与拓展
引言
自从2014年以来,生成对抗网络GAN成为备受关注的一个方向,我有幸参加Valse2018会议,通过生成对抗网络GAN报告收获颇多,结合我对GAN的理解来概括过去几年来 GAN 的发展脉络,我将围绕以下两个问题开展介绍。1)GAN能够做什么?2)如何学到更好的GAN?
1.1.
什么是生成对抗网络GAN?
2014年,Ian Goodfellow提出生成对抗网络(GAN,GenerativeAdversarial Nets),如下图所示,GAN由生成器和判别器组成。其中,生成器用于生成数据,而判别器则用于判别生成数据是否接近于真实。在训练过程中,二者相互博弈,直到达到均衡后停止循环。
1.2. 原始GAN的优缺点:
在一定程度上,尽管GAN的生成器 G已经学到了近似真实数据的分布,它的优势及能够解决的问题包括:1)GAN不需要马尔科夫链,模型优化仅用到反向传播,优势在于采样概率高,生成数据更接近真实数据分布;2)GAN能够解决数据不足的问题,例如多视角多任务的生成等问题;3)结合强化学习做些研究。
GAN仍存在一些问题亟待解决。例如,
1)在训练过程中,GAN比较难以训练,存在训练不同步及梯度消失的问题,如何定义训练策略及损失函数成为关键。其中,GAN训练不同步的原因在于更新生成器G的N次,更次判别器D的1次。此外,梯度消失的原因在于当真实样本和生成样本之间具有极小重叠甚至没有重叠时,其目标函数的(JS,Jensen-Shannon)散度是一个常数,导致优化目标不连续。
2)GAN存在Model collapse问题,容易使得生成样本缺乏多样性;
3)GAN可解释性较差,因为GAN所学到的一个数据分布没有显示的表达式,是一个黑盒子一样的映射函数。
为了解决以上GAN的问题,广大学者在的网络结构及优化方式上对GAN进行探索。
1.3. 典型的生成对抗网络GAN
如下图所示,在原始GAN的基础上,GAN的变体从优化方式、网络结构等方面发生了较大的改变。下面从两个方面分别介绍这些方法。
基于优化方式的GAN
l WassersteinGAN(WGAN)
原始GAN存在训练不稳定的问题,它的具体表现为“判别器越好,生成器梯度消失越严重”。为了解决GAN训练的问题,Arjovsk等提出了Wasserstein GAN(WGAN),引入了Earth-Mover距离来度量真实样本和生成样本分布之间的距离。相比KL散度、JS散度,Earth-Mover距离是平滑的,即便生成分布与真实分布没有重叠,Wasserstein距离仍然能够反映它们的远近。
从数学角度作比较如下图所示,KL散度和JS散度存在突变性,而Wasserstein距离却是平滑的。若采用梯度下降法优化参数,前两者提供不了梯度,而Wasserstein距离却可以提供梯度。类似地,在高维空间中如果两个分布不重叠或者重叠部分可忽略,则KL和JS既反映不了远近,也提供不了梯度,但是Wasserstein却可以提供有意义的梯度。
虽然WGAN做出了很多定性的解释,仍缺少定量分析,此外WGAN的不足之处在于对EM距离不容易直接优化。
Loss sensitive GAN(LS-GAN)
原始GAN对建模对象、真实数据分布未做任何限定,因此原始GAN的无限建模往往会导致过拟合等问题。为了缓解这个问题,学者开始采用损失敏感LS-GAN进行按需分配的建模。LS-GAN将建模的样本分布限定在Lipschitz 密度上,这种密度限定了真实的密度分布变化。此外,该方法不使用batch normalization仍然能够产生较好的图像。
Energy-based Generative Adversarial Network(EBGAN)
以上GAN方法缺乏对energy的分析,Lecun从能量模型角度提出了基于能量的生成对抗网络方法EBGAN。如下图所示,该方法在判别器D上做出改变,把D看作是一个能量函数,分别对真实图像、重建图像赋予低能量、高能量。此外,该方法能量的度量与分类相反,当真实数据与生成数据分布接近的时候,能量达到平衡。在训练过程中,EBGAN比GAN 展示出了更稳定的性能,也产生出了更加清晰的图像
谷歌综合WGAN与EBGAN二者的优势,提出了边界均衡生成对抗网络BEGAN(Boundary Equilibrium GAN),该方法通过一个额外的均衡条件,使得生成器和判别器相互平衡。
以上方法对生成对抗网络的判别器D进行改进,此外,生成器G的改进同样对算法性能影响较大。
基于网络结构变化的GAN
近两年来学术界相继提出了条件生成对抗网络(CGAN),信息生成对抗网络(InfoGAN)等众多GAN的变种。
Conditiona GAN(CGAN)
在图像标注、图像分类和图像生成过程中,原始GAN存在输出图像的标签较多,输出类别多等问题。为了解决此问题,Mirza等提出条件生成式对抗网络CGAN。该方法在生成器G和判别器中加入额外的条件信息,以此来指导GAN两个模型的训练。
如下图所示,CGAN把真实的类别添加到生成器G和判别器D的目标函数中,与输入随机噪声构成条件概率,训练方式几乎不变,但是该方法从GAN的无监督变成了有监督。
l ACGAN(辅助类别GAN)
为了辅助不同类样本的生成,ACGAN的方法被提出。如下图所示,ACGAN与CGAN不同,它在判别器D的真实数据也加入了类别的信息,使得生成器G网络更加明确生成样本的数据特性。
InfoGAN
原始的GAN模型通过对抗学习可以得到一个能够与真实数据分布一致的模型分布,模型已经学到数据的有效语义特征,但是该模型输入信号的具体维度与数据的语义特征之间的对应关系并不清楚。为了更好地生成同类别的样本,Che等将信息理论与GAN相结合,提出一种信息生成对抗网络InfoGAN。该方法不仅能对这些对应关系建模,还可以通过控制相应维度的变量来达到相应的变化。
1.4 我的GAN尝试
下面分享两个示例。示例1在小样本(50幅图像)的情况下,采用一个GAN网络“DCGAN”做噪声到商品图像映射关系学习,充分证明生成对抗网络具备小样本训练集下样本生成的能力。
下篇文章介绍GAN的应用实例,深入介绍GAN的机遇与挑战。