【论文阅读】ImageNet Classification with Deep Convolutional Neural Networks (alexnet)

摘要

这是近年神经网络兴起的除了LeNet之外的第一个开山之作,在ImageNetSVRC-2010的1000个类的120万张高分辨率图像中,获得了37.5%和17.0%的top-1和top-5的错误率。alexNet由5个卷积层和3个全连接层构成,其中还加入了一些max pooling层,最后用softmax回归的到1000个结果。使用了dropout正则化方法来防止过拟合。

一、介绍

由于之前的方法主要是机器学习的方法,在对CIFAR-10/100等只有数万张的数据集能够得到较好的结果。但是现实环境更加复杂,所以必须用上更加复杂的数据集。而卷积神经网络可以通过改变他们的

本文的贡献为在ILSVRC-2010和ILSVRC-2012竞赛中使用的ImageNet子集训练了迄今为止最大的卷积神经网络之一,并在这些数据集上取得了迄今为止最好的结果。

在第三节中讲述了网络中包含的一些不同寻常的特征,这些特征大大提高了它的性能,并减少了它的训练时间。在第四节中,讲述了几种来有效防止过拟合的方法。

在最后,作者意识到了由于当时计算机性能导致神经网络层数没有办法继续增加。并预言了之后的增加神经网络,改善神经网络的时代。

  • CNNs

  • Y . LeCun, F.J. Huang, and L. Bottou. Learning methods for generic object recognition with invariance to pose and lighting. In Computer Vision and Pattern Recognition, 2004. CVPR 2004. Proceedings of the 2004 IEEE Computer Society Conference on, volume 2, pages II–97. IEEE, 2004.

  • K. Jarrett, K. Kavukcuoglu, M. A. Ranzato, and Y . LeCun. What is the best multi-stage architecture for object recognition? In International Conference on Computer Vision, pages 2146–2153. IEEE, 2009.

  • A. Krizhevsky. Convolutional deep belief networks on cifar-10. Unpublished manuscript, 2010.

  • H. Lee, R. Grosse, R. Ranganath, and A.Y.Ng. Convolutional deep belief networks for scalable unsupervised learning of hierarchical representations. In Proceedings of the 26th Annual International Conference on Machine Learning, pages 609–616. ACM, 2009.

  • Y.Le Cun, B. Boser, J.S. Denker, D. Henderson, R.E. Howard, W. Hubbard, L.D. Jackel, et al. Handwritten digit recognition with a back-propagation network. In Advances in neural information processing systems, 1990.

  • N. Pinto, D. Doukhan, J.J. DiCarlo, and D.D. Cox. A high-throughput screening approach to discovering good forms of biologically inspired visual representation. PLoS computational biology, 5(11):e1000579,2009.

  • S.C. Turaga, J.F. Murray, V.Jain, F. Roth, M. Helmstaedter, K. Briggman, W. Denk, and H.S. Seung. Convolutional networks can learn to generate affinity graphs for image segmentation. Neural Computation,22(2):511–538, 2010.

二、数据集

ImageNet是一个包含超过1500万张高分辨率图像的数据集,大约属于22,000个类别。从2010年开始,作为Pascal视觉物体挑战赛的一部分,一年一度的ImageNet大型视觉识别挑战赛(ILSVRC)举行。ILSVRC使用ImageNet的一个子集,每1000个类别中大约有1000张图片。总共大约有120万张训练图像、5万张验证图像和15万张测试图像。

ILSVRC-2010是唯一一个有测试集标签的ILSVRC版本,所以我们在这个版本上执行了大部分实验。由于我们也在ILSVRC-2012竞赛中输入了我们的模型,所以在第6节中,我们也报告了这个版本的数据集的结果,因为测试集标签是不可用的。在ImageNet上,通常会报告两个错误率:top-1和top-5,其中top-5错误率是测试图像中正确的标签不在模型认为最可能出现的5个标签中所占的比例。

ImageNet由可变分辨率的图像组成,而我们的系统需要一个恒定的输入维数。因此,我们将图像下采样到固定分辨率为256×256。对于一个矩形图像,我们首先对图像进行重新标定,使较短的边的长度为256,然后从得到的图像中裁剪出中间的256×256的patch。除了从每个像素中减去训练集上的平均活跃度之外,我们没有采用任何其他方法对图像进行预处理。因此,我们根据像素(居中)的原始RGB值训练我们的网络。

三、结构层

下图总结了我们的网络架构。它包含8个学习层——5个卷积层和3个完全连接层。下面,我们将描述我们网络架构的一些新奇或不寻常的特征。3.1-3.4部分根据我们对其重要性的估计进行排序,最重要的放在前面。

在这里插入图片描述

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(0x)慢得多。根据奈尔和辛顿[20],我们将具有这种非线性的神经元称为整流线性单位(ReLUs)。带有ReLUs的深度卷积神经网络比带有tanh单元的同类网络训练速度快几倍。图1展示了这一点,它显示了对于特定的四层卷积网络,在CIFAR-10数据集上达到25%的训练误差所需的迭代次数。该图表明,如果我们使用传统的饱和神经元模型,我们就不可能用如此大的神经网络进行这项工作的实验。
在这里插入图片描述

2.多GPU训练

单个GTX 580图形处理器只有3GB的内存,这限制了可以在其上训练的网络的最大大小。原来120万个训练例子足够去训练一个大到装不下的网络。因此,我们将网络分布在两个图形处理器上。当前的GPU特别适合跨GPU并行化,因为它们能够直接读写彼此的内存,而无需通过主机内存。我们采用的并行化方案本质上是将一半的内核(或神经元)放在每个GPU上,还有一个额外的技巧:GPU只在某些层进行通信。这意味着,例如,第3层的内核从第2层的所有内核映射中获取输入。然而,第4层中的内核仅从第3层中驻留在同一GPU上的内核映射中获取输入。选择连接模式是交叉验证的一个问题,但这允许我们精确地调整通信量,直到它成为计算量中可接受的一部分。

最终的架构有点类似于Cire san等人[5]使用的“柱状”CNN,除了我们的列不是独立的(见图2)。与在一个GPU上训练的每个卷积层中具有一半内核的网络相比,该方案将前1和前5的错误率分别降低了1.7%和1.2%。双GPU网的训练时间比单GPU网2略少。

3.局部归一化

ReLUs具有理想的特性,即它们不需要输入标准化来防止它们饱和。如果至少一些训练例子对ReLU产生了积极的输入,学习将在该神经元中发生。然而,我们仍然发现下面的局部规范化方案有助于推广。用 a x , y i a_{x,y}^{i} ax,yi表示,通过在位置(x,y)应用核I,然后应用ReLU非线性,计算神经元的活性,响应标准化活性 b x , y i b_{x,y}^{i} bx,yi,由表达式给出
在这里插入图片描述

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

4.池化

池化层对CNNs中的相邻神经元的输出做了处理。更准确地说,池化层可以被认为是由间隔为s个像素的汇集单元网格组成,每个网格总结了以汇集单元位置为中心的大小为z × z的邻域。如果我们设置s = z,我们就可以获得CNNs中常用的传统本地池。如果我们设置s < z,我们得到重叠池。与等效尺寸输出的非重叠方案 = 2,z = 2相比,s = 2,z = 3(此处s为step,z为池化的范围)分别减少了top-1和top-5的0.4%和0.3%的错误率。我们发现具有重叠池的模型不容易过拟合。

5.整体架构

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

第二、第四和第五卷积层的内核只与前一层中驻留在同一图形处理器上的内核映射相连(见图2)。第三卷积层的核连接到第二层中的所有核映射。完全连接层中的神经元与前一层中的所有神经元相连。响应标准化层依赖第一个和第二个卷积层。第3.4节中描述的最大池层依赖响应标准化层和第五个卷积层。ReLU非线性应用于每个卷积和全连接层的输出。

第一卷积层用96个大小为11×11×3的核对224×224×3的输入图像进行滤波,步长为4个像素(这是在内核映射中相邻神经元的感受野中心之间的距离)。第二卷积层将第一卷积层的(归一化和池化)输出作为输入,并用256个大小为5 × 5 × 48的核对其进行滤波。第三、第四和第五卷积层相互连接,没有任何中间的归一化或池化层。第三个卷积层有384个大小为3 × 3 × 256的核,连接到第二个卷积层的(归一化,池化)输出。第四卷积层有384个大小为3 × 3 × 192的核,第五卷积层有256个大小为3 × 3 × 192的核。全连接层各有4096个神经元。

四、减少过拟合

我们的神经网络架构有6000万个参数。虽然ILSVRC的1000个类使每个训练示例对从图像到标签的映射施加10bit的约束,但是学习这么多的参数还是很容易过拟合。下面,我们描述两种主要的方法来对抗过拟合。

1.数据扩增

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

数据增强的第一种形式包括生成图像平移和水平翻转。我们通过从256×256的图像中随机提取224×224的部分(以及它们的水平反射)并在这些提取的部分上训练我们的网络来做到这一点。这将我们的训练集的大小增加了2048倍,尽管产生的训练例子当然是高度相互依赖的。如果没有这个方案,我们的网络会遭受严重的过度匹配,这将迫使我们使用更小的网络。在测试时,网络通过提取五个224 × 224的面片(四个角面片和中心面片)以及它们的水平翻转(因此总共有十个面片)进行预测,并对网络的softmax层在十个面片上进行的预测进行平均。

第二种形式的数据增强包括改变训练图像中的RGB通道的强度。具体来说,我们在整个ImageNet训练集中对RGB像素值集执行PCA。对于每个训练图像,我们添加多个找到的主成分,其幅度与相应的特征值乘以随机变量成比例,该随机变量取自均值为零、标准差为0.1的高斯分布。因此每个RGB图像的像素 I x y = [ I x y R , I x y G , I x y B ] T I_{xy} = [I_{xy}^{R},I_{xy}^{G},I_{xy}^{B}]^{T} Ixy=[IxyR,IxyG,IxyB]T,我们加入如下的量:
在这里插入图片描述
其中 P i P_i Pi λ i \lambda_i λi是RGB像素值的3x3协方差矩阵的特征向量和特征值。相应的, α i \alpha_i αi是之前提到过的随机变量。对于一个特定的训练图像,每一个 α i \alpha_i αi更新一次,直到那张图片再一次使用。这个方案获得了一个图像不随光照强度,颜色变化的重要特征。将top-1的错误率降低了1%。但是,有一个只需要两倍训练成本的模型组合方法。最新的叫做Dropout的方法,包含了将每个隐藏神经元的输出设置为零,概率为0.5。

我们在图2的前两个完全连接的层中使用了drop。没有辍学,我们的网络表现出大量的过度适应。辍学大约是收敛所需迭代次数的两倍。

2.丢弃法

将不同的模型结合起来是一个减少测试错误率非常成功的方法,但是对于一个需要花几天来训练的神经网络来说,太昂贵了。Dropput方法的技巧为将每个隐藏单元设置为零,概率为0.5。以这种方式被丢弃的神经元对于前向传播没用贡献,也不会参与反向传播。因此,每次输入出现时,神经网络都会对不同的架构进行采样,但所有这些架构都共享权重。这项技术减少了神经元复杂的共同适应,因为一个神经元不能依赖于特定的其他神经元的存在。因此,它被迫学习更健壮的特征,这些特征与其他神经元的许多不同随机子集一起有用。在测试时,我们使用所有的神经元,但是将它们的输出乘以0.5,这是一个合理的近似,可以得到由指数多丢失网络产生的预测分布的几何平均值。

我们在图2的前两个完全连接的层中使用了Dropout。没有Dropout,我们的网络表现出大量的过拟合。Dropout使收敛所需迭代次数扩大了两倍。

五、学习中的细节

我们使用随机梯度下降训练我们的模型,batch size为128个例子,动量为0.9,权重衰减为0.0005。我们发现这少量的重量衰减对模型学习很重要。换句话说,这里的权重衰减不仅仅是为了正则化,同时她也减少了模型训练的误差。权重 w w w跟新的规则为:
在这里插入图片描述
其中 i i i是迭代指数, v v v是动量变量。 ϵ \epsilon ϵ是学习率, < ∂ L ∂ w ∣ w i > D i \bigg< \frac{\partial L}{\partial w}|_{w_i} \bigg>_{D_i} wLwiDi是目标相对于 w w w的导数在第i批 D i D_i Di上的平均值,在 w i w_i wi上评估。

我们从标准偏差为0.01的零均值高斯分布中初始化每一层的权重。我们初始化了第二、第四和第五卷积层以及全连接隐藏层中的神经元偏置,常数为1。这种初始化通过向ReLUs提供积极的输入来加速学习的早期阶段。我们用常数0初始化剩余层中的神经元偏置。

我们对所有层使用相同的学习速率,在整个训练过程中手动调整。我们遵循的启发式方法是,当验证错误率不再随着当前的学习率而提高时,将学习率除以10。初始学习率为0.01,在终止前,学习率减少了三倍。我们通过120万张图像的训练集对网络进行了大约90个周期的训练,在两台NVIDIA GTX 580 3GB图形处理器上进行了5到6天的训练。

六、结论

在ILSVRC-2010上的结果总结在下表中。其中Sparse coding是对从六个基于不同特征的稀疏编码模型中产生的预测进行平均。SIFT + FVs 是对两个分类器的预测进行平均,这两个分类器是根据两种类型的密集采样特征计算的费希尔向量(FV)训练的。

在这里插入图片描述

下表报告了在ILSVRC-2012竞赛中的结果。第一个为文中网络,第二个为平均5个cnns的结果,第三个为在池化层后添加另外六层卷积层,然后在2011的数据集上先进行预训练的结果,最后一个为对两个第二种网络现在2011数据集上进行预训练,然后去平均,得到的结果。
在这里插入图片描述

1.定性评估

在这里插入图片描述

上图上下部分分别显示了在GPU1中学习的特征与颜色无关,而在GPU2中学习到的特征几乎全部都与颜色有关。这种特殊化发生在每次运行期间,并且独立于任何特定的随机权重初始化(每次会对GPU重新编号)。

在这里插入图片描述
上图左边通过学习八幅图像前五个预测,定性分析了网络学到了什么,第一个螨虫可以看到即使是偏离中心的物体,也可以被网络识别。前五类识别都比较合理。

在最后得到的4096维的隐藏层向量时,如果两幅图之间的欧几里得距离较小,在神经网络级别,我们可以说他们是相似的。右边第一列的五个图象来自测试集,后面六列图像是来自训练集的与测试集最相似的图像。通过欧几里得距离得到的结果还是较令人满意的。

七、讨论

我们的结果表明,使用纯监督学习,大型深度卷积神经网络能够在极具挑战性的数据集上获得破记录的结果。值得注意的是,如果去掉一个卷积层,我们的网络性能会下降。例如,删除任何中间层都会导致网络top-1的性能损失约2%。因此,深度对于实现我们的结果非常重要。

为了简化我们的实验,我们没有使用任何无监督的预训练,尽管我们期望这将有所帮助,特别是如果我们获得足够的计算能力来显著增加网络的大小,而没有获得标记数据量的相应增加。到目前为止,我们的结果有所改善,因为我们扩大了我们的网络,训练了它更长的时间,但我们仍然有许多数量级的工作要做,以匹配人类视觉系统的时空路径。最终,我们希望在视频序列上使用非常大和深的卷积网络,其中时间结构提供了非常有用的信息,而这些信息在静态图像中是缺失的或远不明显的。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值