DCGAN

Tensorflow2.0实现DCGAN

  • 1.一 论文导读
  • 2.二 论文精读
  • 3.三 代码实现
  • 4.四 问题思索

《unsupervised representation learning with deep convolutional generative adversarial networks》
—深度卷积生成对抗网络(DCGAN)
作者:Alec Radford & Luke Metz
发表会议及时间:ICLR 2016

一 论文导读

 

DCGAN_卷积
DCGAN_生成器_02

DCGAN_插值_03
如果判别大图像,比如1024*1024,则输入神经元会过多,对于判别器,参数量过于巨大。

为了减少参数量,自然就会想到卷积神经网络。
DCGAN_生成器_04

2012: Alexnet

DCGAN_转置_05
DCGAN_转置_06

  • 怎么做呢?

DCGAN_插值_07

DCGAN_卷积_08

DCGAN_插值_09

效果结果很差!!!!

所以DCGAN产生了


主要贡献

  • 提出了一系列策略,成功的将GAN和CNN进行结合
  • 能够训练卷积生成对抗网络,使得生成效果大大提升
  • 通过充分的实验,对原理做了直观全面的解释

DCGAN作为2016年GAN的代表之作起到了明显的划分作用
DCGAN_插值_10


MLP与CNN

  • MLP

DCGAN_生成器_11
●网络有多个隐层组成
●每一个神经元都和上一层中的所有节点连接
●参数量大,训练难度大
●会丢失像素间的空间信息


  • CNN

DCGAN_生成器_12

●稀疏连接,参数少
●可以处理更复杂的图像
●可以利用像素间的空间信息
●可以引入池化、空洞卷积等操作


Decoder中常用的3种上采样

●upsampling 插值上采样
●unpooling 反池化
●deconvolution 转置卷积


DCGAN_卷积_13
DCGAN_转置_14
DCGAN_插值_15
DCGAN_生成器_16
双立方插值和双线性插值一样,只不过是把周围4个值,变成周围16个值

最常用的就是双线性插值

DCGAN_插值_17


DCGAN_插值_18
反池化,因为位置的关系,保留住了特征,特别是位置信息特征


DCGAN_卷积_19
转置卷积,要先进行扩充,再进行卷积

转置卷积,相比于插值和uppooling的最大优点,就是有着可学习参数的卷积核,典型应用U-NET

DCGAN_转置_20


GAN网络结构

●由判别模型和生成模型两部分组成
●生成模型负责生成假样本,欺骗判别器
●判别模性来分辨真样本和假样本
●两个模型交替训练,类似对抗博弈的过程

DCGAN_池化_21


过程


一 训练判别器,固定生成器,使用反向传播

DCGAN_生成器_22


二 固定判别器,训练生成器,使用反向传播

DCGAN_转置_23


GAN网络训练过程示意图

DCGAN_生成器_24

并不是说,一开始判别器就很厉害,即警察很厉害,判别器和生成器是一起进步的(因为一起训练),判别器每次都要比生成器强一点才行,这样一直一起变强。
DCGAN_转置_25


二 论文精读

 

一 去掉判别器中所有的池化,用卷积代替

DCGAN_卷积_26

为什么用卷积代替池化

因为,卷积带有可学习参数,在GAN网络中,判别器D主要目的是辅助生成器G达到最优,如果用池化,则其梯度会稀疏,会导致判别器学习困难,如果判别器学习困难,他就不能很好的辅助指导生成器学习。

同时,卷积也要有下采样的作用

DCGAN_插值_27


二 生成器使用反卷积

DCGAN_卷积_28
DCGAN_插值_29

三 去掉判别网络的全连接层

因为FC层其巨大的参数量计算提高了网络的训练难度,改用了卷积

四 改用batch normalization

DCGAN_卷积_30

五 激活函数改用tanh 和 Leaky RelLu

其目的和去池化等同,因为避免梯度稀疏,特别是Leaky RelLu

DCGAN_卷积_30
DCGAN_生成器_32

训练参数设置

DCGAN_插值_33


训练GAN要了解

DCGAN_转置_34


DCGAN_池化_35

DCGAN_生成器_36

突变就是没有学到分布,只是进行了记忆

下图是没有突变,是学到了分布

DCGAN_插值_37
DCGAN_池化_38

DCGAN_插值_39
DCGAN_生成器_40

DCGAN_池化_41



三 代码实现

 

四 问题思索

 

恍然大悟!是解码,解码,解码(decode),以前一直把上采样,看作解码了,解码就是解码,是总称。

补充小知识:深度学习三巨头之一的Bengio Y的数学功底非常强,GAN网络的作者就是Bengio的学生,作为Bengio组出来的文章,数学论证一般都是非常充分的