摘要: 本文调查了卷积网络深度对大尺寸图像识别准确度的影响。主要的贡献是使用一个带有很小(3x3)卷积核的架构对网络增加深度的完整评估,该架构展示了通过使用16~19权重层深度在现有的技术表现上的显著改善。该发现基于ImageNet挑战2014,其在定位与分类任务分别获得第一与第二。本文也展示了其表现推广到其他数据集也能达到高水准的结果。其中两个表现最好的卷积网络模型已经开源,以推进计算机视觉中深度视觉的更进一步研究。
一、简介
卷积网络在大尺寸图像与视频识别中已经取得了重大的成功。随着卷积网络在计算机视觉领域的普及,为了提高原始框架的准确率做出了大量的尝试。本文讨论卷积网络架构设计的一个重要方向——深度。为此,本文固定架构的其他参数,稳步的通过添加更多卷积层增加网络的深度,并在所有层中使用很小的(3x3)卷积。
因此,本文提出了显著的更加准确的卷积架构,不仅在ILSVRC分类与定位任务中达到了高水准的准确率,而且可以应用到其他图像识别数据集,即使使用部分相对简单的方法都可以达到出色的表现(例如使用线性SVM分类深度特征而不进行微调)。其中两个表现最好的卷积网络模型已经开源,以推进计算机视觉中深度视觉的更进一步研究。
二、卷积网络结构
为了衡量在合理的设置下,卷积网络深度的增加带来的提升,卷积网络层的结构都是用同样的原则设计。
2.1 架构
在训练过程中,卷积网络的输入是224x224的RGB图像。所做的唯一的预处理是在训练集的每个像素减去平均像素值。图像经过一系列卷积层,并使用很小感受野:3x3(捕捉邻域状态的最小尺寸)的滤波器。结构中也使用1x1的卷积滤波器,可以看作输入通道的线性变换(后接非线性)。卷积步长固定为1像素。卷积层输入的空间填充导致了卷积后的空间分辨率得以保存,即对于3x3卷积层的填充为1像素。空间池化通过五个最大池化层使用,其在一些卷积层之后(并非所有的卷积层都后跟最大池化)。最大池化使用步长2的2x2窗口。
堆叠的卷积层(在不同的架构中有不同的深度)后跟三个全连接层,前两层各有4096个通道,第三层执行1000类的ILSVRC分类,因此有1000个通道(每个通道对应一类)。最后一层是弱极大【softmax】层,所有网络的全连接层结构都相同。
所有隐藏层使用非线性整流(ReLU)。注意到该网络都不(本应该有一个)包含局部响应归一化【Local Response Normalisation,LRN】,该归一化没有改善ILSVRC数据集上的表现,但导致了内存与计算时间的增加。
2.2 结构
本文评估的卷积网络的结构,在表1的每一列概述。接下来通过其名字(A-E)指明网络。所有的结构遵从2.1节提出的一般性设计,只在深度不同:从网络A中11层权重层(8个卷积层,3个FC层)到网络E中19层权重层(16个卷积层,3个FC层)。卷积层的宽度(通道数)相当小,第一层从64开始,通过每个最大池化层时增大2倍,直到到达512。
在表2列出了每种结构的参数数量。尽管深度较大,但网络的参数数量没有超过更宽的卷积层与更大的感受野的浅层网络。
表1:卷积网络结构。结构深度从左(A)到右(E)以此增加,层也随之增加(增加的层已经加粗)。卷积层的参数定义为
c
o
n
v
⟨
conv\lang
conv⟨感受野
⟩
−
⟨
\rang-\lang
⟩−⟨通道数
⟩
\rang
⟩。为了简介,ReLU激活函数没有展示。
表2:参数数量,以M为单位。
2.3 讨论
本文的卷积网络结构与曾经有着顶级表现的网络的不同,相比于在第一卷积层使用相对的大感受野,本文使用了非常小的3x3感受野并遍布整个网络,其卷积了输入的每个像素(步长为1)。可以简单的看出堆叠的两个3x3卷积层(之间不使用空间池化)有着5x5的有效感受野,三个则有7x7的有效感受野。使用堆叠的三个3x3卷积层代替单独的7x7卷积层,首先,合并三个非线性整流层代替单独的一层,使得决策函数的区分度更高;其次,减少了参数的数量:假设三层3x3堆叠卷积的输入与输出都有C个通道,那么权重数量为
3
(
3
2
C
2
)
=
27
C
2
3(3^2C^2) = 27C^2
3(32C2)=27C2,而7x7的卷积层需要
7
2
C
2
=
49
C
2
7^2C^2 = 49C^2
72C2=49C2个参数,额外增加了81%。
1x1卷积层用于在不考虑感受野的情况下增加决策函数的非线性。尽管1x1卷积本质上是空间同一维度上的线性投影(图像输入与输出通道相同),额外的非线性由整流函数引进。
三、分类流程
3.1 训练
训练由优化多类逻辑回归目标驱动,使用基于动量的小批样本梯度下降。批样本尺寸为256,动量为0.9。使用权重衰减正则化(L2惩罚因数为0.0005),随机失活正则化在前两个全连接层(随机失活因数为0.5),学习率设为0.01,并在正确率停止提升时衰减10倍。学习率共衰减3次,在74轮370K次迭代后停止学习。
首先训练表1的A结构,并使用A网络层初始化前四个卷积层与后三个全连接层。初始化使用0均值与0.01方差的正态分布。
输入图像裁剪、翻转并对RBG颜色随机偏移。
3.2 测试
预处理,送入网络并取得图像的类得分。
3.3 详细操作
使用开源的C++的框架Caffe,在4块NVIDIA Titan Black GPU上训练,花费2到3周,其取决于框架。
四、分类实验
4.1 单规模评估
4.2 多规模评估
五、结论
本文证实深度有益于分类准确度的提升。