论文笔记——UNSUPERVISED REPRESENTATION LEARNING WITH DEEP CONVOLUTIONAL GENERATIVE ADVERSARIAL NETWORKS

首先给出2篇参考译文

https://ask.julyedu.com/question/7681 

http://blog.csdn.net/c2a2o2/article/details/54408056 GANs的学习系列8

本人的阅读笔记

1引言

从大规模无标签的数据集中学习可重复使用的特征表达是一个具有活力的研究领域。通过无穷的无标签图像来学习一种好的中间表达(good intermediaterepresentations),可用于监督学习任务中。本文提出训练一个GAN来建立good intermediate representations,并在后续,在使用generator and discriminatornetworks 作为有监督学习任务中的特征提取。目前很少有论文关注理解并可视化GAN学到了什么,以及多层GAN的中间表示。

本文贡献:

1)对 卷积GAN的拓扑结构提出了一系列的约束,在多数训练情况下使得GAN的训练更为稳定。称之为Deep Convolutional GAN(DCGAN).

2)用一个用于图像分类任务的已训练好的discriminator,显示比其他无监督方法相比,具有可比的性能。

3)可视化GAN学到的filter,并通过实验证明:特定的filter用于生成特定的对象。

4)generator具有有趣的向量算术特性,可以对生成样本的语义特点进行简单操作。

 

2相关工作

2.1从无标签数据中的表示学习

无监督的表示学习的方法分为2种:1)聚类,对图像块(image patches)的多层聚类(Coates & Ng 2012)是有力的图像表达工具。2)自编码器,及其改进形式。此外,还有deep belief networks.

2.2生成自然图像

生成图像模型分为2类:1)有参数的;2)无参数的。

无参数方法主要进行图像匹配(matching),一般是图像块的匹配,主要用于纹理合成、超像素和图像修复。

有参数方法研究的很广泛,但生成自然图像目前没有特别成功的案例。GAN生成的图像常常具有噪声,并且匪夷所思。

2.3CNN中间层的可视化

介绍了2篇论文。

 

3方法与模型结构

本文方法的核心是采用并修改目前的3种CNN结构的已经过验证的改进。

1)首先是:用全卷积网络(all convolutional net:意为不含有下采样层,整个网络都是卷积层,笔者注),使用的是步幅卷积(strided convolutions)代替确定性的空间下采样过程(例如maxpooling),也就是让网络自己学习一种空间下采样。在生成器中采用这种方法(指微步幅卷积,可从前文中获知),以自己学习上采样。

2)第二种趋势是:去掉在最高一层的卷积特征之上的全连接层。最有力的证明是,采用global average pooling在图像分类中取得了目前最好的成绩。我们发现,global average pooling增加了模型的稳定性,但是会影响收敛速度。一种折中的方法是:把最高层的卷积特征 与生成器的输入端直接相连;同时,这个最高层卷积特征也与判决器的输出端直接相连(directly connectingthe highest convolutional features to the input and output respectively of thegenerator and discriminator)。GAN的第一层输入是均匀分布的噪声Z。GAN的第一层可以认为是一个全连接层,因为它就是一个矩阵乘法,但是结果被重组为一个4维张量,并作为卷积叠加(convolution stack)的开始。对于判决器,最后一层卷积层被展平(flattened),然后送入单个sigmoid输出。图1 是该例的结构图。

3)批量归一化(Batch Normalization,简写为batchnorm):通过对输入归一化到单位区间,获得均值为0,单位方差的特性,增加学习的稳定性。该方法对于初始化不良导致的训练问题有效,并有助于梯度流向更深层。批量归一化被证明对于深度生成器开始学习是非常重要的,能够避免生成器将所有样本全部折叠到一个点,这是GAN观测到的常见失败情况。直接将batchnorm用在所有层会导致采样振荡(sample oscillation)和模型不稳定。生成器的输出端不采用batchnorm,判决器的输入端不采用batchnorm,则可以避免上述问题。

4)激活函数采用ReLU。生成器用ReLU,但是生成器的输出层用的是Tanh。

                                          判决器用 leaky rectified activation (Mass2013, Xu 2015),尤其对高分辨率建模。而在Goodfellow2013年最初的GAN论文中,采用的是maxout激活函数。

 

表格给出了稳定 Deep ConvolutionalGANs的结构纲要

l  在判决器中用步幅卷积(strided convolutions)代替任何一个pool层;在生成器中,用fractional-strided convolutions(反卷积中用?译者注)。

l  在判决器和生成器中都采用批量归一化。

l  对于深度结构,移除全连接的隐含层。

l  在生成器除输出层外,全部采用ReLU激活函数,输出层采用Tanh。

l  在判决器中的所有层都采用LeakyReLU。



图1 对LSUN数据建模时的DCGAN生成器。1个100维的均匀分布Z投影到一个有很多特征映射的小空间范围卷积层。经过4级的fractionally-strided convolutions 微步幅卷积(在最近的一些论文中,被错误的称为反卷积)将最终的高级表示转换成64*64像素的图像。注意,没有用到全连接层和pooling层。

4 对抗训练

分别在3个数据库上进行训练:Large-scale Scene Understanding (LSUN),Imagenet-1k 和 Faces dataset。

除了对图像进行tanh 归一化到【-1 1】之外,在没有额外的图像预处理。所有模型均采用小批量堆积梯度下降法训练,小批量的大小为128。所有权重的初始化是根据一个均值为0,方差为0.02的正态分布。LeakyReLu中Leak的斜率是0.2。尽管之前GAN采用动量梯度下降法加速训练速度,我们采用的是Adam optimizer 与微调超参数。我们发现建议的学习速率0.001太高了,改为0.0002.此外,我们还发现,动量项β1取0.9会导致模型不稳定和振荡,取0.5时训练较稳定。

4.1 LSUN

在改善生成图像模型样本视觉质量的同时,也增加了对于训练样本的记忆和过拟合的关注。为了说明我们提出的模型在更多的数据和更高的分辨率图像生成,我们再LSUN的卧室数据集上训练模型。该数据集包含3百万以上的训练样本。最新的分析表明,模型的学习虚度与泛化能力之间存在直接关系。图2是一次迭代的训练样本,模拟在线学习,图3是收敛后的样本,主要是为了说明,我们的模型不是通过过拟合/记忆训练样例从而产生高质量的样本的。图像没有采用图像增广。

4.1.1 删除重复数据

为了进一步减弱生产器记忆输入样例的相似度,提出一个简单的重复数据删除步骤。对32*32 下采样中心剪裁的训练样本设计了一个3072-128-3072(结构,译者注)的去噪弃权正则化ReLU自编码器。通过对结果编码层的ReLU激活函数进行阈值化,实现二值化输出。该方法被证实是一种有效的信息保持技术,并能为semantic-hashing(语义哈希)提供简单的形式,适用于线性时间的重复数据删除。失败率<1/100,成功去除了275,000张重复图像。(是删除生成的重复数据,还是删除训练时的重复数据?译者注)


图2 一次迭代生成的卧室图像。理论上,模型能够学习并记忆训练样本,但当采用小学习率和小批量SGD时的却不是这样。我们意识到,没有先验实验证据表明采用SGD和小学习率能在一次迭代中有记忆。



图3 5次迭代之后生成的卧室图像。很明显,通过多张样本的重复纹理可以看出视觉上的欠拟合。

4.2Face数据库

没用到数据增广。

4.3ImageNet-1k数据库

用ImageNet-1k数据库做为无监督训练的自然图像的样本来源。按图像较小边长缩放,且中心剪裁大小为32*32的图像用于训练。图像没有应用到数据增广。

 

5DCGANs实验

5.1用GANs分类DIFAR-10作为特征提取器

一种常用的评估非监督表示学习算法质量的技术是:将它们作为特征提取器,在有监督数据库上评估线性模型在这些无监督学习到的特征上的分类性能。

为了评价DCGAN特征表示学习的质量,用Imagnet-1k训练,然后利用判决器中所有层的卷积特征,具体是对每一层的特征表示都做maxpooling,产生4*4大小的空间网格。这些特征随后被展平(展成1维的)并连接,形成28672维的向量,并用正则化线性L2-SVM进行分类训练。在CIFAR-10上达到了82.8%的准确率,比其他所有基于k均值的方法都好。注意,这个判决器训练在Imagnet-1k,分类性能测试在CIFAR-10上,说明了模型的鲁棒性。

 

6网络内层的研究与可视化

本文在训练集上没有进行任何种类的最近邻搜索,因为像素级或者特征空间的最近邻很容易被小的图像变换所 。本文同样没有用对数似然度量去评估模型,因为这也不是一个很好的度量方法(Theis et al.,2015)。

6.1在隐含空间漫步

Manifoldlearning(流形学,译者注)

对学到的流形(manifold)的理解通常告诉我们记忆的标志(如有急剧的过渡),以及空间分成崩溃的方式。如果对图像生成而言,隐含空间漫步的结果导致语义的变化(例如,增添或者删除的对象),可以归因为模型学习了相关的以及有趣的表达方式。结果如图4所示。


图4 最上面一行:Z中一系列9个随机点之间的插值,说明学到的空间具有光滑的过渡,因为每一幅图像空间都与卧室非常近似。在第6行,可以看到,一间没有窗户的卧室,逐渐缓慢变成有巨大窗户的卧室。在第10行,可以看到,一个类似电视的对象慢慢变成窗户。

6.2判决器特征可视化

前期的工作显示,CNN在大规模数据库上的有监督训练会学到非常有用的特征。此外,有监督CNN训练在场景分类问题上学到了对象检测器。我们证明,无监督DCGAN在大规模数据库上学到的分层特征非常有意义。用有导向的反向传播方法,图5显示判决器学到的特征在典型的卧室部分被激活,例如 床和窗户。作为对比,在同一幅图像中,我们给出一个随机初始化特征的基准线,则没有相关的语义或有意义的语义被激活。


图5 右侧,由判决器最后一层卷积层学到的特征中的前6个,采用有导向的反向传播可视化的最大轴对齐响应。注意,极少数特征响应为床,LSUN卧室数据库的中心对象。左侧是随机滤波器基准。对比前面的响应,左侧的响应是不具备判决性和随机结构。


图6 最上层:模型生成样本(未经修改)。下面一层:由删除窗户滤波器产生的相同样本。

其中一些窗户被删除,另外一些窗户转换成了具有类似可视化外观的对象,例如门和镜子。

尽管视觉效果有所下降,整体场景的组成部分保持了相似性,说明生成器对于从对象表示理顺场景表示方面有较好的效果。扩展实验将对从图像中删除其他对象,并修改由生成器产生的对象。

 

在150张样本上人工框出52个窗户。在第二高层的卷积特征层上,用逻辑回归来拟合并预测,特征激活值是否对应窗户,具体是通过这样一种准则来判断:在方框区域内的激活值是正值,来自于同一幅图像的随机样本是负值。采用这个简单模型,在所有的空间位置上,丢弃(dropped)所有权重大于0(总值200)的特征映射。然后,用删除特征映射和不删除特征映射的模型随机产生的新样本。

具有窗户和删除窗户的生成的图像如图6所示。网络模型经常忘记在卧室中画上窗户,而是用其他物体代替窗户。

 

6.3.2人脸样本的向量结构

在单词特征学习的评价中得到这样的结论,在特征空间的简单算术操作显示出丰富的线性结构。一个非常有说服力的例子是,向量(king)- 向量(man)+ 向量(woman)= 新向量,和这个新向量最接近的向量是向量(queen)。我们研究了,在生成器的Z的表示中是否具有相类似的结构。对于视觉概念,我们对示例样本集的Z向量进行了类似的算术操作。每个视觉概念只在单样本(single samples?为什么用复数,大概是指同一类样本的不同图像。如图7中,都是戴眼镜的男士,有3张图像。译者注)上进行试验,结果不稳定;但对3个样例的Z向量平均,显示出一致性(consistent)和稳定的生成结果,并在语义上符合算术操作。另外,如图7所示的对象操作,我们证明了在Z空间中,面部姿态是线性的,如图8.

这些证明说明,通过我们提出的模型学习到的Z表示能够产生有意义的应用。之前已经证明,条件生成模型能够学习对象的尺度,旋转和位置属性(Dosovitskiy 2014)。就我们所知,这是首次在纯无监督模型上证明这样的学习能力。对上述向量算术的进一步探索与发展能显著地减少复杂图像分布的条件生成模型的数据总量。


图7 视觉概念的向量算术。平均每一列样本的Z向量。算术操作是在平均向量上的,产生一个新的向量Y。右手侧的中间样本(即3*3的9张图像中间的一张。译者注)是由把Y作为生成器的输入产生的图像。为了证明生成器插值的能力,给Y加上正负0.25的噪声,以生成其他8幅图像。在输入(像素)空间加上算术运算,结果由于错位导致噪声重叠(最底部2个例子)。


图8 一个具有翻转功能的向量,由4幅面部朝向左侧vs右侧的图像平均生成。通过给随机样本在这个方向上加上插值,能够获得可靠的姿态变换。

 

7总结与展望

我们提出了训练GAN的更稳定的集合结构。并通过实例证明对监督学习和生成模型,GAN能学习到图像的很好的表示。但仍存在一定形式的不稳定性,当模型训练时间较长,一部分滤波器就会崩溃,成为一个振荡模型。未来的工作是要跟踪这些不稳定性。我们认为,将本文提出的框架用于其他领域,如视频(帧预测)和音频(语音合成的预训练特征)应该很有意义。对学习到的隐藏空间特性的进一步研究也具有意义。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值