文章目录
来源:《ImageNet Classification with Deep Convolutional Neural Networks》
作者:Alex Krizhevsky、Ilya Sutskever、Geoffrey E. Hinton
出版社:Curran Associates, Inc.
出版时间:2012年
此次翻译行为纯粹源于本人在“声纹识别、麦克风阵列信号处理、深度学习等”领域的学术探索需求,旨在促进相关知识在中文语境下的交流与研讨,助力同行及爱好者能够更为便捷地汲取前沿学术思想。本人即将通过 CSDN 平台以“博客文章”公开这一翻译成果。
需要着重强调的是,本翻译作品仅限定用于非商业性质的学术学习、研究探讨以及专业知识的交流分享活动。严禁任何个人、组织或商业机构在未经本人书面许可的情况下,将该翻译作品用于商业推广、付费获取、盈利性培训资料制作、二次售卖等一切以获取经济利益为目的的商业经营行为。CSDN 作为本次发表平台,其用户及访问者亦应严格遵循此规定。若有违反,本人必定依据相关法律法规,坚决捍卫自身权益,追究侵权者的法律责任,要求其赔偿因侵权行为给本人造成的一切损失,包括但不限于经济损失、名誉损害等。
鉴于学术论文翻译的严谨性要求极高,尽管本人已倾尽全力确保译文准确反映原文的学术内涵,然因语言转换过程中的固有难点与本人学识所限,译文或许尚存瑕疵。故而,本人热忱欢迎广大学术同仁、专业读者不吝赐教,提出宝贵的修改意见,携手为学术繁荣贡献力量。
特此声明!
基于深度卷积神经网络的ImageNet分类
摘要:我们训练了一个大型的深度卷积神经网络,将ImageNet LSVRC-2010竞赛中的120万张高分辨率图像分为1000个不同的类别。在测试数据上,我们实现了37.5%的top-1错误率和17.0%的top-5错误率,这比之前的最先进技术显著更好。
这个神经网络有6000万个参数和65万个神经元,由5个卷积层组成,其中一些卷积层后面是最大池化层,还有3个全连接层,最后是1000路softmax。为了使训练更快,我们使用了非饱和神经元和一个非常高效的GPU实现卷积操作。为了减少全连接层的过拟合,我们采用了最近开发的一种称为“dropout”的正则化方法,该方法被证明非常有效。在ILSVRC-2012竞赛中,我们也提交了这个模型的一个变体,并取得了获胜的top-5测试错误率15.3%,相比之下第二名的成绩是26.2%。
1 介绍
当前的目标识别方法基本使用了机器学习方法。为了提高它们的性能,我们可以收集更大的数据集,学习更强大的模型,并使用更好的技术来防止过拟合。直到最近,标记图像的数据集相对较小——大约有数万张图像([16], [8, 9], [12])。使用这种大小的数据集可以很好地解决简单的识别任务,特别是如果它们使用保持标签的转换进行增强。例如,目前MNIST数字识别任务的最佳错误率(<0.3%)接近人类的表现([4])。但现实环境中的物体表现出相当大的可变性,因此要学会识别它们,有必要使用更大的训练集。事实上,较小图像数据集的缺点已经被广泛认识到[21], 但直到最近才有可能收集带有数百万图像的标记数据集。新的更大的数据集包括LabelMe([23]),它由数十万张完全分割的图像组成,以及ImageNet1([6]),它由超过22,000个类别的超过1500万张标记的高分辨率图像组成。
为了从数百万张图像中学习数千个对象,我们需要一个具有很大学习能力的模型。然而,物体识别任务的巨大复杂性意味着即使像ImageNet这样大的数据集也不能指定这个问题,所以我们的模型也应该有很多先验知识来弥补我们没有的所有数据。卷积神经网络(CNN)就是这样一类模型([16,11,13,18,15,22,26])。它们的能力可以通过改变它们的深度和广度来控制,并且它们还对图像的性质(即统计数据的平稳性和像素依赖性的局部性)做出强有力且大多数正确的假设。因此,与具有类似大小层的标准前馈神经网络相比,CNN的连接和参数要少得多,因此更容易训练,而它们的理论最佳性能可能只会稍微差一点。
尽管CNN具有一些吸引人的性质,尽管其局部架构相对高效,但大规模应用于高分辨率图像的成本仍然高得令人望而却步。幸运的是,当前的GPUs,加上高度优化的2D卷积实现,已足够强大,可以促进有趣的大型CNN的训练,并且最近的数据集(如ImageNet)包含足够的标记示例来训练这样的模型,而不会出现严重的过拟合。
本文的具体贡献如下:我们在ILSVRC-2010和ILSVRC-2012比赛([2])中使用的ImageNet子集上训练了迄今为止最大的卷积神经网络之一,并取得了迄今为止在这些数据集上报道的最佳结果。我们编写了一个高度优化的2D卷积GPU实现,以及训练卷积神经网络中固有的所有其他操作,我们将其公开发布2。我们的网络包含了许多新的和不寻常的特征,这些特征可以提高其性能并减少其训练时间,具体内容见第3节。我们的网络的规模使得过拟合成为一个重要的问题,即使有120万个标记的训练样例,所以我们使用了几种有效的技术来防止过拟合,这些技术将在第4节中描述。我们最终的网络包含五个卷积层和三个全连接层,这个深度似乎很重要:我们发现删除任何卷积层(每个层包含不超过模型参数的1%)都会导致性能下降。
最后,网络的大小主要受限于当前GPU上可用的内存量和我们愿意容忍的训练时间。我们的网络需要五到六天的时间在两个GTX 580 3GB GPU上进行训练。我们所有的实验都表明,只要等待更快的GPUs和更大的数据集可用,我们的结果就可以得到改善。
2 数据集
ImageNet是一个包含超过1500万张标记高分辨率图像的数据集,属于大约22,000个类别。这些图片是从网上收集的,并由人工标签员使用亚马逊的“Mechanical Turk”众包工具进行标记。从2010年开始,作为Pascal视觉对象挑战赛的一部分,一年一度的ImageNet大规模视觉识别挑战赛(ILSVRC)已经举行。ILSVRC使用ImageNet的一个子集,在1000个类别中每个类别中大约有1000张图像。总共大约有120万张训练图像、5万张验证图像和15万张测试图像。
ILSVRC-2010是唯一提供测试集标签的ILSVRC版本,所以这是我们进行大多数实验的版本。由于我们的模型也参加了ILSVRC-2012竞赛,因此在第6节中,我们也报告了该版本数据集的结果,其中测试集标签不可用。在ImageNet上,习惯上报告两个错误率:top-1和top-53,其中top-5错误率是正确标签不在模型认为最可能的五个标签中的测试图像的比例。
ImageNet由可变分辨率的图像组成,而我们的系统需要恒定的输入维度。因此,我们将图像降采样到256 × 256的固定分辨率。给定一个矩形图像,我们首先重新缩放图像,使较短的边长度为256,然后从结果图像中裁剪出中心的256×256补丁。我们没有以任何其他方式预处理图像,除了从每个像素减去训练集上的平均活动。所以我们在像素的(居中的)原始RGB值上训练我们的网络。
3 架构
我们的网络架构如图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+e−x)−1。就梯度下降的训练时间而言,这些饱和非线性比非饱和非线性
f
(
x
)
=
m
a
x
(
0
,
x
)
f(x)=max(0,x)
f(x)=max(0,x)慢得多。继Nair和Hinton[20]之后,我们将具有这种非线性的神经元称为整流线性单元(ReLUs)。使用ReLUs的深度卷积神经网络的训练速度比使用
t
a
n
h
tanh
tanh单元的深度卷积神经网络快几倍。图1演示了这一点,图1显示了特定四层卷积网络在CIFAR-10数据集上达到25%训练误差所需的迭代次数。这张图表明,如果我们使用传统的饱和神经元模型,我们将无法对如此大的神经网络进行实验。
图1:具有ReLUs(实线)的四层卷积神经网络在CIFAR-10上的训练错误率为25%,比具有
t
a
n
h
tanh
tanh神经元(虚线)的等效网络快6倍。每个网络的学习率是独立选择的,以使训练尽可能快。没有采用任何形式的正则化。这里所展示的效果的大小随网络结构的不同而不同,但具有ReLUs的网络始终比具有饱和神经元的网络学习速度快几倍。
3.2 在多个GPU上进行训练
单个GTX 580 GPU只有3GB的内存,这限制了可以在其上训练的网络的最大大小。事实证明,120万个训练样本足以训练一个GPU无法容纳的网络。因此,我们将网络分散到两个GPU上。当前的GPU特别适合跨GPU并行化,因为它们能够直接从彼此的内存中读取和写入,而无需通过主机内存。我们采用的并行化方案实际上是将一半的内核(或神经元)放在每个GPU上,还有一个额外的技巧:GPU只在某些层进行通信。这意味着,例如,第3层的卷积核从第2层的所有卷积核映射中获取输入。然而,第4层的卷积核只从位于同一GPU上的第3层的卷积核映射中获取输入。选择连接模式是交叉验证的一个问题,但这允许我们精确地调整通信量,直到它是计算量的一个可接受的部分。
最终的架构与 Cire¸san 等人 [5] 所采用的“柱状”CNN 有点相似,只是我们的列不是独立的(见图 2)。与在一个GPU上训练每个卷积层的核数减半的网络相比,该方案将我们的top-1和top-5错误率分别降低了1.7%和1.2%。双GPU网络比单GPU网络的训练时间稍短4。
3.3 局部响应归一化
ReLU具有理想的特性,即它们不需要输入归一化来防止它们饱和。如果至少有一些训练样例对ReLU产生了正输入,则学习将在该神经元中发生。然而,我们仍然发现下面的局部归一化方案有助于泛化。用
a
x
,
y
i
a_{x,y}^i
ax,yi表示在位置
(
x
,
y
)
(x,y)
(x,y)应用卷积核
i
i
i计算神经元活动,然后应用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
)
2
)
β
b_{x,y}^i=a_{x,y}^i/{(k+\alpha\sum^{min(N-1,i+n/2)}_{j=max(0,i-n/2)}(a_{x,y}^j)^2)}^{\beta}
bx,yi=ax,yi/(k+αj=max(0,i−n/2)∑min(N−1,i+n/2)(ax,yj)2)β
这里的求和是在相同空间位置上的n个“相邻”核映射上进行的,而N是该层中核的总数。当然,核映射的顺序是任意的,在训练开始之前就确定了。这种响应归一化实现了一种受真实神经元类型启发的横向抑制形式,在使用不同核计算的神经元输出之间为大活动创造竞争。常数
k
k
k,
n
n
n,
α
\alpha
α和
β
\beta
β是超参数,其值由验证集确定。我们使用
k
=
2
,
n
=
5
,
α
=
1
0
−
4
,
β
=
0.75
k=2,n=5,\alpha=10^{-4},\beta=0.75
k=2,n=5,α=10−4,β=0.75。我们在某些层中应用ReLU非线性后应用这种归一化(参见第3.5节)。该方案与Jarrett等人[11]的局部对比度归一化方案有一些相似之处,但我们的方案更准确地称为“亮度归一化”,因为我们没有减去平均活动。响应归一化将我们的top-1和top-5错误率分别降低了1.4%和1.2%。我们还在CIFAR-10数据集上验证了该方案的有效性:四层CNN在没有归一化的情况下测试错误率为13%,在归一化的情况下测试错误率为11%5。
3.3 重叠池化
CNN中的池化层对同一核映射中相邻神经元组的输出进行汇总。传统上,相邻池化单元所概括的邻域不重叠[17,11,4]。更准确地说,池化层可以被认为是由间隔为 s s s个像素的池化单元网格组成,每个池化单元以池化单位的位置为中心,总结了一个大小为 z × z z{\times}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。与非重叠方法 s = 2 , z = 2 s=2,z=2 s=2,z=2相比,该方法将top-1和top-5的错误率分别降低了 0.4 % 0.4\% 0.4%和 0.3 % 0.3\% 0.3%,产生同等尺寸的输出。我们通常在训练过程中观察到,具有重叠池化的模型稍微更难发生过拟合。
3.5 总体架构
现在我们准备描述CNN的整体架构。如图2所示,网络包含8层权重;前五个是卷积层,其余三个是全连接层。最后一个全连接层的输出被馈送到一个1000路softmax,它产生1000个类标签的分布。我们的网络最大化了多项式逻辑回归目标,这等同于在预测分布下,最大化训练案例中正确标签的对数概率的平均值。第二层、第四层和第五层卷积层的卷积核仅连接到位于同一GPU上的前一层中的核映射。第三层卷积层的卷积核连接到第二层的所有核映射。全连接层中的神经元与前一层中的所有神经元相连。响应归一化层位于第一和第二卷积层之后。最大池化层,如第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个神经元(参见图2)。
图2:我们的CNN架构示意图,明确显示了两个GPU之间的职责划分。一个GPU运行图中顶部的层部分,而另一个GPU运行图中底部的层部分。GPU只在某些层通信。网络的输入是150,528维,网络剩余层神经元数量为253,440-186,624-64,896-64,896-43,264-4096-4096-1000。
4 减少过拟合
我们的神经网络架构有6000万个参数。尽管ILSVRC的1000个类别使得每个训练样本对从图像到标签的映射施加了10比特的约束,但事实证明,这不足以在没有显著过拟合的情况下学习如此多的参数。下面,我们将描述两种对抗过拟合的主要方法。
4.1 数据增强
减少图像数据过拟合的最简单和最常见的方法是使用保持标签的变换来人为地扩大数据集[25, 4, 5]。我们采用了两种不同形式的数据增强,这两种方式都允许用很少的计算从原始图像生成转换后的图像,因此转换后的图像不需要存储在磁盘上。在我们的实现中,变换后的图像是在CPU上用Python代码生成的,而GPU正在训练前一批图像。所以这些数据增强方案实际上是不需要计算的。
第一种形式的数据增强包括生成图像平移和水平反射。我们通过从256×256图像中提取随机的224 × 224块(及其水平反射)并在这些提取的块上训练我们的网络来做到这一点6。这使我们的训练集大小增加了2048倍,尽管由此产生的训练样本当然是高度相互依赖的。如果没有这种方案,我们的网络将遭受严重的过拟合,这将迫使我们使用更小的网络。在测试阶段,网络通过提取五个224×224的块(四个角块和中心块)以及它们的水平反射(因此总共十个块),并对网络的softmax层在这10个块上的预测进行平均。
第二种形式的数据增强包括改变训练图像中RGB通道的强度。具体来说,我们对整个ImageNet训练集的RGB像素值集执行PCA。对于每个训练图像,我们添加发现的主成分的倍数,其大小与相应的特征值乘以从均值为零、标准差为0.1的高斯分布中抽取的随机变量成比例。因此对于每个RGB图像像素
I
x
y
=
[
I
x
y
R
,
I
x
y
G
,
I
x
y
B
]
I_{xy}=[I_{xy}^R,I_{xy}^G,I_{xy}^B]
Ixy=[IxyR,IxyG,IxyB]我们再加上以下数量:
[
p
1
,
p
2
,
p
3
]
[
α
1
λ
1
,
α
2
λ
2
,
α
3
λ
3
]
T
[\bold{p}_1,\bold{p}_2,\bold{p}_3][\alpha_1\lambda_1,\alpha_2\lambda_2,\alpha_3\lambda_3]^T
[p1,p2,p3][α1λ1,α2λ2,α3λ3]T
式中,
p
i
\bold{p}_i
pi和
λ
i
\lambda_i
λi分别为RGB像素值的
3
×
3
3\times3
3×3协方差矩阵的特征向量和特征值,
α
i
\alpha_i
αi为上述随机变量。每个
α
i
\alpha_i
αi仅针对特定训练图像的所有像素抽取一次,直到该图像再次用于训练时,才会重新抽取。该方案近似地抓住了自然图像的一个重要特性,即物体身份不受光照强度和颜色变化的影响。该方案将top-1的错误率降低了1%以上。
4.2 Dropout
结合许多不同模型的预测是减少测试误差的一种非常成功的方法[1, 3],但对于已经需要数天训练的大型神经网络来说,这似乎太昂贵了。然而,有一种非常有效的模型组合版本,在训练期间只需花费大约两倍的成本。最近引入的一种技术,称为“dropout”[10],包括以0.5的概率将每个隐藏神经元的输出设置为零。以这种方式“退出”的神经元不参与正向传递,也不参与反向传播。所以每次输入时,神经网络都会对不同的架构进行采样,但所有这些架构都共享权重。这种技术减少了神经元复杂的共同适应,因为一个神经元不能依赖于特定的其他神经元的存在。因此,它被迫学习更鲁棒的特征,这些特征与许多不同的其他神经元的随机子集一起使用时是有用的。在测试阶段,我们使用所有神经元,但将它们的输出乘以0.5,这是对通过指数级多的dropout网络产生的预测分布取几何平均数的一个合理近似。我们在图2的前两个全连接层中使用dropout。没有dropout,我们的网络显示出大量的过拟合。Dropout大约使收敛所需的迭代次数增加了一倍。
5 学习细节
我们使用随机梯度下降训练我们的模型,批量大小为128个样本,动量为0.9,权重衰减为0.0005。我们发现这种轻微的权重衰减对于模型学习是重要的。换句话说,这里的权重衰减不仅仅是一个正则化器:它减少了模型的训练误差。权重
w
w
w的更新规则为:
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
\begin{aligned} v_{i+1}&:=0.9{\cdot}v_i-0.0005{\cdot}\epsilon{\cdot}{w_i}-{\epsilon}{\cdot}{\langle\frac{\partial L}{\partial w}|_{w_i}\rang}_{D_i} \\ w_{i+1}&:=w_i+v_{i+1}\\ \end{aligned}
vi+1wi+1:=0.9⋅vi−0.0005⋅ϵ⋅wi−ϵ⋅⟨∂w∂L∣wi⟩Di:=wi+vi+1
其中
i
i
i是迭代索引,
v
v
v是动量变量,
ϵ
\epsilon
ϵ是学习率,
⟨
∂
L
∂
w
∣
w
i
⟩
D
i
\langle\frac{\partial L}{\partial w}|_{w_i}\rang_{D_i}
⟨∂w∂L∣wi⟩Di是在第
i
i
i批数据
D
i
D_i
Di上目标函数相对于
w
w
w在
w
i
w_i
wi处的导数的平均值。
我们在每一层初始化权重,使用均值为零、标准差为0.01的高斯分布。我们初始化第二、第四和第五个卷积层,以及全连接隐藏层的神经元偏置为常数17。这个初始化通过为ReLU提供正输入来加速学习的早期阶段。我们用常数0初始化其余层中的神经元偏置。
我们对所有层使用了相同的学习率,并且在训练过程中手动调整了它。我们遵循的启发式方法是,当验证错误率在当前学习率下停止改善时,将学习率除以108。学习率初始设置为0.01,并在训练结束前减少了三次。我们通过训练集的120万张图片对网络进行了大约90次的训练,这在两个NVIDIA GTX 580 3GB GPU上花费了五到六天。
6 结果
表1总结了我们对ILSVRC-2010的研究结果。我们的网络在测试集上达到了37.5%的top-1错误率和17.0%的top-5错误率9。在ILSVRC2010竞赛期间,通过对六个稀疏编码模型在不同特征上训练的预测结果进行平均的方法,获得的最佳性能为47.1%和28.2%,此后,通过对两种密集采样特征计算的Fisher向量(FVs)训练的两个分类器的预测结果进行平均的方法,公布的最佳结果为45.7%和25.7%。
表1:ILSVRC2010测试集的结果比较。斜体是其他人取得的最好成果。
我们的模型还参加了ILSVRC-2012竞赛,并在表2中报告了我们的结果。由于ILSVRC-2012测试集标签不公开,我们无法报告我们尝试的所有模型的测试错误率。在本段的其余部分,我们交替使用验证和测试错误率,因为在我们的经验中,它们的差异不超过0.1%(见表2)。本文描述的CNN达到了18.2%的top-5错误率。对5个相似CNN的预测进行平均,错误率为16.4%。我们训练了一个卷积神经网络(CNN),在最后一个池化层之上增加了一个额外的第六个卷积层,来对整个ImageNet 2011年秋季发布的数据集(1500万张图片,22000个类别)进行分类,然后在ILSVRC-2012数据集上进行“微调”,得到的错误率为16.6%。将两个在2011年秋季发布版本上预训练的CNN的预测结果与上述五个CNN的预测结果平均10,得到的误差率为15.3%。在竞赛中排名第二的参赛作品通过一种方法实现了26.2%的错误率,这种方法平均了多个在不同类型密集采样特征上计算出的FVs(Fisher向量)训练的分类器的预测结果。
最后,我们还报告了在2009年秋季版本的ImageNet上的错误率,该版本包含10,184个类别和890万张图片。在该数据集上,我们遵循文献中的惯例,将一半的图像用于训练,另一半用于测试。由于没有既定的测试集,我们的分割必然与之前作者使用的分割有所不同,但这并不会显著影响结果。在该数据集上,我们的top-1和top-5错误率分别为67.4%和40.9%,这是通过上述网络实现的,但在最后一个池化层上增加了第6个卷积层。在该数据集上发表的最佳结果分别为78.1%和60.9%。
表2:ILSVRC-2012验证集与测试集错误率比较。斜体是其他人取得的最好成果。带有星号*的模型被“预先训练”以对整个ImageNet 2011秋季版本进行分类。参见第6节了解详细信息。
6.1 定性评估
图3显示了由网络的两个数据连接层学习的卷积核。网络学习了多种频率选择性和方向选择性的核,以及各种颜色的斑点11。注意两个GPU展示的专业化,这是第3.5节中描述的受限连接的结果。GPU 1上的卷积核大多是颜色不敏感的,而GPU 2上的卷积核在很大程度上与颜色相关12。这种专业化在每次运行中都会发生,并且与任何特定的随机权重初始化无关(GPU编号重新编号的情况除外)。
图3:第一个卷积层在224×224×3输入图像上学习的96个卷积核,大小为11×11×3。上面的48个卷积核在GPU 1上学习,下面的48个卷积核在GPU 2上学习。详细信息请参见6.1节。
在图4的左侧面板中,我们通过计算网络对八张测试图像的前5个预测结果,定性评估了网络学习的内容。请注意,即使是偏离中心的物体,比如左上角的螨虫,也能被网络识别。大多数前5名的标签看起来是合理的。例如,只有其他种类的猫才被认为是豹的合理标签。在某些情况下(如格栅、樱桃),关于照片的预期焦点确实存在真正的模糊性13。
探索网络视觉知识的另一种方式是考虑图像在最后一个4096维隐藏层引起的特征激活。如果两幅图像产生具有小欧几里得距离的特征激活向量,我们可以说神经网络的更高层次认为它们是相似的14。图4展示了测试集中的五幅图像,以及根据这一度量,训练集中与它们各自最相似的六幅图像。请注意,在像素层面上,检索到的训练图像通常与第一列中的查询图像在L2距离15上并不接近。例如,检索出的狗和大象出现在各种姿势中。我们在补充材料中给出了更多测试图像的结果。
使用两个4096维实值向量之间的欧几里得距离来计算相似性是低效的,但可以通过训练一个自编码器16将这些向量压缩成短二进制码来提高效率。使用自编码器对图像的特征向量进行压缩,以实现图像检索,这种方法应该比直接对原始像素应用自编码器的图像检索方法要好得多。后者没有利用图像的标签信息,因此倾向于检索出边缘模式相似的图像,而不考虑它们在语义上是否相似。
图4:(左)八张ILSVRC-2010测试图像以及我们的模型认为最可能的五个标签。正确的标签写在每张图像下,分配给正确标签的概率也用红色条显示(如果它恰好在前5位)。(右)第一列中的五张ILSVRC-2010测试图像。其余列显示了六个训练图像,这些图像在最后一个隐藏层中产生了与测试图像的特征向量具有最小欧几里德距离的特征向量。
7 讨论
我们的结果表明,一个大型的深度卷积神经网络能够使用纯监督学习在极具挑战性的数据集上取得突破性的结果。值得注意的是,如果删除单个卷积层,我们的网络性能会下降。例如,移除任何中间层会导致网络的top-1性能下降约2%。因此,深度对于实现我们的结果非常重要。
为了简化我们的实验,我们没有使用任何无监督预训练,尽管我们预期这会有帮助,特别是如果我们能够获得足够的计算能力,在不相应增加标记数据量的情况下显著增加网络的规模。到目前为止,随着我们将网络做得更大并且训练时间更长,结果有所改善,但我们仍然需要在多个数量级上进行改进,以匹配人类视觉系统的下颞通路17。最终,我们希望在视频序列上使用非常大且深的卷积网络,其中时间结构提供了非常有用的信息,这些信息在静态图像中缺失或远不如在视频序列中那么明显。
ImageNet:是一个大型的图像数据库,用于视觉对象识别软件研究。它由斯坦福大学的研究者和其他国际合作者共同创建,是目前最大的图像识别数据库之一。 ↩︎
http://code.google.com/p/cuda-convnet/ ↩︎
Top-1错误率(Top-1 error rate):指的是模型对于测试集中的样本做出的最有可能的预测(即概率最高的那个类别)是错误的比例。比如后文中67.4%的top-1错误率意味着模型在67.4%的情况下预测的类别与真实标签不一致。Top-5错误率(Top-5 error rate):指的是模型对于测试集中的样本做出的前五个最有可能的预测中没有包含真实标签的比例。比如后文中40.9%的top-5错误率意味着模型在40.9%的情况下,真实标签没有出现在预测的前五个类别中。 ↩︎
在最后的卷积层中,单gpu网络实际上与双GPU网络具有相同数量的卷积核。这是因为网络的大多数参数都在第一个全连接层中,该层将最后一个卷积层作为输入。因此,为了使两个网络具有大约相同数量的参数,我们没有将最终卷积层的大小减半(也没有将随后的全连接层减半)。因此,这种比较偏向于支持单GPU网络,因为它比双GPU网络的“一半大小”更大 ↩︎
由于篇幅限制,我们无法详细描述这个网络,但是这里提供的代码和参数文件精确地指定了它:http://code.google.com/p/cuda-convnet/ ↩︎
这就是为什么图2中的输入图像是224×224×3维的 ↩︎
这是一种常见的偏置初始化方法,因为它可以确保在训练开始时,神经元有一定的激活概率,而不是完全被抑制或过度激活。将偏置初始化为1而不是0或其他值,可能是因为1提供了一个非零的起点,这有助于在训练初期避免神经元完全不激活的情况,尤其是在使用ReLU等非线性激活函数时,非零偏置可以减少神经元的死亡(即神经元始终不激活)问题。 ↩︎
当观察到验证错误率停止改善时,意味着当前的学习率可能太高,导致模型无法继续有效地学习。因此,将学习率减小(例如除以10)是一种常见的策略,以期望模型能够更细致地逼近最小损失值。选择除以10是一个经验法则,这个数值不是固定的,可以根据具体情况调整。除以10通常是一个较大的步长,可以快速降低学习率,但也可能导致学习率过快减小,从而错过更优的最小值。因此,这个策略需要根据模型的具体表现进行调整。 ↩︎
如4.1节所述,在不平均预测10个补丁的情况下,错误率分别为39.0%和18.3% ↩︎
预测结果平均(Averaging the predictions):这是一种集成学习方法,通过平均多个模型的预测结果来提高整体的预测性能。这种方法可以帮助减少单个模型的不确定性,并利用不同模型的互补优势。集成学习(Ensemble Learning):通过结合多个模型的预测结果,集成学习可以提高模型的泛化能力,减少过拟合,并提高模型的稳定性。 ↩︎
指的是网络学习到了多种能够选择不同频率和方向的特征的卷积核。在图像处理中,频率选择性指的是对图像中不同尺度(模糊或清晰)的特征敏感,而方向选择性则是指对图像中不同方向(如水平、垂直或对角线)的特征敏感。 ↩︎
在GPU 1上学习的卷积核大多数对颜色不敏感,即这些卷积核在识别图像特征时,不太依赖于颜色信息,更多地关注图像的形状、纹理等其他特征。在GPU 2上学习的卷积核大多数是颜色特定的,即这些卷积核在识别图像特征时,对颜色信息非常敏感,颜色成为了它们识别和区分特征的重要因素。 ↩︎
指的是关于照片的预期焦点或主题的不确定性。换句话说,观看照片的人可能不清楚照片的主要焦点应该是什么,或者照片想要强调的是什么
↩︎“欧几里得距离”是衡量两个点在欧几里得空间中的距离,即直线距离。“小欧几里得距离”意味着这两个特征激活向量在高维空间中彼此接近。这句话说明了一种通过比较特征激活向量的距离来判断图像相似性的方法。在神经网络中,如果两个输入图像在高层网络中引起的特征激活向量相近,那么网络会认为这两幅图像在视觉特征上具有相似性
↩︎L2范数,也称为欧几里得距离,是一种衡量两个向量(或图像)之间差异的度量方式。
↩︎自编码器是一种神经网络,它可以通过学习将高维数据压缩成低维表示,同时尽可能保留原始数据的信息。自编码器来提高高维向量相似性计算效率的方法:通过将高维向量压缩成短二进制码,可以减少计算量和存储空间,从而提高相似性计算的速度和效率。这种方法在处理大规模数据集和复杂模型时特别有用。
↩︎下颞通路是人类视觉系统中负责处理视觉信息的重要部分,涉及物体识别和视觉记忆等功能。 ↩︎