DCGAN翻译

it2022-05-11  52

版权声明:本文为博主原创文章,转载请注明出处。 https://blog.csdn.net/liuxiao214/article/details/73500737 </div> <link rel="stylesheet" href="https://csdnimg.cn/release/phoenix/template/css/ck_htmledit_views-3019150162.css"> <div id="content_views" class="markdown_views prism-atom-one-dark"> <!-- flowchart 箭头图标 勿删 --> <svg xmlns="http://www.w3.org/2000/svg" style="display: none;"> <path stroke-linecap="round" d="M5,0 0,2.5 5,5z" id="raphael-marker-block" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);"></path> </svg> <p>论文原文:<a href="https://arxiv.org/pdf/1511.06434.pdf" rel="nofollow" data-token="a3f8328336b59c21e25fd5bcfae1cceb">地址</a></p>

论文译文:地址

1、阅读论文

Radford A, Metz L, Chintala S. Unsupervised Representation Learning with Deep Convolutional Generative Adversarial Networks[J]. Computer Science, 2015.

2、翻译论文

摘要

近年来,使用卷积神经网络的监督学习被大量应用于计算机视觉应用中。相对地,使用卷积神经网络的非监督学习则被较少的关注。在这项工作中,我们希望可以帮助缩小监督学习和非监督学习在CNN的成功上差距。我们介绍了CNN的一个类,称为深度卷积生成对抗网络(DCGANs),这个网络有着明确的结构约束,并且表明他们对非监督学习有着强烈的可信度。在不同的图像数据集上训练,我们展示出了令人信服的证据,我们的深度卷积对抗对,从对象部分到场景,在生产器和判别器上都能学到层级的表示。此外,我们在一些新的任务上使用学习到的特征,表明了它们在一般化图像的表示上具有通用性。

1、介绍

从大量无标签数据集中学习可重复使用的特征表示已经是一个热门研究区域。在计算机视觉的背景下,实际上,可以利用不限数量的无标签图像和视频来学习一个好的中间表示,这个表示可以用在大量有监督的学习任务上,例如图像分类。我们提出一种方法,可以建立好的图像表示,通过训练对抗生成网络(GAN),并且反复利用生产网络和辨别网络的一部分作为有监督任务的特征提取。GAN在极大似然技术方面有惊人的潜力。此外,一个有争议性的话题是,它们学习过程,和缺乏启发式的价值函数(例如独立像素的均方差)在表征学习是具有吸引人的前景。GAN被认为训练不稳定,经常导致生成器产生无意义的输出。目前,试图理解和可视化GAN学到了什么以及多层GAN的中间表示,只有有限的发表研究。

在本文中,我们做了如下贡献:

我们提出并验证了在卷积GAN上的结构技术的一系列限制,使其在大多数数据集中可以稳定的训练。我们称这个结构类为深度卷积GAN(DCGAN)。

我们使用训练的辨别器作用于图像分类任务,与其他无监督算法相比展示出了具有竞争力的表现。

我们把从GAN中学到的滤波器形象化,实验表明,不同的滤波器可以绘制不同的对象。

我们展示出,生产器的一个有趣的向量运算属性,生成样本的很多语义特征可以做出简单的计算。

2、相关工作

2.1 无标签数据的表示学习

无监督表示学习不仅在一般的计算机视觉研究中,而且在图像的背景下,都是一个相当值得研究的问题。无监督表示学习的传统方法都是在数据集上使用聚类(如K-means),通过聚类器来提高分类上的得分。在图像的背景下,可以对图像块进行分层聚集,来学到更有力的图像表示。另一个流行的方法是训练自动编码器(卷积、堆积、分离编码中组件、梯形结构的内容和位置),这可以将图像编码为紧致码,并且将编码解码来尽可能准确地重新构建图像。这些方法在图像像素上展示出良好的特征表示。深度信念网络在学习层级结构的表示上也展示出了良好的效果。

2.2 自然图像的生成

图像生成模型有了成熟的发展并分成两个类别:参数的和无参数的。

无参数模型经常从一些已存在图像的数据集中做匹配,经常匹配图像块,已经用在了纹理合成、超分辨率和图像修复上。

参数模型对于生成图像已经有了广阔的探索(比如,MNIST数据集合纹理合成)。然而,生成真实世界中的自然图像直到最近也没有取得特别大的成功。对于生成图像一个变化的抽样方法已经取得了一些成功,但是样本经常受到模糊的影响。另一个生成图像的方法使用迭代前向扩散过程。生成对抗网络对于生成图像,需要承受噪音并且难以理解的。对这个方法的一个拉普拉斯金字塔的延伸展示了更高的图像质量,但是,由于链接多个模型引入了噪音,这仍要承受对象看起来不稳定的问题。一个递归网络方法和去卷积网络方法在自然图像的生成上取得了一些成功,但是它们并没有将生成器利用与监督学习。

2.3 CNN内部的可视化

对于使用神经网络一个一直受批评的问题就是它们是黑盒方法,对于网络那些在形式上简单的人类可读的算法只有很少的理解。在CNN的背景下,Zeiler等人展示出,通过去卷积和过滤最大激活,可以发现网络中每一个卷积滤波器的大致作用是什么。类似地,在输入上使用梯度下降法,可以让我们检查,这些作用于特定滤波器子集的理想图像。

3、方法和模型结构

历史上,尝试在模型图像上,使用CNN扩展GAN都没有取得成功。这激励了LAPGAN的作者开发了一种其他的方法来迭代高档低分辨率生成图像,使得建模更加稳定。我们在试图使用在有监督领域通用的CNN结构来扩展GAN时也遭遇了困难。不过,在广泛的模型探索之后,我们确认了一类结构族,即在一些列的数据集上可以稳定的训练,并且允许训练更高的分辨率、更深的生成模型。

我们的方法的核心是采用并修改三个最近提出的对GAN架构的改进。

第一个是,全卷积网络,使用步幅卷积替代确定性空间池化函数(比如最大池化),允许网络学习自身的空间下采样。我们将这个方法应用 在生成网络和判别网络中,允许它学习自己的空间上采样。

第二个是,倾向于在最顶层的卷积后面消除全连接层。一个强有力的例子就是全局平均池化已经应用于艺术图像分类上。我们发现,全局平均池化提高了模型的稳定性,但是降低了收敛速度。在最高卷积特征的中间地带,直接连接生成网络的输入和判别网络的输出也能工作的很好。GAN的第一层,取统一的噪音分布z作为输入,称其为全连接层只是因为这是个矩阵乘法,但结果被重组为一个4维的张量,并作为卷积叠加的开始。对于判别器,最后一个卷积层是平滑的,并喂进一个单个的sigmoid输出。在图1中可以看到一个示例模型架构的可视化。

第三个是批处理规范化。通过将输入的每个单元标准化为0均值与单位方差来稳定学习。这有助于处理初始化不良导致的训练问题和有助于梯度流向更深的网络。这证明了,关键是取得深层生成器来开始学习,防止生成器折叠全部的样本到一个点,这在GAN中是常见额故障模型。然而,直接对所有的层采用批处理规范化,会导致样本震荡和模型不稳定。通过对生成器的输出层和辨别器的输入层不采用批处理规范化来避免这种情况。

RelU激活函数使用在生成模型上,除了输出层使用Tanh激活函数。我们观察到,使用有界限的激活函数可以允许模型更快地学习达到饱和,并且覆盖训练分布的颜色空间。在辨别网络下,我们发现,leakyRelU激活函数可以工作的很好,特别是在更高分辨率的模型上。这与使用了maxout激活函数的原始GAN论文相反。


稳定的深度卷积GAN 架构指南:

所有的pooling层使用步幅卷积(判别网络)和微步幅度卷积(生成网络)进行替换。

在生成网络和判别网络上使用批处理规范化。

对于更深的架构移除全连接隐藏层。

在生成网络的所有层上使用RelU激活函数,除了输出层使用Tanh激活函数。

在判别网络的所有层上使用LeakyReLU激活函数。


图1: LSUN 场景模型中使用的DCGAN生成网络。一个100维度的均匀分布z映射到一个有很多特征映射的小空间范围卷积。一连串的四个微步幅卷积(在最近的一些论文中它们错误地称为去卷积),将高层表征转换为64*64像素的图像。明显,没有使用全连接层和池化层。

4、对抗训练的细节

我们在三个数据集上训练DCGAN,分别是Large-scale Scene Understanding (LSUN),Imagenet-1k和一个新进装配的人脸数据集。每一个数据集的使用细节在下面给出。

训练图像除了放缩到tanh激活函数的[-1,+1]范围之外,没有经过其他的预处理。所有的模型都是通过小批量随机梯度下降法来训练的,小批量的大小是128。所有的权重的初始化都是均值为0,标准差为0.02的正态分布。在LeakyReLU激活函数中,所有模型的leay的斜率都设置为0.2。先前的GAN工作使用momentum来加速训练,DCGAN使用Adam optimizer来调节超参数。我们发现建议使用学习速率为0.001,如果太高了,则替换为0.0002。此外,我们发现,将momentum termβ1保持在建议值0.9,会导致训练震荡和不稳定,将其减少至0.5可以帮助稳定训练。

4.1 LSUN

随着生成图像模型的样本的视觉质量提高,也增加了对训练样本过拟合和记忆的担心。为了证实我们的模型规模在更多的数据和更高的分辨率上怎样生成,我们在LSUN卧室数据集上训练模型,这个数据集包含了超多300万的训练例子。最近的分析表示,模型学习的多快与他们的泛化性能有着直接的关系。我们展示出了训练一个周期的样本(图2),模仿在线学习,以及收敛后的样本(图3),这可以表明,我们的模型不是简单的通过过拟合和记忆训练样本,来产出高质量的样本。图像没有用到data augmentation。

4.1.1删除重复数据

为了进一步降低生成器记忆输入样本(图2)的可能性,我们进行了一个简单的删除重复图像的过程。我们在训练样本的32x32下采样中心,采样拟合了一个3072-128-3072去噪dropout正则化RELU 自编码。所产生的代码层激活函数,接着通过RelU激活函数二值化,RelU激活函数被认为是有效信息保存技术,并且提供方便的语义哈希形式,允许线性时间内删除重复数据。哈希碰撞的视觉检查展示出高的精度,100个之中估计误判率小于1。此外,这项技术检测和移除大约275000左右的重复数据,表明了一个高召回。

图2: 在训练集上训练一个周期后生成的卧室图像。理论上,模型可以学习以记住训练样本,但是这在实验中是不太可能的,我们使用比较小的学习速率和小批量随机梯度下降。我们意识到没有任何先前的经验证据,可以表明随机梯度下降和小的学习速率存在记忆。

图3: 在五个训练周期之后生成的卧室图。这些展示是与多个样本通过反复的噪声纹理拟合的证据。

4.2 FACES

我们从人们姓名的随机网络图像的查询中搜集了包含人脸的图像。而人名是从dbpedia上获取的,作为一个标准就是他们都出生在现代的。这个数据集是来自1万人的300万张图像。我们在这些图像上运行了opencv的人脸检测器,保持高分辨率的检测,这样给了我们大约35万的人脸盒。我们使用这些人脸盒作为训练。图像没有应用data augmentation。

4.3 IMAGENET-1K

我们使用Imagenet-1k数据集作为无监督训练中自然图像的来源。我们在32*32的中心采样上训练。图像没有应用data augmentation。

5、DCGAN性能的实验验证

5.1 使用GAN作为特征提取器分类CIFAR-10

一个评价无监督表示学习算法质量的通用方法是,将它们作为有监督数据集上的一个特征提取,然后评价这个线性模型在这些特征上拟合的性能。

在CIFAR-10数据集上,一个非常强大的基准性能已经被证明,通过使用k-means作为特征学习算法的单层特征提取管道。当使用大量的特征映射时(4800),这项技术实现了80.6%的准确度。基于这个算法的无监督多层的拓展实现了82.0%的准确度。为了验证DCGAN对于监督任务所学到的表示的质量,我们在Imagenet-1k上训练,并且使用判别网络所有层的卷积特征,最大池化每一层来产生一个4*4的空间网格。这些特征接着被平滑和串级形成一个28672维的向量,然后用一个正则化线性L2-SVM分类器在它们上面训练。这实现了82.8%的准确度,性能超过了所有基于k-means的方法。特别的,与基于k-means的方法比较,判别模型有较少的特征映射(最高层为512),但是由于很多层的4*4空间位置,结果有一个更大的总特征向量大小。DCGAN的性能仍然比不上2015 年Dosovitskiy 等提出的典型CNN,它是这样一项技术,一种以无监督的方式训练标准的判别式CNN,来区分是特定选择的样本,极大增强的样本还是来自源数据集的标准样本。通过调整判别器的表示可以做出进一步的改善,但是我们将其作为未来工作。此外,因为我们的DCGAN从来没有在CIFAR-10数据集上训练过,这个实验也表明了学习特征主要的鲁棒性。

表1: 使用我们预训练模型得出的CIFAR-10分类结果。我们的DCGAN并没有在CIFAR-10上预训练,但是在Imagenet-1k数据集上做了训练,并且这些特征被用来分类CIFAR-10图像。

ModelAccuracyAccuracy (400 per class)max # of features units1 Layer K-means80.6c.7% (±0.7%)48003 Layer K-means Learned RF82.0p.7% (±0.7%)3200View Invariant K-means81.9r.6% (±0.7%)6400Exemplar CNN84.3w.4% (±0.2%)1024DCGAN (ours) + L2-SVM82.8s.8% (±0.4%)512

.

5.2 使用GAN作为特征提取器分类SVHN数字

在StreetView House Numbers(SVHN)数据集上,当标签数据很缺乏的时候,对于有监督的任务,我们使用DCGAN的判别器的特征。遵循与CIFAR-10数据集实验上类似的数据预处理规则,我们从非额外数据集中分出了10000个样本的验证数据集,并且将其用在所有的超参数和模型选择上。随机选择1000个类分布均匀的训练样本,并将其用在线性正则化L2-SVM分类器上,同样,这个分类器也用在了CIFAR-10的相同特征提取管道的顶部。这实现了目前最高水平(对于1000个标签的分类来说),测试误差为22.48%,是利用无标签数据提高CNN设计的另一个改进。此外,通过在同一结构、同一数据上,训练纯粹的有监督CNN,并且通过随机搜索超过64个超参数实验来优化这个模型,我们验证了用在DAGAN的CNN架构在模型的性能中并不是关键的因素。它达到了明显更高的28.87%的验证误差。

表2: 1000 个标签的SVHN 分类

Modelerror rateKNN77.93%TSVM66.55%M1+KNN65.63%M1+TSVM54.33%M1+M236.02%SWWAE without dropout27.83%SWWAE with dropout23.56
转载请注明原文地址: https://win8.8miu.com/read-1493048.html

最新回复(0)