深度卷积生成对抗网络--DCGAN

天涯浪子 提交于 2019-12-05 10:00:54

本问转自:https://ask.julyedu.com/question/7681,详情请查看原文


——前言:如何把CNN与GAN结合?DCGAN是这方面最好的尝试之一,DCGAN的原理和GAN是一样的,这里就不在赘述。它只是把经典GAN中的G和D换成了两个卷积神经网络(CNN)。但是,并不是直接替换就可以了, DCGAN 对卷积神经网络的结构做了一些改变,以提高样本的质量和收敛的速度。具体有哪些改变,将在本文中看到。


摘要
近年来,深度卷积神经网络(CNN)的监督学习在计算机视觉应用上发挥巨大的作用,然而CNN的非监督学习只受到较少的关注。在这项工作中我们希望有助于缩小CNN在监督学习和非监督学习成功的差距。我们提出了一种叫做深度卷积生成对抗网络的CNN,它具有一定的结构约束,展示了其在非监督学习方向上强有力的候选方案。通过在各种各样的图像数据集的训练,我们展示了令人信服的证据,我们的深度卷积对抗对(adversarial pair)从对象到场景在生成模型和判别模型上都能够学习到层级的表示。此外,我们在一些的新的任务上使用学习到的特征表明它们一般的图像表示上具有通用性。

引言
从大量未标记数据集中学习可重复使用的特征表示已经成为一个热门研究区域(been an area,一个地区,区域)。在计算机视觉背景下,一个具有实际影响力的事实就是使用无限量的未标记图像和视频来学习良好的中间表示,然后应用到各种各样的监督学习任务中去,比如图像分类。我们建议的一种的具有良好的特性的图像表示就是通过训练生成对抗网络(GAN)然后可以在监督学习任务中重复利用生成模型和判别模型的一部分作为特征提取器。GAN在极大似然技术方面惊人的潜力。此外一个具有争议的话题就是它们的学习过程和缺少启发性的成本函数(例如逐个像素的独立均方误差)在表示学习中具有吸引人的前景。 GAN 有一个已经知道的问题就是训练的不稳定性,经常的结果的就是导致产生无意义的输出。因此目前在 GAN 学习上的理解和可视化以及在多层 GAN 中的中间级表示方向上只有一些有非常有限的公开发表的研究。

相关工作
1.无标签数据的表示学习
非监督表示学习在通用的计算机视觉领域以及在图像背景下是一个相当好的研究问题。传统的非监督表示学习方法就是在数据上的使用聚类(比如使用K-means),通过提高聚类器在分类上的得分,在图像背景下,人们通过可以对图像块进行分层的聚类(Coates & Ng,2012)学习到一些非常的有效的图像表示。另外一些流行的方法有训练自动编码器(Vincent et al.,2010)、分离编码中组件的内容和位置(Zhao et al.,2015)、可以图像进行紧凑编码然后尽可能精确重建图像的阶梯结构(Rasmus et al.,2015),这些方法都在图像素上表现出了良好的学习特征表示的方法。另外深度信念网络(Lee et al., 2009)在学习层次结构的表示上也表现出了很好的效果。

2.自然图像的生成
图像生成模型也有了成熟的研究,这方面主要分为两大类:参数多态和非参数多态。
非参数多态方法经常用于数据库中已有的图像,常常用来匹配图像块,这方面已经用到了纹理合成(Efros et al.,1999)、超分辨率(Freeman et al., 2002)、图像修复(Hays & Efros,2007)。
参数多态方法图像生成已经得到了广泛的探索(比如在MINIST手写数字数据库方面以及纹理合成(Portilla & Simonceli,2000))。不过,想要产生真实世界的自然图像到最近都没有取得多大的成功,但是这是采样的诟病就是模糊,其他的一些生成图像的方法有使用迭代前向扩散过程(Sohl-Dickstein,2015)。生成对抗网络(Goodfellow et al.,2014)生成的图像有噪声和难以理解的毛病。一种拉普拉斯金字塔扩展的方法(Denton et al.,2015)展现了高质量的图像,但是它仍然有这种目标看起来摇摆不稳定的感觉,主要是因为链接多个模型时引进了噪声。一种递归网络方法(Gregor et al.,2015)以及另外一种反卷积网络方法 (Desovitskiyet al.,2014)最近在自然图像生成上也取得了一些成功。但是这些方法没有促使生成模型在监督学习上的使用。
2.CNN内部的可视化
使用神经网络一个不断受到批判的问题就是它们是黑箱算法,对于网络那些在形式上简单的人类可读的算法只有很少的理解。在CNN环境下,Zeiler等人 ( Zeiler&Fergus,2014)发现通过使用反卷积和过滤最大激活,能够发现网络中每个卷积滤波器在神经网络中的大致作用。类似地,在输入中使用梯度递减可以让我们检查这些作用特定滤波器子集的理想图像(Mordvintsev et al.)

方法和模型结构
历史上尝试在模型图像上使用 CNN 扩展 GAN 没有取得成功。 这激发了 LAPGAN(拉普拉斯金字塔生成对抗网络)的作者(Denton et al.,2015)开发一种其他的方法去迭代高档低分辨率生成图像是的建模更加稳定。我们在试图使用这种通常在监督学习领域的 CNN 框架去扩展 GAN 时也遇到了困难。 不过, 过广泛的模型探索确认了一类能够在一系列的数据集上得到稳定训练以及能够训练更高分辨率和更深的生成模型的架构。
我们采用的方法的核心关键点是借鉴和修改了三个最近CNN框架的改进。
首先就是全卷积网络(Springenberg et al.,2014),使用步幅卷积替代确定性空间池化函数(比如最大池化),我们允许网络学习自身的空间下采样的方法应用在生成网络当中,在判别网络中允许它学习自己的空间上采样。
其次一个趋势是在最顶层的卷积后面去除全连接层特点。最有力的例子是艺术图像分(Mordvintsev et al.)应用的全局平均池化。我们发现全局平均池化虽然增加了模型的稳定性但却影响了收敛速度。在卷积层的中间地带直接分别连接到生成网络的输入和判别网络的输出系统也可以很好的工作。GAN 的第一层采用均匀噪声分布Z作为输入,因为它只是一个矩阵乘法操作所以可以称为全连接,但结果被重组为一个4维的张量,并作为卷积叠加(convolution stack)的开始。对于判别网络,最后卷积层是平滑的然后送入单个sigmoid输出。如图1是一个举例模型的示意图。
最后是批量规范化(Batch Normalization)(Loffe & Szegedy,2015),通过将输入的每个单元标准化为0均值与单位方差来稳定学习。这有助于处理初始化不良导致的训练问题另外还有助于梯度流向更深的网络。这证明关键是取得深层生成器开始学习,防止生成器的崩溃从所有样本到单个点,这是在GAN常见的失败模式。但直接对所有的层采取批量归一化,导致采样的振荡和模型的不稳定。不要批量规范化(batchnorm)将应用到生成网络的输出层和判别网络输入层可以避免这些问题。
ReLU 激活函数(Nair & Hinton,2010)使用在生成网络中除了输出层使用Tanh函数除外。 我们观察到,使用有界激活可以让模型更快学习达到饱和并覆盖训练分布的颜色空间。在差别器中,我们发现LeakyReLU激活函数(Maas 等人,2013)(Xu 等人,2015)能够很好地工作,特别是对于更高分辨率的模型。 这与使用maxout激活的原始GAN论文相反(Goodfellow 等,2013)。





对抗训练细节
我们在三个数据集上训练了 DCGAN, 分别是 Large-scale Scene Understanding
(LSUN)( Yu et al.,2015),Imagenet-1k和一个最近组织的Faces dataset。每个数据集上的使用细节如下:
训练图像除了缩放到tanh激活函数的[-1,1]范围之外没有经过其他的预处理。所有的模型都是通过小批量随机梯度下降法(mini-batch stochastic gradient descent)进行训练的, 小批量的大小是 128。 所有权重的初始化为均值为 0 和方差为 0.02的正态分布。在LeakyReLU, 所有模型的leak的斜率设置为0.2。之前的 GAN是使用momentum加快训练速度,DCGAN是使用Adam优化程序调整超参数。建议使用的学习率是0.001,太高的话使用0.0002代替。此外,没有动量项beta1,在建议的0.9训练动荡且不稳定,但降低到0.5是有利于模型的稳定。
1.大规模图像理解(LSUN)
在改善生成图像模型样本视觉质量的同时,也增加了对于训练样本的记忆和过拟合的关注。为证实我们的模型规模在更多的数据和跟高的分辨率怎样生成,我们在LSUN卧室数据集包含一个小的超过300万的训练样本上训练了一个模型。最近Hardt等人的分析表明怎样快速学习模型和泛化能力有着直接的联系。模仿在线学习,如图2所示展示了训练一次的样本,除了手链后的样本,我们显示来自一个周期的训练样本,模仿在线学习,以及收敛后的样本(图3所示),作为论证,我们的模型不是通过简单过拟合/记忆训练例子产生高质量的样本。图像没有用到数据增强。

——删除重复数据
为进一步降低生成器记忆输入样本的可能性(图 2),我们进行了一个简单的删除重复图像的过程。我们在训练样本的32*32下采样中心采样拟合了一个3072-128-3072去噪差正则化RELU自编码。






2.基于人脸数据的实验
我们根据人名随机的从网页图片上抓取包含人脸的图片。而人名的获取是从dbpedia上的得到的,作为一个标准他们都是出生在现代的。这个数据集是来10000个人的 300 万图像。 我们在这些图像上运行一个OpenCV人脸检测,保持高分辨率的检测,给了接近350000个人脸框图。我们使用这些人脸框图作为训练数据。图像没有用到数据增强。
3.基于IMAGENET-1K的实验
我们使用 Imagenet-1k(Deng et al.,2009)作为非监督训练中自然图像的来源。我们在32*32的中心采样上训练。图像没有应用到数据增强。

实验验证DCGAN性能
1.使用GAN作为特征提取器分类CIFAR-10
评价一个非监督表示学习算法质量的常见方法就是利用它们在有监督数据集上
作为特征提取器然后评价这个线性模型在这些特征上拟合的性能。
在 CIFAR-10 数据集上,一个非常强大的基准性能已被证明,利用 k-均值作为特征学习算法的单层特征提取管道。使用非常大数量的特征映射(如 4800)这个技术实现 80.6%的准确率。一个无监督的多层扩展的基础算法达到82%的精度(Coates & Ng,2011)。为了评估DCGAN对于有监督任务的表示学习质量,本文在Imagenet-1k上训练然后来自所有层判别网络的卷积特征,最大池化每层表示产生一个4*4的空间网格。这些特征随后被平滑和去形成一个28672维的向量然后用一个正则化线性L2-SVM在它们上面训练。实现了82.8%的准确率,性能超过了所有基于K均值的方法。值得注意的,这个判别网络相对于K均值聚类技术有许多很少的特征映射(在最高层有 512),但由于许多层的4*4空间位置结果有一个更大的总特征向量大小。2015年Dosovitskiy等提出DCGAN的性能仍然比不上典型的CNN,在无监督方式下训练正常判别的CNN去区分特定选择的技术,积极增强,典型的样本来自原数据集。进一步的改善可以通过微调判别网络的表示实现,但我们省去了这个微调工作。



2.使用GAN作为特征提取器分类SVHN
在街景门牌号码数据集(SVHN)上,当标签数据稀缺时对于有监督的目标使用DCGAN的特征判别器。以下相似的数据集制定规则在cifar-10实验,我们从非额外集分离出一个10000样本的验证集,并将其用于所有超参数和模型选择。 随机选择1000类均匀分布训练实例,在用于cifar-10相同的特征提取管线的顶部用于训练正则化的线性L2-SVM分类器。这个达到最优的效果是22.48%的测试错误,2015年Zhao等人利用未标记数据提高cnn设计的另一个改进。此外,本文还通过2012年Bergstra和Bengio训练的一个纯粹有监督的CNN 用相同的架构和相同的数据集并且通过64个超参7DCGAN非监督表示学习数试验的随机搜索优化该模型,验证了在DCGAN中使用CNN架构不是模型性能的关键贡献因素。它实现了28.87%更高的验证错误率。






网络内部的研究以及可视化
我们调查了用来的训练生成模型和判别模型的各种不同的方法。我们没有在训练集上做过不管那种的最邻近搜索。因为通过小图像变换进行像素级或者是特征空间上的最邻近搜索不是一般的愚蠢(Theis et al.,2015)。我们没有使用对数似然度量去评估模型,因为这也不是一个很好的度量方法(Theis et al.,2015)。
1.隐变量空间漫游
我们做的第一个实验就是去理解隐变量的全景状态。走在流行学,通常学到关于记忆的迹象(如果有尖锐的转换)在空间中是分层崩塌的形式。如果行走在这个潜在空间导致对图像生成的语义变化(例如图像被添加或删除),可以推测模型已经学会了相关和有趣的表示。结果如图4所示。



2.判别模型特征的可视化
前期的工作表明在大型图像数据集上的CNN监督学习训练可以得到效果很好的学习特征(Zeiler & Fergus, 2014),另外还有在场景分类上基于监督学习的CNN训练的目标检测(Qquab et al., 2014)。我们同样证明了在大型图像数据集上基于无监督学习的DCGAN也能训练得到有意义的特征层次结构。使用Springenberg 提出的反向传播算法指导的方法,如图5所示,判别模型通过作用在卧室中的一些典型部分,比如床、窗户学习到的特征。作为对比,对于同样的图像,我们给出了没有相关联的激励作用的随机初始化的特征作为基准。



3.生成模型表达式的操作
——去除特定的对象
除了判别模型学到的表征外,这有一个问题就是生成模型学到了什么表征。根据样本提供的质量生成模型学习主要场景组件的特定对象表征,例如,床、窗户、台灯、门和其他各种各样的家具。为了探究这些表征采取的形式,我们进行了一项实验,试图从生成模型中完全删除窗口。在150个样本中,对52个窗户手动绘制了边框。在第二高的卷积层特征,Logistic回归正好适合用来去预测一个特征激活量是否窗户上(或者不在),通过使用这个准则如果激活量在绘制的边框内部表示为正,相同图像中的随机样本表示为负。
依据这个简单的模型,将所有的权重大于0(一共有200个权重值)的特征映射都从空间位置上移除出去。然后,生成有和没有特征移除的新的随机样本。
生成的带和不带窗户的图像如图6所示,有趣的是网络大都忘记在卧室中绘制窗户而是用别的物体代替。
——人脸样本上的矢量算法
在评估词汇学习表征(Mikolov et al.,2013)的背景下证明简单算术运算揭示了表征空间上丰富的线性结构。一对典型的实例就是vector(”King”)-vector(”Man”)+vector(”Woman”)的矢量是和Queen的矢量是最接近的近邻。我们在生成模型研究了Z表征是否会出现相似的结构(线性结构)。 我们在视觉概念典型样本的Z向量集上执行了类似的算法。实验仅在单样本上进行每个概念是不稳定的,但对于三个示例经校准的平均Z向量语义上遵从算法表现出一致性和稳定性。除了图7显示的对象操作,还在Z空间展示了人脸姿态线性建模,如图8所示。这些展示表明通过文中的模型使用Z表示学习能够开发有意义有趣的应用。2014年Dosovitskiy等人已证明条件生成模型能够学到令人信服的对象属性模型,如:缩放、旋转、位置。据我们所知这是第一个展示纯粹发生在无监督模型。进一步探索和发展上述矢量算法可以显着减少复杂图像分布的条件生成模型所需的数据量。







——结论与展望——
我们在训练生成对抗网络上提出了一套更稳定的架构以及我们给出足够的证据表明在监督学习和生成模型上对抗网络可以为图像学习到很好的特征表示。但仍然存在一些形式的模型不稳定性-我们注意到,随着模型的时间更长,有时会将一些过滤器的子集塌缩为单个的振荡模式。未来的工作需要去解决这种不确定性。我们认为将这个框架扩展到其他领域,如视频(帧预测)和音频(预训练功能的语音合成)应该是非常值得进一步研究的。进一步调查学习隐空间的属性也将会有意义。
完。
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!