生成对抗网络(三)DCGAN讲解

                0

原文:Deep Convolution Generative Adversarial Networks
代码:pytorch
收录:ICLR 2016
 

注:fractional-strided convolution(微步卷积),属于反卷积,反卷积下还有转置卷积。


Abstract

        卷积网络CNNs在监督学习领域取得很高的成就,但是在无监督学习领域CNNs则研究很少,因此作者想在无监督学习领域尝试下CNNs,提出了将CNNs和GAN结合的DCGAN

        后来,通过在大量的数据集上的训练,证明DCGAN的生成器G和判别器D无论是在物体组成部分还是场景方面都学习到丰富的层次表达。
 

※论文核心思想:DCGAN相比GAN,对CNN进行改进:

  1. 使用卷积(D)和微步卷积(G)代替池化层;
  2. 只对生成器的输出层和鉴别器的输入层使用BN,别的层没有使用;
  3. 使用全局平均池化去替代FC;
  4. 生成器的输出层使用Tanh 激活函数,其他层使用RELU,判别器的所有层都是用LeakyReLU 激活函数。

 


1. Introduction

        从大量未标签的数据中学习到有用的特征表达一直是非常热门的研究领域,在计算机视觉背景下,我们能从大量的未标记图片以及视频中学习到良好的中间表现形式,然后将其运用到监督学习中。我们提议通过训练GAN来建立好的图像中间表现形式,但是GAN的一大问题就是其训练非常不稳定,有的时候会得到奇怪的结果,而且对于建立中间形式研究较少。
 
※我们有如下几个贡献

  • 提出并评估一系列的卷积GAN结构的限制,为了能确保在大多数情况下,DCGAN可以稳定使用;
  • 我们使用训练好的判别器来进行图像分类任务,这和其他无监督算法相比,结果更具优势;
  • 可视化DCGAN的filters,结果表明特定的filter能学习绘制特定的目标;
  • 生成器G具有有趣的向量运算性质,这使得我们可以对生成的样本进行语义上的操作。

 


2. Related Work

        对于无监督学习,使用的方法有聚类(例如K-means)、auto-encoders以及深度信念网络(deep blief networks)。

        对于产生自然图片,这一步分为参数和非参数的:

  • 非参数:从已有图像数据库中对图像的小块(patch)进行匹配,一般被用于纹理合成(texture synthesis)、超分辨率图片合成以及图像修补等方面。
  • 参数:这种方法以前研究的就比较多,2014年提出GAN之后,这种模型可以生成图片,但是不稳定,而且有的时候会产生噪声以及奇怪的图片。这之后,2015年提出了laplacian pyramid extension的GAN,生成图片的质量更好,但是由于引入多个模型噪声,仍不稳定。后来提出了recurent network approach 和 deconvolution(反卷积)的方法,可以产生一定质量的图片,但是他们没有利用生成器G来完成监督任务。

 


3. 模型架构的改进

        LAPGAN作者尝试迭代地将低分辨率的图片逐步转化为更好的图片,从而产生更可靠的结果。文中作者在使用传统的监督学习CNN架构扩展GAN的过程中,也遇到了困难。在反复实验和尝试之后,作者提出一系列的架构,可让GAN+CNN更加稳定,可以deeper,并且产生更高分辨率的图像。核心的工作是对现有的CNN架构做了如下三个方面的修改:

  • 全卷积网络:使用卷积替代确定性的空间池化操作,让网络自己学习downsampling(下采样)。作者对生成器和判别器都采用了这种方法,让它们可以学习自己的空间下采样。;
  • 取消全连接层使用全局平均池化去替代FC,全局平均池化虽然可以提高模型稳定性,但降低收敛速度。GAN的第一层以均匀噪声分布Z作为输入,可能称之为全连接(因为只是一个矩阵相乘),然后结果reshape成一个4维张量,用作卷积堆栈起点,对于判别器,最后的卷积层可以先展平flatten,然后将其输入到sigmoid分类器中
  • 批量标准化BNBN可以加速学习和收敛,通过将每个单元的输入归一化,使其均值和单位方差为零,从而稳定学习,这被证明是深度学习中非常重要的加速收敛和减缓过拟合的手段。它可以帮助由于初始化不当而导致的训练困难,并且有助于在更深层次的模型中实现梯度流。这被证明是让深层发生器开始学习的关键,防止发生器将所有样本压缩到一个单点,这是GAN中常见的问题。实践表明, 如果直接将BN应用到all layers,会导致样本震荡和模型不稳定,所以我们只对生成器的输出层和鉴别器的输入层使用BN
  • 激活函数:对于生成器G,其输出层使用tanh 激活函数,其余层使用relu 激活函数。我们发现使用bounded 激活函数可以加速模型的学习,使得颜色空间饱和和覆盖。对于判别器D,我们发现在D中所有层使用leaky relu 更好,尤其是对于生成高分辨率的图片。

总结如下
            2

1

反卷积 包含转置卷积和微步卷积,两者的区别在于padding 的方式不同,如下图所示:
                3                4


 

Reference

  1. DCGAN 论文简单解读
  2. 从头开始GAN【论文】(二) —— DCGAN
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值