【全文翻译】ImageNet Classifification with Deep Convolutional Neural Networks


摘要–我们训练了一个大型的深度卷积神经网络,将ImageNet LSVRC-2010竞赛中的120万张高分辨率图像分类为1000种不同的类别。 在测试数据上,我们实现了前1个和前5个错误率分别为37.5%和17.0%,这比以前的最新技术要好得多。 该神经网络具有6000万个参数和65万个神经元,它由五个卷积层组成,其中一些跟在最大卷积层之后,还有三个完全连接的层,最后是1000 条路径的softmax。 为了使训练更快,我们使用了非饱和神经元和卷积运算的非常高效的GPU实现。 为了减少全连接层的过度拟合,我们采用了一种新近开发的正则化方法,称为“dropout”,这种方法被证明非常有效。 我们还在ILSVRC-2012竞赛中输入了该模型的变体,并获得了最高的前5名测试错误率15.3%,而第二名仅获得了26.2%。

1 Introduction

当前的对象识别方法主要使用机器学习方法。 为了证明其性能,我们可以收集更大的数据集,学习更强大的模型,并使用更好的技术来防止过度拟合。 直到最近,带标签图像的数据集还相对较小-数以万计的图像(例如,NORB ,Caltech-101 / 256 和CIFAR-10 / 100 )。 使用这种大小的数据集可以很好地解决简单的识别任务,尤其是如果使用保留标签的转换来增强它们的话。 例如,当前在MNIST数字识别任务上的最佳错误率(<0.3%)接近人类的表现[4]。但是现实环境中的物体表现出很大的可变性,因此要学会识别它们,有必要使用更大的训练集。 确实,小型图像数据集的缺点已得到广泛认可(例如Pinto等人),但直到最近才有可能收集具有数百万个图像的标记数据集。 新的更大的数据集包括LabelMe 和ImageNet ,LabelMe 由成千上万个完全分割的图像组成,ImageNet由超过1500万个标记的高分辨率图像组成,这些图像在22,000多个类别中。

要从数百万个图像中了解数千个对象,我们需要一个具有较大学习能力的模型。 但是,对象识别任务的复杂性非常高,这意味着即使是像ImageNet这样大的数据集也无法指定此问题,因此我们的模型还应该具有很多先验知识,以补偿我们所没有的所有数据。 卷积神经网络(CNN)构成了这类模型之一[16、11、13、18、15、22、26]。 可以通过改变其深度和广度来控制它们的能力,并且它们还对图像的性质(即统计的平稳性和像素依存性的局部性)做出了强有力且最正确的假设。因此,与具有类似大小的层的标准前馈神经网络相比,CNN的连接和参数要少得多,因此更易于训练,而其理论上最好的性能可能只会稍差一些。

尽管CNN具有吸引人的品质,并且尽管其本地架构相对有效,但将它们大规模应用于高分辨率图像仍然非常昂贵。 幸运的是,当前的GPU与2D卷积的高度优化实现相结合,功能强大到足以帮助训练有趣的大型CNN,而最近的数据集(如ImageNet)包含足够的带标签示例,可以在不进行严重过度拟合的情况下训练此类模型。

本文的具体贡献如下:我们使用ILSVRC-2010和ILSVRC-2012竞赛中迄今为止使用的ImageNet子集训练了迄今为止最大的卷积神经网络之一,并取得了迄今为止报道的最佳结果。 这些数据集。 我们编写了2D卷积以及训练卷积神经网络固有的所有其他操作的高度优化的GPU实现,我们将其公开提供。 我们的网络包含许多新的和不寻常的功能,这些功能可改善其性能并减少其培训时间,这将在第3节中进行详细介绍。我们的网络规模过大,即使有120万个带有标签的训练示例,也能解决一个严重问题。 第4节中介绍了有效的防止过度拟合的技术。我们的最终网络包含5个卷积层和3个全连接层,这一深度似乎很重要:我们发现删除了任何卷积层(每个参数所包含的参数都不超过模型参数的1%)导致性能下降。

最后,网络的大小主要受当前GPU上可用的内存量以及我们愿意接受的训练时间的限制。 我们的网络需要五到六天的时间来训练两个GTX 580 3GB GPU。 我们所有的实验都表明,只需等待更快的GPU和更大的数据集就可以改善我们的结果。

2 The Dataset

ImageNet是超过1500万个带标签的高分辨率图像的数据集,这些图像大约属于22,000个类别。 这些图像是从网上收集的,并由人类标记人员使用Amazon的Mechanical Turk众包工具进行标记。 从2010年开始,作为Pascal视觉对象挑战赛的一部分,每年举行一次名为ImageNet大规模视觉识别挑战赛(ILSVRC)的竞赛。 ILSVRC使用ImageNet的子集,在1000个类别中的每个类别中大约包含1000张图像。 总共大约有120万张训练图像,50,000张验证图像和150,000张测试图像。

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

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

3 The Architecture

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

3.1 ReLU Nonlinearity(非线性)

根据神经元输入f建模神经元输出f的标准方法是 f ( x ) = t a n h ( x ) f(x)= tanh(x) f(x)=tanhx f ( x ) = ( 1 + e − 1 ) − 1 f(x)=(1 + e ^{-1})^{-1} f(x)=1+e11。 就梯度下降的训练时间而言,这些饱和非线性要比非饱和非线性 f ( x ) = m a x ( 0 , x ) f(x)= max(0,x) f(x)=max0x慢得多。 继Nair和Hinton 之后,我们将具有这种非线性的神经元称为整流线性单位(ReLUs)。 使用ReLU的深度卷积神经网络的训练速度比使用 t a n h tanh tanh单位的等效方法快几倍。 这在图1中得到了证明,图1显示了对于特定的四层卷积网络,在CIFAR-10数据集上达到25%训练误差所需的迭代次数。 该图表明,如果使用传统的饱和神经元模型,我们将无法使用如此大型的神经网络进行这项工作。

在这里插入图片描述

我们不是第一个考虑CNN中传统神经元模型替代方案的人。 例如,Jarrett等声称非线性 f ( x ) = ∣ t a n h ( x ) ∣ f(x)=|tanh(x)| f(x)=tanh(x) 在其对比类型或混合性以及随后在Caltech-101数据集上进行本地平均合并的情况下,效果特别好。 但是,在此数据集上,主要的问题是防止过度拟合,因此,他们观察到的效果与我们使用ReLU时报告的训练集的拟合能力有所不同。 更快的学习对在大型数据集上训练的大型模型的性能有很大影响。

3.2 Training on Multiple GPUs

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

在这里插入图片描述

最终的架构与Ciresan等人使用的“ columnar” CNN的架构有些相似。 [5],只是我们的列不是独立的(请参见图2)。 与在一个GPU上训练的每个卷积层中内核数量减少一半的网络相比,该方案分别将我们的top-1和top-5错误率降低了1.7%和1.2%。 两GPU网络的训练时间比一个GPU网络少。

3.3 Local Response Normalization

ReLU具有理想的属性,即它们不需要输入规范化即可防止饱和。 如果至少一些训练示例对ReLU产生了积极的投入,那么该神经元就会进行学习。 但是,我们仍然发现以下局部归一化方案有助于泛化。 用 a x , y i a_ {x,y}^i axyi表示通过在位置 ( x , y ) (x,y) xy处应用核i然后再应用ReLU非线性计算的神经元活动,该响应归一化活动 b x , y i b_ {x,y}^i bxyi由以下表达式给出

在这里插入图片描述

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

该方案与Jarrett等人的局部对比度归一化方案有些相似。 [11],但我们将其更正确地称为“亮度归一化”,因为我们没有减去平均活性。 响应标准化使我们的top-1和top-5错误率分别降低了1.4%和1.2%。 我们还在CIFAR-10数据集上验证了该方案的有效性:四层CNN在未进行标准化的情况下实现了13%的测试错误率,在进行标准化的情况下实现了11%的测试错误率。

3.4 Overlapping Pooling

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

3.5 Overall Architecture

现在,我们准备描述CNN的总体架构。 如图2所示,该网包含八层带权重的层;第二层为网状。 前五个是卷积的,其余三个是完全连接的。 最后一个完全连接层的输出被馈送到1000 条路径的softmax,后者在1000类标签上产生分布。 我们的网络将多项式逻辑回归目标最大化,这等效于在预测分布下,将正确标签的对数概率的训练案例之间的平均值最大化。

在这里插入图片描述

第二,第四和第五卷积层的内核仅连接到位于同一GPU上的上一层中的那些内核映射(请参见图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个神经元。

4 Reducing Overfifitting

我们的神经网络架构具有6000万个参数。 尽管ILSVRC的1000个类别使每个训练示例在从图像到标签的映射上施加10位约束,但事实证明这不足以学习太多参数而又不会出现过度拟合的情况。 下面,我们描述了克服过度拟合的两种主要方法。

4.1 Data Augmentation(数据扩充)

减少图像数据过拟合的最简单,最常见的方法是使用保留标签的变换(例如[25、4、5])人工放大数据集。 我们采用两种不同的数据增强形式,这两种形式都允许通过很少的计算就可以从原始图像生成转换后的图像,因此不需要将转换后的图像存储在磁盘上。在我们的实现中,当GPU在前一批图像上训练时,转换后的图像在CPU上以Python代码生成。 因此,这些数据扩充方案实际上在计算上是免费的。

数据扩充的第一种形式包括生成图像平移和水平反射。 我们通过从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=[IxyRIxyGIxyB]T,我们添加以下数量:

在这里插入图片描述

其中 p i p_i pi λ i λ_i λi分别是RGB像素值的3×3协方差矩阵的第i个特征向量和特征值,而 α i α_i αi是上述随机变量。 对于特定训练图像的所有像素,每个 α i α_i αi仅绘制一次,直到再次使用该图像进行训练为止,此时将其重新绘制。 该方案近似地捕获了自然图像的重要性质,即,对象身份对于照明的强度和颜色的变化是不变的。 该方案将top-1错误率降低了1%以上。

4.2 Dropout

结合许多不同模型的预测是减少测试错误的一种非常成功的方法[1,3],但是对于已经花了几天时间进行训练的大型神经网络来说,这似乎太昂贵了。 但是,有一个非常有效的模型组合版本,在训练过程中仅花费大约两倍的费用。 最近引入的技术称为“dropout” [10],包括将每个隐藏神经元的输出以0.5的概率设置为零。 以这种方式“dropped out”的神经元对正向通行没有贡献,并且不参与反向传播。 因此,每次出现输入时,神经网络都会对不同的体系结构进行采样,但是所有这些体系结构都会共享权重。 由于神经元不能依赖于特定其他神经元的存在,因此该技术减少了神经元的复杂共适应。 因此,被迫学习更健壮的功能,这些功能可与其他神经元的许多不同随机子集结合使用。 在测试时,我们使用所有神经元,但将它们的输出乘以0.5,这可以合理地近似于采用指数级下降网络产生的预测分布的几何平均值。

我们在图2的前两个完全连接的层中使用了dropout。如果没有dropout,则我们的网络可能会出现过度拟合的情况。Dropout大约会使收敛所需的迭代次数加倍。

5 Details of learning

我们使用随机梯度下降训练了模型,批次大小为128个示例,动量为0.9,重量衰减为0.0005。 我们发现,少量的重量衰减对于模型的学习很重要。 换句话说,这里的权重衰减不仅仅是一个正则化器:它可以减少模型的训练误差。 权重 w w w的更新规则为

在这里插入图片描述

其中, i i i是迭代指标, v v v是动量变量, ϵ \epsilon ϵ是学习率, ⟨ ∂ L ∂ w ∣ w i ⟩ D i {\left\langle \frac {∂L}{∂w}|_{w_i} \right\rangle }_{D_i} wLwiDi是在 w i w_i wi处求得的目标导数相对于 w w w的第 i i i D i D_i Di的平均值。

我们从零偏差的高斯分布(标准偏差为0.01)初始化每一层的权重。 我们使用常数1初始化第二,第四和第五卷积层以及完全连接的隐藏层中的神经元偏差。此初始化通过为ReLU提供正输入来加速学习的早期阶段。 我们用常数0初始化剩余层中的神经元偏差。

我们对所有层使用了相等的学习率,我们在整个培训过程中手动对其进行了调整。我们遵循的启发式方法是,当验证错误率停止随着当前学习率提高而提高时,将学习率除以10。 学习率初始设置为0.01, 在终止之前减少了三倍。 我们通过120万张图像的训练集对网络进行了大约90个周期的训练,在两个NVIDIA GTX 580 3GB GPU上花了五到六天的时间。

6 Results

表1总结了我们在ILSVRC-2010上的结果。我们的网络实现了top-1和top-5测试集错误率分别为37.5%和17.0%5。 在ILSVRC2010竞赛中获得的最佳性能分别为47.1%和28.2%,其方法是对根据不同特征训练的六个稀疏编码模型产生的预测取平均值,此后发布的最佳结果为45.7%和25.7%的方法可以对根据两种类型的密集采样特征计算出的在Fisher向量(FVs)上训练的两个分类器的预测求平均值。
在这里插入图片描述

我们还在ILSVRC-2012竞赛中输入了我们的模型,并在表2中报告了结果。由于ILSVRC-2012测试集标签不是公开可用的,因此我们无法报告我们尝试过的所有模型的测试错误率。 在本段的其余部分,我们将验证和测试错误率互换使用,因为根据我们的经验,它们的相差不超过0.1%(请参见表2)。 本文介绍的CNN的前5位错误率达到了18.2%。 平均五个相似CNN的预测得出的错误率为16.4%。 训练一个CNN,在最后一个合并层上再加上一个第六卷积层,以对整个ImageNet Fall 2011版本(15M张图像,22K个类别)进行分类,然后在ILSVRC-2012上对其进行“微调”,得出错误率 16.6%。 将在整个2011年秋季租约中预先训练的两个CNN与上述五个CNN的平均预测误差率为15.3%。 居第二位的竞赛输入法的错误率达到26.2%,该方法可以对根据不同类型的密集采样特征计算出的FVs训练的多个分类器的预测取平均值。

在这里插入图片描述

最后,我们还报告了ImageNet 2009年秋季版本的错误率,其中包含10,184个类别和890万张图像。 在此数据集上,我们遵循文献中的惯例,即使用一半的图像进行训练,一半使用图像进行测试。 由于没有经过检验的测试集,因此我们的拆分与以前的作者所使用的拆分有很大的不同,但这不会显着影响结果。通过上述网络,我们在此数据集上的top-1和top-5错误率分别为67.4%和40.9%,但在最后一个合并层上还有一个第六卷积层。 此数据集上发布的最佳结果是78.1%和60.9%。

6.1 Qualitative Evaluations(定性评估)

图3显示了网络的两个数据连接层所学习的卷积内核。 网络已经学会了各种频率和方向选择内核,以及各种颜色的斑点。 请注意,这是两个GPU所展现的专业化,这是第3.5节中描述的受限连接性的结果。 GPU 1上的内核在很大程度上与颜色无关,而GPU 2上的内核在很大程度上是特定于颜色的。 这种特殊化发生在每次运行期间,并且与任何特定的随机权重初始化(对GPU进行重新编号的模数)无关。

在这里插入图片描述

在图4的左面板中,我们通过在八幅测试图像上计算其前5个预测,定性评估网络学到了什么。 请注意,即使偏心的对象(例如左上角的螨)也可以被网络识别。 大多数前5个标签看起来都是合理的。 例如,只有其他类型的猫被认为是豹的合理标签。 在某些情况下(谷物,樱桃),对于照片的预期焦点有真正的歧义。

在这里插入图片描述

探查网络视觉知识的另一种方法是考虑由最后4096维隐藏层中的图像引起的特征激活。 如果两个图像产生的特征激活向量具有较小的欧几里得距离,则可以说神经网络的较高级别认为它们是相似的。 图4显示了根据此度量,来自测试集的五幅图像和来自训练集的六幅图像最相似。 注意,在像素级别,检索到的训练图像在L2中通常不接近第一列中的查询图像。 例如,取回的狗和大象以各种姿势出现。 我们在补充材料中提供了更多测试图像的结果。

通过使用两个4096维实值向量之间的欧几里得距离来计算相似度是效率低下的,但是可以通过训练自动编码器将这些向量压缩为短二进制代码来提高相似度。 与将自动编码器应用于原始像素相比,这应该会产生一种更好的图像检索方法[14],该方法不使用图像标签,因此倾向于检索具有相似边缘模式的图像,无论它们是否在语义上都是 类似。

7 Discussion

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

为了简化我们的实验,我们没有使用任何无监督的预训练,即使我们希望这会有所帮助,尤其是如果我们获得足够的计算能力来显着增加网络的大小而又未获得标记数据量的相应增加时。 到目前为止,由于我们扩大了网络并对其进行了更长的训练,我们的结果有所改善,但为了匹配人类视觉系统的时下路径,我们还有许多数量级需要走。 最终,我们希望在视频序列上使用非常大和较深的卷积网络,其中时间结构提供了非常有用的信息,这些信息在静态图像中已经丢失或不那么明显。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值