用深度卷积神经网络对ImageNet进行分类外文翻译资料

 2022-06-01 22:02:07

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


用深度卷积神经网络对ImageNet进行分类

摘要

我们训练了一个庞大的深层卷积神经网络,将ImageNet LSVRC-2010比赛中的120万张高分辨率图像分为1000个不同的类别。在测试数据上,我们分别实现了37.5%和17.0%的前1和前5的错误率,这比以前的先进水平要好得多。这个神经网络由6000万个参数和650,000个神经元的神经网络由五个卷积层组成,其中一些连接最大汇聚层,还有最后用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],其中包含超过15,000万个超过22,000个类别的高分辨率图像。

要从数百万图像中了解数千个对象,我们需要一个具有大量学习能力的模型。 然而,目标识别任务的巨大复杂性意味着即使是像ImageNet那样大的数据集也不能指定这个问题,所以我们的模型也应该有很多先验知识来补偿我们没有的所有数据。 卷积神经网络(CNN)构成了这样一类模型[16,11,13,18,15,22,26]。 他们的能力可以通过改变他们的深度和广度来控制,并且他们也对图像的性质(即统计学的平稳性和像素依赖性的局部性)做出强而且大多数正确的假设。 因此,与具有相同大小的层的标准前馈神经网络相比,CNN具有更少的连接点和参数,因此它们更容易训练,而理论上最好的性能可能仅稍微差一点。

尽管CNN具有吸引人的特质,并且尽管其局部结构的效率相对较高,但它们大规模应用于高分辨率图像的成本仍然非常昂贵。幸运的是,当前的GPU与高度优化的二维卷积神经网络实现的配合使用,足以促进大型CNN的训练,最近的数据集(如ImageNet)包含足够多的标记示例来训练此类模型,而不会出现严重的过度拟合。

本文的具体贡献如下:我们在ILSVRC-2010和ILSVRC-2012比赛中使用的ImageNet子集上训练了迄今为止最大的卷积神经网络之一[2],取得了迄今为止的最好结果。我们编写了一个高度优化的2D卷积神经网络的GPU实现和训练卷积神经网络中固有的所有其他操作,我们会公开发布这些内容。我们的网络包含许多新的和不同寻常的功能,这些功能可以提高性能并缩短训练时间,详见第3节。即使有120万个标记的训练样例,我们的网络规模也会有过度拟合的问题,因此我们使用了几个有效的技术来防止过拟合,这些技术会在第4节中描述。我们的最终网络包含五个卷积层和三个完全连接的层,这个深度似乎很重要:我们发现去除任何卷积层(每个卷积层不超过模型总参数的1%)将导致性能较差。

最后,网络的规模主要受限于当前GPU上可用的内存量以及我们愿意接受的训练时间。 我们的网络需要花费五到六天的时间在两台GTX 580 3GB GPU上训练。 我们所有的实验都表明,通过等待更快的GPU和更大的数据集变得可用,我们的结果可以得到改善。

2.数据集

ImageNet是一个包含超过1500万标记的高分辨率图像的数据集,这些数据集大致属于22000种。图片是从网上收集的,通过亚马逊的Mechanical Turk众包工具由人类标记员标记分类的。从2010年开始,ImageNet大规模视觉识别挑战赛(ILSVRC)作为Pascal挑战的一部分每年都会举办,ILSVRC使用ImageNet上的1000个类别的子集来竞赛,每个类别包含1000张图像。总共有120万个训练图,50000个校验图和150000个测试图。

ILSVRC-2010是ILSVRC上唯一的测试集标记可获得的版本,所以这是惟一一个我们大部分实验都是在上面做的数据集。由于我们使用模型参加了2012年的比赛,所以我们也会在第六节报告在这个测试标记无法获得的数据集上实验的结果。在ImageNet上,通常报告两种错误率:top-1和top-5,top-5错误率是得出的实物类型标记结果不在模型中的最有可能的5个结果当中的测试数据所占的比例。

ImageNet由可变分辨率的图像组成,而我们的系统需要恒定的输入维度。 因此,我们将图像下采样到256 * 256的固定分辨率。给定矩形图像,我们首先重新缩放图像,使得短边长度为256,然后从结果中裁剪出中心256 * 256的补丁 图片。 除了从每个像素中减去训练集上的平均像素值之外,我们没有以任何其他方式预处理图像。 所以我们在像素的(中心)原始RGB值上训练了我们的网络。

3.架构

图2概括了我们网络的体系结构。它包含八个学习层 - 五个卷积和三个完全连接。 下面,我们描述一些我们网络架构的新颖或不寻常的特征。 3.1-3.4节按照我们对它们重要性的估计进行排序,其中最重要的是第一个。

3.1 ReLU 非线性

标准的建模神经元输入映射到输出的函数的是或者,依据用梯度下降训练的时间,这种饱和的非线性函数比不饱和的非线性函数要慢得多。根据Nair和Hinton[20],我们将带有这种非线性的神经元称作修正线性单元(ReLUs)。带有ReLUs的深度卷积神经网络比用tanh单元的神经网络的训练速度快几倍。图1表明了一个特定的4层卷积神经网络在CIFAR-10上到达25%训练误差率所需要的迭代次数。这张图表明如果我们用传统的饱和神经元模型,我们不能用这么大的卷积神经网络来做这个实验。

图1:一个4层的带有ReLU的卷积神经网络在CIFAR-10上面训练到达25%训练集误差率的速度是同等的带有tanh神经元的6倍。每个神经网络的训练速度都是独立选择让训练尽量的快。没有应用任何的正则化。这里展示的效应的大小随网络架构而变化,但具有ReLU的网络一直比饱和神经元的学习速度快几倍。

我们不是第一个选择替换传统的卷积神经网络中的神经元模型。例如,Jarrett

et al. [11]宣称非线性函数对于在Caltech-101数据集上进行局部平均池化之前的对比度归一化类型特别适合。但是,在这个数据集中,主要关心的是防止过度拟合,所以他们观察到的效果不同于我们在使用ReLU时报告的训练集的加速能力的效果。加快在大型数据集上训练的大型模型的学习对性能有很大的影响。

3.2在多个GPU上进行训练

单个GTX 580 GPU只有3GB内存,这限制了可以在其上训练的网络的最大尺寸。事实证明,120万个训练样例足以训练那些尺寸太大而不适合一个GPU的网络。因此,我们将网络分布在两个GPU上。 目前的GPU特别适合于跨GPU并行化,因为它们能够直接读写对方的内存,而无需通过主机内存。 我们采用的并行化方案基本上将每个GPU上的一半卷积核(或神经元)放在一起,另外还有一个技巧:GPU仅在某些层中进行通信。这意味着,例如,第3层的卷积核从第2层中的所有卷积核映射中获取输入。然而,第4层中的卷积核仅从位于同一GPU上的第3层中的那些卷积核映射接收输入。 选择连通性模式是交叉验证的一个问题,但这使我们能够精确调整通信量,直到它达到计算量的可接受部分。

由此产生的架构有点类似于Cirerasanetal的“柱状”CNN。 [5],除了我们的列不是独立的(见图2)。 与一个GPU上训练的每个卷积层卷积核数量减少一半的网络相比,这个方案分别将我们的前1和前5的错误率分别降低了1.7%和1.2%。 双GPU网络的培训时间比单GPU网络少。

图2:我们的CNN架构的一个例子,明确地展示了两个GPU之间责任的划定。 一个GPU运行图形顶部的图层部分,而另一个运行图层底部的图层部分。 GPU仅在特定层进行通信 网络的输入是150,528维,网络剩余层中的神经元数由253,440 186,624-64,896-64,896-43,264-4096-4096-1000给出。

3.3局部响应归一化

ReLU具有理想的属性,它们不需要输入规范化来防止它们饱和。如果至少有一些训练实例为ReLU产生了积极的输入,则将在该神经元中进行学习。但是,我们仍然发现以下的地方标准化方案有助于泛化。用 表示在点处用第i个卷积核计算之后用ReLU计算的神经元。对应的归一化响应由以下公式给出:

总和在相同空间位置上的n个“相邻”核上运行,并且N是该层中的卷积核的总数。卷积核映射的排序当然是任意的,并且在训练开始之前确定。这种响应归一化实现了一种由真实神经元中发现的类型所激发的横向抑制形式,为使用不同卷积核计算的神经元输出之间的大激活值产生竞争。常量k,n,,是超参数,他们的值用一个校验数据集决定。我们用,以及=0.75。我们在特定的层用ReLU之后又用了归一化。(在第3.5节中会看到)

该方案与Jarrett等人的局部对比归一化方案有某些相似之处。[11],但我们的将被更准确地称为“亮度归一化”,因为我们不减去平均激活值。 响应归一化将我们的top1和top5的错误率分别降低1.4%和1.2%。 我们还验证了该方案在CIFAR-10数据集上的有效性:四层CNN没有归一化时实现了13%的测试错误率,归一化后11%的测试错误率。

3.4重叠池化

CNN中的池化层汇总了相同卷积核映射中相邻神经元组的输出。传统上,由相邻池化单元池化的区域不会重叠(例如[17,11,4])。更确切地说,池化层可以被认为是由像素间距为s的池化单元组成,每个单元总结一个以池化单元的位置为中心的大小为z * z的邻域,如果我们设置s=z,就得到了在CNN中常用的传统的局部池化。如果我们设置slt;z,我们就得到重叠池。我们在整个网络中使用的设置是s=2,z=3。与采用不重叠池方案s=2,z=2时相比较,这个方案分别减少了top-1和top-5错误率0.4%和0.3%。我们在训练期间观察重叠池化模型发现它稍微更难过拟合。

3.5总体架构

现在我们准备好描述CNN的整体架构。如图2所示,网络包含八层; 前五个是卷积层,其余三个完全连接层。 最后完全连接层的输出被送到1000路softmax,产生1000个类别标签上的分布。我们的网络最大化多项逻辑回归目标,这相当于最大化在预测分布下正确标签的对数概率的训练案例的平均值。

第二,第四和第五卷积层的卷积核仅与上一层驻留在同一GPU上的卷积核映射相连(见图2)。 第三卷积层的卷积核连接到第二层中的所有卷积核映射。 完全连接层中的神经元连接到前一层中的所有神经元。 响应归一化层遵循第一和第二卷积层。 3.4节中所描述的最大池化层,遵循响应标归一层以及第五卷积层。 ReLU非线性适用于每个输出卷积和完全连接层。

第一个卷积层用大小为11 * 11 * 3的96个卷积核以4个像素的步幅过滤224 * 224 * 3输入图像(这是卷积核图中相邻神经元的接收域中心之间的距离),第二卷积层将第一卷积层的(响应归一化和池化)输出作为输入,并用256个大小为5times;5times;48的卷积核对其进行过滤。第三,第四和第五卷积层彼此连接而没有任何中间的池或归一化层。 第三卷积层具有连接到第二卷积层的(归一化的,池化的)输出的大小为3 * 3 * 256的384个内核。 第四卷积层具有384个大小为3 * 3 * 192的卷积核,并且第五卷积层具有大小为3 * 3 * 192的256个内核。完全连接的层每层具有4096个神经元。

减少过拟合

我们的神经网络架构有6千万个参数,尽管ILSVRC的1000个类别使得每个训练示例对从图像到标签的映射施加10比特的约束,事实证明,这在没有显着的过度拟合的情况下并不足以学习如此多的参数。下面,我们描述了2中主要方法来减少过拟合。

4.1数据增强

减少过度拟合图像数据的最简单和最常用的方法是使用标签保留变换(例如[25,4,5])人为地放大数据集。 我们采用两种不同形式的数据增强,这两种形式都允许通过很少的计算从原始图像生成变换图像,所以变换后的图像不需要存储在磁盘上。 在我们的实现中,转换后的图像是在CPU上的Python代码中生成的,而GPU正在训练上一批图像。 所以这些数据增强方案实际上是计算上免费的。

数据增强的第一种形式包括生成图像转换和水平反射。我们通过从256 * 256图像中提取随机的224 * 224色块(及其水平反射)并在这些提取的色块上训练我们的网络来实现这一点。 这使我们的训练集的规模增加了2048倍,尽管由此产生的训练样例当然是高度相互依赖的。 如果没有这个方案,我们的网络会遭受实质性的过度拟合,这将迫使我们使用更小的网络。 在测试时候,网络通过提取5个224 * 224的小块(四个角位置的小块和图像中心的小块)以及它们的水平反射(因此总共十个小块)来进行预测,并对网络的softmax层进行的预测平均在十个小块上。

第二种形式的数据增

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


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

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

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