简介
如何把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:

卷积神经网络 信号数据 卷积神经网络gan_卷积


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

DCGAN的贡献:

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

卷积神经网络 信号数据 卷积神经网络gan_DCGAN_02


系列传送门:

初窥门径__生成对抗网络(GAN)(一)小试牛刀__GAN实战项目之mnist数据集(二)

融会贯通__条件生成对抗网络(cGAN)(三)

登堂入室__生成对抗网络的信息论扩展(infoGAN)(五)

渐入佳境__距离生成对抗网络(WGAN)(六)

登峰造极__边界均衡生成对抗网络(BEGAN)(七)

一代宗师__循环一致性生成对抗网络(CycleGAN)(八)