目录
第一章 神经网络基础
4 生成对抗网络
▲ 生成对抗网络简介
GAN
生成对抗网络
GAN的基本结构
生成对抗网络目标函数
训练生成对抗网络
训练判别器
训练生成器
生成对抗网络训练中的问题
欠拟合以及过拟合的问题
生成对抗网络中的模式崩塌
生成对抗网络训练不稳定的问题
第一章 测一测
第一章 神经网络基础
4 生成对抗网络
▲ 生成对抗网络简介
GAN
生成对抗网络( Generative Adversarial Network , GAN )最初由Goodfellow 等人于 2014 年提出,是近年来最流行的生成模型之一。生成对抗网络可以看作由两种模型组成,分别是生成模型和判别模型,通过生成模型和判别模型的博弈来进行训练。原始的生成对抗网络的目标是学习真实数据分布,生成和数据集中的图像相似但不完全相同的图像。
生成对抗网络
生成对抗网络( Generative Adversarial Network , GAN )是非监督式学习的一种方法,通过让两个神经网络相互博弈的方式进行学习。生成对抗网络由一个生成网络 G( Generator )与一个判别网络 D( Discriminator )组成。
◎生成网络从潜在空间( latent space )中随机取样作为输入,其输出结果需要尽量模仿训练集中的真实样本。
◎判别网络的输入则为真实样本或生成网络的输出,其目的是将生成网络的输出从真实样本中尽可能分辨出来。
生成网络则要尽可能地欺骗判别网络。两个网络相互对抗、不断调整参数,最终目的是使判别网络无法判断生成网络的输出结果是否真实。
GAN的基本结构
生成对抗网络目标函数
训练生成对抗网络
训练生成对抗网络可以用基于成熟的梯度下降算法的优化器,例如Adam优化器。在训练时可以使用反向传播算法来更新参数。值得注意的是,和其他深度学习不同的是,由于生成模型和判别模型的目标不同,因此需要分开训练生成模型和判别模型。此外,由于一开始生成模型只能生成一些质量很差的图像例如噪声,而判别模型也只能判别噪声和真实图像,因此生成模型和判别模型需要交替训练,你追我赶,共同进化。
训练判别器
训练判别器的目标是能分辨真实图像和生成图像。即当输入图像为真实图像时,希望输出结果越接近“1”越好,当输入生成图像时,希望输出越接近“0”越好。在训练判别器时,我们需要固定住生成器中的参数。
可以很直觉地理解:如果不固定生成器的参数,可以通过降低生成图像的质量来“帮助”判别器进行分辨。
训练生成器
训练生成器的目标是能“骗过”判别器,让判别器判断不出真实图像和生成图像。即当生成的图像进入判别器时,希望输出结果越接近“1”越好。在训练生成器时,我们需要固定判别器中的参数。
可以很直觉地理解:如果不固定判别器的参数,可以通过降低判别器的判别性能,把任何图像都当成真实图像。
生成对抗网络训练中的问题
欠拟合以及过拟合的问题
生成对抗网络中的欠拟合:生成对抗网络无法生成高质量的图像。这是生成对抗网络中一直在研究的一个问题,即如何提高生成图像的质量。而导致欠拟合的很重要的原因之一就是模型的生成能力不足。因此,可以通过适当增加原始网络中隐藏层的层数以及神经元的数量来尝试缓解欠拟合的问题。此外还可以通过改变网络结构等方法来缓解欠拟合的问题,例如使用深度卷积生成对抗网络( DCGAN )。
生成对抗网络中的过拟合:生成对抗网络生成的图像和数据集中的图像一致或仅进行了平移等。同样可以通过增加训练集的数量以及使用 Dropout 等方法来缓解过拟合的问题。
生成对抗网络中的模式崩塌
模式崩塌是生成对抗网络中非常特殊的一个问题,即模型无法生成多样性的图像。例如,如果将 MNIST 作为数据集,希望生成一个数字“0”到数字“9”的图像。生成模型很可能会“偷懒”,只生成容易生成的数字,例如“1”;而不去生成难度较大的数字,例如“8”。
可以很直觉地理解:只要生成模型生成质量足够好的“ 1 ”,同样能够达到“骗过”判别模型的目的。
模式崩塌是目前仍然尚待解决的问题,幸运的是,已经有很多论文提出了各种方法来缓解模型崩塌的问题。例如 VEEGAN , AdaGAN , MAD-GAN 等。
生成对抗网络训练不稳定的问题
梯度消失的问题:在刚开始训练生成对抗网络时,很容易出现梯度消失的问题。这是由于判别模型训练得“太好”或者“太差”导致生成模型无法继续训练。
难以收敛的问题:在训练生成对抗网络的后期,很可能出现生成模型难以收敛的问题。
目前,已经有很多论文提出改变生成对抗网络的目标函数来缓解生成对抗网络训练不稳定的问题。例如 LSGAN , WGAN , WGAN-GP 等。
第一章 测一测
说明:本文内容来源于网络,仅作为学习用途,如有侵权,请联系作者删除。