摘要:
在这篇论文我们主要研究卷积神级网络的深度对大范围图像识别效果的影响,我们发现增加神经网络层数增加到16-19层时我们的实验结果有很大的提高。这使得我们在2014年的ImageNet Challenge中取得了定位第一和分类第二的成绩。
动机:
卷积神经网络可能因为有了大量的公开图像库而取得了巨大的成功,一些图像识别比赛比如ILSVRC为图像识别系统提供了测试。卷积神经网络在计算机视觉领域更多的是变成了一个商品,很多提升卷积神经网络的准确性的尝试被提了出来,本文提出的一个尝试是增加神经网络的深度。
主要观点:
一、卷积模型
网络的输入是固定尺寸的224×224的RGB图像,唯一的预处理是每个像素减去RGB均值。这篇论文采用3×3的卷积核,步长为1,一系列卷积层后跟着一个池化层,以此反复。这里3×3的卷积核相比于7×7的卷积核有两个好处:1.包含三个ReLu层而不是一个(增加了非线性)2.使用了更少的参数。
二、训练模型
这里除了对图形采样方法不同外,其他训练过程和AlexNet一样。使用mini-batch gradient descent训练,Batch size为256,momentum为0.9,使用L2正则化,正则化系数为5×10^-4,在前两层全连接层设置dropout为0.5。初始学习率为0.01,然后当验证集上侧误差不变时,学习率除以10。权重初始化很重要,不好的初始化可能会导致网络停止学习。为了解决这个问题,我们首先训练浅层的A网络(A网络的权重随机初始化),然后训练更深层的网络时,我们使用A网络的权重参数来初始化深层网络的前4层卷积层和后3层全连接层,其余层的权重随机初始化。权重随机初始化采用0均值,方差为0.01的正态分布,偏置初始化为0。但是后来发现,不使用浅层预训练的参数,而使用随机初始化也可以。
这里对图像的训练比较重要,有两种方法:
1.固定S(训练图像)的大小,称为单尺度训练(single-scale training)。实验中,使用两种大小的S尺度进行训练,S=256和S=384。我们首先使用S=256训练网络,然后为了加速训练S=384的网络,我们使用S=256的网络的参数进行初始化,初始学习率为0.001。
2.多尺度训练(multi-scale training),即让S在[Smin, Smax]范围之内进行随机采样,然后将训练图像重新调整大小为S。由于图像中的物体大小是不同的,因此把这个考虑在内是很有用处的。这种方法也可以看成通过尺度抖动(scale jittering)来增强训练数据集。为了加快训练速度,我们在单尺度S=384模型的基础上进行fine-tuning。
三、测试模型
测试阶段,我们对于一张图, 重新定义它的规模大小,使得最短的边大于等于224,然后可以把这个图简称多个224×224的模型,分别测试,对最后测试结果取平均值。
四、评估方法
1.单尺度评估:当S为固定大小时,测试图像大小为Q=S;当S ∈ [Smin, Smax]时,Q = 0.5(Smin +Smax)
2.多尺度评估:下面评估在测试阶段使用尺度抖动带来的影响。它包括在一个测试图像(对应于不同的Q值)的几个重新缩放的版本上运行一个模型,然后平均所得到的类的后验概率。考虑到如果训练图像和测试图像如果尺度差别大的话,会导致性能的下降,因此对于固定大小的S,测试时使用3种接近S的尺寸Q={S-32,S,S+32}。对于S ∈ [Smin; Smax]的情况Q={Smin,0.5(Smin+Smax),Smax}。
3.MULTI-CROP EVALUATION
4.模型融合
五、结果
深度越深,实验结果越好,多尺度测试比单尺度测试结果要好,大量crops的测试结果可以进一步提高正确率,多模型融合也可以提高正确率。