D e e p R e s i d u a l L e a r n i n g f o r I m a g e R e c o g n i t i o n Deep\ _{}Residual\ _{}Learning\ _{}for\ _{}Image\ _{}Recognition Deep Residual Learning for Image Recognition
K a i m i n g H e X i a n g y u Z h a n g S h a o q i n g R e n J i a n S u n Kaiming\ _{}He\ _{}\ _{}\ _{}\ _{}Xiangyu\ _{}Zhang\ _{}\ _{}\ _{}\ _{}Shaoqing \ _{}Ren\ _{}\ _{}\ _{}\ _{}Jian\ _{}Sun Kaiming He Xiangyu Zhang Shaoqing Ren Jian Sun
深 度 残 差 学 习 在 图 像 识 别 中 的 应 用 深度残差学习在图像识别中的应用 深度残差学习在图像识别中的应用
摘要:更深的神经网络更难训练。我们提出了一种残差学习框架来减轻网络的训练,这些网络比以前使用的网络更深。我们明确地将层重新表示为参照层输入学习残差函数,而不是学习未引用的函数。我们提供了全面的经验证据,表明这些残差网络可以很容易地进行优化,并且可以从大大增加的深度中获得准确性。在ImageNet数据集上,我们评估深度最大为152层的残差网络-比VGG网络[41]深8倍,但复杂度仍然较低。这些残差网络的整体在ImageNet测试集上达到3.57%的误差。该结果在ILSVRC 2015分类任务中获得第一名。我们还将分析具有100和1000层的CIFAR-10。
表征的深度对于许多视觉识别任务至关重要。仅由于我们的深度表示,我们在COCO目标检测数据集上获得了28%的相对改进。深度残差网络是我们提交ILSVRC和COCO 2015竞赛的基础,在该竞赛中我们还获得了ImageNet检测、ImageNet定位、COCO检测和COCO分割等任务的第一名。
1 引言
深度卷积神经网络[22,21]为图像分类带来了一系列的突破[21,50,40]。深度网络以端到端的多层方式自然地集成了低/中/高级特征[50]和分类器,并且特征的“级别”可以通过堆叠的层数(深度)来丰富。最近的证据[41,44]揭示了网络深度是至关重要的,在具有挑战性的ImageNet数据集[36]上的领先结果[41,44,13,16]都利用了深度为16[41]到30[16]“非常深”的[41]模型。许多其它重要的视觉识别任务[8、12、7、32、27]也从非常深入的模型中受益匪浅。
在深度的重要性推动下,出现了一个问题:学习更好的网络是否像堆叠更多层一样容易?回答这个问题的一个障碍是臭名昭著的梯度消失/爆炸问题[1,9],它从一开始就阻碍了收敛。然而,这个问题在很大程度上已经通过归一化的初始化[23,9,37,13]和中间归一化层[16]来解决,这使得具有数十层的网络能够开始收敛于具有反向传播的随机梯度下降(SGD)[22]。
当更深的网络能够开始收敛时,退化问题就暴露了出来:随着网络深度的增加,准确度达到饱和(这可能并不令人惊讶),然后迅速退化。出乎意料的是,这种退化并不是由过拟合引起的,而且在适当深度的模型中增加更多的层会导致更高的训练误差,正如[11,42]中所报告的那样,并被我们的实验完全验证。图1显示了一个典型的示例。
训练准确度的退化表明,并不是所有的系统都同样容易优化。让我们考虑一种较浅的架构,以及在其上增加更多层的更深的架构。通过构建更深的模型,可以找到一种解决方案:增加的层是恒等映射,其他层是从学习的浅层模型复制而来的。这种构造的解决方案的存在表明,较深的模型应该不会比较浅的模型产生更高的训练误差。但实验表明,我们现有的求解器无法找到比构造的解更好的解(或者无法在可行的时间内找到)。
在本文中,我们通过引入深度残差学习框架来解决退化问题。除了希望每个堆叠的层都直接适合所需的基础映射,我们明确让这些层适合残差映射。形式上,将所需的基础映射表示为
H
(
x
)
H(x)
H(x),我们让堆叠的非线性层适合
F
(
x
)
:
=
H
(
x
)
−
x
F(x) := H(x) - x
F(x):=H(x)−x的另一个映射。原始映射将重写为
F
(
x
)
+
x
F(x) + x
F(x)+x。我们假设优化残差映射比优化原始未引用映射要更容易。在极端情况下,如果恒等映射是最优的,则将残差推到零比通过非线性层的堆叠拟合恒等映射要容易。
公式
F
(
x
)
+
x
F(x) + x
F(x)+x可以通过具有“Shortcut connection”的前馈神经网络来实现(图2)。捷径连接[2、34、49]是跳过一层或多层的连接。在我们的情况下,捷径连接仅执行恒等映射,并将其输出添加到堆叠层的输出中(图2)。恒等捷径连接既不增加额外的参数,也不增加计算复杂度。整个网络仍然可以通过SGD反向传播进行端到端训练,并且可以使用通用库(例如Caffe [19])轻松实现,而无需修改求解器。
我们在ImageNet [36]上进行了全面的实验,以显示退化问题并评估我们的方法。结果表明:1)极深的残差网络易于优化,但是当深度增加时,对应的“普通”网络(简单地堆叠层)显示出更高的训练误差; 2)深层残差网络可以很容易地从深度的大幅增加中获得精度提升,其结果明显好于以往的网络。
在CIFAR-10集上也显示了类似的现象[20],这表明优化困难和方法的效果不适合于特定数据集。我们在此数据集上展示了经过成功训练的100层以上的模型,并探索了1000层以上的模型。
在ImageNet分类数据集[36]上,我们通过极深的残差网得到了很好的结果。我们的152层残差网络是ImageNet上提出的最深的网络,但其复杂度仍低于VGG网络[41]。我们的团队在ImageNet测试集上的top-5的错误率为3.57%,并在2015年ILSVRC分类比赛中获得第一名。极深的表示形式在其他识别任务上也具有出色的泛化性能,使我们在ILSVRC和COCO 2015竞赛中赢得了第一名:ImageNet检测、ImageNet定位、COCO检测和COCO分割。这一强有力的证据表明,残差学习原理是通用的,我们希望它适用于其他视觉和非视觉问题。
2 相关工作
残差表示(Residual Representations)。在图像识别中,VLAD [18]是通过相对于字典的残差向量进行编码的表示,Fisher 向量 [30]可以表述为VLAD的概率版本[18]。它们都是用于图像检索和分类的强有力的浅层表示[4,48]。对于向量量化,编码残差向量[17]被证明比编码原始向量更有效。
在低级视觉和计算机图形学中,为了求解偏微分方程(PDE),广泛使用的多重网格方法[3]将系统重新描述为多尺度的子问题,其中每个子问题负责较粗和较细之间的残差解。多重网络的替代方法是分层基础预处理[45,46],它依赖于表示两个尺度之间残差向量的变量。已经显示[3,45,46],这些求解器的收敛速度比不知道解决方案残差性质的标准求解器快得多。这些方法表明,良好的重构或预处理可以简化优化过程。
捷径连接(Shortcut Connections)。导致捷径连接[2,34,49]的实践和理论已经研究了很长一段时间。训练多层感知器(MLP)的早期实践是添加从网络输入连接到输出的线性层[34,49]。在[44,24]中,一些中间层直接连接到辅助分类器,以解决消失/爆炸梯度问题。 [39,38,31,47]的论文提出了一种通过捷径连接实现层中响应,梯度和传播误差的方法。在[44]中,“inception”层由捷径分支和一些更深的分支组成。
在我们的工作同时,“高速公路网络” [42、43]提供了具有门控功能[15]的捷径连接。与不带参数的恒等捷径相反,这些门捷径取决于数据并具有参数。当门捷径“关闭”(接近零)时,公路网中的图层表示非残差功能。相反,我们的公式总是学习残差函数。我们的恒等捷径永远不会关闭,所有信息始终都会通过传递,还有其他一些剩余残差功能需要学习。另外,高速公路网络还没有显示出深度增加很多(例如超过100层)的精度。
3 深度残差学习
3.1 残差学习
让我们将
H
(
x
)
H(x)
H(x)视为由一些堆叠层(不一定是整个网络)拟合的基础映射,其中
x
x
x表示第一层的输入。如果假设多个非线性层可以渐近地逼近复杂函数,则等效为假设它们可以渐近地近似残差函数,即
H
(
x
)
−
x
H(x) - x
H(x)−x(假设输入和输出的维数相同)。因此,我们没有让堆叠的层近似为
H
(
x
)
H(x)
H(x),而是让这些层近似为残差函数
F
(
x
)
:
=
H
(
x
)
−
x
F(x) := H(x) - x
F(x):=H(x)−x。原始函数变为
F
(
x
)
+
x
F(x) + x
F(x)+x。尽管两种形式都应能够渐近地逼近所需的函数(如假设),但学习的难易程度可能有所不同。
关于退化问题的违反直觉的现象促使这种改写形成(图1,左)。正如我们在引言中所讨论的,如果可以将增加的层构造为恒等映射,则较深的模型应具有的训练误差不大于其较浅的模型的训练误差。退化问题表明,求解器可能难以通过多个非线性层来逼近恒等映射。利用残差学习改写,如果恒等映射是最佳的,则求解器可以简单地将多个非线性层的权重逼近零以逼近恒等映射。
在实际情况中,恒等映射不太可能是最优的,但是我们的改写可能有助于问题的解决。如果最优函数比零映射更接近一个恒等映射,那么求解器应该比恒等映射更容易找到一个参考恒等映射的扰动,而不是学习一个新的函数。我们通过实验显示(图7),学习到的残差函数通常具有较小的响应,这表明恒等映射提供了合理的预处理。
3.2 通过捷径进行恒等映射
我们对每几个堆叠的层采用残差学习。构建块如图2所示。在本文中,我们认为一个构建块定义为:
y
=
F
(
x
,
W
i
)
+
x
(
1
)
y = F(x,{W_{i}}) + x\ _{}\ _{}\ _{}\ _{}\ _{}\ _{}\ _{}\ _{}\ _{}\ _{}\ _{}\ _{}\ _{}\ _{}\ _{}\ _{}(1)
y=F(x,Wi)+x (1)
这里的
x
x
x和
y
y
y是所考虑层的输入和输出向量。函数
F
(
x
,
W
i
)
F(x,{W_{i}})
F(x,Wi)表示要学习的残差映射。对于图2中具有两层的样本,
F
=
W
2
σ
(
W
1
x
)
F =W_{2}σ(W_{1}x)
F=W2σ(W1x),其中
σ
σ
σ表示ReLU [29],并且为了简化符号省略了偏置。
F
+
x
F + x
F+x操作通过捷径连接和逐元素加法执行。我们在加法之后采用第二个非线性(即
σ
(
y
)
σ(y)
σ(y),见图2)。
公式(1)中的捷径连接既没有引入额外的参数,也没有引入复杂的计算。这不仅在实践中具有吸引力,而且在我们比较普通网络和残差网络时也很重要。我们可以公平地比较同时具有相同数量的参数、深度、宽度和计算代价(除了可以忽略的逐元素加法)的普通/残差网络。
x
x
x和
F
F
F的维度在等式(1)中必须相等。如果不是这种情况(例如,当更改输入/输出通道时),我们可以通过捷径连接执行线性投影Ws以匹配维度:
y
=
F
(
x
,
W
i
)
+
W
s
x
(
2
)
y = F(x,{W_{i}}) + W_{s}x\ _{}\ _{}\ _{}\ _{}\ _{}\ _{}\ _{}\ _{}\ _{}\ _{}\ _{}\ _{}\ _{}\ _{}\ _{}\ _{}(2)
y=F(x,Wi)+Wsx (2)
我们还可以在方程(1)中使用方阵
W
s
W_{s}
Ws。但是我们将通过实验证明,恒等映射足以解决退化问题并且很经济,因此
W
s
W_{s}
Ws仅在匹配维度时使用。
残差函数
F
F
F的形式是灵活的。本文中的实验涉及一个具有两层或三层的函数
F
F
F(图5),但是更多的层是可能的。但如果
F
F
F仅具有一层,则等式(1)类似于线性层:
y
=
W
1
x
+
x
y = W_{1}x + x
y=W1x+x,对此我们没有观察到优势。
我们还注意到,尽管为了简化起见,上述符号是关于全连接层的,但它们也适用于卷积层。函数
F
(
x
,
W
i
)
F(x,{W_{i}})
F(x,Wi)可以表示多个卷积层。在两个特征映射上逐个通道执行逐元素加法。
3.3 网络架构
我们已经测试了各种普通/残差网络,并观察到了一致的现象。为了提供讨论实例,我们描述了ImageNet的两个模型,如下所示。
普通网络(Plain Network)。我们的普通基线(图3,中)主要受到VGG网络
[
41
]
[41]
[41](图3,左)的哲学启发。卷积层大多具有3×3滤波器,并遵循两个简单的设计规则:(1)对于相同的输出特征映射大小,各层具有相同数目的滤波器;(2)如果特征映射大小减半,则滤波器数目增加一倍,以保持每层的时间复杂度。我们通过步长为2的卷积层直接执行下采样。网络以全局平均池化层和使用Softmax的1000维全连接层结束。图3(中)的加权层总数为34层。
值得注意的是,我们的模型比VGG网络[41]具有更少的过滤器和更低的复杂度(图3,左)。我们的34层基线具有36亿FLOP(乘法-加法),仅占VGG-19(196亿个FLOP)的18%。
残差网络(Residual Network)。在上述普通网络的基础上,我们插入捷径连接(图3,右),将网络转换为其对应的残差版本。当输入和输出的维度相同时,可以直接使用恒等捷径(公式(1))(图3中的实线捷径)。当维度增加时(图3中的虚线捷径),我们考虑两个选项:(A)捷径仍然执行恒等映射,并为增加维度填充额外的零个条目。此选项不引入额外参数;(B)公式(2)中的投影捷径用于匹配维度(通过1×1卷积完成)。对于这两个选项,当捷径跨越两种大小的特征映射时,它们的执行步长为2。
3.4 实现
我们对ImageNet的实现遵循[21,41]中的惯例。在[256,480]中对图像的短边进行随机采样来调整图像的大小,以进行比例放大[41]。从图像或其水平翻转中随机采样224×224的收获,减去每个像素的平均值[21]。使用了[21]中的标准颜色增强。我们采用批量归一化(BN)[16],即在每次卷积之后和激活之前,紧跟在[16]之后。我们如[13]中那样初始化权重,并从头开始训练所有普通/残差网络。我们使用小批量为256的SGD。学习速率从0.1开始,在误差平稳期除以10,模型的训练次数可达60×10^4次。我们使用0.0001的权重衰减和0.9的动量。按照[16]中的做法,我们不使用dropout[14]。
在测试中,为了进行比较研究,我们采用标准的10-crop[21]进行测试。为了获得最好的结果,我们采用如[41,13]中的全卷积形式,并在多个尺度上平均得分(图像被调整大小,使较短的边在{224,256,384,480,640}中)。
4 实验
4.1 ImageNet分类
我们在包含1000个类的ImageNet 2012分类数据集[36]上对我们的方法进行了评估。该模型在128万幅训练图像上进行训练,并在5万幅验证图像上进行评估。我们还获得了测试服务器报告的10万张测试图像的最终结果。我们评估 top-1和 top-5的错误率。
- Plain Networks
- Residual Networks
- Identity vs. Projection Shortcuts
- Deeper Bottleneck Architectures
- 50-layer ResNet
- 101-layer and 152-layer ResNets
- Comparisons with State-of-the-art Methods
4.2 CIFAR-10与分析
我们在CIFAR-10数据集[20]上进行了更多的研究,该数据集包括10个类别的5万训练图像和1万测试图像。我们给出了在训练集上训练的实验,并在测试集上进行了评估。我们的重点是极深网络的行为,而不是推动最先进的结果,因此我们有意使用简单的架构。
- Analysis of Layer Responses
- Exploring Over 1000 layers
4.3 PASCAL和MS COCO上的目标检测
参考文献
[1] Y . Bengio, P . Simard, and P . Frasconi. Learning long-term dependencies with gradient descent is difficult. IEEE Transactions on Neural Networks, 5(2):157–166, 1994.
[2] C. M. Bishop. Neural networks for pattern recognition. Oxford university press, 1995.
[3] W. L. Briggs, S. F. McCormick, et al. A Multigrid Tutorial. Siam, 2000.
[4] K. Chatfield, V. Lempitsky, A. Vedaldi, and A. Zisserman. The devil is in the details: an evaluation of recent feature encoding methods. In BMVC, 2011.
[5] M. Everingham, L. V an Gool, C. K. Williams, J. Winn, and A. Zisserman. The Pascal Visual Object Classes (VOC) Challenge. IJCV, pages 303–338, 2010.
[6] S. Gidaris and N. Komodakis. Object detection via a multi-region & semantic segmentation-aware cnn model. In ICCV, 2015.
[7] R. Girshick. Fast R-CNN. In ICCV, 2015.
[8] R. Girshick, J. Donahue, T. Darrell, and J. Malik. Rich feature hierarchies for accurate object detection and semantic segmentation. In CVPR, 2014.
[9] X. Glorot and Y . Bengio. Understanding the difficulty of training deep feedforward neural networks. In AISTATS, 2010.
[10] I. J. Goodfellow, D. Warde-Farley, M. Mirza, A. Courville, and Y . Bengio. Maxout networks. arXiv:1302.4389, 2013.
[11] K. He and J. Sun. Convolutional neural networks at constrained time cost. In CVPR, 2015.
[12] K. He, X. Zhang, S. Ren, and J. Sun. Spatial pyramid pooling in deep convolutional networks for visual recognition. In ECCV, 2014.
[13] K. He, X. Zhang, S. Ren, and J. Sun. Delving deep into rectifiers: Surpassing human-level performance on imagenet classification. In ICCV, 2015.
[14] G. E. Hinton, N. Srivastava, A. Krizhevsky, I. Sutskever, and R. R. Salakhutdinov. Improving neural networks by preventing co-adaptation of feature detectors. arXiv:1207.0580, 2012.
[15] S. Hochreiter and J. Schmidhuber. Long short-term memory. Neural computation, 9(8):1735–1780, 1997.
[16] S. Ioffe and C. Szegedy. Batch normalization: Accelerating deep network training by reducing internal covariate shift. In ICML, 2015.
[17] H. Jegou, M. Douze, and C. Schmid. Product quantization for nearest neighbor search. TPAMI, 33, 2011.
[18] H. Jegou, F. Perronnin, M. Douze, J. Sanchez, P . Perez, and C. Schmid. Aggregating local image descriptors into compact codes. TPAMI, 2012.
[19] Y . Jia, E. Shelhamer, J. Donahue, S. Karayev, J. Long, R. Girshick, S. Guadarrama, and T. Darrell. Caffe: Convolutional architecture for fast feature embedding. arXiv:1408.5093, 2014.
[20] A. Krizhevsky. Learning multiple layers of features from tiny im- ages. Tech Report, 2009.
[21] A. Krizhevsky, I. Sutskever, and G. Hinton. Imagenet classification with deep convolutional neural networks. In NIPS, 2012.
[22] Y . LeCun, B. Boser, J. S. Denker, D. Henderson, R. E. Howard, W. Hubbard, and L. D. Jackel. Backpropagation applied to hand- written zip code recognition. Neural computation, 1989.
[23] Y . LeCun, L. Bottou, G. B. Orr, and K.-R. Müller. Efficientbackprop. In Neural Networks: Tricks of the Trade, pages 9–50. Springer, 1998.
[24] C.-Y . Lee, S. Xie, P . Gallagher, Z. Zhang, and Z. Tu. Deeply- supervised nets. arXiv:1409.5185, 2014.
[25] M. Lin, Q. Chen, and S. Yan. Network in network. arXiv:1312.4400, 2013.
[26] T.-Y . Lin, M. Maire, S. Belongie, J. Hays, P . Perona, D. Ramanan, P . Dollár, and C. L. Zitnick. Microsoft COCO: Common objects in context. In ECCV. 2014.
[27] J. Long, E. Shelhamer, and T. Darrell. Fully convolutional networks for semantic segmentation. In CVPR, 2015.
[28] G. Montúfar, R. Pascanu, K. Cho, and Y . Bengio. On the number of linear regions of deep neural networks. In NIPS, 2014.
[29] V . Nair and G. E. Hinton. Rectified linear units improve restricted boltzmann machines. In ICML, 2010.
[30] F. Perronnin and C. Dance. Fisher kernels on visual vocabularies for image categorization. In CVPR, 2007.
[31] T. Raiko, H. V alpola, and Y . LeCun. Deep learning made easier by linear transformations in perceptrons. In AISTATS, 2012.
[32] S. Ren, K. He, R. Girshick, and J. Sun. Faster R-CNN: Towardsreal-time object detection with region proposal networks. In NIPS,2015.
[33] S. Ren, K. He, R. Girshick, X. Zhang, and J. Sun. Object detection networks on convolutional feature maps. arXiv:1504.06066, 2015.
[34] B. D. Ripley. Pattern recognition and neural networks. Cambridge university press, 1996.
[35] A. Romero, N. Ballas, S. E. Kahou, A. Chassang, C. Gatta, and Y . Bengio. Fitnets: Hints for thin deep nets. In ICLR, 2015.
[36] O. Russakovsky, J. Deng, H. Su, J. Krause, S. Satheesh, S. Ma, Z. Huang, A. Karpathy, A. Khosla, M. Bernstein, et al. Imagenet large scale visual recognition challenge. arXiv:1409.0575, 2014.
[37] A. M. Saxe, J. L. McClelland, and S. Ganguli. Exact solutions to the nonlinear dynamics of learning in deep linear neural networks. arXiv:1312.6120, 2013.
[38] N. N. Schraudolph. Accelerated gradient descent by factor-centering decomposition. Technical report, 1998.
[39] N. N. Schraudolph. Centering neural network gradient factors. In Neural Networks: Tricks of the Trade, pages 207–226. Springer, 1998.
[40] P . Sermanet, D. Eigen, X. Zhang, M. Mathieu, R. Fergus, and Y . Le- Cun. Overfeat: Integrated recognition, localization and detection using convolutional networks. In ICLR, 2014.
[41] K. Simonyan and A. Zisserman. V ery deep convolutional networks for large-scale image recognition. In ICLR, 2015.
[42] R. K. Srivastava, K. Greff, and J. Schmidhuber. Highway networks. arXiv:1505.00387, 2015.
[43] R. K. Srivastava, K. Greff, and J. Schmidhuber. Training very deep networks. 1507.06228, 2015.
[44] C. Szegedy, W. Liu, Y . Jia, P . Sermanet, S. Reed, D. Anguelov, D. Erhan, V . V anhoucke, and A. Rabinovich. Going deeper with convolutions. In CVPR, 2015.
[45] R. Szeliski. Fast surface interpolation using hierarchical basis functions. TPAMI, 1990.
[46] R. Szeliski. Locally adapted hierarchical basis preconditioning. In SIGGRAPH, 2006.
[47] T. V atanen, T. Raiko, H. V alpola, and Y . LeCun. Pushing stochas- tic gradient towards second-order methods–backpropagation learning with transformations in nonlinearities. In Neural Information Processing, 2013.
[48] A. V edaldi and B. Fulkerson. VLFeat: An open and portable library of computer vision algorithms, 2008.
[49] W. V enables and B. Ripley. Modern applied statistics with s-plus. 1999.
[50] M. D. Zeiler and R. Fergus. Visualizing and understanding convolutional neural networks. In ECCV, 2014.