上一篇介绍了GAN的基本原理及相关概念和知识点,也反映了GAN的缺点,如训练不稳定、生成过程不可控、不可解释等。 让我们来看一下开发计划署(DC GAN ),它是gan的改进版本之一。
1 .网络结构
DCGAN鉴别器和生成器都使用卷积神经网络(CNN )而不是GAN中的多层探测器,移除CNN中的池层并将所有连接层置于全局池层中以允许对整个网络的精细调整
2 .从解卷积上的图中可以看到,生成器g将100维噪声向量扩展到64 * 64 * 3的矩阵输出,整个过程采用微步卷积方法作者将其称为fractionally-stridedconvolutions,特别强调不是deconvolutions。 关于上采样和反卷积等概念,为了看看他们的区别是什么,我特地找了资料。 相关内容整理如下。
上采样和解卷积是相同的概念,目的是将经过池化层缩小的矩阵扩大到一定的大小。 例如,从3 * 3放大到5 * 5,如下图所示。
另一方面,解卷积(链路:反向卷积)包括倒排卷积和微步卷积。 两者的区别在于padding的方法的不同。 看下一张图像就知道了。
也有“分段卷积”的概念。 pixel-wise目标检测任务的一个常见场景是通过解卷积恢复穿过池层后的矩阵大小。 从池化到解卷积的过程实际上损失了很多信息,但这个过程的真正目的是通过实际缩小矩阵size来增加感受区。 那我们能不能跳过先缩小后增大的过程,直接进行感受区的扩大呢? 这就是所谓的空洞解卷积,有关详细内容,请参见此链接。 空洞解卷积
3 .训练方法DCGAN的训练方法与GAN相同,可分为以下三个步骤:
(1)训练d,使公式【logd(x ) log】1-d(g ) z ) ) G keeps still】的值达到最大
)2)在保持d的状态下,训练g使式【LOGD(g ) z】的值最大
(3)重复step )1)和step )2)直到g和d达到纳什均衡
4.DC gan与gan相比的改进gan或常规CNN相比的改进包括以下方面:
)使用卷积和解卷积代替池化层
)2)在生成器和判别器两者中追加了批量正规化操作
)3)移除所有连接层,用全球池化层替换
)4)发生器的输出层使用Tanh激活函数,其他层使用RELU
)5)判别器的所有层都用LeakyReLU激活函数
5 .使用插值精细调整漫游包含空间噪声输入z的方案可以使隐藏空间的结构从有窗到无窗、从电视到无窗发生变化,从而为生成的图像提供语义上的平滑度。
6 .语义掩码通过标记窗口并确定激活神经元是否在窗口中,来找到影响窗口形成的神经元。 如果将这些神经元的权重设置为0,则生成的图像将没有窗。 从下图中可以看到,上面一行的图像有一个窗口,下面一行通过语义蒙版去除了窗口,但空白位置仍然平滑连续,整个图像的含义变化不大。
7 .向量算法的一个典型示例是【矢量(和谐白羊)矢量(man ) )矢量(Woman )】矢量(queue )。 作者将这一思想融入到图像生成中,得到了以下实验结果
请阅读(nice文章) (imagecompletionwithdeeplearningintensorflow
参考(精彩的解卷积视频(https://github.com/VDU moulin/conv _ arithmetic