GAN及其重要变种CGAN、DCGAN

文章目录

  • 一、什么是GAN?
  • 二、原始GAN
    • 1. GAN的基本框架
    • 2.原始GAN的核心思想
    • 3.GAN的原理
    • 4.损失函数
    • 5.GAN的训练
    • 6.GAN的优点
    • 7.GAN的缺点
    • 8.GAN的应用
  • 三:CGAN
  • 四:DCGAN
    • 1.网络结构
    • 2.DCGAN网络结构设计要点
    • 3.DCGAN训练细节


一、什么是GAN?

       GAN(Generative Adversarial Networks), 生成式对抗神经网络,是一种基于无监督学习方法的生成类模型。

二、原始GAN

1. GAN的基本框架

GAN及其重要变种CGAN、DCGAN_第1张图片
       GAN所建立的一个学习框架,实际上就是生成模型和判别模型之间的一个模仿游戏。生成模型的目的,就是要尽量去模仿和学习真实数据的分布;判别模型则是要判别自己所得到的一个输入数据,究竟是来自于真实的数据分布还是来自于一个生成模型。
GAN及其重要变种CGAN、DCGAN_第2张图片
       GAN的主要灵感来源于博弈论中零和博弈的思想,应用到深度学习神经网络上来说,就是通过生成网络G ( Generator)和判别网络D ( Discriminator)不,断博弈,进而使G学习到数据的分布,如果用到图片生成上,则训练完成后,G可以从一段随机数中生成逼真的图像。

2.原始GAN的核心思想

GAN及其重要变种CGAN、DCGAN_第3张图片
       GAN的核心思想是:同时训练两个相互协作、同时又相互竞争的深度神经网络。一个称为生成器Generator,另一个称为判别器Discriminator)来处理无监督学习的相关问题。在训练过程中,两个网络最终都要学习如何处理任务。

3.GAN的原理

       在训练过程中,生成器努力地让生成的图像更加真实,而判别器则努力地去识别图像的真假,这个过程相当于二人进行博弈,随着时间的推移,生成器和判别器在不断地进行对抗。
       最终两个网络达到了一个动态平衡,生成器生成的图像接近于真实图像分布,而判别器识别不出真假图像,对于给定图像的预测为真的概率基本接近0.5
(相当于随机猜测类别)。

4.损失函数

GAN及其重要变种CGAN、DCGAN_第4张图片

5.GAN的训练

       ●生成模型G构建一个从先验分布Pz (z)到数据空间的映射函数 G(z; θg)。判别模型D的输入是真实图像或者生成图像,D(x; θd )输出一个标量, 表示输入样本来自训练样本(而非生成样本)的概率。

       ●模型G和D同时训练: 1、固定判别模型D,训练生成器G,调整G的参数使得log(1 - D((G))的期望最小化;实际就是让D(G(z))的期望最大化,接近于1。
       ●固定生成模型G,训练判别器D,调整D的参数使得logD(X) + log(1 - D(G(z))的期望最大化。这个优化过程可以归结为一个“二元极小极大博弈
( minimax two-player game)”问题:

6.GAN的优点

  1. GAN采用的是一种无监督的学习方式训练,可以被广泛用在无监
    督学习和半监督学习领域。
  2. 相比于变分自编码器VAE, GAN学习到的是真实数据的分布,而
    VAE是从真实数据学到均值和方差,再从正太分布中采样,这样
    得到的数据会有偏差,导致了VAE生成的图像比GAN模糊。
  3. 相比VAE,如果GAN的判别器训练良好,那么生成器可以完美的学
    习到训练样本的分布.换句话说,GANs是渐进一致的,但是VAE是有
    偏差的。
  4. GAN应用到一些场景上,比如图像风格迁移,超分辨率,图像补
    全,去噪,避免了损失函数设计的困难,只要有一个基准,
    直接加上判别器,剩下的就交给对抗训练了。

7.GAN的缺点

  1. 训练GAN需要达到纳什均衡,有时候可以用梯度下降法做到,有时候做不到。
  2. GAN不适合处理离散形式的数据,比如文本.
  3. GAN存在训练不稳定、梯度消失、模式崩溃/坍塌的问题
  4. 难以训练,需要小心设置网络训练中的参数

8.GAN的应用

● 图像生成
● 图像转换
● 图像合成
● 人脸合成
● 文本到图像的合成
● 风格迁移
● 图像超分辨率
● 图像修复

三:CGAN

       条件生成式对抗网络(CGAN) 是对原始GAN的一个扩展,生成器和判别器都增加额外信息y为条件, y可以使任意信息,例如类别信息,或者其他模态的数据。通过将额外信息y输送给判别模型和生成模型,作为输入层的一部分,从而实现条件GAN。
GAN及其重要变种CGAN、DCGAN_第5张图片
       在生成模型中,先验输入噪声p(z)和条件信息y联合组成了联合隐层表征。条件GAN的目标函数是带有条件概率的二人极小极大值博弈(two-player minimax game ) ,如果 条件变量y是类别标签,可以看做CGAN是把纯无监督的GAN变成有监督的模型的一种改进。

四:DCGAN

1.网络结构

       DCGAN是继GAN之后比较好的改进,其主要的改进主要是在网络结构上,到耳前为止,DCGAN的网络结构还是被广泛的使用,DCGAN极大的提升了GAN训练的稳定性以及生成结果质量。
GAN及其重要变种CGAN、DCGAN_第6张图片
       DCGAN的生成器网络结构如上图所示,相较原始的GAN. ,DCGAN几乎完全使用了卷积层代替全连接层,判别器几乎是和生成器对称的,从上图里我们可以看到,G网络没有pooling层, 使用了转置卷积并且步长大于等于2进行上采样。

2.DCGAN网络结构设计要点

  1. 在D网络中用strided卷积(stride>1) 代替pooling层, 在G网络中用
    conv2d_ transpose代替上采样层。
  2. 在G和D网络中直接将BN应用到所有层会导致样本震荡和模型不稳定,通过在generator输出层和discriminator输入层不采用BN可以防止这种现象。
  3. 不使用全连接层作为输出。
  4. G网络中除了输出层(tanh) 都使用ReLu激活函数。
  5. D网络中都使用LeakyReLu激活函数。

3.DCGAN训练细节

● 预处理环节,将图像scale到tanh的[-1, 1]。
所有的参数初始化由(0, 0.02)的正态分布中随即得到。

● LeakyReLU的斜率是0.2 (默认)。

● 优化器使用调好超参的Adamoptimizer。

● learning rate=0.0002

● 将momentum参数beta从0.9降为0.5来防止震荡和不稳定。

你可能感兴趣的:(AI,深度学习,神经网络,深度学习)