论文笔记-DCGAN
Deep Convolutional GAN
网络结构DCGAN:
1、使用CNN网络
2、DCGAN网络都是全卷积,拿掉了池化层
3、生成器除最后一层外都加了batchNorm,鉴别器则是第一层没有加BatchNorm
4、生成器是**函数是relu,输出层是tanh
5、鉴别器的**函数是leaky_relu,负斜率是0.2
6、采用Adam优化算法,学习率是0.0002,beta1=0.5
反卷积(去卷积Deconvolution)
生成器G 将一个100 维的噪音向量扩展成64 * 64 * 3 的矩阵输出,整个过程采用的是微步卷积的方式。论文中:fractionally-strided convolutions,不是deconvolution。
- 上采样和反卷积
相同:上采样和去卷积是同一个概念,它的目的是将经过池化层以后缩小的矩阵扩大到一定的大小,比如说从3 * 3 扩大到5 * 5
去卷积包括:转置卷积、微步卷积;两者的padding方式不同 - 空洞卷积
在pixel-wise 目标检测任务上有一个常见的场景就是需要通过去卷积来会恢复经过池化层以后的矩阵大小,先池化再去卷积的过程实际上损失了很多信息,而这个过程的真实目的实际上就是为了通过缩小矩阵size 的方式来增大感受野,那能不能跳过先缩小在增大的过程直接进行感受野放大呢?空洞卷积
训练
(1)for k steps:训练D 让式子【logD(x) + log(1 - D(G(Z)) (G keeps still)】的值达到最大
(2)保持D 不变,训练G 使式子【logD(G(z))】的值达到最大
(3)重复step(1)和step(2)直到G 与D 达到纳什均衡
DCGAN 和GAN的区别
(1)使用卷积和去卷积代替池化层
(2)在生成器和判别器中都添加了批量归一化操作
(3)去掉了全连接层,使用全局池化层替代
(4)生成器的输出层使用Tanh **函数,其他层使用RELU
(5)判别器的所有层都是用LeakyReLU **函数