用深度卷积生成对抗网络进行无监督表示学习
摘要
近年来,监督学习的卷积网络(CNN)在计算机视觉应用中有着广泛的应用。相比之下,无监督的卷积网络CNN学习受到的关注较少。在这项工作中,我们希望可以帮助缩小有监督学习的CNN和无监督学习的CNN成功之间的差距。我们介绍了一类CNN叫做深度卷积生成对抗网络(DCCNG),它具有一定的架构约束,表明它们是非监督学习的有力候选。对各种图像数据集进行训练,我们展示出令人信服的证据,证明我们的深层卷积对抗从对象部分到发生器和判别器中的场景学习了层次结构的表示。此外,我们使用学习的功能进行新颖的任务-证明适用于一般图像的表示
1. 前言
从来自大型的未标记的数据集学习可重用的特征表示一直是一个热门的研究领域。在计算机视觉的背景下,可以利用实际上无限量的未标记的图像和视频来学习良好的中间表示,然后可以将它用在各种监督学习任务上,如图像分类。我们提出了一种建立好的图像表示的方法是通过训练生成对抗网络(GAN)(Goodfellow等人,2014),并随后重用发生器和判别器网络的部分作为用于监督任务的特征提取器。GAN 为最大似然技术提供了一个有吸引力的替代方法。另外还可以争辩说,他们的学习过程和缺少启发式的代价函数(比如像素方式的独立均方差)对于表示学习来说是存在吸引力的。我们知道GAN在训练中是不稳定的,经常导致发生器产生无意义的输出。我们试图理解和可视化GAN学习了什么以及多层GAN的中间表示,已经发表了有限的研究。在本文中,我们做出以下贡献
•我们提出并评估了一系列卷积GAN体系结构拓扑上的约束条件,这些约束条件使得它们在大多数情况下可以稳定地训练。我们将这种架构称为Deep Convolutional GANs(DCGAN)。
•我们使用训练过的鉴别器进行图像分类任务,与其他无监督算法一起显示出竞争优势。
•我们可视化由GAN学习到的过滤器,并凭经验显示特定的过滤器已经学会了绘制特定的对象。
•我们展示了生成器具有有趣的向量算法属性,可以容易地处理生成的样本的许多语义质量。
2. 相关工作
2.1未标记数据的表示学习
无监督表示学习在一般的计算机视觉研究和图像环境中是一个很好的研究问题。无监督表示学习的经典方法是对数据进行聚类(例如使用K均值),并利用聚类来改善分类的效果。在图像的环境中,可以对图像进行分层聚类(Coates&Ng,2012),来学习强大的图像表示。另一种流行的方法是训练自动编码器(卷积,叠加(Vincent等,2010), 分离代码的内容和组成部分(Zhao等,2015),阶梯结构(Rasmus等,2015)将图像编码成紧凑的代码,并且解码该代码尽可能准确地重建图像。这些方法很好的展示了从图像像素种学习良好的特征表示。深度信念网络(Lee et al。,2009)也被证明在分层表示学习方面表现良好。
2.2生成自然图像
生成图像模型已经被充分研究,共分为两类:参数和非参数。
非参数模型经常与现有图像数据集进行匹配,经常匹配图像,并且已经被用于纹理合成(Efros等人,1999),超分辨率(Freeman等人,2002)和图像修补(Hays&Efros,2007)。
用于生成图像的参数化模型已被广泛地探索(例如在MNIST数字或纹理合成(Portilla&Simoncelli,2000))。然而,生成真实世界的自然图像直到最近也没有太多的成功。生成图像的变分抽样方法(Kingma&Welling,2013)已经取得了一些成功,但样本往往模糊不清。另一种方法使用前向迭代扩散过程生成图像(Sohl-Dickstein等,2015)。生成对抗网络(Goodfellow 等人,2014)产生了杂乱且难以理解的图像。将拉普拉斯金字塔延伸到这个方法(Denton等人,2015)展示了更高质量的图像,但是因为在多个模型链接中引入噪声,它们不稳定。重复网络方法(Gregor等,2015)和反卷积网络方法(Dosovitskiy 等人,2014)最近在生成自然图像方面也取得了一些成功。但是,他们没有把生成器用于监督任务。
2.3CNNS内部的可视化
使用神经网络有一个不变的批评是它们是黑盒子方法,几步不能理解网络以一种简单的人类可读算法的形式能够做什么。在CNNs的理论中,Zeiler et等(Zeiler&Fergus,2014)表明,通过使用反卷积和最大激活滤波,可以找到网络中每个卷积滤波器的近似目标。同样,在输入上使用梯度下降法可以检查激活滤波器的某些子集的理想图像(Mordvintsev等)
3. 方法和模型架构
历史上尝试使用CNN扩展GAN来模拟图像是不成功的。这激励了LAPGAN(Denton等人,2015)的作者开发了一种替代方法,来迭代地提高生成的低分辨率图像,使其可以更可靠地建模。 我们还遇到了一些困难,尝试使用在监督学习的文献中常用使用CNN架构来扩展GAN。然而,在广泛的模型探索之后,我们确定了一系列的架构,可以在各种数据集中进行稳定的训练,并允许培训更高分辨率和更复杂的生成模型。
我们方法的核心是采纳和修改最近提出的对CNN架构的三个变化。
首先是全卷积网络(Springenberg et al。,2014),用逐步卷积代替确定性的空间池化函数(如maxpooling),使网络学习自己的空间下采样。我们在我们的发生器中使用这种方法,允许它学习他自己的空间上采样和鉴别器。
第二是消除卷积特征之上的全连接层。最强的例子就是全球平均池化层,这种技术已经应用于最先进的图像分类模型中。我们发现全球平均池化层提升了模型的稳定性,但是降低了收敛速度。将发生器和鉴别器的最高卷积特征直接连接到输入和输出的中间
运行良好。GAN的第一层以统一的噪声分布Z作为输入,可以被称为全连接,因为它只是一个矩阵乘法,但是结果被重塑为一个四维张量,并被用作卷积栈的开始。对于判别器,最后一个卷积层被取消,然后被送入单个S形输出。参见图1,了解示例模型架构的可视化。
图1:LSUN 场景模型中使用的DCGAN生成网络。一个100维度的均匀分布z映射到一个有很多特征映射的小空间范围卷积。一连串的四个微步幅卷积(在最近的一些论文中它们错误地称为反卷积),将高层表征转换为64*64像素的图像。明显,没有使用全连接层和池化层。
第三是批量标准化(Ioffe&Szegedy,2015),通过将每个单元的输入标准化为零均值和单位方差来稳定学习。这有助于处理由于初始化较差而出现的训练问题,并帮助深层模型中的梯度流。这证明深层生成器开始学习非常重要,可以防止生成器将所有样品压缩成单点,这是在GAN中一种常见的故障。直接将批处理应用于所有层面,导致样品振荡和模型不稳定。通过不将批处理应用于生成器输出层和鉴别器输入层来避免。除了使用Tanh函数的输出层以外,ReLU激活函数(Nair&Hinton,2010)用于生成器。我们观察到,使用有界激活允许模型更快地学习,为了饱和和覆盖训练分布的色彩空间。在判别器内部,我们发现了leaky rectified激活函数(Maas 等人,2013)(Xu 等人,2015)效果很好,尤其是对于更高分辨率的建模。这与最初的GAN论文形成鲜明的对比,就是使用最大激活函数(Goodfellow 等人,2013)
4. 对抗训练的细节
我们在三个数据集上(大规模场景理解(LSUN)(Yu等,2015),Imagenet-1k和新组合的Faces数据集)上训练DCGAN。下面给出了每个数据集的使用细节。
除了缩放至tanh激活函数[-1,1]的范围之外,没有对训练图像进行应用预处理。所有模型都用小批量随机梯度下降法(SGD)进行训练,小批量为128。所有的权重都是以零为中心的正态分布初始化的,标准偏差为0.02。在LeakyReLU中,泄漏的斜率在所有模型中设置为0.2。 虽然以前的GAN工作已经利用动量来加速训练,但是我们使用了具有调好超参数的Adam优化器(Kingma&Ba,2014)。我们发现建议的学习率为0.001,太高,用0.0002来代替。此外,我们发现将动量项留在0.9的建议值导致了训练振荡和不稳定性,同时将其降低到0.5,这有助于稳定训练。
4.1 LSUN(大规模场景理解)
随着生成图像模型样本视觉质量的提高,训练样本的过度拟合和记忆问题也随之上升。为了证明我们的模型是如何扩展数据和更高分辨率生成的,我们在LSUN卧室数据集上训练一个包含300多万个训练样例的模型。最近的分析表明,模型学习的速度与泛化性能之间有直接的联系(Hardt等,2015)。除了收敛后的样本(图3),我们还展示了一个训练样本(图2)模拟在线学习, 作为一个机会来证明我们的模型不是通过简单的过度拟合/记忆来训练生成高质量的样本。没有数据扩充被应用于这些图像上。
4.1.1重复数据删除
为了进一步降低生成器记忆输入示例的可能性(图2),我们做了一个简单的图像重复数据删除过程。我们在32x32下训练样本中心作物的培训实例中安装了3072-128-3072去噪剔除正规化的RELU自动编码器。然后,通过对显示为有效信息的保存技术的ReLU激活进行阈值化(Srivastava等人,2014),将得到的代码层激活二值化,并且提供便利的语义哈希形式,允许线性时间对重复数据删除。哈希碰撞的视觉检查显示出高精度,估计的误报率小于1比100。此外,该技术检测到并删除了近275,000个重复的副本,表明了高召回。
图2:通过数据集一次训练后生成的卧室。从理论上讲,这个模型可以学习记忆训练的例子,但是这在实验上是不可能的,因为我们是使用学习率和小批量SGD来训练的。我们意识到之前没有任何经验和证据表明要用SGD和小的学习率记忆。
图3:五个训练阶段后的卧室。通过多个样品,如一些床的基板,上的反复的噪音纹理,似乎出现了视觉低度拟合的证据。
4.2人脸
我们从姓名随机的Web图像查询中刮取包含人脸的图像。人名是从dbpedia获得的,标准是他们出生在现代。这个数据集有来自1万人的3M图像。我们在这些图像上运行OpenCV人脸检测器,保持足够高分辨率的检测结果,从而为我们提供了大约35万个面部检测盒。我们使用这些脸盒进行训练。
4.3 IMAGENET-1K
我们使用Imagenet-1k(Deng等,2009)作为无监督训练的自然图像源。我们训练32 * 32分钟的中心庄稼。没有数据扩充被应用于这些图像上。
5.实验验证DCGANS的能力
5.1使用GANS作为特征提取器对CIFAR-10进行分类
评估无监督表示学习算法质量的一种常用技术是将其作为特征提取器应用在受监督的数据集上,并评估在这些特征之上拟合的线性模型的性能。
在CIFAR-10数据集上,使用K-means作为特征学习算法,从良好的单层特征提取已经证明了非常强的基线性能。当使用非常大量的特征映射(4800)时,这个技术达到80.6%的精度。基本算法的多层无监督扩展达到了82.0%的准确性(Coates&Ng,2011)。为了评估监督任务的DCGAN的表示学习,我们在Imagenet-1k上训练,然后使用所有层的判别器的卷积特征,最大池化每一层的表示来产生4×4的空间网格。然后将这些特征平展并连接起来形成一个28672维向量,并在其上面训练一个正则化的线性L2-SVM分类器。除了执行所有基于K-means的方法之外,其他的实现了82.8%的准确度。值得注意的是,与基于K-means的技术相比,鉴别器具有许多较少的特征映射(最高层中是512),但是由于多个4×4空间位置的层而导致总体特征向量尺寸更大。DCGAN的性能仍然低于Exemplar CNNs(Dosovitskiy等,2015),这种技术以无监督的方式训练 正常的区分性CNN,来区分源数据集中特定选择的,积极扩展的示例性的样本。进一步的改进可以通过调整鉴别器的表示来进行,但是我们把这个留给将来的工作。此外,由于我们的DCGAN从来没有在CIFAR-10上进行过训练,因此本实验还显示了学习特征域的鲁棒性。
表1:使用我们的预先训练的模型的CIFAR-10分类结果。我们的DCGAN不是在CIFAR-10上预训练的,而是在Imagenet-1k上进行的,这些特征用于对CIFAR-10图像进行分类。
5.2使用GANS作为特征提取器对SVHN数字进行分类
在StreetView House Numbers数据集上(SVHN)(Netzer et al,2011),当标记数据缺乏时,我们使用DCGAN的鉴别器的特征进行监督。按照与CIFAR-10实验类似的数据集准备规则,我们从集合中分离出1万个实例的验证集,并将其用于所有超参数和模型的选择。1000个统一的分布式训练样本被随机选取,并使用与CIFAR-10所使用的相同特征训练一个正则化的线性L2-SVM分类器。这达到了22.48%测试误差的状态(用1000个标签进行分类),改进了CNN设计的另一种修改,为了利用未标记的数据(Zhao et al,2015)。另外,我们通过在相同的数据上训练一个具有相同架构的受监督的CNN并且通过随机搜索在64个超参数试验(Bergstra&Bengio,2012)上优化该模型,验证了在DCGAN中使用的CNN架构不是模型性能的关键因素。它实现了一个明显更高的28.87%的验证错误。
6.调查和可视化网络的内部结构
我们以各种方式研究训练过的发生器和判别器。 我们不在训练集上进行任何类型的最近邻搜索。像素或特征空间中的最近邻通过小图像变换愚弄着(Theis等人,2015)。我们也不使用对数似然度量来定量评估模型,因为它是一个不好的(Theis et al。,2015)度量。
6.1漫游隐空间
我们做的第一个实验是了解潜在空间。各种各样的学习通常能告诉我们记忆的迹象 (如果有急剧的转变)以及空间分层坍塌的方式。 如果在这个潜在的空间中行走导致图像生成语义的变化(例如被添加和删除的对象),我们可以推断该模型已经学习了相关和有趣的表示。结果如图4所示。
图4:顶行:在Z中的一系列9个随机点之间的插值表明,学习的空间具有平滑的过渡,空间中的每个图像看起来像卧室。 在第六排,你看到一个没有窗户的房间慢慢地变成一个有巨大窗户的房间。在第十排,你看到一个电视正慢慢变成一扇窗户。
6.2可视化判别器特性
以前的工作已经证明,在大型图像数据集上进行有监督的CNN训练会产生非常强大的学习功能(Zeiler&Fergus,2014)。此外,在场景分类方面受监督的CNN学习对象检测(Oquab等,2014)。我们证明了在大图像数据集上训练无监督的DCGAN也可以学习有趣的特征层次。使用(Springenberg et al。,2014)提出的引导反向传播,我们在图5中显示了由判别器在卧室的典型部分(如床和窗户)上激活。相比之下,在同一图中,我们为随机初始化特征给出了基线,这些特征在语义上相关或有趣的任何事物上不被激活。
图5:在右侧,从判别器最后的卷积层的前6个学习卷积特征引导最大轴对齐响应的反向传播可视化。注意到有相当一部分特征对应到床的--在LSUN卧室数据集中心对象。左边是一个随机过滤器基线。相比之前的回应,几乎没有区别和随机结构。
6.3操纵生成器表示
6.3.1忘记画特定的对象
除了判别器所学的表示之外,还有一个关于生成器学习表示的问题。样本的质量表明,生成器学习的主要场景组件,如床,窗户,灯具,门和其他家具的具体对象表示。为了探索这些表示形式,我们进行了一个试验,尝试从生成器中完全删除窗户。
在150个样本上,手动绘制了52个窗口边框。在第二高的卷积层特征上,逻辑回归适用于,通过使用在绘制的边界框内的激活是正确的并且来自相同图像的随机样本是错误,来预测一个特征激活是否是在窗户上(或不在)。使用这个简单模型,从所有空间位置删除所有权重大于零(总共200)的特征映射。然后,生成随机的新样本,并且不删除特征映射。
在图6中展示了具有和窗户丢失的所生成的图像,并且有趣的是,网络大多忘记在卧室中画窗,用其他物体代替它们。
图6:顶行:未修改的模型样本。 底行:删除“窗户”过滤器生成相同的样本。 一些窗户被拆除,另一些被转换成具有相似视觉外观的物体,例如门和镜子。虽然视觉质量下降,但整体场景构成保持相似,表明生成器已经从对象表示中很好的解决了场景表示。可以进行扩展实验来从图像中移除其他对象,并修改生成器绘制的对象。
6.3.2向量算法的人脸样本
在评估词语的表示学习(Mikolov等,2013)中,证明了简单的算术运算揭示了表示空间中丰富的线性结构。一个典型的例子是,向量(“国王”) - 向量(“人”)+向量(“女人”)得到了一个向量,其最近的邻居是女王的向量。我们研究了在我们的生成器Z的表示中是否出现类似的结构。我们对视觉概念的示例样本集的Z向量执行类似的算术。每个概念只对单个样本进行处理的实验是不稳定的,但是对三个样本的平均Z向量显示了在语义上服从算术是一致的和稳定的。除了(图7)所示的对象操作之外,我们还证明了人脸姿态也是在Z空间中线性建模的(图8)。
图7:视觉概念的向量算法。对于每一列,对样本的Z向量取平均。然后对均值向量进行算术,产生新的向量Y. 右侧的中心样品是通过将Y输入到生成器而产生的。为了演示生成器的插值能力,将采用比例+-0.25采样的均匀噪声加到Y上以产生另外8个采样。在输入空间中应用算术(下面的两个示例)会导致由于未对齐而产生的噪音重叠。
图8:一个“转向”向量是从四个平均的面向左看和右看样本创建的。通过沿着这个轴插入随机样本,我们能够可靠地转换它们的姿态。
这些演示表明,使用通过我们的模型学到的Z表示可以开发出有趣的应用程序。先前已经证明,条件生成模型可以学会有说服力地模拟对象的属性,如规模,旋转和位置(Dosovitskiy等,2014)。这是我们在纯粹的无监督模型中的第一次证明。进一步探索和开发是关于上述向量算法可以大大减少复杂图像分布的条件生成生成模型所需的数据量。
7. 总结和未来的工作
我们提出了一套更稳定的架构来训练生成对抗网络,并且我们给出对抗网络学习监督学习和生成建模的良好图像表示的证据。还有一些形式的模型不稳定- 我们注意到随着模型的训练时间更长,他们有时会把一个子集的滤波器转换成一个单一振荡模式。
进一步的工作需要来解决 这个不稳定的问题。我们认为将这个框架扩展到视频(用于帧预测)和音频(用于语音合成的预先训练的特征)等其他领域应该是非常有趣的。对学习的潜在空间的性质的进一步研究也将是有趣的。
论文地址:http://xueshu.baidu.com/s?wd=paperuri%3A%28bce53826d8f5d018708c5d3e1812d37e%29&filter=sc_long_sign&tn=SE_xueshusource_2kduw22v&sc_vurl=http%3A%2F%2Farxiv.org%2Fpdf%2F1511.06434&ie=utf-8&sc_us=9042674971769420487
来源:CSDN
作者:Amber_Wu
链接:https://blog.csdn.net/qq_40667584/article/details/79690043