炉火纯青__深度卷积生成对抗网络(DCGAN)(四)

简介
如何把CNN与GAN结合?DCGAN是这方面最好的尝试之一,DCGAN的原理和GAN是一样的,这里就不在赘述。它只是把经典GAN中的G和D换成了两个卷积神经网络(CNN)。但是,并不是直接替换就可以了, DCGAN 对卷积神经网络的结构做了一些改变,以提高样本的质量和收敛的速度。具体有哪些改变,将在本文中看到。
原论文地址:https://arxiv.org/pdf/1511.06434.pdf

DCGAN原理:
实际上,DCGAN是一类GAN的简称,满足以下设计要求(这些要求更像是一些tricks)的GAN网络都可以称为DCGAN模型。

  1. 采用全卷积神经网络。不使用空间池化,取而代之使用带步长的卷积层(strided convolution)。这么做能让网络自己学习更合适的空间下采样方法。PS:对于generator来说,要做上采样,采用的是分数步长的卷积(fractionally-stridedconvolution);对于discriminator来说,一般采用整数步长的卷积。
  2. 避免在卷积层之后使用全连接层。全连接层虽然增加了模型的稳定性,但也减缓了收敛速度。一般来说,generator的输入(噪声)采用均匀分布;discriminator的最后一个卷积层一般先摊平(flatten),然后接一个单节点的softmax。
  3. 除了generator的输出层和discriminator的输入层以外,其他层都是采用batch normalization。Batch normalization能确保每个节点的输入都是均值为0,方差为1。即使是初始化很差,也能保证网络中有足够强的梯度。
  4. 对于generator,输出层的激活函数采用Tanh,其它层的激活函数采用ReLU。对于discriminator,激活函数采用leaky ReLU。

下图是DCGAN的generator model:

在这里插入图片描述
在DCGAN中,G的网络结构是需要进行up-sample , 所以使用的“de-convolution”反卷积层,而对于D则是比较普遍的卷基层进行下采样。

DCGAN的贡献:

  • 提出了一类基于卷积神经网络的GANs,它在多数情况下训练是稳定的。
  • 与其他非监督方法相比,DCGAN的discriminator提取到的图像特征更有效,更适合用于图像分类任务。
  • 通过训练,DCGAN能学到有意义的特征。
  • DCGAN的generator能够保持latentspace到image的“连续性”。

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_42823043/article/details/89284708