基于深度卷积神经网络的图像分类外文翻译资料

 2022-04-12 20:10:10

英语原文共 9 页,剩余内容已隐藏,支付完成后下载完整资料


基于深度卷积神经网络的图像分类

(Alex Krizhevsky, Ilya Sutskever, Geoffrey E. Hinton)

摘要

我们训练了一个大型的深度卷积神经网络,来将在ImageNet LSVRC-2010大赛中的120万张高清图像分为1000个不同的类别。对测试数据,我们得到了top-1误差率37.5%,以及top-5误差率17.0%,这个效果比之前最顶尖的都要好得多。该神经网络有6000万个参数和650,000个神经元,由五个卷积层,以及某些卷积层后跟着的max-pooling层,和三个全连接层,还有排在最后的1000-way的softmax层组成。为了使训练速度更快,我们使用了非饱和的神经元和一个非常高效的GPU关于卷积运算的工具。为了减少全连接层的过拟合,我们采用了最新开发的正则化方法,称为“dropout”,它已被证明是非常有效的。在ILSVRC-2012大赛中,我们又输入了该模型的一个变体,并依靠top-5测试误差率15.3%取得了胜利,相比较下,次优项的错误率是26.2%。

1 引言

当前物体识别的方法基本上都使用了机器学习方法。为了改善这些方法的性能,我们可以收集更大的数据集,学习更强有力的模型,并使用更好的技术,以防止过拟合。直到最近,标记图像的数据集都相当小——大约数万张图像(例如,NORB [16],Caltech-101/256 [8, 9],以及CIFAR-10/100 [12])。简单的识别任务可以用这种规模的数据集解决得相当好,特别是当它们用标签-保留转换增强了的时候。例如,在MNIST数字识别任务中当前最好的误差率(lt;0.3%)接近于人类的表现[4]。但是现实环境中的物体表现出相当大的变化,因此要学习它们以对它们进行识别就必须使用更大的训练集。事实上,小规模图像数据集的缺陷已被广泛认同(例如,Pinto等人[21]),但是直到最近,收集有着上百万张图像的带标签数据集才成为可能。更大型的新数据集包括LabelMe [23],它由几十万张完全分割图组成,还有ImageNet [6],它由多于22,000个种类中超过1500万张带标签的高分辨率图像组成。

为了从几百万张图像中学习数以千计的物体,我们需要一个学习能力更强的模型。然而,物体识别任务的极大复杂性意味着这个问题不能被指定,即使是通过与ImageNet一样大的数据集,所以我们的模型中也应该有大量的先验知识,以补偿我们所没有的全部数据。卷积神经网络(CNN)构成了一个这种类型的模型[16, 11, 13, 18, 15, 22, 26]。它们的能力可以通过改变其深度与广度得到控制,它们也可作出有关图像性质的强壮且多半正确的假设(即,统计数据的稳定性和像素依赖关系的局部性)。因此,与层次规模相同的标准前馈神经网络相比,CNN的连接关系和参数更少,所以更易于训练,而其理论上的最佳性能可能只略差一点。

不论CNN的性质多有吸引力,也不论它们局部结构的相对效率有多高,将它们大规模地应用到高分辨率图像中仍然是极其昂贵的。幸运的是,目前的GPU搭配了一个高度优化的2D卷积工具,强大到足以促进大规模CNN的训练,而且最近的数据集像ImageNet包含足够的带标签的样例来训练这样的模型,还不会有严重的过拟合。

本文的具体贡献如下:我们在ILSVRC-2010和ILSVRC-2012大赛中使用过的ImageNet的子集上[2],训练了迄今为止最大型的卷积神经网络之一,并取得了迄今为止在这些数据集上报告过的最好结果。我们写了一个高度优化的GPU二维卷积工具以及训练卷积神经网络过程中的所有其他操作,这些我们都提供了公开地址 。我们的网络中包含一些既新鲜而又不同寻常的特征,它们提高了网络的性能,并减少了网络的训练时间,这些详见第3节。我们的网络中甚至有120万个带标签的训练样本,这么大的规模使得过拟合成为一个显著的问题,所以我们使用了几种有效的方法来防止过拟合,这些在第4节中给以描述。我们最终的网络包含五个卷积层和三个全连接层,且这种层次深度似乎是重要的:我们发现,移去任何卷积层(其中每一个包含的模型参数都不超过1%)都会导致性能变差。

最后,网络的规模主要受限于当前GPU的可用内存和我们愿意容忍的训练时间。我们的网络在两块GTX 580 3GB GPU上训练需要五到六天。我们所有的实验表明,等更快的GPU和更大的数据集可用以后,我们的结果就可以轻而易举地得到改进。

2 数据集

ImageNet是一个拥有超过1500万张带标签的高分辨率图像的数据集,这些图像分属于大概22,000个类别。这些图像是从网上收集,并使用Amazon Mechanical Turk群众外包工具来人工贴标签的。作为PASCAL视觉目标挑战赛的一部分,一年一度的ImageNet大型视觉识别挑战赛(ILSVRC)从2010年开始就已经在举办了。ILSVRC使用ImageNet的一个子集,分为1000种类别,每种类别中都有大约1000张图像。总之,大约有120万张训练图像,50,000张验证图像和150,000张测试图像。

ILSVRC-2010是ILSVRC中能获得测试集标签的唯一版本,因此这也就是我们完成大部分实验的版本。由于我们也在ILSVRC-2012上输入了模型,在第6节中我们也会报告这个数据集版本上的结果,该版本上的测试集标签难以获取。在ImageNet上,习惯性地报告两个误差率:top-1和top-5,其中top-5误差率是指测试图像上正确标签不属于被模型认为是最有可能的五个标签的百分比。

ImageNet由各种分辨率的图像组成,而我们的系统需要一个恒定的输入维数。因此,我们下采样这些图像到固定的分辨率256times;256。给定一张矩形图像,我们首先重新缩放图像,使得短边长度为256,然后从得到的图像中裁剪出中央256times;256的一片。除了遍历训练集从每个像素中减去平均活跃度外,我们没有以任何其他方式预处理图像。所以我们用这些像素(中央那一片的)原始RGB值训练网络。

3 体系结构

图2总结了我们网络的体系结构。它包含八个学习层——五个卷积层和三个全连接层。下面,我们将介绍该网络体系结构的一些新颖独特的功能。3.1-3.4是根据我们对于其重要性的估计来排序的,最重要的排在最前面。

3.1 ReLU非线性

将神经元的输出f,作为其输入x的函数,对其建模的标准方法是用 或者 。就梯度下降的训练时间而言,这些饱和非线性函数比不饱和非线性函数 要慢得多。我们跟随Nair和Hinton[20]称这种不饱和非线性的神经元为修正线性单元(ReLU)。训练带ReLUs的深度卷积神经网络比带tanh单元的同等网络要快好几倍。如图1所示,它显示出对于特定的四层卷积网络,在CIFAR-10数据集上达到25%的训练误差所需的迭代次数。此图显示,如果我们使用了传统的饱和神经元模型,就不能用如此大的神经网络来对该工作完成实验。

图1:带ReLU的四层卷积神经网络(实线)在CIFAR-10数据集上达到25%训练误差率要比带tanh神经元的同等网络(虚线)快六倍。每个网络的学习速率是独立选取的,以使得训练尽可能快。没有使用任何形式的正则化。这里演示的效果因网络结构的不同而不同,但带ReLU的网络学习始终比带饱和神经元的同等网络快好几倍。

我们不是第一个在CNN中考虑传统神经元模型的替代品的。例如,Jarrett等人[11]声称,非线性函数 由于其后随局部average pooling的对比度归一化的类型,它在Caltech-101数据集上工作得特别好。然而,在该数据集上的主要关注点是防止过拟合,所以他们正在观察的效果不同于我们报告的为拟合训练集使用ReLU时的加速能力。更快的学习对大型数据集上训练的大型模型的性能有很大影响。

3.2 在多个GPU上训练

单个GTX 580 GPU只有3GB内存,这限制了可以在其上训练的网络的最大规模。事实证明,120万个训练样本才足以训练网络,这网络太大了,不适合在一个GPU上训练。因此我们将网络分布在两个GPU上。目前的GPU特别适合跨GPU并行化,因为它们能够直接从另一个GPU的内存中读出和写入,不需要通过主机内存。我们采用的并行方案基本上是在每个GPU中放置一半核(或神经元),还有一个额外的技巧:GPU间的通讯只在某些层进行。这就是说,例如,第3层的核需要从第2层中所有核映射输入。然而,第4层的核只需要从第3层中位于同一GPU的那些核映射输入。选择连接模式是一个交叉验证的问题,但是这让我们可以精确地调整通信量,直到它的计算量在可接受的部分。由此产生的体系结构有点类似于Ciresan等人提出的“柱状”CNN的体系结构[5],不同之处在于我们的纵列不是独立的(见图2)。与在一个GPU上训练的每个卷积层有一半核的网络比较,该方案将我们的top-1与top-5误差率分别减少了1.7%与1.2%。训练双GPU网络比训练单GPU网络花费的时间略少一些 (实际上单GPU网络与双GPU网络在最后的卷积层有着相同数量的核。这是因为大多数网络的参数在第一个全连接层,这需要上一个卷积层作为输入。所以,为了使两个网络有数目大致相同的参数,我们不把最后一个卷积层大小减半(也不把它后面跟随的全连接层减半)。因此,这种比较关系更偏向有利于单GPU网络,因为它比双GPU网络的“一半大小”要大)。

3.3 局部响应归一化

ReLU具有所希望的特性,它们不需要输入归一化来防止它们达到饱和。如果至少有一些训练样例对ReLU产生了正输入,学习就将发生在那个神经元。可是,我们仍然发现下列局部归一化方案有助于一般化。用 表示点 处通过应用核 计算出的神经元激活度,然后应用ReLU非线性,响应归一化活性

由下式给出

其中求和覆盖了n个“相邻的”位于相同空间位置的核映射,N是该层中的核总数。核映射的顺序当然是任意的,且在训练开始前就确定。受到在真实神经元中发现的类型启发,这种响应归一化实现了一种侧向抑制,在使用不同核计算神经元输出的过程中创造对大激活度的竞争。常数k,n,alpha;和beta;是超参数,它们的值要用验证集来确定;我们使用 。我们在某些层应用ReLU归一化后再应用这种归一化(见3.5节)。

该方案与Jarrett等人的局部对比度归一化方案具有一些相似之处[11],但我们的方案更正确的命名为“亮度归一化”,因为我们不减去平均活跃度。响应归一化将我们的top-1与top-5误差率分别减少了1.4%与1.2%。我们也验证了该方案在CIFAR-10数据集上的有效性:四层CNN不带归一化时的测试误差率是13%,带归一化时是11%(由于版面有限我们不能详细描述该网络,但这里提供的代码和参数文件对其有精确详细的说明: http://code.google.com/p/cuda-convnet/ )。

3.4 重叠汇合

CNN里的汇合层对同一卷积核map内邻近的神经元组的输出值进行总结。传统方法里被汇合层单元处理后的邻近神经元是不重叠的(比如[17,11,4])。汇合层,具体来说,可以表示为一个网格里相互间隔s个像素的一个个汇合单元,每一个单元处理邻近的以该单元为中心,大小为z times; z的神经元组。如果我们设置s = z,就得到传统的CNN。如果s lt; z,就得到我们模型使用的重叠汇合。我们的模型设置s = 2, z = 3.如此设置使得我们模型的Top1错误率及Top5错误率相比没有使用重叠汇合的模型(设置s=2, z=3)低了0.4%和0.3%,非重叠汇合模型得出的结果的维度和我们模型的一样。我们还在训练过程中发现使用重叠汇合的模型较不容易产生过拟合问题。

3.5 总体结构

现在,我们已经准备好描述CNN的总体结构。如图2所示,该网络包括八个带权层;前五层是卷积层,剩下三层是全连接层。最后一个全连接层的输出被送到一个1000-way的softmax层,其产生一个覆盖1000类标签的分布。我们的网络使得多分类的Logistic回归目标最大化,这相当于最大化了预测分布下训练样本中正确标签的对数概率平均值。

图2:CNN体系结构示意图,明确显示了两个GPU之间的职责划分。一个GPU运行图中顶部的层次部分,而另一个GPU运行图中底部的层次部分。GPU之间仅在某些层互相通信。该网络的输入是150,528维的,且该网络剩下各层的神经元数分别为253,440–186,624–64,896–64,896–43,264–4096–4096–1000。

第二、第四和第五个卷积层的核只连接到前一个卷积层也位于同一GPU中的那些核映射上(见图2)。第三个卷积层的核被连接到第二个卷积层中的所有核映射上。全连接层中的神经元被连接到前一层中所有的神经元上。响应归一化层跟在第一、第二个卷积层后面。3.4节中描述的那种最大Pooling层,跟在响应归一化层以及第五个卷积层之后。ReLU非线性应用于每个卷积层及全连接层的输出。第一个卷积层利用96个大小为11times;11times;3、步长为4个像素(这是同一核映射中邻近神经元的感受野中心之间的距离)的核,来对大小为224times;224times;3的输入图像进行滤波。第二个卷积层需要将第一个卷积层的(响应归一化及池化的)输出作为自己的输入,且利用256个大小为5times;5times;48的核对其进行滤波。第三、第四和第五个卷积层彼此相连,没有任何介于中间的pooling层与归一化层。第

全文共14638字,剩余内容已隐藏,支付完成后下载完整资料


资料编号:[14123],资料为PDF文档或Word文档,PDF文档可免费转换为Word

原文和译文剩余内容已隐藏,您需要先支付 30元 才能查看原文和译文全部内容!立即支付

以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。