VGGNet论文翻译,小卷积核、更深网络的引领者
VGGNet: Very Deep Convolutional Networks for Large-Scale Image Recognition
Karen Simonyan, Andrew Zisserman, 2014
Visual Geometry Group, Department of Engineering Science, University of Oxford
1. Introduction
卷积网络(ConvNets)近期在大规模图像和视频识别中大获成功,这得归功于大量公开图片集和高性能计算系统。特别的是,深度视觉识别架构在ILSVRC获得的重要角色,成为了大规模图片分类系统的试验场。
随着卷积网络在计算机视觉领域越来越常用,业界对AlexNet原始架构做出了多种改进尝试以获得更高的准确度。比如ILSVRC 2013的最佳成绩在第一个卷积层使用了更小的感受野大小和更短的步长。另一条提升途径是用整个图片的多个尺度来密集地训练测试网络。在本论文中,我们着重于卷积网络架构设计的重要方向——深度。为了这一目的,我们固定了架构中的其他参数,不断地通过增加卷积层来增加网络深度。由于在所有层使用非常小的卷积核,这一方式变得可行。
我们得到了精确得多的卷积网络架构,它不仅在ILSVRC分类和定位任务获得前沿的准确率,还能应用于其余图片识别数据集。甚至只是用作简单流程的一部分时,也取得了非常好的性能。我们公布了两个最佳模型以助于进一步的研究。
本论文以如下形式组织。在章节2,我们描述了我们的卷积网络配置。图片分类的训练和测试细节在章节3,在章节4中比较了这些配置。章节5总结了本论文。为了完备性,我们还在附录A中描述并评估了我们的ILSVRC 2014物体定位系统,并在附录B中讨论了将极深特征泛化到其余数据集。
2. ConvNet Configurations
为了在公平的设定中评价增加卷积网络深度带来的提升,我们所有卷积网络配置都设计为使用同样的准则,这是被Ciresan等人和Krizhevsky等人激发的。在本节,我们首先描述我们卷积网络的通用设计(2.1),并描述用于测试的特殊配置细节(2.2)。2.3中讨论了我们的设计细节,并与先驱进行了比较。
2.1 Architecture
训练时网络使用的输入图片固定为$224\times 224$的RGB。我们使用的唯一预处理是为每张图的每个像素减去训练集的平均RGB值。图片穿越堆叠的卷积层,我们使用非常小的卷积核,感受野大小为$3\times3$(是带有左右、上下、中心的最小尺寸)。在有的配置中我们也使用$1\times1$的卷积核,可被看做输入通道的线性变换(后跟非线性化)。卷积步长固定为1像素;卷积层输入时采用空间填充,使卷积计算后空间分辨率得以保持,如$3\times3$的卷积层需填充1像素。空间池化通过5个最大池化层进行,它们跟在某些卷积层后。最大池化窗口为$2\times2$,步长为2.
一个卷积层栈(它们有不同的深度和结构)后跟一个全连接层FC:前两个每个都有4096个通道,最后一个需要进行1000路ILSVRC分类,因此有1000个通道。最后一层是soft-max层。所有网络中,FC配置都一样。
所有中间层都配备了非线性整流函数ReLU。值得说明的是我们的网络除了一个之外,均不含Local Response Normalisation LRN:如章节4中展示的那样,这一归一化并不能提升在ILSVRC上的性能,而且会增大内存占用和时间消耗。在使用了的地方,LRN层参数都是来自Krzhevsky等人的。
2.2 Configurations
本论文的卷积网络配置都在表1中列出。在论文后续部分我们只会使用它们的名字(A-E)。所有的配置都遵从章节2.1的通用规则,仅仅在深度上有不同:从网络A中的11层(8卷积3全连接)到E的19层(16卷积3全连接)。卷积层的宽度(通道数)都非常小,从第一层的64开始,每个最大池化层都乘以2,直到达到512.
我们在表2中列出了每种配置的参数量。尽管有更大的深度,我们的网络并不比那些更窄有着更大卷积核尺寸和卷积通道的网络参数量大。
2.3 Discussion
我们的配置与过去顶级成绩所使用的有较大不同。与其在第一个卷积层使用相对大的感受野(AlexNet $11\times 11$ 步长为4,ZFnet $7 \times7$ 步长为2),我们在整个网络都使用了非常小的卷积核$3\times3$,能在输入中的每个像素进行卷积(步长为1)。堆叠两个$3\times3$的卷积层(之间没有空间池化)有与$5\times5$等效的感受野;堆叠3个就等效$7\times7$。那么我们这样做,如堆叠3个$3\times3$卷积层而不是一个$7\times7$卷积层,的好处是什么呢。首先,我们包含了3个非线性激活层,而不是1个,这让决策函数更有辨识力。其次,我们缩减了参数量:假如3层$3\times3$卷积栈的输入输出都是C个通道的话,该栈可通过$3(3^2C^2)=27C^2$个权重参数化;而一个$7\times7$卷积层将需要$7^2C^2=49C^2$个参数,增多了81%。这可以看做为$7 \times7$卷积核引入了一个正则化,强制它们分解为$3\times3$卷积核(其中没有加入非线性化)。
并入$1\times1$卷积层(表1,配置C)是一种为决策函数增加非线性的办法,同时还不影响卷积层的感受野。尽管在我们这里$1\times1$卷积层实质上是在同样维度空间上的一个线性投影(因为输入输出通道数相等),我们使用整流函数引入了额外的非线性。值得一提的是近期的Network in Network也使用了$1\times1$卷积层。
CiresanNet曾用过小卷积核,但它们的网络深度远远低于我们,且未在大规模ILSVRC数据集上评估。Goodfellow等人将深度卷积网络(11层)应用于街牌号识别,并展示了提升深度能获得更好的性能。GoogLeNet,一个ILSVRC 2014最佳记录,与我们的研究独立进行,也使用了极深的卷积网络(22层)和小卷积核(不光是$3\times3$,他们还使用$1\times1$和$5\times5$)。但它们的网络拓扑要比我们的复杂得多,为了减少计算量,空间分辨率也在首层减少很多。在章节4.5也会显示,我们的模型在单网络准确度上超越了GoogLeNet。
3. Classification Framework
在上一节我们介绍了网络配置细节。本节我们将描述训练和测试中的细节。
3.1 Training
卷积网络训练流程大体按照AlexNet的方法(除了从多尺度的训练图片采样输入图片块,这将在后面解释)。即,训练是通过带动量的mini-batch SDG(基于LeNet的反向传播)优化多项式逻辑回归目标来完成的。batch size为256,动量为0.9。训练通过权重衰减($L_2$惩罚乘数设为0.0005)来正则化,并在前两个FC应用dropout正则化(dropout比例设为0.5)。学习率初始化为0.01,并在验证集准确度不再提高时除以10。总得来说,学习率下降了3次,训练在370k次迭代(74个epoch)后停止。尽管我们比AlexNet参数多、深度大,却只需更少的epoch训练来收敛的原因是有:(a)由深度和更小的卷积核隐式引入的正则化;(b)相关层的预初始化。
网络权重的初始化很重要,因为在深度网络中,不好的初始值会因梯度的不稳定停滞训练。为了绕过这一问题,我们从训练配置A开始,足够窄以致随机地初始化后也能训练。接着在训练更深的网络结构时,我们用来自网络A的权重初始化前4个卷积层和后3个全连接层(所有中间层随机初始化)。我们并未降低预初始化层的学习率,让它们在训练中可以改变。在随机初始化时,我们使用了均值为0方差为0.01的正态分布。bias被初始化为0。值得一提的是,论文提交后我们发现可以通过Glorot和Bengio的随机初始化流程,而不用预训练初始化。
为了获得固定大小的$224\times 224$卷积网络输入图片,过去的做法是随机从缩放后的训练图片截取下来(每次SGD每张图片截一块)。为了进一步增广训练集,被截取的图片块将随机水平翻转,随机RGB色差。训练图片的缩放将在随后解释。
Training image size. 设S为一个等轴缩放过(isotropically-rescaled)的训练图片的短边,也是卷积网络输入裁剪的来源(我们同样使用S指代训练尺度)。因为截取块大小为$224\times224$,故S不能小于224:如果S=224,截取块会得到整张图片的信息,完全跨越一张训练图片的短边。如果S远大于224,则截图会是图片的一小块,包含一个小物体或物体的一部分。
我们考虑了两种设置训练尺度S的方法。第一种是固定S,即单尺度训练(需要注意抽样块中的图像内容仍能表达多尺度)。在我们的实验中,我们评估了用两个固定尺度训练的模型:S=256(在过去的研究中广泛应用)和S=384。给定一个卷积网络配置,我们首先用S=256训练。为了加速S=384网络的训练,它会被S=256预训练的权重初始化,而且我们会使用更小的学习率,0.001。
第二个方法是多尺度训练,每个训练图片都独立地用一个来自$[S_{min},S_{max}]$(我们使用256和512)的随机采样S缩放。因为图片中物体可能有不同的大小,在训练中考虑这一点会有用。这也可看做训练集尺度扰动的数据增广,让单模型在各种尺度物体上训练。出于速度的原因,我们预训练一个固定尺度S=384的模型,再用同样配置,基于单尺度模型权重调优多尺度模型。
3.2 Testing
在测试时,给定一个训练好的卷积网络和一个输入图像,它通过如下方式分类。首先等轴缩放到预定义的最小图像边,记做Q(也用它指代测试尺度)。Q不需要与S相等(我们会在章节4展示,使用多个尺度的Q能提升性能)。接着网络以一种类似Sermanet的方式密集地应用在缩放后的测试图片上。 也就是,首先将FC层转换成卷积层(第一个转换为$7\times7$,最后两个转换为$1\times1$卷积层)。得到的全卷积网络应用于整个图片上(未剪切)。结果是一个类得分map,其通道数等于类数量,以及一个可变的空间分辨率,它依赖于输入图片尺寸。最终,为了得到该图的固定大小类得分向量,对类得分map进行空间平均(sum-pooled)。我们也对测试集使用水平翻转进行增广;最终使用soft-max来获得图片的最终得分。
因为全卷积网络应用于整张图片,因此测试时不再需要采样多个截图块,因为需要网络重计算每个截图块,那样效率更低。然而,像GoogLeNet那样使用一大堆截图块能提升准确率,因为它相比FCN得到了输入图片的更精细的抽样。同样,因其不同的卷积边界条件,多截图块检测也是密集检测的一个补足:将卷积网络应用于一个截图块时,多截图块方法是用0填充卷积feature map的,而在密集检测中是来自图片邻近部分,这能潜在地提升网络整体感受野,捕获更多的上下文。同时我们相信实际运用中多截图块带来的精确度提升不值得其计算时间消耗。我们也用每个尺度50个截图块($5\times5$常规截图再加翻转)来测试了我们的网络以供参考,共3个尺度下的150个截图块。
3.3 Implementation Details
我们使用Caffe实现,但进行了不少修改来让我们在单系统的多GPU上训练并测试,以及在多尺度的原图上训练和测试。多GPU训练需要数据并行,将每个batch训练图片分割到GPU各自batch中,在各GPU种并行处理。在GPU batch的梯度计算出后,进行平均以获得整个batch的梯度。梯度计算在各GPU中是同步的,因此结果与单GPU训练一致。
4 Classification Experiments
Dataset. 在本章,我们展示了本论文所述结构的卷积网络在ILSVRC 2012数据集上的分类结果。该数据集有着1000类图片,并分作3个子集:训练(130万张),验证(5万张)和测试(10万张)。分类性能用两个指标评估:top-1和top-5误差。前者是多类分类错误,如错误分类的图片占比;后者是ILSVRC的主要指标,通过gt类不属于前五预测类的图片的占比计算。
4.1 Single Scale Evaluation
我们从对不同的模型以章节2.2的层设置,进行单尺度测试。测试图片设置如下:对于固定的S,令$Q=S$;对于扰动的$S \in [S_{min},S_{max}]$,$Q=0.5(S_{min}+S_{max})$,结果见表3。
首先,我们注意到在没有任何归一化层的模型A使用local response normalisation(A-LRN网络)没有提升。因此在更深的结构(B-E)中不再使用归一化。
其次,我们观察到随着卷积网络深度增加,分类错误会减少:从11层的A到19层的E。需要注意的是,虽然有同样的深度,但配置C(包含3个$1\times1$卷积层)不如D(使用了$3\times3$卷积)。这说明虽然增加非线性的确有用(C比B好),不重要的感受野卷积到的空间上下文是很重要的(D比C好)。错误率在深度达到19后稳定,但更深的模型也许能从更大的数据集中获利。我们也把B与更窄的五层$5\times5$卷积比较,它是通过替换B中每一对$3\times3$卷积层(如章节2.3所讲,它们感受野相同)来得到的。更窄的网络的top-1 error要比B高7%,这也确认了更深网络更小卷积优于更窄网络更大卷积。
最终,在训练时的尺度抖动($S\in [256;512]$)得到了比在固定小边尺寸($S=256$,$S=384$)训练好得多的结果,尽管测试时使用的单尺度。这证明了训练时使用尺度抖动进行增广确实有助于捕捉多尺度的图片信息。
4.2 Multi-Scale Evaluation
在单尺度上测试这些模型之后,我们开始评估测试时尺度抖动的作用。它在一个模型上运行一张图片的多个缩放后版本(对应Q不同的值),并对结果值取平均。考虑到测试和训练尺度不一会带来的性能下降,模型以与训练尺度相似的尺度进行测试:$Q = \{ S-32,S,S+32\}$。同时在训练时的尺度扰动允许模型测试时的可用尺度更广,故以$S\in [S_[min],S_{max}]$训练的模型通过大范围的$Q=\{S_{min},0.5(S_{min}+S_{max}),S_{max}\}$测试。
结果如表4,说明测试时的尺度扰动能提升性能(与表3的以单尺度测试的同模型相比)。与之前相同,最深的网络结果最好,训练时的尺度扰动也比单尺度好。我们在验证集上的最佳单网性能为24.8%/7.5的top-1/top-5 error(表4中加粗)。在测试集上,配置E达到7.3%的top-5 error。
4.3 Multi-Crop Evaluation
在表5中我们比较了多截图块测试和密集检测测试(细节见3.2)。我们还用它们各自softmax平均值评估了两个方法的互补性。可以看出多截图块方法性能稍好,而它们确实是互补的,因为它们的组合性能最好。如之前提到的那样,我们猜测这是因为它们卷积边界条件的不同。
4.4 ConvNet Fusion
直到现在为止,我们都在测试单个模型性能。在这一部分,我们将通过对其soft-max输出进行平均来组合多个模型。因模型完备性的增加,这能提升性能。
结果见表6。在提交ILSVRC时我们仅仅训练了单尺度网络和一个多尺度模型D(通过仅调优全连接层)。组合7个网络得到了7.3%的test error。在提交后我们考虑只组合两个性能最佳多尺度模型(D,E),使用密集检测错误率为7%,使用密集加多尺度测试得到6.8%。
4.5 Comparison with the State of the Art
表7是我们结果与前沿结果的比较。在ILSVRC 2014 分类竞赛中,我们的VGG使用7个模型的组合,以7.3%的错误率得到了第二名。在提交后,我们通过两个模型的组合进一步将错误率降低到6.8%。
如表7所示,我们的极深卷积网络显著地超越了上一代模型,与本次竞赛的冠军GoogLeNet也相差无几(它们是6.7%)。考虑到我们的最佳结果是只组合了两个模型获得的,比大部分提交的方案都少。在单模型中我们的性能最佳,高过GoogLeNet 0.9%。
5 Conclusion
在本论文中,我们使用大规模图片分类任务测试了极深卷积网络(19层)。证明了深度表达对于分类准确度有帮助,而在ImageNet上传统卷积网络结构(LeNet,AlexNet)增大深度后能取得前沿性能。在附录中,我们还展示了本模型能泛化到许多任务和数据集上,并取得与构建于更浅的图片表达深度上的更复杂的识别流程相当甚至更好的结果。我们的结果再一次证明了视觉表达上深度的重要性。
References
Bell, S., Upchurch, P., Snavely, N., and Bala, K. Material recognition in the wild with the materials in context
database. CoRR, abs/1412.0623, 2014.
Chatfield, K., Simonyan, K., Vedaldi, A., and Zisserman, A. Return of the devil in the details: Delving deep
into convolutional nets. In Proc. BMVC., 2014.
Cimpoi, M., Maji, S., and Vedaldi, A. Deep convolutional filter banks for texture recognition and segmentation.
CoRR, abs/1411.6836, 2014.
Ciresan, D. C., Meier, U., Masci, J., Gambardella, L. M., and Schmidhuber, J. Flexible, high performance
convolutional neural networks for image classification. In IJCAI, pp. 1237–1242, 2011.
Dean, J., Corrado, G., Monga, R., Chen, K., Devin, M., Mao, M., Ranzato, M., Senior, A., Tucker, P., Yang,
K., Le, Q. V., and Ng, A. Y. Large scale distributed deep networks. In NIPS, pp. 1232–1240, 2012.
Deng, J., Dong, W., Socher, R., Li, L.-J., Li, K., and Fei-Fei, L. Imagenet: A large-scale hierarchical image
database. In Proc. CVPR, 2009.
Donahue, J., Jia, Y., Vinyals, O., Hoffman, J., Zhang, N., Tzeng, E., and Darrell, T. Decaf: A deep convolutional
activation feature for generic visual recognition. CoRR, abs/1310.1531, 2013.
Everingham, M., Eslami, S. M. A., Van Gool, L., Williams, C., Winn, J., and Zisserman, A. The Pascal visual
object classes challenge: A retrospective. IJCV, 111(1):98–136, 2015.
Fei-Fei, L., Fergus, R., and Perona, P. Learning generative visual models from few training examples: An
incremental bayesian approach tested on 101 object categories. In IEEE CVPR Workshop of Generative
Model Based Vision, 2004.
Girshick, R. B., Donahue, J., Darrell, T., and Malik, J. Rich feature hierarchies for accurate object detection
and semantic segmentation. CoRR, abs/1311.2524v5, 2014. Published in Proc. CVPR, 2014.
Gkioxari, G., Girshick, R., and Malik, J. Actions and attributes from wholes and parts. CoRR, abs/1412.2604,
2014.
Glorot, X. and Bengio, Y. Understanding the difficulty of training deep feedforward neural networks. In Proc.
AISTATS, volume 9, pp. 249–256, 2010.
Goodfellow, I. J., Bulatov, Y., Ibarz, J., Arnoud, S., and Shet, V. Multi-digit number recognition from street
view imagery using deep convolutional neural networks. In Proc. ICLR, 2014.
Griffin, G., Holub, A., and Perona, P. Caltech-256 object category dataset. Technical Report 7694, California
Institute of Technology, 2007.
He, K., Zhang, X., Ren, S., and Sun, J. Spatial pyramid pooling in deep convolutional networks for visual
recognition. CoRR, abs/1406.4729v2, 2014.
Hoai, M. Regularized max pooling for image categorization. In Proc. BMVC., 2014.
Howard, A. G. Some improvements on deep convolutional neural network based image classification. In Proc.
ICLR, 2014.
Jia, Y. Caffe: An open source convolutional architecture for fast feature embedding.
http://caffe.berkeleyvision.org/, 2013.
Karpathy, A. and Fei-Fei, L. Deep visual-semantic alignments for generating image descriptions. CoRR,
abs/1412.2306, 2014.
Kiros, R., Salakhutdinov, R., and Zemel, R. S. Unifying visual-semantic embeddings with multimodal neural
language models. CoRR, abs/1411.2539, 2014.
Krizhevsky, A. One weird trick for parallelizing convolutional neural networks. CoRR, abs/1404.5997, 2014.
Krizhevsky, A., Sutskever, I., and Hinton, G. E. ImageNet classification with deep convolutional neural networks.
In NIPS, pp. 1106–1114, 2012.
LeCun, Y., Boser, B., Denker, J. S., Henderson, D., Howard, R. E., Hubbard, W., and Jackel, L. D. Backpropagation
applied to handwritten zip code recognition. Neural Computation, 1(4):541–551, 1989.
Lin, M., Chen, Q., and Yan, S. Network in network. In Proc. ICLR, 2014.
Long, J., Shelhamer, E., and Darrell, T. Fully convolutional networks for semantic segmentation. CoRR,
abs/1411.4038, 2014.
Oquab, M., Bottou, L., Laptev, I., and Sivic, J. Learning and Transferring Mid-Level Image Representations
using Convolutional Neural Networks. In Proc. CVPR, 2014.
Perronnin, F., S´anchez, J., and Mensink, T. Improving the Fisher kernel for large-scale image classification. In
Proc. ECCV, 2010.
Razavian, A., Azizpour, H., Sullivan, J., and Carlsson, S. CNN Features off-the-shelf: an Astounding Baseline
for Recognition. CoRR, abs/1403.6382, 2014.