深度卷积神经网络的ImageNet分类外文翻译资料

 2022-12-18 15:48:24

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


深度卷积神经网络的ImageNet分类

摘要

我们训练了一个大型深度卷积神经网络来将ImageNet LSVRC-2010数据集中的120万张高清图片分到1000个不同的类别中。在测试数据中,我们将Top-1错误(分配的第一个类错误)和Top-5错误(分配的前五个类全错)分别降到了37.5%和17.0%,这比之前的技术水平要好得多。这个神经网络拥有6千万的参数和65万个神经元,共有五个卷积层,其中一些卷积层后面跟着最大池化层,还有利用softmax函数进行1000类分类的最后三个全连接层。为了让训练速度更快,我们使用不饱和【?non-saturating】神经元,并利用高效的GPU实现卷积操作。为了减少全连接层的过拟合,我们采用了一种最近研发出来的正则化方法——“DROPOUT”,它被证明十分有效。我们也在比赛中加入了这一模型的一个变体,第二名的26.2%相比,我们通过将TOP-5错误降到了15.3%而获胜。

1 引言

最近的物体识别方法都应用了很重要的机器学习方法,为了提高他们的表现,我们可以收集更大的数据集,学习训练更强大的模型,并用更好的技术来避免过拟合。直到最近,有标签的数据集都是相对较小的,一般只有万张的数量级(比如【16,8,9,12】)。单一的认知任务可以在这个数量级的数据集上得到很好地解决,特别是当其通过标签保存变形技术被放大的时候。比如,现在在MNIST数据集上最低的数字识别错误率已经接近了人类的认知水平(lt;0.3%)【4】。但是模型识别现实背景中物体的能力就表现得不太稳定了,所以为了训练识别这些物体提供大量的数据集是很有必要的。实际上,使用小数据集的缺陷已经被普遍认同了,但直到最近收集百万有标签图片的数据集才成为可能。这些新的大型数据集包括LabelMe【23】(包含大量被完全分割的图片),还有ImageNet【6】(由1500万张被标记的高清图片组成,覆盖了2.2万个类别)。

为了从百万张图片中学习到数千个物体,我们需要一个有强大学习能力的模型。然而,物体识别任务极高的复杂度意味着即使拥有ImageNet这么大的数据集,这个问题也很难被具体化。所以我们的模型也需要大量先验知识去补全所有缺失数据。卷积神经网络(CNNs)就是一种这样的模型[16, 11, 13, 18, 15, 22, 26]。它们的学习能力可以通过控制网络的深度和宽度来调整,它们也可以对图片的本质(高层属性)做出强大而且基本准确的假设(统计上的稳定性,以及像素依赖的局部性特征)。因此,与同样大小的标准的前馈神经网相比,CNNs有更少的连接、参数,所以更易于训练,而且CNNs的理论最佳表现仅比前馈神经网络稍差。

虽然CNNs质量很好,而且对于局部结构非常高效,但其应用代价对于大量的高清图片而言还是昂贵到可怕。幸运的是,最近,GPU可以被应用于高度优化的2D卷积的实现,它们足够强大,能够加速大型CNNs的训练过程。而且最近的数据集比如ImageNet包含了足量的有标签样本,可以用来训练这些模型,而没有太严重的过拟合。

本文的主要贡献包括:我们在ImageNet的2010和2012数据集集上训练了最大的CNNs之一,并且达到了迄今为止最好的结果。我们编写了一个高度优化的2D卷积的GPU实现,以及其他所有训练CNNs的固有操作,并将其公之于众。我们的网络包含一系列新的不同凡响的特征,这提高了它的表现性能,减少了它的训练时间,具体情况在第三章介绍。

即使我们拥有120万的标签样例,我们的网络的巨大体积也使得过拟合成了一个严重的问题,所以我们需要一系列技术去克服过拟合,这将在第四章中描述。

我们的网络最终包含5个卷积层和3个全连接层,这个深度也许是很重要的:我们发现去掉任意一个卷积层都会导致更差的表现,即使每个卷积层仅包含不到1%的模型参数。

最后,网络的大小主要被GPU中可获得的存储数量,以及可忍受训练时间所限制。

我们的网络需要在两台GTX 580 3GB GPUs训练五至六天。我们所有的实验都表明,只要等到更快的GPU和更大的数据集出现,其结果能够被进一步提高。

2 数据集

ImageNet是一个拥有超过1500万张带标签的高清图片的数据集,这些图片大约属于2.2万个类别。这些图片收集自网络并由亚马逊的Turk群智工具进行人工标记。从2010年开始,作为帕斯卡物体可视化挑战的一部分,一项被称为ILSVRC的比赛每年都会进行。

ILSVRC使用ImageNet的一个子集,这个子集包含大约1000个类别,每个类别大概包涵1000张图。总共大概有120万张训练图片,5万张验证图片和15万张测试图片。

2010年的ILSVRC数据集是唯一一个测试集标签可得的版本,所以我们用它进行我们的大部分实验。

因为我们也把我们的模型加入了2012年的ILSVRC比赛,所以我们在第六章也讨论了这个数据集上的实验结果,但其测试集标签不可得,在ImageNet上,通常检验两类错误率:TOP-1和TOP-5,TOP-5错误表示测试图片的标签不在模型所认为的 可能性最大的五个标签中。

ImageNet包含各种清晰度的图片,而我们的系统要求输入维度恒定,因此,我们对图片进行采样,获得固定大小的256X256的分辨率,对于每张长方形的图,我们将短边按比例调整为256,然后取中心区域的256X256像素。我们并未使用其他方法对图片进行预处理,除了把每个像素减去整个训练集的平均值【???except for subtracting the mean activity over the training set from each pixel.】所以我们的模型是在原始的RGB像素值上训练出来的。

3 模型体系结构

网络的体系结构如图2.它包含8个学习层——五个卷积层3个全连接层。接下来,我们讨论一些我们的网络中创新的,或者不常见的结构。3.1~3.4节按照我们心目中对它们重要性的评估进行排序,越重要越靠前。

3.1 ReLU非线性

对神经元输出f的标准建模方法是将输入x函数变换为f(x) = tanh(x)或f(x) = (1 e-x)-1

从梯度下降的训练时间而言,这种饱和【?saturating】的非线性比使用非饱和的非线性f(x) = max(0,x)要慢得多。根据Nair和Hinton说法【20】,我们让神经元使用这种非线性——修正线性单元(ReLUs)。使用ReLU的深度卷积神经网络比使用tanh的网络训练速度快几倍。

图一展示了一个特定的四层CNN在CIFAR-10数据集上达到25%训练错误所需要的迭代次数。

这张图显示,如果我们采用传统的饱和神经元,我们将不可能为这项工作训练如此庞大的神经网络。


我们并不是最早考虑替换传统CNN神经元模型的人。比如,J【11】等人宣称利用f (x) = |tanh(x)|非线性在Caltech-101数据集上做对比度归一化(Contrast Normalization,CN)和局部平均值池化表现得很好。

然而,关于这个数据集的主要问题是要防止过拟合,所以他们观察到的效果,与我们报告的使用ReLUs时对训练集的适应(fit)累积能力不同。更快的学习对于在大型数据集上训练大型模型的表现有重大影响。

3.2 多GPU并行训练

单个的GTX580GPU只有3G的存储空间,这会限制能够在其上训练的网络大小。充分训练网络需要120万张训练样本图,这对于一个GPU而言量太大了,所以我们将网络分布在两个GPU上。

现在的GPU非常适合做跨GPU并行运算,因为它们可以直接向彼此的存储中做读写操作,而无需通过宿主机存储。

我们采用的这种并行模式主要是将各一半的网络内核(或神经元)放在每个GPU上,然后再采用一个小技巧:将GPU通信限制在某些特定的层上。

这意味着,比如,第三层的内核从所有的第二层内核映射(kernel map)中获得输入,但是,第四层的内核只从和自己在同一个GPU上的第三层内核中获得输入。

选择一种连接模式对于交互验证是个问题,但这允许我们精确调整连接的数量,直到计算量落入一个可接受的范围内。

由此产生的结构会和所谓的“柱状(columnar)”CNN有些类似(由Ciresan等人【5】开发),只是我们的“柱子”不是独立的(见图2)。与用一个GPU训练每个卷积层只有一半的内核的网络相比,这种结构将我们的TOP-1错误和TOP-5错误分别降低了1.7%和1.2%。双GPU结构网络比单GPU网络所需的训练时间要稍微少一些。

3.3 局部反应归一化(Local Response Normalization)

ReLUs有一个很赞的属性,它们无需对输入数据进行归一化来避免其饱和【?】。如果至少有一些训练样例为ReLU产生了正输入,那么这个神经元就会进行学习。

然而,我们还是发现下面这种归一化的模式能够更好地泛化。

设由第i个内核计算(x, y)位置的ReLU非线性的活动为aix,y,反应归一化(response-normalized)活动bix,y如下公式所示:

其中,累加公式中的n表示同一空间【GPU?】上邻接于该位置的所有内核映射的数量,N表示这一层的所有内核数。内核映射的顺序当然是任意的,并且是在训练之前就定好了的。

这种反应归一化(response normalization)实现了一种模仿生物神经元的横向抑制【层间不通讯??】,让神经元在利用不同内核进行计算的大规模活动中产生竞争。常数k,n,alpha;和beta;是超系数,它们的值由验证集决定。我们取k = 2, n = 5, alpha;= 10-4, and beta; = 0.75.我们在特定层使用ReLU非线性之后应用这种归一化(见3.5)

这种模式与J【11】提出的局部对比度归一化有点类似,但我们的方法更准确的描述应该是亮度归一化,因为我们并不减去均值。

反应归一化将我们的TOP-1和TOP-5错误分别降低了1.4%和1.2%。我们还在CIFAR-10数据集上验证了该模式的效果:四层CNN不用归一化错误率为13%,用了之后降到了11%。

3.4 重叠池化

CNN中的池化层负责对同一内核映射中相邻的神经元组的输出求和【?summarize the outputs of neighboring groups of neurons in the same kernel map.】。一般地,被邻接的池化单元求和的邻居节点是没有重复的【17,11,4】。

为了更加精确,一个池化层可以看做由相隔s个像素占据的池化单元组成的网格所构成,每个单元负责对相邻的z*z范围的中心区域求和。若设s=z,我们就能够获得用于大多数CNN的传统的局部池化方法。若设slt;z,我们就得到了有重叠的池化。

这就是我们在自己的网络中使用的方法,s=2,z=3.与无重叠的s=z=2相比,这一模式在产生相同维度的输出时分别将TOP1和TOP5降低了0.4%和0.3%。

我们还观察到,采用有重叠的池化能稍稍让模型更难过拟合。

3.5 整体结构

现在我们可以描述我们的CNN的整体结构了。如图2,这个网络包含8个加权的层:前五个是卷积层,后三个是全连接层。

最后一个全连接层输出一个1000维的softmax来表达对于1000个类别的预测。

我们的网络采取取最大值的多标量罗吉斯回归,它与maximizing the average across training cases of the log-probability of the correct label under the prediction distribution【?】等价

第2、4、5个卷积层的内核只与前一层与自己同在一个GPU上的内核映射相连接。

第三层的内核与全部的第二层内核映射相连接。全连接层的神经元与上层神经元全都有连接。

反应归一化层跟在第二个卷积层后面。最大值池化层(如3.4所讨论的)跟在反应归一化层后面和第五个卷积层后面。ReLU非线性被应用在每个卷积层和全连接层

第一个卷积层的输入是224 times; 224 times; 3【注:3是RGB】的图像,然后用96个11 times; 11 times; 3的步长为4像素的内核去过滤(步长是相邻神经元感知区域中心之间的距离)。

第二个卷积层将第一个卷积层的输出作为输入(反应归一化并池化),然后用256个5 times; 5 times; 48的内核进行过滤。

第三、四、五层卷积层前后相连,之间没有池化层和归一化层。第三个卷积层有384个3 times; 3 times; 256的内核,连接着第二个卷积层的输出(归一化 池化)。第四个卷积层有384个3 times; 3 times; 192的内核,第五个卷积层有256个3 times; 3 times; 192的内核。每个全连接层各有4096个神经元。

图2:一个关于我们的CNN的结构的描述,明确地勾勒出两个GPU之间的对应关系。一个GPU运行某一个层画在这幅图上部的那部分的同时,另一个GPU会运行同一层画在这幅图下部的那部分。两个GPU只在特定的层通讯。

网络的输入是150,528维的,而除输入层外,余下五个卷积层和三个全

剩余内容已隐藏,支付完成后下载完整资料


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

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

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