论文翻译ImageNet Classification with Deep Convolutional Neural Networks

本文作者训练大型深度卷积神经网络对ILSVRC比赛中的高像素图片分类。介绍了数据集处理,阐述网络结构特点,如ReLU非线性、多GPU训练等,还提及降低过拟合的方法,包括数据增强和Dropout。最终在比赛中取得优异成绩,证明深度对结果很重要。

摘要

作者训练了一个大型深度神经网络用于将ILSVRC2010比赛中的1.2百万个高像素图片分类到1000类中。在测试数据中,作者top-1与top-5错误率分别达到了37.5%与17.0%,这是明显高于先前最有效果的。在神经网络中,包含了60百万个参数,650000个神经元,组成了5个卷积层,他们中的一些后面跟着maxpool,以及有着1000路softmax的全连接层。为了加速训练,作者使用非饱和神经元(non-saturating neurons)并应用了高性能图形处理器进行卷积操作。为了减少全连层中的过拟合,作者使用了最近兴起的正则化方法:dropout,这种方法被证明是非常有效的。作者也在ILSVRC2012比赛中提交了各种模型并且获得了top-5测试错误率15.3%的成绩,这相比第二名领先了26.2%。(一骑绝尘了属于是)

1.介绍

当前物体识别方法充分利用了机器学习方法。为了提升效果,可以整理更大的数据集,学习更强性能的模型,以及使用更高的方法来组织过拟合。直到最近,数据集中标记过的图片数量都相对较少(在万级上)简单的识别任务可以被这种体量的数据集处理的很好,尤其是当他们被保留标签并进行数据增广后。比如,当前MNIST数字识别任务做好的错误率小于0.3,接近人类识别极限。但是物体在真实场景中存在更多的变化性,所以为了学习识别他们,有必要使用更大的数据集。事实上,小体量图像数据集的缺点是被广泛认知的,但知道最近收集百万级图片数据才变成可能。这个新的更大的数据集包含了LabelMe,由十万张全分割图像组成,以及ImageNet,有15百万张标签的包含了22000种类的高分辨率图像。
为了从百万张图片中学习上千个物体,作者需要大学习容载能力的模型。然而物体识别任务的极大复杂性意味着这个问题即使是大如ImageNet这种数据集也很难指明,所以作者的模型应当同样需要许多先验知识来补偿作者缺失的数据。卷积神经网络组成了一些网络。他们的承载能力可以通过改变深度和宽度来控制,他们也会对图像性质作出强烈并且基本准确的假设(统计的稳定性以及像素依赖的局部性)因此,相比标准的相似大小的前馈神经网络,CNN有着更少的连接以及参数并因此更容易训练,同时他们理论上最好的表现知识稍微差一点。
尽管CNN的素质吸引人、尽管它们的结构相对高效,但是对于应用在大尺寸高分辨率图片上依旧是非常昂贵的。幸运的是,当前的图像处理器,拥有者对2D卷积的高度优化应用,强有力地推进了大型CNNs的训练,并且最近的数据集比如ImageNet包含了足够多的标记样本来训练模型而且不会产生严重过拟合。
这篇paper的主要贡献如下:作者训练了最大的卷积神经网络用于ImageNet子集,在ILSVRC2010与2012比赛中,并且获得了远超在此数据集上所报告的最好结果。作者写了一个高度优化的图形处理器应用与2D卷积,并且所有其他的操作内联在卷积神经网络训练之中,这个(CUDA)作者公开出来了。作者的网络包含数个新的并且不同寻常的特征,这使得表现提升并且减少了训练时间,详细介绍在第三节。即使是有着1.2百万标记的训练样本,网络的尺寸依旧使得过拟合是明显的问题,所以作者使用了几种有效地方法来阻止过拟合,后面在第四节讲到。作者最终的网络包含五个卷积层以及三个全连接层,并且她们的深度看起来是重要的:作者发现移除了任何一层(即使是那些占据模型参数不到1%的层)都会导致效果下降。
最终网络的尺寸由于当前图像处理器的可用内存数量以及作者可以接受的训练时间所限制。作者的网络在GTX580 3G GPU上面训练花费了五到六天。作者的经验告诉他们可以简单地通过更快的GPU以及更大的数据集来提升效果。

2.数据集

ImageNet数据集有着超过15百万个经过标记的属于大约22000种类的高像素图片。图片由网络采集并且使用了亚马逊标注工具进行人工标注。从2010年开始,作为PascalVOC(PascalVisualObjectChallenge)的一部分,一年一度的ILSVRC比赛被举行。ILSVRC使用了ImageNet的子集,大概有1000种类,每种1000张图片。总之,这大概有1.2百万训练图片,50000评估图片以及150000测试图片。
ILSVRC-2010是仅有的一个可以获得测试集的ILSVRC版本,所以这也是作者进行最多实验的版本。尽管作者也向ILSVRC-2012比赛提交了自己的模型,在第六节也讲述了作者取得的结果,当然,测试集是不可得到的。在ImageNet中,通常报告两种错误率:top-1和top-5,top-5错误率是指正确标记不在模型提出的五个最有可能的标签中的测试图片的小数。
ImageNet由各种分辨率图像组成,然而作者的系统要求一个固定的出入维度。因此,作者下采样图片到256256的固定大小。给定了长方形的图片,作者首先缩放图片的短边到256,之后剪裁出256256大小的图片块。作者除了减去训练集每个像素的均值,没有使用任何其他的前处理方法。所以作者训练网络使用了(归一化的)原始RGB像素值。

3.结构

在这里插入图片描述

作者网络的结构总结在图2中。它包含了八个可以学习的层:五个卷积层以及三个全连接层。下面作者描述了网络结构中新颖或者不寻常的特点。3.1-3.4节根据作者对他们重要性的估计进行排布,最重要的先讲。

3.1ReLU非线性(激活)

模型标准的神经输出方法f作为输入x的函数通常使用tanh或者sigmoid。在梯度下降的训练时间方面,这些饱和非线性相比于非饱和非线性函数f(x)=max(0,x)要慢许多。根据Nair以及Hinton的理论,作者使用这种非线性神经元作为非线性修正单元ReLUs(Rectified Linear Units)使用ReLU的深度卷积网络训练速度相比使用tanh单元的快上数倍。这在表1中被证实,展示了4层卷积网络在CIFAR-10数据集上需要达到25%的训练错误率的迭代次数。这张图展示了如果使用传统饱和网络模型将不能够对这么大型的神经网络进行实验。
在这里插入图片描述

作者不是第一个考虑CNNs中传统神经模块平替方法的,比如Jarrett等人宣称非线性函数f(x) = |ranh(x)|在数据集Caltech-101中相比非线性使用了local average pooling要好得多。然而,在这个数据集中主要考虑的是阻止过拟合,所以他们观测到的效果与我们报告中使用ReLUs来适配训练的加速能力是不同的。更快的学习对于训练在大型数据上面的大模型是有好的影响的。

3.2多GPU训练

单个GTX580只有3GB的显存,这限制了网络可以在其上被训练的最大尺寸。1.2百万训练样本对于训练模型是足够的,但模型对于GPU来讲被证明是太大的。因此作者分割网络到两个GPU中。当前GPU是非常适合GPU并行交火的,正如他们可以直接读取并且写入到另一个的内存中,而不需要经过主机内存。作者采用的并行策略实际上是将卷积核(或者说神经元)每个GPU中各放一半,还有一个额外的技巧:GPU通信只在特定的层。这意味着,比如3层的卷积核将2层卷积映射作为输入。然而,4层的卷积核只将那些在同一个GPU上面的3层的核映射作为输入。选择连接方式对于交叉验证是一个问题,但是那使得作者可以精确地调节通信量直到那是一个可以被接受的计算量。
最终导致结构有些与 Cire ̧san等人使用的柱状CNN结构详细,只是作者的列不是独立的(见图2)这种方法相比于每层卷积只有一半卷积核只在一张GPU上训练的网络分别降低了top-1与top-5的1.7%与1.2%的错误率。双GPU网络相比单GPU网络训练速度稍快。(备注:单GPU网络实际上与双GPU网络在最后卷积层有着相同的卷积数量。这是由于大多数网络的参数在第一层全连接层中,它将最后一层卷积当做输入,所以为了使得两个网络有着大致相同的参数数量,作者没有将最后一层卷积尺寸砍半(后面跟的全卷积层也没有)因此这个对比测试更加偏向于单GPU网络,因为它比双GPU网络的一半要大)

3.3局部响应归一化

ReLUs有着不需要正则化输入来防止饱和的优点。如果至少有一些正数样本提供给ReLU作为输入,那个神经元就会进行学习。然而作者仍然发现使用局部归一化策略有助于正则化。将a作为被卷积核i在位置x,y计算的神经元激活并使用ReLU非线性,响应激活b用下式表示:
在这里插入图片描述

n个相邻的核映射在同样空间位置映射的和,N是层中核的数量。核映射的目的在训练开始前当然是任意并且随意的。这种以侧向抑制方式的响应正则化应用是受到真实神经元的启发,为使用不同的核计算的神经输出的大激活创立竞争。常量k,n,α,β是由评估集决定的超参数,作者使用k=2,n=5,α=10的-4次方,β=0.75。作者在特定层(见3.5节)采用ReLu非线性后采用了这个正则化。这种方法与Jarrett等人的局部对比正则化方法有些相像,但是作者的应当被正确的称为“亮度正则化”,因此作者不减去平均激活。响应归一化相比于s=2,z=2,产生相等维度输出的非重叠策略分别降低了作者top-1于top-5的0.4%与0.3%的错误率。作者通常在训练模型时发现模型使用了重叠池化后稍微难以过拟合。

3.5 总体架构

现在作者已经准备好描述作者CNN的整体架构了。正如图2中呈现的,网络由八个权重层组成;前五个是卷积剩下三个是全连接的。最后全连接层输出1000路softmax来产生1000类标签分布。作者的网络最大化多项式逻辑回归目标,这相当于最大化训练场景下预测分布正确标签的log可能性。
第二、四以及五卷积层的卷积核只与同属一个GPU上的前层卷积核映射相连接(见图2)。第三个卷积层的卷积核连接到第二层全部卷积核映射。全连接层神经元是全部连接到前层神经的。响应正则化层在第一层与第二层之后。3.4节中讲述的最大池化层跟着响应正则化层以及第五层卷积。ReLU非线性被用于每一个卷积以及全连接的输出。
在这里插入图片描述

第一个卷积层使用95个尺寸为11113,步长为4像素(这个距离是核映射中感受野中心到近邻之间的距离)的卷积核对输入为2242243的图片进行滤波。第二层卷积层将第一层卷积层输出作为输入并且使用256个5548大小的卷积核进行滤波。第三层、第四层、第五层彼此相连,中间没有任何池化或者正则化层插入。第三层卷积有384个大小为33256的卷积核连接到正则并池化的第二层卷积输出。第四卷积层有384个33192大小的卷积核,第五层卷积有256个尺寸为33192的卷积核。每个全连接层有4096个神经元。

4 降低过拟合

作者的网络结构有六千万个参数。尽管有着1000类别的ILSVRC使每个训练样本在图片到标签的映射上强加10bits限制,这证明不考虑过拟合去学习这么多参数是不充分的。下面,作者描述了两种对抗过拟合的主要方法。

4.1数据增强

对于图像数据最简单最常用的降低过拟合的方法就是使用 label-preserving保留标签的转换来人工扩大数据集。作者使用两种不同的数据增强方式,这两种方式都能够在少量计算的情况下从原始图片产生转换的图片,因此转换的图片不需要被存储在硬盘上。在作者的应用中,转换图片是在CPU上运行的python代码生成的,另一方面GPU在先前batch的图片上面进行训练。所以这些数据增强策略是高效且节省计算的。
第一种数据增强的方式由生成图片转换以及水平翻转组成的。作者通过在原始256256的原始图片中随机选取224224大小的图片块(以及他们的水平翻转)并且使用这些提取出的图片块训练网络。这增加了作者训练集2048倍,尽管训练数据结果是,当然,是高度同化的。没有这种方法,作者的网络就会遭受严重的过拟合,这将会逼迫作者使用更加小的网络。在测试时,网络通过提取5个224*224大小的图片块(四个角加上中心)以及他们的水平翻转(因此总计10个图片块)来作出预测,并且将网络在10个图片块上得到的softmax层输出预测取平均。
第二种数据增强方法是改变训练图片的RGB通道强度。特别的是,作者对整个ImageNet训练集的RGB像素值进行PCA主成分分析,乘上与响应特征大小相同的均值为0标准差为0.1的高斯分布值。因此对于每一个RGB图像像素,作者都加上了下面部分:
在这里插入图片描述

pi和λi分别是RGB像素值的3*3协方差矩阵的第i个特征向量与特征值,α是上述随机变量。每一个α对于特定训练图片中的全部像素只绘制一次,直到图片再次被用于训练,所有的点被重新绘制。这种策略大致获得了一个重要的自然图像属性,那就是改变光照的强度和颜色,物体的种类是不变的。这种数据增强策略降低了1%的top-1错误率。

4.2 Dropout

结合许多不同模型的预测是一种非常成功的降低测试错误的方法,但是这对于训练都要好几天的大型神经网络来讲太昂贵了。然而,这里有一个非常高效的模型结合版本,训练时相比以前大概消耗两倍。最近才引进的技术,名为“dropout”,有50%概率设置每个隐藏神经输出为0。神经被“dropped out”之后不贡献前向传播结果也不参与反向传播所以每次输入被表达,神经网络采样一个不同的结构。但是这些所有的权重共享权重。这种技术降低了神经元互相适应的复杂程度,因为一个神经元不能依赖其他特定神经元的存在。这就为什么致力于学习更多的鲁棒特征对于结合许多其它神经元的子集是有帮助的。在测试时,作者使用了0.5乘以所有神经元的输出,这对于指数级drop out网络输出预测分布的几何平均是一个合理的接近值。
作者在图2中前两层fc中使用dropout。没有dropout作者的网络展示了大量的过拟合。Droput 转换大概将需要迭代的数量扩大为两倍。

5.学习细节

作者使用batch size 128,动量0.9,权重衰减0.0005的随机梯度下降。作者发现对于模型的学习,权重衰减是十分重要的。另一方面,权重衰减在这并不仅仅是一个正则器。它降低了模型的训练错误。更新权重w的规则是:
在这里插入图片描述
i是迭代index,v是动量变量,ε是学习率。
作者使用均值为0标准差为0.01的高斯分布初始化每一层的权重。作者使用常量1初始化了第二、四、五、层卷积以及全连接隐藏层的bias偏置。通过向ReLU提供正向输入,这个初始化加速了学习的早期阶段。作者使用常量0初始化了剩余层的bias偏置。
作者为所有层使用相同的学习率并且在训练过程中手动调整。作者参考的启发式方法是伴随当前学习率,评估错误率停止提升时,学习率除以10。学习率初始化为0.01并且在训练结束之前降低三次。作者在1.2百万图片的训练集上面训练了大概90个循环(epochs),这在两个GTX580显卡上面花费了五到六天。

6.结果

作者在ILSVRC-2010上的结果总结在表1中。作者的网络分别达到了top-1和top5测试集错误率37.5%和17.0%。在ILSVRC-2010比赛中获得的最好效果是47.1%和28.2%,这种方法是在不同特征上面训练的六个系数编码模型预测的平均,之后最优效果变成45.7%以及25.7%,这个方法使用了在Fisher Vectors训练的两个分类器的平均,FVs从两种稠密采样特征的计算得来。
在这里插入图片描述

作者也曾投递自己的模型到ILSVRC-2012比赛中并且在表2中报告了取得的乘加。因为ILSVRC-2012测试集标签是不能公开取得的,作者不能报告所有训练模型的测试错误率。在段落的剩余部分,作者将评估以及测试错误率看做是等价的,因为在作者的实验中他们的差距没有超过0.1%(表2中可知)这篇论文中提到的CNN可以获得18.2%的top-5错误率。将五个近似的CNN预测取平均可以获得错误率16.4%。训练一个CNN网络,这个网络在最后池化层增加六个卷积层,来分类整个ImageNet Fall 2011版(15M图片,22K种类),之后在ILSVRC-2012上微调,最后获得错误率16.6%。将使用上述提到的五个CNN以及基于整个ImageNet Fall 2011版预训练的两个模型输出取均值,获得错误率15.3%。比赛第二名获得了错误率26.2%,使用的方法是将FVs上训练的分类器的输出取平均值,FVs是从不同类型的稠密采样特征中计算得来的。最后,作者也在有着10184类比以及8.9百万图片的ImageNet Fall2009版上面报告错误率。在这个数据集中,作者使用了传统的方法即一半图片用于训练,另一半测试。因此这并没有建立测试集,作者的划分必然与先前作者的划分不同,但这明显并不影响结果。作者的top-1和top-5错误率在数据集上面分别为67.4%以及40.9%,是由上述网络在池化层后面增加了六个卷积层获得的。在这个数据集上面获得的最优公开结果为78.1%以及60.9%
在这里插入图片描述

6.1 质量评估

图3展示了通过网络的两层连接数据学习到的卷积核。网络已经学习了各种频率以及方向性选择的卷积,以及彩色blobs(斑点?)。注意的是使用两个GPU进行特殊展示,一种在3.5节描述过的连接受限的结果。在GPU1上的核是大致颜色可知的,另一边在GPU2上的核是大致暗色不可知的。这种特殊化在每次运行时发生,并且独立于任何特定随机权重初始化(对GPU重新编号取模)。
在这里插入图片描述

在图4左边部分,作者通过计算八张测试图片上的top-5预测来评价网络学习的质量。注意到即使不是中心的物体,例如左上的螨虫,依然可以被网络识别。大多数top-5标签的出现都是有原因的。比如,只有其他类型的猫被认为是近似于豹子的标签。在一些情况下(grille, cherry)这确实对于图片意识焦点有一些模棱两可。
另一种探测网络视觉知识的方法是探究图片在最后4096维隐藏层感应的特征激活。如果两个图片产生的特征激活向量的欧式距离非常小,我们可以说高等级神经网络认为他们是相同的。图4展示了基于这种测量方法得到最相近的图片,五张来自测试集,六张来自训练集。值得注意的是在像素级别,恢复的训练图像在第一行与图像队列的L2是完全不接近的。比如,恢复的狗以及大象有着各种姿态。作者提供了更多测试图片结果在补充材料里。
使用欧氏距离计算两个4096维实值向量的相似性是不高效的,但是可以通过训练一个自动编码器来压缩这些向量到更短的二值编码。这将会产生一个更好的图片找回方法相比于对原始像素使用自动编码器,这没有利用起来图片标签并且因此有一个找回相似边缘图案的趋势,不管他们是不是语义上相似的。(自编码器倾向于提取低级细粒特征)

7.讨论

作者的结果展示了大型深度卷积神经网络在高挑战性数据集上使用纯监督学习能够获得打破记录的结果。值得注意的是如果一层卷积层被移除,作者的网络表现就会下降。比如,移除网络中任何一个中间层都会导致top-1表现下降大约2%。所以深度对于达到作者的结果是非常重要的。
为了简化实验,作者没有使用任何非监督预训练,即使作者知道那会有帮助,尤其是如果作者获得了足够计算力能够显著增加网络的尺寸而不获标记数据数量的对应增长。迄今为止,作者的结果提升正如作者使网络更大并且训练更长时间,但是作者仍然有很多量级来匹配人类视觉系统的下时间通路。最终,作者将会使用超大超深卷积网络在视频序列中,时间结构提供了非常有用的信息,静止图片则会丢失或者提取有限数据。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值