AlexNet——使用深度卷积神经网络进行图像分类

摘要: 在ImageNet LSVRC-2010竞赛中,训练了一个大且深的卷积神经网络用来分类1.2M高分辨的图像成不同的1000类。测试集中,分别以37.5%和17.0%的错误率高居第一与第五,其远远的超出了原有的高水平表现。神经网络有60M个参数与650K个神经元,包含在5个卷积层,后跟最大池化层,与三个带有1K个通道softmax的全连接层。为了让训练更加迅速,使用非饱和神经元与效率很高的GPU实施卷积运算。为了防止在全连接层过拟合,使用最近提出,并证明十分有效的正则化方法“随机失活”。也使用该模型的变体参加ILSVRC-2012竞赛,达到了15.3%的测试错误率赢得前五名,相比之下,第二的错误率为26.2%。

一、介绍
  目前的图像识别方法实际上主要是使用机器学习方法。为了改善其表现,一般使用更大的数据,更强力的模型与更好的技术来防止过拟合。目前,已标记图像的数据集相对很小——有万张图像的水平(例如NORB【16】,Caltech-101/256【8,9】,以及CIFAR-10/100【12】)。简单的识别任务,使用这样尺寸的数据集可以很好的解决,尤其是数据被保留标签下的变换增广。例如,目前最好的错误率,MNIST数字识别任务(<0.3%)接近于人类的表现。但是实际场景中的物体有相当大的变化性,因此学习识别它们需要更大的训练设置。事实上,小的图像数据集的缺点已经被广泛的认知(例如Pinto等【21】),然而最近收集百万级别的标记图像已经变为可能。新的更大的数据集包括LabelMe【23】,包含十万计的完全分割的图像,以及ImageNet,包含超过15百万的高分辨率标记图像,并超过22000类。
  为了学习百万图像中的千计目标,需要拥有庞大的学习能力的模型。然而,目标识别任务巨大的复杂程度意味着即使拥有像ImageNet这样大的数据集,该问题依然不能特定化,因此,该模型应该拥有先验知识以弥补没有的所有数据。卷积神经网络(CNNs,Convolutional neural networks)构成了一类模型【16,11,13,18,15,22,26】。其能力能够通过改变其深度与宽度而控制,其也可以对图像的性质做出强有力的假设(即统计的稳定性与像素依赖的局部性)。因此,相比于标准的同尺寸层的前馈神经网络,CNNs拥有更少的连接与参数并且因此训练更加简单,但是其理论上的最佳表现可能稍差。
  尽管CNNs优秀的质量,以及局部架构相对的高效率,其在应用于大量高分辨率图像时的代价仍然十分昂贵。幸运的是,目前的GPUs,与高度优化的2D卷积操作配合,足够强力以满足目标巨大的CNNs的训练,以及最近的数据集例如ImageNet包含足够多的标记样例以训练该模型,而避免严重的过拟合。
  该论文的贡献如下:训练了一个庞大的卷积神经网络,使用ILSVRC-2010与ILSVRC-2012竞赛【2】中使用的ImageNet的子集数据,并在该数据集上达到了报道以来最好的结果。本文提出了一个高度优化的2D卷积的GPU运算,并且其他的运算包含在训练卷积神经网络中,将其开源于http://code.google.com/p/cuda-convnet/。网络包含大量新的与不常用的特征,其改善了网络的表现,并减少了训练时间,将在第三部分详细介绍。网络的尺寸导致了过拟合的标志性问题,即使使用了1.2百万的标记图像样例,因此使用了几项有效的技术以防止过拟合,将在第4部分介绍。最后的网络包含五个卷积层与三个全连接层,这个深度似乎是重要的:发现移除任何卷积层(包含不足1%的模型参数)都会导致效果下降。
  在结尾,网络的尺寸主要受到目前GPUs的内存限制,以及能容忍的训练时间。该网络在两张3GB GTX580的GPU上训练需要花费五到六天。所有实验表明更快的GPU与更大的数据集会可见的改善结果。

二、数据集
  ImageNet是一个拥有超过15百万标记的高分辨图像,被分为约22000类的数据集。图像从网络中收集,并人为标注。从2010年开始,作为PVOC的一部分,一个称为ILSVRC(ImageNet Large-Scale Visual Recognition Challenge)的年度竞赛被举办。ILSVRC使用ImageNet的子集,在1000类的每一类中大约有1000张图像。最终,其有1.2百万张训练图像,50000张验证图像与150000张测试图像。
  ILSVRC-2010这是ILSVRC的一个版本,其测试集的标注公开,因此该版本中,实验的表现最佳。因此该模型参加ILSVRC-2012竞赛,在第6部分,也会报告在该版本的数据集下的结果,该测试集的标注不公开。在ImageNet中,习惯上报告两个错误率:top-1与top-5,其中top5错误率是测试图像的正确标记不在模型推测最可能的五类标签中的部分。
  ImageNet包含多种分辨率的图像,然而系统需要常数的输入维度。因此,将图像下采样为固定的256×256的分辨率。如果给出矩形的图像,首先将短边重新缩放为256的长度,然后从图像裁剪中央的256×256的部分。除了在每个像素减去训练集的平均活跃度,不以任何手段预处理图像。然后使用原始的图像RBG值训练网络。

三、架构
  网络架构如图2所示。其包含八个学习层——五个卷积层与三个全连接层。接下来,描述架构的一些新的或不常用的特征。3.1~3.4部分根据评估的重要性排序,其中重要的靠前。

3.1 ReLU非线性
  标准的方法是模型化一个神经的输出 f f f为一个输入 x x x的函数 f ( x ) = t a n h ( x ) f(x) = tanh(x) f(x)=tanh(x)或者 f ( x ) = ( 1 + e − x ) − 1 f(x) = (1 + e^{-x}) ^ {-1} f(x)=(1+ex)1。从使用梯度下降的训练时间的角度看,饱和非线性要慢于不饱和非线性 f ( x ) = m a x ( 0 , x ) f(x) = max(0, x) f(x)=max(0,x)。根据Nair和Hinton【20】,称带有这种非线性的神经元为线性整流单元(Rectified Linear Units,ReLUs)。深度卷积神经网络使用ReLUs训练数次的时间要比tanh训练相同轮次的快。如图1所示,展示了一个四层卷积网络在CIFAR-10数据集达到25%训练错误所需的迭代轮次。该图展示了如果使用传统的饱和神经模型,不能使用如此大的神经网络。
  并不是第一个在CNNs的传统神经模型中考虑该方案的。例如,Jarrett等人【11】提出非线性的 f ( x ) = ∣ t a n h ( x ) ∣ f(x) = |tanh(x)| f(x)=tanh(x),与后接平均池化的对照归一化类型在Caltech-101数据集上表现出色。然而,在这个数据集中,最担忧的是防止过拟合,因此他们注意到的影响与报告的使用ReLUs加速适应训练集是不同的。更快的训练对于在大数据集训练的大模型的表现有着重要的影响。在这里插入图片描述
  图1:一个四层的卷积神经网络使用ReLUs(实线),在CIFAR-10上达到25%的训练错误率比相同的网络使用tanh神经(虚线)快6倍。每个网络的学习率独立的选择,以让训练尽可能的快。没有使用任何正则化。这里展示的作用的数量级随着网络架构的变化而变化,但是使用ReLUs的网络比使用饱和神经的相同网络学习数轮的时间均要快。

3.2 多GPU训练
  只有3GB内存的GTX 580 GPU限制了可以训练的网络的最大尺寸。1.2M训练样本足以训练网络,但对于单个GPU还是过大,以至于不能拟合。因此网络分离为使用2张GPU的结构。

3.3 局部响应归一化
  ReLU不会受输入归一化以防止梯度饱和的限制。然而,局部归一化仍然有助于泛化。定义 a x , y i a_{x,y}^i ax,yi为使用核 i i i在位置 ( x , y ) (x, y) (x,y)计算得到的神经元的激活值,并应用ReLU,响应归一化的活跃值 b x , y i b_{x,y}^i bx,yi形如 b x , y i = a x , y i / ( k + α ∑ j = m a x ( 0 , i − n / 2 ) m i n ( N − 1 , i + n / 2 ) ( a x , y j ) ) β b_{x,y}^i = a_{x,y}^i/(k + \alpha\sum_{j = max(0, i-n/2)}^{min(N-1, i + n/2)}(a_{x,y}^j))^\beta bx,yi=ax,yi/(k+αj=max(0,in/2)min(N1,i+n/2)(ax,yj))β其中求和在相同的空间位置遍历 n n n像素邻近的核映射, N N N是该层的总核数。核映射的顺序是任意且在训练之前确定的,该种响应归一化执行了单侧抑制,其由真实神经元发现的该类启发,产生了与不同核计算的神经元输出的大的激活值的对抗。常数 k , n , α , β k, n, \alpha, \beta k,n,α,β是超参数,使用验证集来确定其值,本文使用 k = 2 , n = 5 , α = 1 0 − 4 , β = 0.75 k = 2, n = 5, \alpha = 10^{-4}, \beta = 0.75 k=2,n=5,α=104,β=0.75。在每层的ReLU后使用该归一化。

3.4 重叠池化
  CNN的池化层提取了神经元邻域内同一核映射的输出。更确切的,池化层可以认为相距 s s s像素的池化单元栅格,并提取局部池化单元中中心的 z × z z×z z×z尺寸邻域。当 s = z s = z s=z时,便得到了CNN的传统局部池化;当 s < z s < z s<z时,便得到了重叠池化。该网络中, s = 2 , z = 3 s = 2, z = 3 s=2,z=3。在训练过程中观察到使用重叠池化的模型更不容易过拟合。

3.5 总览框架
  网络包含八个权重层,前五层是卷积层,而剩余三层是全连接层,如图2。最后的全连接层的输出被送入1000通道的softmax,并产生1000类标签的分布。该网络最大化多项逻辑回归目标,等效于在预测分布下,最大化正确标签的对数概率的平均值。
  第一卷积层使用96个11x11x3的核滤波224x224x3的输入,步长为4(其是相邻的接受中心的距离)。第二层将第一卷积层的输出(归一化响应并池化)作为输入,并使用256个5x5x48的核滤波。第三,四,五层不使用池化与归一化层。第三层将第二卷积层的输出(归一化,池化)使用384个3x3x256的核卷积,第四层使用384个3x3x192的核,第五层使用256个3x3x192的核。全连接层各有4096个神经元。
Alex
  图2:CNN架构图示,展示了两个GPU的关系。一个GPU运行顶部架构,另一个运行底部。GPU只在特定层有交叉。网络的输入是150528维,网络隐藏层的神经元的数量为253440-186624-64896-43264-4096-4096-1000。


四、降低过拟合
  该网络架构存在60M个参数,即使是ILSVRC的1000类使得每个训练样本提供数十种图像到标签的约束,仍然不足以学习如此多的参数而不考虑过拟合。如下描述两种主要方式以降低过拟合。

4.1 数据增强
4.2 随机失活

五、学习细节
  使用随机梯度下降训练模型,批尺寸为128,动量为0.9,权重衰减为0.0005。小的权重衰减对于模型的学习十分重要,其不止正则化,且减少了模型的训练错误。权重的更新形如 v i + 1 ← 0.9 v i − 0.0005 ϵ w i − ϵ ⟨ ∂ L / ∂ w ∣ w i ⟩ D i w i + 1 ← w i + v i + 1 v_{i+1} \leftarrow 0.9v_i-0.0005\epsilon w_i-\epsilon\lang ∂\bm{L}/∂w|w_i \rang_{D_i} \\ w_{i+1} \leftarrow w_i + v_{i+1} vi+10.9vi0.0005ϵwiϵL/wwiDiwi+1wi+vi+1其中 i i i是迭代索引, v v v是动量, ϵ \epsilon ϵ是学习率, ⟨ ∂ L / ∂ w ∣ w i ⟩ D i \lang ∂\bm{L}/∂w|w_i \rang_{D_i} L/wwiDi是第 i i i批样本 D i D_i Di种目标函数对 w w w的导数的 w i w_i wi处取值的平均。
  初始化权重为0均值,标准差0.01的高斯分布。第二,第四,第五卷积层与全连接层偏置初始化为1,这通过提供给ReLU正输出以加快早期学习。而其他偏置为0。
  所有曾的学习率一致,初始化为0.01,当错误率不再改善时下降10倍。在中止训练前减少三次,其中训练使用1.2M图像训练集训练90轮,在两张NVIDIA GTX 580 3GB GPU上训练5到6天。


六、结果
核
  图3:作用在224x224x3输入图像的96个11x11x3的卷积核。上48个在GPU1学习,下48在GPU2。
结果  图4:左,8张ILSVRC-2010测试图像与被模型预测最可能的5个标签。正确标签在图像下,而可能性也是用红色展示。右,第一列的5张ILSVRC-2010测试图像,剩余的列展示了6张训练图像,其在最后隐藏层产生的特征向量与测试图像的特征向量有最小的欧几里得距离。


七、结论
  该大而深的网络在高挑战性的数据集上使用单纯的有监督学习,达到了打破纪录的结果。

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值