Unsupervised Representation Learning With Deep Convolutional Generative Adversarial Networks(DCGAN)

Abstract(摘要)

近年来,使用卷积网络(CNN)的监督学习已经在计算机视觉应用中得到了广泛的应用,相比之下,CNN的无监督学习受到的关注较少。在这项工作中,我们希望弥补CNNs在有监督学习和无监督学习方面的成功之间的差距。我们引入了一类称为深度卷积生成对抗网络(DCGAN)的CNN,它具有某种结构约束,并说明了他是一个有力的无监督候选方法。在各种图像数据集的训练中,我们展示了令人信服的证据,我们的深度卷积对抗对中的生成器和判别器都能从物体场景部分学习到有层次的特征表示。除此之外,我们对新任务使用学习特征,说明作为一般图像表示的适用性。

1.  Introduction(介绍)

从大型未标记数据集中学习可重用的特征表示一直是一个研究活跃的领域。在计算机视觉的背景下,人们可以利用几乎无限量的未标记图像和视频来学习良好的中间特征表示,然后可以将其用于各种监督学习任务,例如图像分类。我们提出建立良好图像表示的一种方法是通过训练生成对抗网络(GAN)(Goodfellow等,2014),然后将生成器和判别器网络的一部分重新用作监督任务的特征提取器。GAN为最大似然技术提供了有吸引力的替代方案。人们还争论的说,他们的学习过程和缺乏启发式的成本函数(例如像素式独立均方误差)对表示学习很有吸引力。众所周知,GAN在训练时不稳定,往往导致生成器产生无意义的输出。在试图理解和可视化GAN学习内容以及多层GAN的中间表示方面,已发表的研究非常有限。

在这片论文中,我们做了如下贡献:

  • 我们提出并评估了卷积GAN的拓扑架构上的一组约束,这些约束使得它们在大多数训练集中都能稳定地训练。我们将此类架构命名为Deep Convolutional GAN(DCGAN)。
  • 我们使用经过训练的判别器进行图像分类任务,展示出与其他无监督算法的竞争性能。
  • 我们可视化GAN学习的过滤器,并凭经验表明特定过滤器已学会特定对象。
  • 我们展示了生成器具有有趣的向量算术特性,允许轻松操纵生成的样本的许多语义质量。

2. Related Work(相关工作)

2.1 Representation Learning From Unlabeled Data(无标签数据的表示学习)

无监督表示学习在一般的计算机视觉研究中以及在图像的背景下是相当好的研究问题。无监督表示学习的经典方法是对数据进行聚类(例如使用K均值),并利用聚类来改进分类得分。在图像的上下文中,可以对图像块进行层次聚类(Contes&Ng,2012)以学习强大的图像表示。另一种流行的方法是训练自动编码器(卷积,堆叠(Vincent et al.2010),分清代码的编码的内容和组成部分(Zhao et al.2015),梯形结构(Rasmus et al.2015)将图像编码为紧凑代码,并对代码进行解码以尽可能准确地重建图像。这些方法也被证明可以从图像像素中学习良好的特征表示。深度信念网络(Lee et al.2009)也被证明在学习层次表示方面表现良好。

2.2 Generating Natural Images(生成自然图像)

生成图像模型经过充分研究,分为两类,参数化和非参数化。

非参数模型与现有图像的数据库进行匹配,通常匹配图像块,并且已经用于纹理合成(Efros等,1999)、超分辨率(Freeman等,2002)和绘画(Hays&Efros,2007)。

对于生成图像的参数模型已经被广泛的研究(例如,在MNIST数据集上或用于纹理合成(Portilla&Simoncelli,2000))。然而,直到最近,生成现实世界的自然图像并没有取得多大成功。生成图像的变分抽样方法(Kingma&Welling,2014)取得了一些成功,但样本常常模糊不清。另外一种方法使用前向扩散过程生成图像(Sohi-Dickstein等,2015)。生成对抗网络(Goodfellow et al.2014)生成图像成为嘈杂的并且难以理解。一种拉普拉斯金字塔扩展方法(Denton等人,2015)展示了更高质量的图像,但是由于连接多个模型中引入的噪声,他们仍然看起来摇摆不定。最近的网络方法(Gregor等,2015)和反卷积网络方法(Dosovitskiy等,2014)最近也在生成自然图像方面取得了一些成功。但是,他们没有利用生成器进行监督任务。

2.3 Visualizing The Internals Of CNNs(可视化CNN的内部)

对于使用神经网络的一个持续的评价是它们是黑盒方法,很少理解网络以简单的人类消费算法的形式做什么,在CNNs的背景下,Zeiler等人表明,通过使用反卷积和过滤最大激活,可以找到网络中每个卷积滤波器的近似目的。类似的,在输入上持续使用梯度下降让我们检查激活某些滤波器子集的理想图像(Mordvintsev等人)。

3. Approach And Model Architecture(方法和模型结构)

历史上使用CNN来扩展GAN以对图像建模的尝试是不成功的。这促使LAPGAN的作者(Denton等人,2015)开发了一种替代方法,以便可以更可靠地建模的低分辨率生成图像进行升级。我们还尝试使用监督文献中常用的CNN架构来扩展GAN。然而,经过广泛的模型探索,我们确定了一系列架构,这些架构可以在一系列数据集中进行稳定的训练,并允许训练更高分辨率的图像和更深的生成模型。

我们的方法的核心是采用和修改最近说明的CNN架构的三个变化。

第一个是全卷积网络(Springenberg等,2014),它用跨步卷积代替确定性空间池化函数(如maxpooling),允许网络学习自己的空间下采样。我们在我们的生成器中使用这种方法,允许它学习自己的空间上采样和判别器。

扫描二维码关注公众号,回复: 6241933 查看本文章

第二是试图在卷积特征上消除完全连接层。最好的办法是全局平均池化,这已经在现有技术的图像分类模型中得到了应用(Mordvintsev等人)。我们发现全局平均池化增加了模型的稳定性但却损害了收敛速度。将最高的卷积特征直接连接到生成器和判别器的输入和输出的中间位置工作良好。GAN的第一层采用均匀的噪声分布Z作为输入,可称为完全连接,因为它只是一个矩阵乘法,但结果被重新整型为一个饲四维张量并用作卷积堆栈的起点。对于判别器,最后的卷积层被整型为一维,然后输入到单个sigmoid函数。有关示例模型体系结构的可视化,请参见图1。

图1:用于LSUN场景建模的DCGAN生成器。将100维均匀分布Z投影到具有许多特征图的小空间范围卷积表示。一系列四个分数跨度卷积(在最近的一些论文中,这些被错误地称为解卷积),然后将这种高级表示转换为64*64像素图像。值得注意的是没有使用完全连接或池化层。

第三是批量标准化(loffe&Szegedy,2015),它通过将每个单元的输入归一化为零均值和单位方差来稳定学习。这有助于解决由于初始化不良而导致的训练问题,并有助于深度模型中的梯度流动。事实证明这对于让深度生成器开始学习至关重要,防止生成器将所有样本折叠到单个点,这是在GAN中观察到的常见故障模式。然而,直接将批量归一化应用于所有层,导致样品震荡和模型不稳定。通过不将批量归一化应用于生成器输出层和鉴别器输入层来避免这种情况。

ReLU激活(Nair&Hinton,2010)用于生成器,但使用Tanh函数的输出层除外。我们观察到,使用有界激活允许模型更快地学习以饱和并覆盖训练分布的颜色空间。在判别器中,我们发现LeakReLU运行良好,特别是对于更高分辨率的建模。这与使用maxout激活的原始GAN论文相反。

稳定深度卷积GAN的体系结构指南:

  • 用步长卷积(判别器)和分布步长卷积(生成器)替代所有的池化层。
  • 在判别器和生成器中使用批量归一化。
  • 为了更深的网络架构移除全连接层。
  • 在生成器中所有层都使用ReLU激活,除了输出层使用tanh激活。
  • 在判别器的所有层使用LeakyReLU激活。

4. Details Of Adversarial Training(对抗训练的细节)

我们在三个数据集上训练DCGAN,大规模场景理解(LSUN)、Imagenet-1k和新组装的Faces数据集。下面给出了每个数据集的使用细节。

除了缩放到tanh激活函数[-1,1]的范围之外,没有对训练图像应用预处理。所有模型均采用小批量随机梯度下降(SGD)进行训练,小批量大小为128。所有权重均从零中心正态分布初始化,标准偏差为0.02。在LeakyReLU中,所有的LeakyReLU斜率均设为0.2。虽然之前的GAN已经采用了动量加速训练,但我们使用了Adam优化器和调整的超餐宿。我们发现建议的学习率0.001过高,因此使用0.0002代替。此外,我们发现将动量项\beta _{1}保持在0.9的建议值导致训练震荡和不稳定性,同时将其降低到0.5有助于训练稳定。

4.1 LSUN

随着来自生成图像模型的样本的视觉质量的提高,对训练样本的过度拟合和记忆的担忧已经增加。为了说明我们的模型如何根据更多数据和更高分辨率生成进行扩展,我们在LSUN卧室数据集上训练模型,其中包含300多万个训练样本。最近的分析表明,模型学习速度和泛化性能之间存在直接联系。我们展示了一个训练时期的样本(图2),模拟在线学习,以及收敛后的样本(图3),这是一个证明我们的模型不是通过简单过度拟合/记忆训练生产高质量样本的例子。没有数据增强应用于图像。

4.1.1 Deduplication(重复数据删除)

为了进一步降低生成器记忆输入示例的可能性(图2),我们执行简单的图像去重复过程。我们在训练样本上中心区域裁剪下采样32*32的图像中拟合一个3072-128-3072的去噪Dropout正则化ReLU自动编码器。然后通过对已经被证明是有效的信息保存技术的ReLU激活进行阈值处理来对所得到的代码层激活进行二值化,并提供方便的语义散列形式,允许线性时间重复数据删除。对哈希碰撞的目视检查显示出高精度,估计的假阳性率小于1%。此外,该技术的检测到并且移除了大约275,000个近似重复,表明高召回率。

图2:一次训练通过数据集后生成的卧室。从理论上讲,该模型可以学习记忆训练样例,但这在实验上不太可能,因为我们用较小的学习率和小批量SGD进行训练。我们知道没有先前的经验证据表明对SGD的记忆和较小的学习率。

图3:经过五个训练时期后生成的卧室。似乎有证据表明,在多个样本(例如某些床样本的基板)上通过重复噪声纹理进行视觉欠拟合。

4.2 Faces

我们从人名的随机网咯图像查询中删除包含人脸的图像。这些人的名字来自dbpedia,其标准是他们出生于现代。该数据集包含来自10K人的3M图像。我们在这些图像上运行OpenCV人脸检测器,保持足够高分辨率的检测,这为我们提供了大约350,000个人脸数据,我们应用这些数据进行训练。没有数据增强应用于图像。

4.3 Imagenet-1k

我们使用Imagenet-1k作为无监督训练的自然图像源。我们用图像中心裁剪的32*32的图像进行训练。没有数据增强应用于图像。

5. Empirical Validation Of DCGANs Capabilities(DCGAN能力的经验验证)

5.1 Classifying CIFAR-10 Using GANs As a Feature Extractor(使用GAN作为特征提取器,在CIFAR-10上分类)

评估无监督表示学习算法质量的一种常用技术是将它们作为特征提取器应用于监督数据集。并评估应用在这些特征之上的线性模型的性能。

在CIFAR-10数据集上,通过使用K-means作为特征学习算法的良好微调单层特征提取通道,已经证明了具有非常强的基础性能。当使用非常大量的特征图(4800)时,该技术实现了80.6%的准确度。基本算法的无监督多层扩展达到了82.0%的准确率。为了评估DCGAN表示学习的质量,我们在Imagenet-1K上进行训练,然后使用功能来自所有层的判别器的卷积特征,最大池化每层表示以产生4*4空间网格。然后将这些特征展平并连接以形成28672维向量,并且在他们之上训练正则化线性L2-SVM分类器。这实现了82.8%的准确性,不在执行所有基于K均值的方法。值得注意的是,与基于K均值的技术相比,判别器器具有更少的特征图9在最高层中为512),但是由于4*4个空间位置的多个层,确实导致更大的总特征向量大小。DCGAN的性能仍然低于Exemplar CNN的性能,该技术以无监督的方式训练正常的判别CNN,以区分来自源数据不同的特征选择,增强样本。通过微调判别器的表示可以进一步改进,但我们将其留待将来工作。此外,由于我们的DCGAN从未在CIFAR-10上接受过训练,因此该实验还展示了学习特征的领域稳健性。

表1:使用我们预先训练的模型在CIFAR-10上的分类结果。我们的DCGAN未经过CIFAR-10的预训练,但在Imagenet-1K上,这些功能用于对CIFAR-10图像进行分类。

5.2 Classifying SVHN Digits Using GANs As a Feature Extractor(使用GAN作为提取器在SVHN分类)

在StreetView House Numbers(SVHN)数据集中,当标记数据稀缺时,我们使用DCGAN判别器的特征进行监督学习。遵循与CIFAR-10实验中类似的数据集准备规则,我们从非额外的集合中分离出10000个示例的验证集,并将其用于所有超参数和模型选择。随机选择1000个统一分类训练样本,并用于在CIFAR-10相同特征提取器上训练正则化线性L2-SVM分类器。现有最先进的技术测试误差为22.48%。改进了另一种旨在利用无标签的CNN的修改。此外,我们通过在相同数据上训练具有相同架构的纯监督CNN并通过64个超参数实验的随机搜索优化该模型,验证DCGAN中使用的CNN架构不是模型性能的关键因此。它实现了明显高于28.87%的验证错误。

6. Manipulating The Generator Representation(操纵生成器的表示)

我们使用各种方法研究训练好的判别器和生成器。我们不在训练集上进行任何类型的最近邻搜索。通过小图像变换,像素或特征空间中的最近邻域被欺骗。我们也不使用功能对数似然度量来定量评估模型,因为它是一个很差的度量标准。

表2:有1000个标签的SVHN分类

6.1 Walking In The Latent Space

我们做的第一个实验室了解潜在空间的情况。流式的学习通常告诉我们关于记忆的现象(如果有明显的过度)以及空间分层崩溃的方式。如果在这个潜在空间流动导致图像生成的语义变化(例如添加和删除的对象),我们可以推断该模型已经学习了相关且有趣的表示。结果如图4所示:

图4:Z中一系列9个随机点之间的插值表明所学习的空间具有平滑过渡,空间中的每个图像看起来都像卧室。在第6排,你看到一个没有窗户的房间慢慢变成一个有巨大窗户的房间。在第10行中,您可以看到电视正在慢慢转变为窗户。

6.2 Visualizing The Discriminator Features(判别器特征的可视化)

以前的工作已经证明,对大型图像数据集进行有监督的CNN训练可以产生非常强大的学习能力。另外,在场景分类方面受过训练的有监督的CNN学习到物体检测器。我们证明了在大型图像数据集上训练的无监督DCGAN也可以学习有趣的特征层次结构。使用(Springenberg等人,2014)提出的引导反向传播,我们在图5中展示了判别器激活学习的特征在卧室的典型部分(例如床和窗户)。为了进行比较,在同一图中,我们给出了随机初始化特征的基础。这些特征在语义相关或有趣的任何事物上都没有被激活。

在右侧,引导反向传播可视化最大轴对齐响应,用于来自判别器中最后一个卷积层的前6个学习卷积特征。请注意,很少有特征响应床-LSUN我是数据集总的中心对象。左边是随机过滤器。与之前的响应相比,几乎没有判别和随机结构。

6.3 Manipulating The Generator Representation(操作生成器的表示)

6.3.1 Forgetting To Draw Certain Objects(忘记画中心物体)

除了判别器学习的表示之外,还有生成器学习表示的问题。样本的质量表明,生成器学习主要场景中组件的特定对象表示,例如床,窗,灯,门和复杂家具。为了探索这些表示所采用得形式,我们进行了一项实验,尝试完全从生成器中移除窗口。

在150个样本上,手动绘制了52个窗口边界框。在第二高卷积层特征上,逻辑回归适合于通过使用绘制的边界框内的激活,是正的并且来自相同图像的随机样本。是负的标准预测特征激活是否在窗口上(或不是)。使用此简单模型,从所有空间位置删除权重大于零(总共200个)的所有特征图。然后,在有和没有特征图去除的情况下生成随机的新样本。

有和没有窗口丢失的生成图像如图6所示,有趣的是,网络主要忘记在卧室中绘制窗口,用其他对象替换他们。

图6:顶行:来自模型的未修改样本。底行:使用丢弃"窗口"过滤器生成的相同样本。一些窗户被移除,其他窗户被转换成具有类似视觉外观的物体,例如门和镜子。虽然视觉质量下降,但整体场景构成保持相似,这表明发生器在对象表示中解释场景表示方面做得很好。可以进行扩展实验以从图像中移除其他对象并修改生成器绘制的对象。

6.3.2 Vector Arithmetic On Face Samples(在Face数据上的矢量运算)

在评估单词的学习表示的背景下证明了简单的算术运算在表示空间中显示出了丰富的线性结构。一个典型的例子证明了向量(King)-向量(Man)+向量(Woman)得到了一个向量,其最近邻居是Queen的向量。我们研究了类似结构是否出现在我们的生成器Z的表示中。我们对视觉概念的样本集的z向量进行了类似的算术运算。仅针对每个概念的单个样本进行实验室不稳定的。但是对三个示例平均Z矢量显示了在语义上遵循该算法的一致切稳定的现象。除了(图7)中所示的对象操作之外,我们还证明了面部姿势在Z空间中线性建模(图8)。

这些演示表明,可以使用我们的模型学习的Z表示来开发有趣的应用程序。先前已经证明,条件生成模型可以学会令人信服地建模对象属性,如尺度,旋转和位置。据我们所知。这是在纯无监督模型中首次证明这种情况。进一步探索和开发上述矢量运算可以显著减少复杂图像分布的条件生成建模所需的数据量。

图7:视觉概念的矢量算术。对于每列,样本的Z向量被平均。然后对平均向量执行算术,从而创建新的向量Y。通过将Y作为输入送到生成器来产生右侧的中心样本。为了演示生成器的插值能力,将用比例+-0.25采样的均匀噪声添加到Y以产生8个其他样本。在输入空间中应用算术(底部两个示例)会导致由于未对准而产生的噪声重叠。

图8:一个“转向”矢量是从四个平均样本的面部向左看与右看相比创建的。通过沿该轴添加插值到随机样本,我们能够可靠的转换它们的姿势。

7. Conclusion And Future Work(总结将来的工作)

我们提出了一套更稳定的架构来训练生成对抗网络,我们提供证据证明对抗性网络可以为监督学习和生成建模学习良好的图像表示。仍然存在某些形式的模型不稳定性-我们注意到随着模型训练时间更长,他们有时会将滤波器的子集折叠为单个震荡模式。

需要进一步解决这些不稳定问题。我们认为将此框架扩展到其他领域,例如视频和音频应该非常有趣。对学习潜在空间的属性的进一步研究也将是有趣的。

8. Supplementary Material(补充材料)

8.1 Evaluating DCGANs Capability To Capture Data Distributions(评估DCGAN捕获数据分布的能力)

我们提出将标准分类度量应用于我们模型的条件版本,评估所学习的条件分布。我们在MNIST上训练DCGAN(拆分10k验证集)以及置换不变GAN,并使用功能最近邻分类器将实际数据与一组生成的条件样本进行比较来评估模型。我们发现从批量归一化中去除尺度和偏差参数对两种模型都产生了更好的结果。我们推测批量归一化引入的噪声有助于生成模型更好地探索和生成基础数据分布。结果显示在标三中,其将我们的模型与其他技术进行比较。DCGAN模型实现了与安装在训练数据集上的最近邻分类器相同的测试误差-表明DCGAN模型在建模该数据集的条件分布方面做得非常出色。每类100万个样本,DCGAN模型优于InfiMNIST,这是一个手工开发的数据增强通道,它使训练样本的平移和弹性变形。DCGAN与利用学习的每类变换的频率生成数据增强技术竞争,而更通用,因为它师姐模拟数据而不是数据的变换。

图9:从左到右MNIST数据集,原始GAN的生成和DCGAN的生成。

图10:人脸的生成

猜你喜欢

转载自blog.csdn.net/gyt15663668337/article/details/90047551