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

                0

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


Abstract

        卷积网络CNNs在监督学习领域取得很高的成就,但是在无监督学习领域CNNs则研究很少,因此作者想在无监督学习领域尝试下CNNs,提出了将CNNs和GAN结合的DCGAN。
        后来,通过在大量的数据集上的训练,发现DCGAN的生成器和判别器无论是在物体组成部分还是场景方面都学习到丰富的层次表达。


1. Introduction

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

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

2. Related Work

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

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

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

3. APPROACH AND MODEL ARCHITECTURE

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

  • 全卷积网络:使用strided convolution 替代确定性的空间pooling操作,让网络自己学习downsampling(下采样)。作者对generator和discriminator都采用了这种方法,让它们可以学习自己的空间下采样。;
  • 取消全连接层:使用全局平均池化去替代FC,全局平均池化虽然可以提高模型稳定性,但降低收敛速度。GAN的第一层以均匀噪声分布Z作为输入,可能称之为全连接(因为只是一个矩阵相乘),然后结果reshape成一个4维张量,用作卷积堆栈起点,对于判别器,最后的卷积层可以先flatten,然后将其输入到sigmoid分类器中
  • Batch Normalization:BN可以加速学习和收敛,其将每一层的输入变换到0均值和单位标准差(其实还需要shift 和 scale),这被证明是深度学习中非常重要的加速收敛和减缓过拟合的手段。它可以帮助由于初始化不当而导致的训练困难,可以让梯度flow to deeper layers。实践表明,这对于deep generator的有效learning是至关重要的,可以防止generator将所有的samples变成一个single point,这是GAN训练经常会碰到的问题。实践表明,如果直接将BN应用到all layers,会导致sample震荡和不稳定,所以我们只对生成器的输出层和鉴别器的输入层使用BN。

1

发布了42 篇原创文章 · 获赞 6 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/qq_40520596/article/details/104699306
今日推荐