【翻译】Unsupervised representation with deep convolutional generative adversarial networks

基于深度卷积生成对抗网络的无监督表征

Unsupervised representation with deep convolutional generative adversarial networks

arxiv链接:https://arxiv.org/abs/1511.06434

摘要

近些年,使用CNNs的监督学习在计算机视觉应用中有着广泛的采用。相对来说,基于CNNs的无监督学习只得到了很少的关注。在本工作中我们希望弥补这两者(监督和无监督学习)的差距。我们介绍了一类被称为深度卷积生成对抗网络(DCGANs)、有着一定的架构约束的CNNs,且表明了DCGANS是无监督学习强有力的候选。在多个图片数据集上训练过后,我们给出了有说服力的证据,表明我们的深度卷积对抗对(包括生成器和判别器)学习到了从物体局部到场景的一个分层表征。另外,我们把学到的特征用在新的任务上——证明其作为一般表示的适用性。

1.introduction

从大型未标记数据集中学习可重用的特征已经成为一个积极的研究领域。在计算机视觉背景下,可以利用几乎无限量的未标注数据和视频来学习良好的中间表征,然后用于多种监督学习任务,例如图像分类。我们提议,建立良好图像表征的一条路是通过训练GANs(Goodfellow et al., 2014),然后重用部分生成和判别网络来作为监督任务中的特征提取器。GANs是最大似然技术的一个有吸引力的替代。另外,表征学习有吸引力的原因在于其他方案的学习过程(欠佳)以及缺少启发式的损失函数(例如像素级别独立均方差)。已知GANs训练不稳定,经常导致生成器产生无异议的输出。现有的关于尝试理解和可视化GANs学到了什么,以及多层GANs的中间表示的公开出版很有限。

在这篇文章中,我们作出了如下贡献:

1.我们提出和评估了一系列关于卷积GANs的拓扑结构约束,使得在大部分设置下的训练更稳定。我们把这一类结构称为深度卷积GANs(DCGAN)。

2.我们把训练好的判别器用于图像分类任务,显示出了和其他非监督学习算法相比有竞争力的性能。

3.我们可视化了GANs学到的滤波器,并且经验性地指出了特定的滤波器能够学会画特定的物体。

4.我们指出生成器拥有有趣的向量算术特性,从而能够通过简单操作来生成不同语义特质的样本。

2.相关工作

2.1 无标签数据的表征学习

无监督表征学习在泛计算机视觉研究和图片背景下都是一个被良好研究过的问题。无监督表征学习的一个经典途径是在数据集上聚类(如使用K-means),并且平衡各簇来提升分类分数。对于图像,可以通过对图像块的层次聚类(Coates & Ng, 2012)来学习强大的图像表征。另一个流行的方法是训练自编码器(卷积地、堆叠地(Vincent et al., 2010),在编码中分离what和where的部分(Zhao et al., 2015),梯子结构(Rasmus et al., 2015)),使其能够把一张图像压缩成压缩码,并且尽量准确地通过解码来重构图像。这些方法也被表明能够从图像像素中学习到好的特征表示。深度信念网络(Lee et al., 2009)也在学习层次表示中表现良好。

2.2 生成自然图像

生成图像模型是详细研究过的并分作2个类别:参数和非参数。

非参数模型同城做一个和已有图像数据集的匹配,通常匹配图像块,并且已经被用在纹理合成(Efros et al., 1999),超分辨率(Freeman et al., 2002)和in-painting(Hays & Efros, 2007)

关于生成图像的参数模型也被广泛探索过(比如MNIST数字上的纹理合成(Portilla & Simoncelli, 2000))。然而,生成真实世界的自然图像直到最近才取得一些进展。一种通过变分抽样来生成图像的方法(Kingma & Welling, 2013)取得了部分成功,但是样本经常模糊。另一种生成图像的方法是通过一个迭代前向差分过程(Sohl-Dickstein et al., 2015)。生成对抗网络(Goodfellow et al., 2014)生成的图像会有噪声或者不可理解。关于这个(GANs)的一个拉普拉斯金字塔扩展(Denton et al., 2015)显示出更高质量的图片,不过因为链接了多个模型,此方法仍然受到图像不稳定的影响。循环神经网络方法(Gregor et al., 2015)和反卷积网络方法(Dosovitskiy et al., 2014)最近也在生成自然图片方面取得了一些成功。然而,他们并没有为监督任务引入生成器。

2.3 CNNs内部的可视化

对于神经网络的一个持续的批评在于,它们是黑箱方法, 对网络做了什么有很少的理解,表现在这是一个需要消耗大量人力的算法。对于CNNs,Zeiler et. al.(Zeiler & Fergus, 2014)指出了通过反卷积和过滤最大激活,可以找到网络中每个卷积核的近似目的。相似地,在输入中使用梯度下降,使我们观察到了能够激活特定滤波器的子集的理想图片(Mordvintsev et al.)

3.方法和模型架构

历史上用CNNs来放大GANs,进而对图像建模的方法并不成功。这激励了LAPGAN的作者(Denton et al., 2015)去开发了一个替代方法,即迭代地提高可以被更好建模的、低分辨率的生成图像。我们在用监督相关文献中常见的CNNs架构来缩放GANs时也遇到了一些困难。然而,在对模型广泛探索后,我们辨别出了一类能够在一系列数据集上稳定训练的架构,同时还可以训练更高的分辨率和更深的生成模型。

我们方法的核心是对CNN架构采用和修改3个最近阐释的变化。

第一个是全卷积网络,它用跨卷积替换了确定性空间池化函数(例如最大池化),是的网络能够学习它自身的空间下采样。我们在生成器中采用了这个方法,使得生成器能够学习它自己的空间上采样,和判别器。

第二个是跟随在卷积特征顶端逐渐排除全连接层的潮流。关于这点,一个最给力的例子是全局平均池化,它已经被用于最顶尖的图像分类模型(Mordvintsev et al.)。我们发现全局平均池化提升了模型稳定性但是伤害了收敛速度。一个折中方案表现良好,即对于生成器和判别器,分别直接连接最高卷积特征到输入和输出。GAN的第一层,即用正态噪声分布Z作为输入的那一层,能够使用全连接,因为那只是一个矩阵相乘。但是第一层的结果被变形成了一个4维张量,并用于卷积堆叠的开始。对于判别器,最后一个卷积层被扁平化然后喂入了一个单sigmoid输出。模型架构的一个例子在Fig.1中可以看到。


图一:用于LSUN场景建模的DCGAN生成器。一个100维均匀分布的Z被投影到许多特征图上的一个小范围空间的卷积表征。然后,一系列的4个分数跨卷积(在最近的一些文章中,这些被错误地叫做反卷积)把这些高层特征转换成64*64像素的图像。值得注意的是,没有用到全连接层或者池化层。

第三个是批量归一化(Ioffe & Szegedy, 2015),它通过把每个单元的输入归一化到0均值和单位方差来稳定学习(过程)。这有助于应对因为不良初始化而产生的训练问题,并有助于梯度更深模型中的梯度流动。这证明了用更深的生成器来开始学习是非常关键的,能够防止GANs中的一种常见错误:生成器把所有样本坍缩到一个点。然而,直接采把批量归一化应用到所有的层会导致样本震荡和模型不稳定。这种情况的避免方式是不在生成器的输出层和判别器的输入层使用批量归一化。

ReLU激活(Nair & Hinton, 2010)在生成器的其他层采用,除了输出层用了Tanh函数。我们发现有边界的激活让模型能够更快学习到饱和状态,以及涵盖训练分布中的颜色空间。关于判别器,我们发现泄露修正(leaky rectified)激活(Maas et al., 2013) (Xu et al., 2015)表现很好,特别是对于高分辨率的建模。这和原始的GAN论文中使用的maxout激活是相反的(Goodfellow et al., 2013)


稳定卷积GANs的架构指南:

1.用跨卷积替换任何池化层(判别器),以及分数跨卷积(生成器)。

2.在判别器和生成器中都使用批量归一化。

3.从深度架构中移除全连接隐藏层。

4.对于生成器,在除了输出层的所有层用ReLU激活,输出层用Tanh。

5.对于判别器的所有层,用LeakyReLU激活。


4.对抗训练的细节

我们在三个数据集上训练了DCGANs: Large-scale Scene Understanding(LSUN)(Yu et al., 2015), Imagenet-1k和一个新集成的面部数据集。关于每个数据集的使用细节将在下文给出。

除了缩放到tanh激活函数的[-1,1]范围,训练图像没有使用其他预处理操作。所有模型都用大小为128的mini-batch随机梯度下降(SGD)。所有权重都用0均值且标准差为0.02的正态分布初始化。在LeakyReLU中,leak的斜率对于所有模型都设为0.2。尽管之前的GAN相关工作用了动量来加速训练,我们则采用了调过超参数的Adam优化器(Kingma & Ba, 2014)。我们发现建议的学习率0.001太高了,使用了0.0002来替换。另外,我们发现动量项beta_1在推荐值0.9时导致了训练震荡和不稳定。当减少到0.5时稳定了训练。

4.1 LSUN

随着生成图像模型所产生样本的视觉质量的提高,关于过拟合和训练样本记忆的担忧增加。为了说明我们的模型能够随着数据的增加而扩展,并生成高分辨率的图像,我们用LSUN的300w+卧室训练数据集训练了一个模型。最近的分析已经指出模型的的学习速度和泛化能力之间的直接关系(Hardt et al., 2015)。我们展示了一个epoch训练的样本(Fig.2),模仿在线学习,除了在收敛后采样(Fig.3),作为一次机会来证明我们的模型并没有通过简单的过拟合/记忆训练样本来产生高质量的样本。图像没有采用数据增强。


图二:在一个数据集上训练后生成的卧室。理论上,模型可能在学习中记忆了训练样例,但这在实验中不太可能,因为我们使用小的学习了和minibatch来训练SGD。我们知道没有先前的经验证据证明小学习率的SGD能够记忆。


图三:5个epoches训练后生成的卧室。可以看到视觉上有欠拟合的证据,比如多个样本中重复的噪声纹理,例如一些床的基板。

4.1.1 删除重复数据

为了进一步减少生成器记住输入样例(Fig.2)的可能性,我们实现了一个简单的图像去重过程。我们在32*32下采样、中心剪裁的训练样例上,拟合了一个3072-128-3072的去噪dropout正规化化RELU自编码器。然后,最终的代码层的激活通过RELU激活的阈值来二值化,这种方法是一个有效的信息保留技术(Srivastava et al., 2014),并提供了一个语义散列的捷径,使得线性时间去重成为可能。哈希冲突的视觉检测显示了高精度,即估计的误报率小于1%。另外,这个技术检测并移除了将近27.5w个近似重复(图片),展现了一个高召回率。

4.2 面部

我们通过人名进行随机网络图片查询,来爬取含有人脸的图片。人名从dbpedia获取,标准是只取现代出生的人。这个数据集包含10K人的3M张图片。我们对这些图片使用了OpenCV的人脸识别,保留了分辨率足够高的检测结果,这给我们提供了奖金35W张人脸框。我们用这些人脸框来训练。图像没有采用数据增强。

4.3 Imagenet -1k

我们把Imagenet-1k(Deng et al., 2009)当做一个自然图片源来进行无监督训练。我们用32*32的min-resized的中心截取进行训练。图像没有采用数据增强。

5. DCGANs能力的经验验证

5.1 把GANs当做一个特征提取器来分类CIFAR-10

一种评估无监督表征学习算法的常用技术是把它们当做一个监督数据集上的特征提取器,并评估线性模型拟合这些输出特征的效果。

在CIFAR-10数据集上,一个给力的基准表现使用一个调整良好的单层特征提取流程,使用K-means作为一个特征学习算法。当使用非常大量色的特征映射(4800)时,这个技术达到了80.6%的准确率。基本算法的一个无监督的多层扩展达到了82.0%的准确率(Coates & Ng, 2011)。为了评估DCGANs学到的表征对于监督任务的质量,我们在Imagenet-1k上训练,然后用判别器的所有层的卷积特征,对每层表征使用最大池化来产生4*4的空间网格。然后,这些特征被扁平化并连接形成了28672维的向量,并用一个正规化线性L2-SVM分类器来训练它。这达到了82.8%的准确率,比所有基于K-means的方法都高。值得注意的是,这个判别器有比基于K-means的方法少得多的特征映射(在最高层有512),但并没有导致更大的总特征向量,因为在许多层用了4*4的空间定位。DCGANs的表现依然比Exemplar CNNs差(Dosovitskiy et al., 2015),这是一种以无监督方式训练正则判别CNNs的计数,目的是从源数据集中辨别精心挑选的、积极增强的、模范样本。之后可能从微调判别器的表征来继续提高,但是我们把这留作未来的工作。另外,因为我们的DCGAN从来没有在CIFAR-10上训练过,这个实验也验证了学到特征的领域无关鲁棒性。

表一:我们的预训练模型在CIFAR-10上的分类结果。我们的DCGAN没有在CIFAR-10上预训练过,而是在Imagenet-1k上。不过这些特征用来分类CIFAR-10图片。

5.2 把GANs当做特征提取器来分类SVHN数字

在街景房门牌号数据集(SVHN)上(Netzer et al., 2011),当标注数据缺乏时,我们以监督为目的使用DCGAN的判别器的特征。按照和CIFAR-10试验中相似的数据准备规则,我们从non-extra数据集中分理处含1w样例的校验集用于超参数和模型选择。1000个均匀分类分布的训练阳历被随机选择,并用于训练一个规则化的线性L2-SVM分类器,其中采用和CIFAR-10流程一样的特征提取器。这达到了顶尖的(对于有1000个类标的分类)22.48%的测试错误率,提升并超过了其他以平衡未标注数据集为目的的的CNNs的改版(Zhao et al., 2015)。另外,我们通过用相同架构、数据训练一个纯粹的监督CNN,并把这个(CNN)模型用超过64个超参数尝试(Bergstra & Bengio, 2012),的随机搜索进行优化,验证了DCGAN中的CNN结构并不是模型表现的主要贡献因素。它达到了一个显著更高——28.87%的校验错误。

6. 探究和可视化网络内部

我们从多种途径调研了训练的生成器和分类器。我们没有在训练集上做任何形式的最近邻搜索。最近邻搜索在像素或者特征空间上被小图变换所扼杀(Theis et al., 2015)。我们同样没有用对数似然的指标来定量评估模型,因为它是个差劲的(Theis et al., 2015)指标。

表二:使用1000个类标的SVHN分类

6.1 行走在潜空间上

我们做的第一个实验是理解潜空间的地形。在学到的流形(manifold)上行走通常能够告诉我们关于记忆的信号(如果那里有尖锐的过度),以及关于其中空间被分层折叠的那条路。如果潜空间中的行走导致了图像生成的语义变化(比如图像被增加或删除),我们能够推理出模型学到了相关和有趣的表征。结果在Fig.4中显示。

图四:第一行:在Z中一系列9个随机点中进行插值,显示了学到的空间有光滑的过渡,空间中的每张图片似乎看起来像一间卧室。在第6行,你能看到一个没有窗户的房间渐变成一个有着巨大窗户的房间。在第10行,你能看见原先有电视的地方渐变成一个窗户。

6.2 可视化判别器的特征

之前的工作证明了CNNs在大贵博数据集上的监督学习学到了非常给力的特征(Zeiler & Fergus, 2014)。另外,在场景分类上训练的监督CNNs学到了目标检测器(Oquab et al., 2014)。我们证明了在一个大规模图像数据及上训练的无监督的DCGAN也能够学到有趣的分层特征。使用引导反向传播(Springenberg et al., 2014),我们在Fig.5中展示了判别器学到的特征在卧室的典型部分激活了,比如床和窗户。为了对比,在同样的图像中,我们给出了一个基准,即随机初始化的特征没有在任何语义相关或者有趣的东西上激活。

图五:在右边,引导反向传播可视化了对于判别器中最后一个卷积层的前6个卷积特征的最大轴对齐响应。注意到只有明显少数的特征对床响应——而床是LSUN卧室数据集的中心物体。在左边是一个作为基准的随机滤波器。相比于之前的响应,这里几乎没有区别和随机结构。

6.3 操作生成器的表征

6.3.1 忘记画中心物体

除了判别器学习到的表征,还有个问题是生成器学到了什么表征。样本质量使人想起生成器学到了关于主要场景元素的特殊的物体表征,如床、窗户、台灯、门和各种各样的家具。为了探索这些特征的形式,我们进行了一个实验,尝试从生成器中彻底移除窗户。

在150个样本上,手工画了52个窗户边界框。在第二高的卷积层特征中,使用逻辑回归来拟合和预测某个特征的激活是否在窗户上,其中的标准是画的边界框内部的激活是正的而同一批图片中的随机样本是负的。使用这个简单地模型,所有特征映射中权重大于0的(总共200个)被从所有空间位置中提取出来。然后,生成了包含或不包含特征映射的随机的新样本。

生成的含有或者不含有窗户dropout的图片在Fig.6中显示。有趣的是,网络在大部分情况下忘记在卧室中画窗户,而是使用了其他物品来代替。

6.3.2 面部样本上的矢量算数

在评估学到的词汇的表征这个条件下,(Mikolov et al., 2013)证明了简单地算数操作揭示了表征空间中丰富的线性结构。一个经典的例子证明了向量("King") - 向量("Man") + 向量("Woman")推理出了一个最近邻是向量Queen的向量。我们调研了我们的生成器中的Z表征是否有类似的结构。我们为了得到视觉概念,在模范样本集的Z向量上实行了相似的算术操作。实验在一样本一概念的情况下不稳定,但在平均了3个模范的Z向量后显示出了一致和稳定的生成,即在语义上符合算术操作。 除了Fig.7中现实的物体操作外,我们证明了面部姿态也在Z空间中被线性建模了(Fig.8)。

图七:视觉概念的向量算术操作。对于每一列,样本的Z向量是被平均的。然后,在均值向量上进行算术操作来创造一个新的向量Y。右手边的中心样本是通过把Y输入生成器产生的。为了证明生成器的插值能力,+-0.25的均值噪声被加到Y来产生8个另外的样本。在输入空间中应用算术操作(底下的两个例子)导致了噪声重叠,因为没有对齐。


图八:一个“转动”向量产生于4个面部向左和面部向右的平均样本。通过向随机样本加入这个轴向的插值,我们能够可信赖地转变他们的姿态。

这些证明指出用我们模型学到的Z表征能够建立有趣的应用。之前,条件生成模型被证明能够学习有说服力的模型物体特征,像是尺度、旋转和姿态(Dosovitskiy et al.,2014)。据我们所知这是第一次在纯无监督模型中实现这些。之后对上述向量算术操作的探索和开发可能显著减少复杂图像分布条件建模生成模型所需的数据量。

7. 结论和未来工作

我们提出了一类更加稳定的架构来训练生成对抗网络,并且给出了证据,证明对抗网络能够学到监督学习以及生成建模的图像的良好特征。仍然有部分模型不稳定的问题 - 我们注意到当模型训练更长时间时,他们有时折叠一类滤波器的子集,到一个单震动模式。未来的工作需要针对这种形式的不稳定。我们想,扩展这个框架到其他领域例如视频(对于帧预测)以及音频(预训练特征用于语音合成)应该非常有趣。未来,关于学到的潜空间的调研也是非常有趣的。

致谢

省略

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 201,924评论 5 474
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,781评论 2 378
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 148,813评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,264评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,273评论 5 363
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,383评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,800评论 3 393
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,482评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,673评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,497评论 2 318
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,545评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,240评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,802评论 3 304
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,866评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,101评论 1 258
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,673评论 2 348
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,245评论 2 341

推荐阅读更多精彩内容