【论文翻译】Image Net Classification with Deep Convolutional Neural Networks

1.Introduction

       目前的对象识别方法是机器学习方法的必要用途。为了提高性能,我们可以收集更大的数据集,学习更强大的模型,并使用更好的技术来防止过度配置。直到最近,标记图像的数据集相对较小 - 大约数万个图像(例如,NORB [16],Caltech-101/256 [8,9]和CIFAR-10/100 [12])。使用此大小的数据集可以很好地解决简单的识别任务,特别是如果它们使用标签保留转换进行扩充。例如,MNIST数字识别任务(<0.3%)的当前错误率接近人类表现[4]。但是在实际设置中的对象表现出相当大的可变性,因此要学会识别它们,有必要使用更大的训练集。事实上,小图像数据集的缺点已经被广泛认可(例如,Pintoetal。[21]),但最后可能会成为具有数百万图像的标记数据集。新的更大的数据集包括LabelMe [23]和ImageNet [6],后者由数十万个完全分割的图像组成,ImageNet [6]包含超过22,000个标记的高分辨率图像,超过22,000个类别。

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

       CNNs的Despitetheattractivequalities,以及自由体系结构的高效率,它们在大规模应用于高分辨率图像方面仍然过于昂贵。幸运的是,当前的GPU与高度优化的2D卷积实现相结合,足以促进有趣的大型CNN的训练,而最近的数据集如ImageNet包含足够的标记示例来训练此类模型而不会出现严重的过度设置。本文的具体贡献如下:我们迄今为止在ILSVRC-2010和ILSVRC-2012竞赛中使用的ImageNet子集中训练了最大的卷积神经网络之一[2]并取得了迄今为止报道的最佳结果。这些数据集。我们编写了一个高度优化的2D卷积GPU实现以及训练卷积神经网络中固有的所有其他操作,我们公开提供这些操作1。我们的网络包含许多新的和不寻常的功能,这些功能可以改善其性能并缩短其培训时间,并在第3节中进行了详细介绍。尽管有120万个标记的训练样例,但是我们使用了几种有效的技术来防止过度训练,这些都在第4节中描述。​​我们的最终网络包含五个卷积和三个完全连接的层,这个深度似乎很重要:我们发现删除任何卷积层(其中每个都包含1%的模型参数)导致性能较差。 Intheend,网络的主要限制主要是由当前的GPU以及我们愿意容忍的训练时间的数量。我们的网络需要五天到六天才能在两台GTX 580 3GB GPU上进行训练。我们所有的实验都表明,只需等待更快的GPU和更大的数据集可用,我们的结果就可以得到改善。

2.TheDataset

ImageNetisadatasetofover15million标记的高分辨率图像,大约22,000个类别。 这些图像是从网上收集的,并由人类贴标机使用亚马逊的Mechanical Turk众包工具进行标记。 从2010年开始,作为Pascal视觉对象挑战赛的一部分,举办了名为ImageNet大规模视觉识别挑战赛(ILSVRC)的年度比赛。 ILSVRC使用ImageNet的一个子集,在1000个类别中分别拥有大约1000个图像。 总共有大约120万个训练图像,50,000个验证图像和150,000个测试图像。

ILSVRC-2010是唯一可以获得测试集标签的ILSVRC版本,因此这是我们执行大部分实验的版本。 由于我们也在ILSVRC-2012竞赛中输入了我们的模型,在第6节中我们也报告了这个版本的数据集的结果,因为它们的测试标准是不可用的。 OnImageNet,itiscustomarytoreporttwoerrorrates:top-1和top-5,其中前5个错误率是测试图像的一部分,正确的标签不属于模型认为最可能的五个标签。

ImageNet由可变分辨率图像组成,而我们的系统需要恒定的输入维度。 因此,我们将图像下采样到256×256的固定分辨率。给定矩形图像,我们首先对图像进行重新缩放,使得较短边长度为256,然后从出现的图像中裁剪出中心256×256点。 Wedidnotpre以任何其他方式处理图像,除了从每个像素减去训练集上的平均活动。 因此,我们在像素的(居中)原始RGB值上训练我们的网络。

3.TheArchitecture

我们网络的架构总结在图2中。它包含八个学习层 - 五个卷积和三个完全连接。 下面,我们将介绍我们网络架构的一些新颖或不寻常的功能。 第3.1-3.4节根据我们对其重要性的估计进行排序,其中最重要的是第3.1-3.4节。

3.1 ReLUNonlinearity

将神经元输出f建模为其输入x的函数的标准方法是f(x)= tanh(x)或f(x)=(1 + e-x)-1。 就具有梯度下降的训练时间而言,这些饱和非线性比非饱和非线性f(x)= max(0,x)慢得多。 继Nair和Hinton [20]之后,我们将具有这种非线性的神经元称为Recti fi ed Linear Units(ReLUs)。 具有ReLU的深度卷积神经网络比具有tanh单位的等效物快几倍。 图1展示了这一点,图1显示了特定四层卷积网络在CIFAR-10数据集上达到25%训练误差所需的迭代次数。 这个图表显示,如果我们使用传统的饱和神经元模型,我们就不可能用这种神奇的基因网络进行实验。

我们不首先考虑CNN中传统神经元模型的替代方案。 例如,Jarrett etal。[11]声称,线性度f(x)= | tanh(x)| 特别适用于对比度归一化类型,然后是Caltech-101数据集上的局部平均汇集。 但是,在此数据集上,主要关注的是防止过度配置,因此他们观察到的效果与我们在使用RELU时报告的训练集的加速能力不同。 快速学习会影响大型数据集训练的大型模型的性能。

图1:具有ReLUs(实线)的四层卷积神经网络比具有tanh神经元的等效网络(虚线)更快地达到25%的训练速率。 每个网络的学习率必须尽可能快地依赖于学习。 没有采用任何形式的正规化。 这里展示的效果的幅度随网络架构而变化,但是具有ReLU的网络在具有饱和神经元的情况下几乎总是具有几个等效点。

3.2 TrainingonMultipleGPUs

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

由此产生的结构有点类似于Cires¸an等人[5]所采用的“柱状”CNN的结构,除了所有的列都不是独立的(见图2)。 与在一个GPU上训练的每个卷积层中具有一半内核的网相比,这分别减少了前1和前5的错误率1.7%和1.2%。 与双GPU 网络相比,双GPU网络训练时间略短。

3.3 LocalResponseNormalization

ReLU具有理想的属性,它们不需要输入规范化以防止它们被饱和。 如果至少一些训练样例对ReLU产生正输入,则该神经元将进行学习。 但是,我们仍然发现以下本地规范化方案有助于推广。 通过aix,y表示通过在位置(x,y)处应用内核i然后应用ReLU非线性计算的神经元的活动,响应标准化活动bix,y由表达式给出

其中总和在相同空间位置的n个“相邻”内核映射上运行,并且N是层中内核的总数。 内核映射的顺序是任意的,并且在训练开始之前确定。 这种反应归一化实现了一种横向抑制形式,其受到真实神经元中发现的类型的启发,在使用不同内核计算的神经元输出之间产生对大活动的竞争。 常数k,n,α和β是超参数,其值使用验证集确定; 我们使用k = 2,n = 5,α= 10-4,β= 0.75。 在某些层中应用ReLU非线性后,我们应用了这种归一化(参见第3.5节)。

该方案与Jarrettetal的局部对比度归一化方案有一些相似之处[11],但我们的方法更准确地称为“亮度归一化”,因为我们不减去平均活动。 响应标准化将我们的前1和前5错误率分别降低了1.4%和1.2%。 我们还验证了该方案在CIFAR-10数据集上的有效性:afour-layer CNN在没有标准化的情况下实现了13%的测试错误率,在标准化时实现了11%3。

3.4 OverlappingPooling

在CNN中汇集层总结了相同内核映射中相邻神经元组的输出。 传统上,由相邻合并单元汇总的邻域不重叠(例如,[17,11,4])。 更确切地说,池化层可以被认为是由间隔s个像素的合并单元的网格组成,每个合并单元总结了以合并单元的位置为中心的大小为z×z的邻域。 如果我们设置s = z,我们获得CNN中常用的传统本地池。 如果我们设置s <z,我们获得重叠池。 这是我们在整个网络中使用的,s = 2和z = 3.与非重叠方案s =相比,该方案分别将top-1和top-5错误率分别降低0.4%和0.3% 2,z = 2,产生等效维数的输出。 我们通常在训练期间观察到具有重叠池的模型发现它稍微更难以超过。

3.5 OverallArchitecture

现在我们准备描述CNN的整体架构。 如图2所示,网包含八层重量; 第一个五个是卷积的,其余三个是完全连接的。 最后连接的层的输出被馈送到1000路softmax,其产生超过1000个类标签的分布。 我们的网络最大化多项逻辑回归目标,这相当于最大化预测分布下正确标签的对数概率的训练案例的平均值。第二个,第四个和第五个卷积层的内核仅连接到位于同一GPU上的前一层中的那些内核映射(参见图2)。 第三卷积层的内核连接到第二层中的所有内核映射。 完全连接层中的神经元连接到前一层中的所有神经元。 响应标准化层遵循第一和第二卷积层。 第3.4节中描述的最大池化层遵循响应归一化层以及第五个卷积层。 ReLU非线性应用于每个卷积和完全连接层的输出。

第一个卷积层过滤224×224×3输入图像,其中96个内核大小为11×11×3,步长为4个像素(这是内核图中相邻神经元的接收场中心之间的距离)。 第二个卷积层将第一个卷积层的(响应归一化和合并)输出作为输入,并用256个大小为5×5×48的内核进行过滤。 第三,第四和第五个卷积层连接到另一个连接池或标准化层。 第三卷积层具有384个大小为3×3×256的内核,其连接到第二卷积层的(归一化的,合并的)输出。 第四个卷积层有384个大小为3×3×192的内核,第五个卷积层有256个内核,大小为3×3×192。 完全连接的层各有4096个神经元。

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

4 ReducingOverfitting

我们的神经网络架构有6000万个参数。 尽管ILSVRC的1000个类别使得每个训练示例对从图像到标签的映射施加了10位约束,但是这结果证明在没有相当多的过度配置的情况下学习如此多的参数是不充分的。 下面,我们将描述我们打击过滤的两种主要方式。

4.1 DataAugmentation

减少图像数据过度配置的最简单和最常用的方法是使用标签保留变换(例如,[25,4,5])人工放大数据集。 我们采用两种不同形式的数据增强,这两种形式都允许以非常小的计算从原始图像生成变换图像,因此变换后的图像不需要存储在磁盘上。 在我们的实现中,转换的图像是在CPU上的Python代码中生成的,而GPU则是在前面的图像中生成的。 因此,这些数据增强方案实际上在计算上是免费的。第一种形式的数据增强包括生成图像转换和水平反射。 我们这样做是通过从256×256图像中提取随机的224×224补丁(以及它们的角度),并且通过提取的补丁来进行训练4。 尽管由此产生的训练样例当然是高度相互依赖的,但这增加了2048倍的训练集。 如果没有这个计划,我们的网络会受到大量影响,这将迫使我们使用更小的网络。 在测试时,网络通过提取五个224×224补丁(四个角补丁和中心补丁)以及它们的水平反射(因此总共十个补丁)进行预测,并对网络的softmax层进行的预测求平均值 十个补丁。第二种形式的数据增强包括改变训练图像中RGB通道的强度。 具体而言,我们在整个ImageNettrainingset中对RGB像素值集执行PCA。 对于每个训练图像,我们添加多个找到的主成分,其中幅度与对应的特征值相对应,从具有平均零和标准偏差0.1的高斯中随机变换。 因此,对于每个RGB图像像素Ixy = [IR xy,IG xy,IB xy] T,我们添加以下数量:

其中,pi和λi分别是RGB像素值的3×3协方差矩阵的第i个特征向量和特征值,αi是上述随机变量。 对于特定训练图像的所有像素,每个αi仅被绘制一次,直到该图像再次被用于训练,此时它被重新绘制。 该方案近似地捕获了自然图像的一个重要特性,即,该可视性是在照明的强度和颜色的变化中变化的。 该方案将前1个错误率降低了1%以上。

4.2 Dropout

结合许多不同模型的预测是减少测试误差的一种非常成功的方法[1,3],但对于已经需要几天训练的大型神经网络而言似乎太昂贵了。然而,有一个非常有效的模型组合版本,在训练期间仅花费大约两倍。最近引入的技术称为“丢失”[10],包括将每个隐藏神经元的输出设置为零,概率为0.5。以这种方式“退出”的神经元对正向传递没有贡献并且不参与反向传播。因此,每次提交输入时,神经网络都会对不同的体系结构产生影响,但所有研究都会产生分歧。由于神经元不能依赖于特定的其他神经元的存在,这种技术可以减少神经元的复杂适应性。因此,它被迫学习更有力的特征,这些特征与其他神经元的许多不同随机子集一起使用是有用的。在测试时,我们使用所有神经元但是将它们的输出乘以0.5,这是采用由指数多个丢失网络产生的预测分布的几何平均值的合理近似值。我们在图2的前两个完全连接的层中使用了压降。 没有辍学,我们的网络显示出大量的过度配置。 Dropout大约使收敛所需的迭代次数加倍。

猜你喜欢

转载自blog.csdn.net/qq_38284951/article/details/82712375
今日推荐