摘要
在这项工作中,我们调研了在大规模图片识别问题上卷积核的深度对其准确率的影响,我们主要的贡献在于通过使用非常小(3x3)的卷积核来增加评价网络的深度,这项工作与以往的相比有显著提升,网络结构可以被加深至16-19层,这是我们在2014年ImageNet大赛上的应用,我们的团队取得了定位项目的第一名和分类项目的第二名。我们的模型在其他数据集上的效果也远超最先进的成果,我们将性能最好的两个模型公开,用于计算机视觉领域的深度视觉表示的进一步研究。
1.介绍
近期,卷积神经网络在大规模图片和语音识别中获得了巨大成功,归因于像ImageNet这样的大规模公开图片仓库、像GPU这样的高性能的计算系统或大规模分布式集群。尤其在于ImageNet大规模视觉识别竞赛(ILSVRC)在最高级的深度视觉识别领域中扮演了重要角色,作为几代大型图像分类系统的试验台,从高维浅层特征编码到深层卷积网络。
卷积神经网络越来越成为计算机视觉领域的常见方法,很多人通过改变K的原始结构以获得更高的准确率。例如,2013年ILSVRC中提交的最好表现在第一层卷积层中利用较小的接收窗口尺寸和较小的步长,另一条改进措施是在整个图像和多个尺度上密集地训练和测试网络。在这篇论文中,我们解决了神经网络结构设计的另一个方面——它的深度。为此,我们固定了结构中的其他参数,通过增加卷积层来加深网络结构的深度,由于在所有卷积层中都使用了非常小(3x3)的卷积核,因此这种想法可行。
结果,我们建立起一个更加准确的网络结构,不仅在ILSVRC分类和定位项目中取得了最好的准确率,而且可应用于其他图片数据集上面,即使用一种相对简单的方法,也能达到很好的效果(比如用一个没有进行微调的SVM进行深度特征分类)。我们发布了两个表现能力最好的模型来促进以后的工作。
论文的其他部分组织如下:第二部分,我们描述了我们的网络构造,图片分类和评估的细节在第三部分中展示,与ILSVRC竞赛任务中的对比结构在第四部分,第五部分是总结。为了完整性,我们在附录A中描述并评估了ILSVRC物体位置检测系统,在附录B中概括性地讨论了很深的特征对于其他数据集的效果,附录C包括了主要的论文修正列表。
2.卷积网络构造
2.1结构
训练过程,网络输入为224x224的固定尺寸RGB图片,唯一的预处理为:在训练集上面计算每个像素点与RGB三个通道的平均值的差值。输入图片通过一系列的卷积层,这些卷积层中使用非常小的感受野:3x3(这种非常小的尺寸可以捕获到上下左右的概念)。在其中的一个结构中,我们也使用了1x1的卷积核,这种卷积核可以看做是输入通道的一种线性转换。卷积的步长固定为1个像素点,卷积层输入的空间填充就像在卷积结束之后空间分辨率被保留,比如为3x3的卷积层加1个像素的填充。空间池化在五个卷积层中完成,这些池化在某个卷积操作之后进行(而不是在每一个卷积操作之后都进行)。2x2的像素窗,步长为2的最大池化的效果最好。
一堆的卷积层(不同深度不同结构)之后接着全连接层:前两个全连接层每层都有4096个通道,第三层有1000个通道对应ILSVRC比赛的1000种分类(每个通道对应一个类)。最后一层是softmax层,全连接层的结构在整个网络结构中都一样。
所有的隐藏层都设置了ReLU非线性函数,我们在网络中没有设置局部响应归一化(LRN):在第四部分中展示,这种归一化在ILSVRC比赛数据集中并不能提高网络性能,却会增加内存占用和计算时间。
2.2构造
这篇文章中卷积网络的构造和评估在表1中的每一列列出,接下来我会从A到E说明每种网络的结构。所有的结构正如2.1中的通用设计,唯一不同的是网络的深度:从A的11层(8层卷积层和3层全连接层)到E的19层(16层卷积层和3层全连接层)。卷积层的宽度(通道数量)相当小,从第一层的64之后每次最大池化后增加2倍,最终增加到512.
在表2中我们介绍了不同结构的参数量,尽管网络层数非常深,网络的权重参数数量仍没有达到之前卷积宽度和感受野的参数量。
2.3讨论
我们的网络结构与2012(AlexNet)、2013(AFNet)年的最佳结构有很大不同,在第一层卷积层中并没有使用大的感受野(AlexNet是11x11,步长为4,ZFNet是7x7,步长为2),我们在整个网络中都是用非常小的3x3的感受野,在输入图片的每个像素进行(步长为1)。显而易见,两个3x3的卷积层堆在一起,和5x5的具有相同的效果感受野,三个3x3的卷积层堆在一起,和7x7的具有相同的效果感受野。尽管这样,我们为什么要用三个3x3的卷积层来代替一个7x7的卷积层呢?首先,我们合并了三个非线性修正层而不是一个,这使得决策函数具有更高的判别能力。第二,我们减少了参数量,假设输入输出的一个三层的3x3的卷积层具有C个通道,一个堆的参数量为3x(3C)^2=27C^2个权重;同样的7x7的卷积网络则需要(7C)^2=49C^2个参数,多了81%的参数量。这可以看成 是在7x7卷积层中增强了正则化,迫使他们通过3x3的滤波器进行分解。
掺入1x1的卷积层(C结构中)是一种增加决策函数非线性化而没有效果感受野。
小尺寸的卷积核在之前就被Ciresan等人使用过,但是他们的网络没我们的深,他们也没有在大规模ILSVRC数据集上评估Goodfellow等人应用深度网络(11个权重层)解决数字识别任务,并表明层数加深会得到更好地效果。GoogLeNet,2014年ILSVRC分类任务的冠军,并不依赖于我们的工作,但是同样基于非常深的卷积网络(22层)和小的卷积核(除了3x3,他们还用了1x1,5x5的卷积核)。然而,他们的网络拓扑结构要比我们的更加复杂,并且为了减少计算,feature map的空间解析在第一层中就被降低,正如我们将在4.5中展示的那样,就单网络准确率而言,我们的模型比Szegedy的要好得多。
3.分类框架
在前面几个部分中我没让你介绍了网络结构的细节,在这部分中,我们将描述分类卷积网络训练和评估的细节。
3.1训练
卷积网络的训练程序大体遵循Krizhevsky等人的(除了从多尺寸训练图片中截取输入图片,后面解释),同样的,训练通过使用带有动量的小批量梯度下降(基于反向传播)优化多想逻辑回归目的得以实现。批尺寸设置为256,动量为0.9。训练过程正则化权重衰减(L2罚项乘数设置为5e-5)并且前两层全连接层进行dropout衰减(dropout设置为0.5)。初始化的学习率为0.01,之后当验证集准确率不再提升时缩小10倍。总的来说,学习率减小了三次,在370000次(74epochs)迭代后停止。我们推测尽管我们与Krizhevsky相比具有更多的参数和更深的网络,网络被要求汇集少的epoch就可以收敛,a)通过更深和更小的卷积核实现隐式正则化,b)在某些层进行与初始化。
这个网络权重初始化非常重要,因为坏的初始化会因为在深层网络中梯度的不稳定而停止学习。为了规避这个问题,我们起初训练了A结构(表1中),浅层网络通过随机初始化进行足够的训练,然后,在训练深层结构时,我们用A网络中的层来初始化前四层卷积层和后三层全连接层(中间层随机初始化)。在预初始化阶段没有降低学习率,允许它们在学习阶段发生变化,对于随机初始化(应用的部分),我们从均值为0,方差为0.01的正态分布中进行权重取样,偏置初始为0。值得注意的是,在提交论文之后,我们发现可以通过使用Glorot&Bengio(2010)的随机初始化程序来初始化权重而不进行预训练。
为了获得固定224x224尺寸的输入图片,从重新调整的训练图片中随机剪裁(每张图片使用SGD迭代剪裁一次),为了增加训练集,剪裁过程经历了随机横向翻转和RGB色彩的随机转换,训练图片重新缩放如下所示。
训练图片尺寸。
我们考虑了两种设置训练规模S的方法。第一种是固定S,对应为单规模训练()