生成式对抗网络GANs及变体
- 1.基础GAN
- 2.条件生成对抗网络(cGAN)
- 3.Wasserstein GAN (WGAN)
- 3.Unsupervised Representation Learning with Deep Convolutional Generative Adversarial Networks (DCGANs)
- 4.Progressive Growing of GANs for Improved Quality, Stability, and Variation (ProGAN)
- 5.Interpretable Representation Learning by Information Maximizing Generative Adversarial Nets (InfoGAN)
- 6.Image-to-Image Translation with Conditional Adversarial Networks (pix2pix)
- 7.Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks(CycleGAN)
- 8.A Style-Based Generator Architecture for Generative Adversarial Networks(StyleGAN)
- 9.Recurrent GAN (RGAN) and Recurrent Conditional GAN (RCGAN)
- 10.LSGAN(Least Square GAN)
1.基础GAN
生成式对抗网络是Ian Goodfellow等人在2014年开发的。GANs属于生成模型。GANs是基于最小最大值和零和博弈理论。为此,GANs由两个神经网络组成:一个是Generator,另一个是Discriminator。生成器的目标是学习生成虚假的样本分布来欺骗鉴别器,而鉴别器的目标是学习区分生成器生成的真实分布和虚假分布。
GAN的总体结构由生成器和鉴别器组成,如图1所示。生成器(G)将一些随机噪声向量Z作为输入,然后尝试使用这个噪声向量G(Z)生成图像。然后将生成的图像传递给Discriminator,并根据Discriminator的输出更新Generator的参数。Discriminator (D)是一个二进制分类器,它同时查看生成器生成的真实样本和虚假样本,并试图决定哪些是真实的,哪些是虚假的。给定一个样本图像X,鉴别器模型的概率是虚假或真实的图像。然后将概率作为反馈传递回Generator。随着时间的推移,生成器和鉴别器模型都试图通过相互竞争来打败对方,这就是生成式对抗网络的术语“对抗性”的来源,优化是基于极大极小博弈问题。在训练过程中,Generator和Discriminator的参数都使用反向传播进行更新,生成器的最终目标是能够生成逼真的图像,而Discriminator的最终目标是逐步更好地从真实图像中检测生成的虚假图像。
GANs使用的是Goodfellow等人在首次引入GANs时引入的Minimax损失函数。生成器试图最小化下面的函数,而判别器试图最大化它。极小极大损失的表达式为:
在这里Ex是所有实际数据样本的期望值,D(x) 是鉴别器估计x是真的概率,G(z)是给定随机噪声矢量z作为输入的生成器输出,D(G(z))是鉴别器估计生成的假样本是真的的概率,Ez是生成机所有随机输入的期望值。
2.条件生成对抗网络(cGAN)
条件生成对抗网[118]或CGAN是GANs的扩展,用于条件样本生成。这可以控制生成数据的模式。CGAN使用一些额外的信息uy, 例如类标签或其他模式,通过连接这些额外信息和输入,并将其馈送到生成器G和鉴别器D。可以如下所示修改Minimax目标函数,
3.Wasserstein GAN (WGAN)
WGAN[7]的作者提出了一种新的算法,可以替代传统的GAN训练。他们表明,他们的新算法提高了模型学习的稳定性,并防止了模式崩溃等问题。对于批判模型,WGAN使用权值剪裁,这确保权值(模型参数)保持在预定义的范围内。作者发现Jensen-Shannon散度并不是测量不相交部分分布距离的理想方法。因此,他们使用了Wasserstein距离,该距离使用了Earth mover’s(EM)距离的概念,而不是测量生成的数据分布和真实数据分布之间的距离,在训练模型时试图保持One-Lipschitz连续性。
- 彻底解决GAN训练不稳定的问题,不再需要小心平衡生成器和判别器的训练程度
- 基本解决了collapse mode的问题,确保了生成样本的多样性
- 训练过程中终于有一个像交叉熵、准确率这样的数值来指示训练的进程,这个数值越小代表GAN训练得越好,代表生成器产生的图像质量越高(如题图所示)
- 以上一切好处不需要精心设计的网络架构,最简单的多层全连接网络就可以做到
最终给出了改进的算法实现流程,而改进后相比原始GAN的算法实现流程却只改了四点:
- 判别器最后一层去掉sigmoid
- 生成器和判别器的loss不取log
- 每次更新判别器的参数之后把它们的绝对值截断到不超过一个固定常数c
- 不要用基于动量的优化算法(包括momentum和Adam),推荐RMSProp,SGD也行
WAN-GP (improved WGAN)
部分参考:
W-GAN系 (Wasserstein GAN、 Improved WGAN)
DCGAN、WGAN、WGAN-GP、LSGAN、BEGAN原理总结及对比
WGAN-GP是WGAN之后的改进版,主要还是改进了连续性限制的条件,因为,作者也发现将权重剪切到一定范围之后,比如剪切到[-0.01,+0.01]后,发生了这样的情况,如下图左边表示
发现大多数的权重都在-0.01 和0.01上,这就意味了网络的大部分权重只有两个可能数,对于深度神经网络来说不能充分发挥深度神经网络的拟合能力,简直是极大的浪费。并且,也发现强制剪切权重容易导致梯度消失或者梯度爆炸