Deep Residual Learning for Image Recognition
论文:https://openaccess.thecvf.com/content_cvpr_2016/papers/He_Deep_Residual_Learning_CVPR_2016_paper.pdf
文章目录
摘要
Deeper neural networks are more difficult to train. We present a residual learning framework to ease the training of networks that are substantially deeper than those used previously. We explicitly reformulate the layers as learning residual functions with reference to the layer inputs, instead of learning unreferenced functions. We provide comprehensive empirical evidence showing that these residual networks are easier to optimize, and can gain accuracy from considerably increased depth. On the ImageNet dataset we evaluate residual nets with a depth of up to 152 layers—8× deeper than VGG nets [40] but still having lower complexity. An ensemble of these residual nets achieves 3.57% error on the ImageNet test set. This result won the 1st place on the ILSVRC 2015 classification task. We also present analysis on CIFAR-10 with 100 and 1000 layers.
更深的神经网络更难训练。我们提出了一个残差学习框架,以减轻比以前使用的网络要深得多的网络的训练。我们明确地将各层重新表述为学习参考层输入的残差函数,而不是学习未参考的函数。我们提供了全面的经验证据,表明这些残差网络更容易优化,并能从大大增加的深度中获得准确性。在ImageNet数据集上,我们评估了深度为152层的残差网络,比VGGNet[40]深8倍,但仍有较低的复杂性。这些残差网络的集合在ImageNet测试集上取得了3.57%的误差。这一结果赢得了ILSVRC 2015分类任务的第一名。我们还介绍了对具有100层和1000层的CIFAR-10的分析。
The depth of representations is of central importance for many visual recognition tasks. Solely due to our extremely deep representations, we obtain a 28% relative improvement on the COCO object detection dataset. Deep residual nets are foundations of our submissions to ILSVRC & COCO 2015 competitions, where we also won the 1st places on the tasks of ImageNet detection, ImageNet localization, COCO detection, and COCO segmentation.
表征的深度对于许多视觉识别任务来说是至关重要的。仅仅由于我们极深的表征,我们在COCO目标检测数据集上获得了28%的相对改进。深度残差网是我们提交给ILSVRC和COCO 2015比赛的基础,我们还在ImageNet检测、ImageNet定位、COCO检测和COCO分割等任务中获得了第一名。
1. 介绍
Deep convolutional neural networks [22, 21] have led to a series of breakthroughs for image classification [21, 49, 39]. Deep networks naturally integrate low/mid/highlevel features [49] and classifiers in an end-to-end multilayer fashion, and the “levels” of features can be enriched by the number of stacked layers (depth). Recent evidence [40, 43] reveals that network depth is of crucial importance, and the leading results [40, 43, 12, 16] on the challenging ImageNet dataset [35] all exploit “very deep” [40] models, with a depth of sixteen [40] to thirty [16]. Many other nontrivial visual recognition tasks [7, 11, 6, 32, 27] have also greatly benefited from very deep models.
深度卷积神经网络[22, 21]已经为图像分类带来了一系列的突破[21, 49, 39]。深度网络自然地将低/中/高层次的特征[49]和分类器以端到端的多层方式整合在一起,而且特征的 "层次 "可以通过堆叠层的数量(深度)来充实。最近的证据[40, 43]显示,网络深度是至关重要的,在具有挑战性的ImageNet数据集[35]上的领先结果[40, 43, 12, 16]都利用了 “非常深”[40]的模型,其深度为16[40]到30[16]。许多其他非琐碎的视觉识别任务[7, 11, 6, 32, 27]也大大受益于非常深的模型。
Driven by the significance of depth, a question arises: Is learning better networks as easy as stacking more layers? An obstacle to answering this question was the notorious problem of vanishing/exploding gradients [14, 1, 8], which hamper convergence from the beginning. This problem, however, has been largely addressed by normalized initialization [23, 8, 36, 12] and intermediate normalization layers [16], which enable networks with tens of layers to start converging for stochastic gradient descent (SGD) with backpropagation [22].
在深度意义的驱动下,出现了一个问题。学习更好的网络是否就像堆叠更多的层一样容易?回答这个问题的一个障碍是声名狼藉的梯度消失/膨胀问题[14, 1, 8],它从一开始就阻碍了收敛。然而,这个问题在很大程度上已经被归一化初始化[23, 8, 36, 12]和中间归一化层[16]所解决,这使得具有几十层的网络能够开始收敛,用于随机梯度下降(SGD)与反向传播[22]。
When deeper networks are able to start converging, a degradation problem has been exposed: with the network depth increasing, accuracy gets saturated (which might be unsurprising) and then degrades rapidly. Unexpectedly, such degradation is not caused by overfitting, and adding more layers to a suitably deep model leads to higher training error, as reported in [10, 41] and thoroughly verified by our experiments. Fig. 1 shows a typical example.
当更深的网络能够开始收敛时,一个退化的问题已经暴露出来:随着网络深度的增加,准确率会达到饱和(这可能并不令人惊讶),然后迅速退化。出乎意料的是,这种退化并不是由过度拟合引起的,在一个合适的深度模型上增加更多的层会导致更高的训练误差,这在文献[10, 41]中有所报道,并被我们的实验所彻底验证。图1显示了一个典型的例子。
The degradation (of training accuracy) indicates that not all systems are similarly easy to optimize. Let us consider a shallower architecture and its deeper counterpart that adds more layers onto it. There exists a solution by construction to the deeper model: the added layers are identity mapping, and the other layers are copied from the learned shallower model. The existence of this constructed solution indicates that a deeper model should produce no higher training error than its shallower counterpart. But experiments show that our current solvers on hand are unable to find solutions that are comparably good or better than the constructed solution (or unable to do so in feasible time).
训练精度的下降表明,并非所有的系统都同样容易优化。让我们考虑一个较浅的架构和在其上添加更多层的较深的对应物。深层模型存在一个构造上的解决方案:增加的层是恒等映射,而其他的层是从学到的浅层模型中复制的。这种构造性解决方案的存在表明,较深的模型应该不会产生比较浅的模型更高的训练误差。但实验表明,我们目前手头的求解器无法找到比构建的解决方案好或更好的解决方案(或者无法在可行的时间内做到这一点)。
In this paper, we address the degradation problem by introducing a deep residual learning framework. Instead of hoping each few stacked layers directly fit a desired underlying mapping, we explicitly let these layers fit a residual mapping. Formally, denoting the desired underlying mapping as
H
(
x
)
\mathcal{H}(x)
H(x), we let the stacked nonlinear layers fit another mapping of
F
(
x
)
:
=
H
(
x
)
−
x
\mathcal{F}(x):=\mathcal{H}(x) − x
F(x):=H(x)−x. The original mapping is recast into
F
(
x
)
+
x
\mathcal{F}(x)+x
F(x)+x. We hypothesize that it is easier to optimize the residual mapping than to optimize the original, unreferenced mapping. To the extreme, if an identity mapping were optimal, it would be easier to push the residual to zero than to fit an identity mapping by a stack of nonlinear layers.
在本文中,我们通过引入一个深度残差学习框架来解决退化问题。我们不希望每几个堆叠层直接适合一个期望的底层映射,而是明确地让这些层适合一个残差映射。形式上,将期望的底层映射表示为
H
(
x
)
\mathcal{H}(x)
H(x),我们让堆叠的非线性层拟合另一个
F
(
x
)
:
=
H
(
x
)
−
x
\mathcal{F}(x):=\mathcal{H}(x)-x
F(x):=H(x)−x的映射。原来的映射被重铸为
F
(
x
)
+
x
\mathcal{F}(x)+x
F(x)+x。我们假设,优化残余映射比优化原始的、无参照的映射更容易。极端地说,如果一个恒等映射是最优的,那么把残差推到零比用一叠非线性层来拟合一个恒等映射更容易。
The formulation of
F
(
x
)
+
x
\mathcal{F}(x)+x
F(x)+x can be realized by feedforward neural networks with “shortcut connections” (Fig. 2). Shortcut connections [2, 33, 48] are those skipping one or more layers. In our case, the shortcut connections simply perform identity mapping, and their outputs are added to the outputs of the stacked layers (Fig. 2). Identity shortcut connections add neither extra parameter nor computational complexity. The entire network can still be trained end-to-end by SGD with backpropagation, and can be easily implemented using common libraries (e.g., Caffe [19]) without modifying the solvers.
F
(
x
)
+
x
\mathcal{F}(x)+x
F(x)+x的表述可以通过带有 "捷径连接 "的前馈神经网络实现(图2)。捷径连接[2, 33, 48]是指跳过一个或多个层的连接。在我们的例子中,捷径连接只是进行恒等映射,其输出被添加到堆叠层的输出中(图2)。恒等捷径连接既不增加额外的参数,也不增加计算的复杂性。整个网络仍然可以通过SGD与反向传播进行端到端的训练,并且可以在不修改求解器的情况下使用普通库(例如Caffe[19])轻松实现。
We present comprehensive experiments on ImageNet [35] to show the degradation problem and evaluate our method. We show that: 1) Our extremely deep residual nets are easy to optimize, but the counterpart “plain” nets (that simply stack layers) exhibit higher training error when the depth increases; 2) Our deep residual nets can easily enjoy accuracy gains from greatly increased depth, producing results substantially better than previous networks.
我们在ImageNet[35]上进行了综合实验,以显示退化问题并评估我们的方法。我们表明。1)我们的极深的残差网很容易优化,但对应的 "普通 "网(简单地堆叠层)在深度增加时表现出更高的训练误差;2)我们的深残差网可以很容易地享受到深度大大增加带来的精度提升,产生的结果大大优于以前的网络。
Similar phenomena are also shown on the CIFAR-10 set [20], suggesting that the optimization difficulties and the effects of our method are not just akin to a particular dataset. We present successfully trained models on this dataset with over 100 layers, and explore models with over 1000 layers.
类似的现象在CIFAR-10数据集上也有显示[20],表明我们的方法的优化困难和效果不仅仅是类似于一个特定的数据集。我们在这个数据集上提出了超过100层的成功训练模型,并探索了超过1000层的模型。
On the ImageNet classification dataset [35], we obtain excellent results by extremely deep residual nets. Our 152layer residual net is the deepest network ever presented on ImageNet, while still having lower complexity than VGG nets [40]. Our ensemble has 3.57% top-5 error on the ImageNet test set, and won the 1st place in the ILSVRC 2015 classification competition. The extremely deep representations also have excellent generalization performance on other recognition tasks, and lead us to further win the 1st places on: ImageNet detection, ImageNet localization, COCO detection, and COCO segmentation in ILSVRC & COCO 2015 competitions. This strong evidence shows that the residual learning principle is generic, and we expect that it is applicable in other vision and non-vision problems.
在ImageNet分类数据集[35]上,我们通过极深的残差网获得了出色的结果。我们的152层残差网是ImageNet上有史以来最深的网络,而其复杂度仍然低于VGG网[40]。我们的组合在ImageNet测试集上有3.57%的Top-5 error,并在ILSVRC 2015分类竞赛中获得第一名。极深的表征在其他识别任务上也有出色的泛化性能,并使我们在以下方面进一步赢得了第一名。ImageNet检测、ImageNet定位、COCO检测和COCO分割的比赛中获得第一名。这些有力的证据表明,残差学习原理是通用的,我们期望它能适用于其他视觉和非视觉问题。
2. 相关工作
Residual Representations. In image recognition, VLAD [18] is a representation that encodes by the residual vectors with respect to a dictionary, and Fisher Vector [30] can be formulated as a probabilistic version [18] of VLAD. Both of them are powerful shallow representations for image retrieval and classification [4, 47]. For vector quantization, encoding residual vectors [17] is shown to be more effective than encoding original vectors.
残差表征。在图像识别中,VLAD[18]是一种由相对于字典的剩余向量编码的表示,Fisher Vector[30]可以被表述为VLAD的概率版本[18]。它们都是用于图像检索和分类的强大的浅层表示法[4, 47]。对于矢量量化,编码剩余矢量[17]被证明比编码原始矢量更有效。
In low-level vision and computer graphics, for solving Partial Differential Equations (PDEs), the widely used Multigrid method [3] reformulates the system as subproblems at multiple scales, where each subproblem is responsible for the residual solution between a coarser and a finer scale. An alternative to Multigrid is hierarchical basis preconditioning [44, 45], which relies on variables that represent residual vectors between two scales. It has been shown [3, 44, 45] that these solvers converge much faster than standard solvers that are unaware of the residual nature of the solutions. These methods suggest that a good reformulation or preconditioning can simplify the optimization.
在低级别的视觉和计算机图形学中,为了解决偏微分方程(PDEs),广泛使用的Multigrid方法[3]将系统重新表述为多个尺度的子问题,其中每个子问题负责较粗和较细尺度之间的残余解。Multigrid的一个替代方法是分层基础预处理[44, 45],它依赖于代表两个尺度之间残余向量的变量。已经证明[3, 44, 45],这些求解器的收敛速度比没有意识到解的残差性质的标准求解器快得多。这些方法表明,一个好的重述或预处理可以简化优化。
Shortcut Connections. Practices and theories that lead to shortcut connections [2, 33, 48] have been studied for a long time. An early practice of training multi-layer perceptrons (MLPs) is to add a linear layer connected from the network input to the output [33, 48]. In [43, 24], a few intermediate layers are directly connected to auxiliary classifiers for addressing vanishing/exploding gradients. The papers of [38, 37, 31, 46] propose methods for centering layer responses, gradients, and propagated errors, implemented by shortcut connections. In [43], an “inception” layer is composed of a shortcut branch and a few deeper branches.
捷径连接。导致捷径连接的做法和理论[2, 33, 48]已经被研究了很久。训练多层感知器(MLPs)的早期做法是增加一个从网络输入到输出的线性层[33, 48]。在[43, 24]中,一些中间层直接连接到辅助分类器,以解决梯度消失/膨胀的问题。38, 37, 31, 46]的论文提出了将层响应、梯度和传播的错误居中的方法,由捷径连接实现。在[43]中,一个 "起始 "层是由一个捷径分支和几个更深的分支组成。
Concurrent with our work, “highway networks” [41, 42] present shortcut connections with gating functions [15]. These gates are data-dependent and have parameters, in contrast to our identity shortcuts that are parameter-free. When a gated shortcut is “closed” (approaching zero), the layers in highway networks represent non-residual functions. On the contrary, our formulation always learns residual functions; our identity shortcuts are never closed, and all information is always passed through, with additional residual functions to be learned. In addition, highway networks have not demonstrated accuracy gains with extremely increased depth (e.g., over 100 layers).
与我们的工作同时进行的 “highway网络”[41, 42]提出了具有门控功能的捷径连接[15]。这些闸门是依赖于数据的,并且有参数,与我们的恒等捷径相比,它是无参数的。当门控捷径被 “关闭”(接近零)时,highway网络中的层代表了非剩余函数。相反,我们的表述总是学习剩余函数;我们的恒等捷径永远不会关闭,所有的信息总是通过,还有额外的剩余函数需要学习。此外,highway网络并没有表现出随着深度的极度增加(例如,超过100层)而带来的精度提升。
3. 深度残差学习
3.1. 残差学习
Let us consider
H
(
x
)
\mathcal{H}(x)
H(x) as an underlying mapping to be fit by a few stacked layers (not necessarily the entire net), with x denoting the inputs to the first of these layers. If one hypothesizes that multiple nonlinear layers can asymptotically approximate complicated functions2, then it is equivalent to hypothesize that they can asymptotically approximate the residual functions, i.e.,
H
(
x
)
−
x
\mathcal{H}(x) − x
H(x)−x (assuming that the input and output are of the same dimensions). So rather than expect stacked layers to approximate H(x),we explicitly let these layers approximate a residual function
F
(
x
)
:
=
H
(
x
)
−
x
\mathcal{F}(x):=\mathcal{H}(x) − x
F(x):=H(x)−x. The original function thus becomes
F
(
x
)
+
x
\mathcal{F}(x)+x
F(x)+x. Although both forms should be able to asymptotically approximate the desired functions (as hypothesized), the ease of learning might be different.
让我们把
H
(
x
)
\mathcal{H}(x)
H(x)看作是由几个堆叠层(不一定是整个网)拟合的基础映射,x表示这些层中第一个层的输入。如果人们假设多个非线性层可以渐进地逼近复杂的函数2,那么就相当于假设它们可以渐进地逼近残差函数,即
H
(
x
)
−
x
\mathcal{H}(x)-x
H(x)−x(假设输入和输出的维度相同)。因此,与其指望堆积层来近似
H
(
x
)
\mathcal{H}(x)
H(x),不如明确地让这些层近似一个残差函数
F
(
x
)
:
=
H
(
x
)
−
x
\mathcal{F}(x):=\mathcal{H}(x)-x
F(x):=H(x)−x。因此,原始函数变成了
F
(
x
)
+
x
\mathcal{F}(x)+x
F(x)+x。尽管这两种形式都应该能够渐进地接近所需的函数(正如假设的那样),但学习的难易程度可能不同。
This reformulation is motivated by the counterintuitive phenomena about the degradation problem (Fig. 1, left). As we discussed in the introduction, if the added layers can be constructed as identity mappings, a deeper model should have training error no greater than its shallower counterpart. The degradation problem suggests that the solvers might have difficulties in approximating identity mappings by multiple nonlinear layers. With the residual learning reformulation, if identity mappings are optimal, the solvers may simply drive the weights of the multiple nonlinear layers toward zero to approach identity mappings.
这种重新表述的动机是关于退化问题的反直觉现象(图1,左)。正如我们在介绍中所讨论的,如果增加的层可以被构造为同一映射,那么更深的模型的训练误差应该不大于其较浅的对应模型。降级问题表明,求解器在通过多个非线性层来逼近同一映射时可能会有困难。通过残差学习重构,如果恒等映射是最优的,求解者可以简单地将多个非线性层的权重推向零以接近身份映射。
In real cases, it is unlikely that identity mappings are optimal, but our reformulation may help to precondition the problem. If the optimal function is closer to an identity mapping than to a zero mapping, it should be easier for the solver to find the perturbations with reference to an identity mapping, than to learn the function as a new one. We show by experiments (Fig. 7) that the learned residual functions in general have small responses, suggesting that identity mappings provide reasonable preconditioning.
在实际情况下,恒等映射不太可能是最优的,但我们的重述可能有助于对问题进行预处理。如果最优函数比零映射更接近恒等映射,那么对于求解者来说,参照恒等映射找到扰动应该比学习新函数要容易。我们通过实验表明(图7),学到的残差函数一般都有小的响应,这表明恒等映射提供了合理的预处理。
3.2. 通过残差连接进行恒等映射
We adopt residual learning to every few stacked layers. A building block is shown in Fig. 2. Formally, in this paper we consider a building block defined as:
我们对每几个堆积层采用残差学习。图2中显示了一个构件。从形式上看,在本文中,我们认为一个构件定义为:
Here
x
x
x and
y
y
y are the input and output vectors of the layers considered. The function
F
(
x
,
W
i
)
\mathcal{F}(x, {W_i})
F(x,Wi) represents the residual mapping to be learned. For the example in Fig. 2 that has two layers,
F
=
W
2
σ
(
W
1
x
)
\mathcal{F} = W_2σ(W_1x)
F=W2σ(W1x) in which σ denotes ReLU [29] and the biases are omitted for simplifying notations. The operation
F
+
x
\mathcal{F} + x
F+x is performed by a shortcut connection and element-wise addition. We adopt the second nonlinearity after the addition (i.e., σ(y), see Fig. 2).
这里
x
x
x和
y
y
y是所考虑的各层的输入和输出向量。函数
F
(
x
,
W
i
)
\mathcal{F}(x, {W_i})
F(x,Wi)表示要学习的残差映射。对于图2中的例子,有两个层,
F
=
W
2
σ
(
W
1
x
)
\mathcal{F}=W_2σ(W_1x)
F=W2σ(W1x),其中σ表示ReLU[29],为了简化符号,省略了偏差。操作
F
+
x
\mathcal{F} + x
F+x是通过快捷连接和元素相加来完成的。我们采用加法后的第二个非线性(即σ(y),见图2)。
The shortcut connections in Eqn.(1) introduce neither extra parameter nor computation complexity. This is not only attractive in practice but also important in our comparisons between plain and residual networks. We can fairly compare plain/residual networks that simultaneously have the same number of parameters, depth, width, and computational cost (except for the negligible element-wise addition).
公式(1)中的快捷连接既没有引入额外的参数,也没有引入计算的复杂性。这不仅在实践中很有吸引力,而且在我们对普通网络和剩余网络的比较中也很重要。我们可以公平地比较同时具有相同数量的参数、深度、宽度和计算成本(除了可以忽略不计的元素增加)的普通/剩余网络。
The dimensions of x and F must be equal in Eqn.(1). If this is not the case (e.g., when changing the input/output channels), we can perform a linear projection
W
s
W_s
Ws by the shortcut connections to match the dimensions:
公式(1)中x和F的尺寸必须相等。如果不是这种情况(例如,当改变输入/输出通道时),我们可以通过快捷连接进行线性投影
W
s
W_s
Ws,以匹配尺寸:
We can also use a square matrix
W
s
W_s
Ws in Eqn.(1). But we will show by experiments that the identity mapping is sufficient for addressing the degradation problem and is economical, and thus
W
s
W_s
Ws is only used when matching dimensions.
我们也可以在公式(1)中使用一个方形矩阵
W
s
W_s
Ws。但我们将通过实验表明,恒等映射足以解决退化问题,而且很经济,因此
W
s
W_s
Ws只在匹配尺寸时使用。
The form of the residual function
F
\mathcal{F}
F is flexible. Experiments in this paper involve a function
F
\mathcal{F}
F that has two or three layers (Fig. 5), while more layers are possible. But if
F
\mathcal{F}
F has only a single layer, Eqn.(1) is similar to a linear layer:
y
=
W
1
x
+
x
y = W_1x + x
y=W1x+x, for which we have not observed advantages.
残差函数
F
\mathcal{F}
F的形式是灵活的。本文的实验涉及的函数
F
\mathcal{F}
F有两层或三层(图5),而更多的层是可能的。但如果
F
\mathcal{F}
F只有单层,公式(1)类似于线性层:
y
=
W
1
x
+
x
y = W_1x + x
y=W1x+x,对此我们没有观察到优势。
We also note that although the above notations are about fully-connected layers for simplicity, they are applicable to convolutional layers. The function
F
(
x
,
W
i
)
\mathcal{F}(x, {W_i})
F(x,Wi) can represent multiple convolutional layers. The element-wise addition is performed on two feature maps, channel by channel.
我们还注意到,尽管为了简单起见,上述符号是关于全连接层的,但它们也适用于卷积层。函数
F
(
x
,
W
i
)
\mathcal{F}(x, {W_i})
F(x,Wi)可以代表多个卷积层。元素相加是在两个特征图上进行的,逐个通道进行。
3.3. 网络架构
We have tested various plain/residual nets, and have observed consistent phenomena. To provide instances for discussion, we describe two models for ImageNet as follows.
我们已经测试了各种普通/残留网,并观察到了一致的现象。为了提供讨论的实例,我们对ImageNet的两个模型描述如下。
Plain Network. Our plain baselines (Fig. 3, middle) are mainly inspired by the philosophy of VGG nets [40] (Fig. 3, left). The convolutional layers mostly have 3×3 filters and follow two simple design rules: (i) for the same output feature map size, the layers have the same number of filters; and (ii) if the feature map size is halved, the number of filters is doubled so as to preserve the time complexity per layer. We perform downsampling directly by convolutional layers that have a stride of 2. The network ends with a global average pooling layer and a 1000-way fully-connected layer with softmax. The total number of weighted layers is 34 in Fig. 3 (middle).
普通网络。我们的普通基线(图3,中间)主要是受VGGNet[40](图3,左边)的理念启发。卷积层大多有3×3个滤波器,并遵循两个简单的设计规则:(1)对于相同的输出特征图大小,各层有相同数量的滤波器;(2)如果特征图大小减半,滤波器的数量加倍,以保持每层的时间复杂性。我们直接通过卷积层进行下采样,卷积层的步长为2。网络最后有一个全局平均池化层和一个具有softmax的1000路全连接层。图3(中间)中加权层的总数为34。
It is worth noticing that our model has fewer filters and lower complexity than VGG nets [40] (Fig. 3, left). Our 34layer baseline has 3.6 billion FLOPs (multiply-adds), which is only 18% of VGG-19 (19.6 billion FLOPs).
值得注意的是,我们的模型比VGG网[40]有更少的过滤器和更低的复杂性(图3,左)。我们的34层基线有36亿FLOPs(乘法加法),这只是VGG-19(196亿FLOPs)的18%。
Residual Network. Based on the above plain network, we insert shortcut connections (Fig. 3, right) which turn the network into its counterpart residual version. The identity shortcuts (Eqn.(1)) can be directly used when the input and output are of the same dimensions (solid line shortcuts in Fig. 3). When the dimensions increase (dotted line shortcuts in Fig. 3), we consider two options: (A) The shortcut still performs identity mapping, with extra zero entries padded for increasing dimensions. This option introduces no extra parameter; (B) The projection shortcut in Eqn.(2) is used to match dimensions (done by 1×1 convolutions). For both options, when the shortcuts go across feature maps of two sizes, they are performed with a stride of 2.
残差网络。在上述普通网络的基础上,我们插入捷径连接(图3,右),将网络变成其对应的残差版本。当输入和输出的尺寸相同时,可以直接使用身份捷径(公式(1))(图3中的实线捷径)。当尺寸增加时(图3中的虚线捷径),我们考虑两种选择:(A)捷径仍然执行恒等映射,并为增加的尺寸填充额外的零条目。这个选项没有引入额外的参数;(B) 公式(2)中的投影快捷方式被用来匹配维度(通过1×1卷积完成)。对于这两个选项,当捷径跨越两个尺寸的特征图时,它们都是以2的跨度进行的。
3.4. 实施
Our implementation for ImageNet follows the practice in [21, 40]. The image is resized with its shorter side randomly sampled in [256, 480] for scale augmentation [40]. A 224×224 crop is randomly sampled from an image or its horizontal flip, with the per-pixel mean subtracted [21]. The standard color augmentation in [21] is used. We adopt batch normalization (BN) [16] right after each convolution and before activation, following [16]. We initialize the weights as in [12] and train all plain/residual nets from scratch. We use SGD with a mini-batch size of 256. The learning rate starts from 0.1 and is divided by 10 when the error plateaus, and the models are trained for up to
60
×
1
0
4
60×10^4
60×104 iterations. We use a weight decay of 0.0001 and a momentum of 0.9. We do not use dropout [13], following the practice in [16].
我们对ImageNet的实现遵循了[21, 40]中的做法。图像被调整大小,其较短的一面在[256, 480]中随机取样,用于比例增强[40]。224×224的裁剪是从图像或其水平翻转中随机采样的,并减去每像素的平均值[21]。使用[21]中的标准颜色增强。在每次卷积之后和激活之前,我们采用批量归一化(BN)[16],遵循[16]。我们按照[12]中的方法初始化权重,并从头开始训练所有的普通/残余网路。我们使用SGD,迷你批次大小为256。学习率从0.1开始,当误差达到峰值时除以10,模型被训练到
60
×
1
0
4
60×10^4
60×104次迭代。我们使用0.0001的权重衰减和0.9的动量。我们不使用dropout[13],遵循[16]的做法。
In testing, for comparison studies we adopt the standard 10-crop testing [21]. For best results, we adopt the fullyconvolutional form as in [40, 12], and average the scores at multiple scales (images are resized such that the shorter side is in {224, 256, 384, 480, 640}).
在测试中,为了进行比较研究,我们采用了标准的10-crop测试[21]。为了获得最好的结果,我们采用了[40,12]中的完全卷积形式,并在多个尺度上平均得分(图像被调整大小,使短边在{224,256,384,480,640}中)。
4. 实验
4.1. ImageNet分类
We evaluate our method on the ImageNet 2012 classification dataset [35] that consists of 1000 classes. The models are trained on the 1.28 million training images, and evaluated on the 50k validation images. We also obtain a final result on the 100k test images, reported by the test server. We evaluate both top-1 and top-5 error rates.
我们在ImageNet 2012分类数据集[35]上评估我们的方法,该数据集由1000个类别组成。模型在128万张训练图像上进行训练,并在5万张验证图像上进行评估。我们还在测试服务器报告的10万张测试图像上获得最终结果。我们评估了Top-1和Top-5的错误率。
Plain Networks. We first evaluate 18-layer and 34-layer plain nets. The 34-layer plain net is in Fig. 3 (middle). The 18-layer plain net is of a similar form. See Table 1 for detailed architectures.
普通网络。我们首先评估18层和34层的普通网。34层普通网在图3(中间)。18层朴素网也是类似的形式。详细结构见表1。
The results in Table 2 show that the deeper 34-layer plain net has higher validation error than the shallower 18-layer plain net. To reveal the reasons, in Fig. 4 (left) we compare their training/validation errors during the training procedure. We have observed the degradation problem - the 34-layer plain net has higher training error throughout the whole training procedure, even though the solution space of the 18-layer plain network is a subspace of that of the 34-layer one.
表2中的结果显示,较深的34层普通网比较浅的18层普通网的验证误差要高。为了揭示原因,在图4(左)中我们比较了它们在训练过程中的训练/验证误差。我们观察到一个退化问题–在整个训练过程中,34层普通网络的训练误差较高,尽管18层普通网络的解空间是34层网络的子空间。
We argue that this optimization difficulty is unlikely to be caused by vanishing gradients. These plain networks are trained with BN [16], which ensures forward propagated signals to have non-zero variances. We also verify that the backward propagated gradients exhibit healthy norms with BN. So neither forward nor backward signals vanish. In fact, the 34-layer plain net is still able to achieve competitive accuracy (Table 3), suggesting that the solver works to some extent. We conjecture that the deep plain nets may have exponentially low convergence rates, which impact the reducing of the training error3. The reason for such optimization difficulties will be studied in the future.
我们认为,这种优化困难不太可能是由梯度消失引起的。这些普通网络是用BN[16]训练的,它保证了前向传播的信号具有非零的方差。我们也验证了后向传播的梯度在BN中表现出健康的规范。所以前向和后向信号都没有消失。事实上,34层朴素网仍然能够达到有竞争力的精度(表3),这表明该求解器在某种程度上是有效的。我们猜想,深层朴素网可能有指数级的低收敛率,这影响了训练误差的减少3。这种优化困难的原因将在未来进行研究。
Residual Networks. Next we evaluate 18-layer and 34layer residual nets (ResNets). The baseline architectures are the same as the above plain nets, expect that a shortcut connection is added to each pair of 3×3 filters as in Fig. 3 (right). In the first comparison (Table 2 and Fig. 4 right), we use identity mapping for all shortcuts and zero-padding for increasing dimensions (option A). So they have no extra parameter compared to the plain counterparts.
残留网络。接下来我们评估18层和34层的残差网(ResNets)。基线结构与上述普通网络相同,只是在每对3×3过滤器上增加了一个快捷连接,如图3(右)。在第一个比较中(表2和图4右),我们对所有的快捷方式使用身份映射,对增加的维度使用零填充(选项A)。因此,与普通的对应物相比,它们没有额外的参数。
We have three major observations from Table 2 and Fig. 4. First, the situation is reversed with residual learning – the 34-layer ResNet is better than the 18-layer ResNet (by 2.8%). More importantly, the 34-layer ResNet exhibits considerably lower training error and is generalizable to the validation data. This indicates that the degradation problem is well addressed in this setting and we manage to obtain accuracy gains from increased depth.
从表2和图4中我们有三个主要的观察结果。首先,情况与残差学习相反–34层的ResNet比18层的ResNet要好(2.8%)。更重要的是,34层的ResNet表现出相当低的训练误差,并且可以推广到验证数据。这表明,在这种情况下,退化问题得到了很好的解决,我们设法从增加的深度中获得了准确性的提高。
Second, compared to its plain counterpart, the 34-layer ResNet reduces the top-1 error by 3.5% (Table 2), resulting from the successfully reduced training error (Fig. 4 right vs. left). This comparison verifies the effectiveness of residual learning on extremely deep systems.
其次,与普通的对应物相比,34层的ResNet将top-1的误差降低了3.5%(表2),这是因为成功降低了训练误差(图4右侧与左侧)。这一比较验证了残差学习在极深系统上的有效性。
Last, we also note that the 18-layer plain/residual nets are comparably accurate (Table 2), but the 18-layer ResNet converges faster (Fig. 4 right vs. left). When the net is “not overly deep” (18 layers here), the current SGD solver is still able to find good solutions to the plain net. In this case, the ResNet eases the optimization by providing faster convergence at the early stage.
最后,我们还注意到,18层的普通网/residual网的精度相当(表2),但18层的ResNet收敛得更快(图4右图与左图)。当网 “不是太深”(这里是18层)时,目前的SGD求解器仍然能够找到平原网的良好解决方案。在这种情况下,ResNet通过在早期阶段提供更快的收敛而缓解了优化。
Identity vs. Projection Shortcuts. We have shown that parameter-free, identity shortcuts help with training. Next we investigate projection shortcuts (Eqn.(2)). In Table 3 we compare three options: (A) zero-padding shortcuts are used for increasing dimensions, and all shortcuts are parameterfree (the same as Table 2 and Fig. 4 right); (B) projection shortcuts are used for increasing dimensions, and other shortcuts are identity; and © all shortcuts are projections.
恒等与投射捷径。我们已经证明,无参数的身份捷径有助于训练。接下来我们研究投影捷径(公式(2))。在表3中,我们比较了三种选择:(A)零填充捷径用于增加维度,所有捷径都是无参数的(与表2和图4右侧相同);(B)投影捷径用于增加维度,其他捷径是恒等的;©所有捷径是投影的。
Table 3 shows that all three options are considerably better than the plain counterpart. B is slightly better than A. We argue that this is because the zero-padded dimensions in A indeed have no residual learning. C is marginally better than B, and we attribute this to the extra parameters introduced by many (thirteen) projection shortcuts. But the small differences among A/B/C indicate that projection shortcuts are not essential for addressing the degradation problem. So we do not use option C in the rest of this paper, to reduce memory/time complexity and model sizes. Identity shortcuts are particularly important for not increasing the complexity of the bottleneck architectures that are introduced below.
表3显示,所有三个选项都比普通的对应方案要好得多。B比A略好,我们认为这是因为A中的零填充维度确实没有剩余的学习。C比B略好,我们将其归因于许多(13个)投影捷径所引入的额外参数。但是A/B/C之间的微小差异表明,投影捷径对于解决退化问题并不重要。所以我们在本文的其余部分不使用选项C,以减少内存/时间复杂性和模型大小。恒等捷径对于不增加下面介绍的瓶颈架构的复杂性尤为重要。
Deeper Bottleneck Architectures. Next we describe our deeper nets for ImageNet. Because of concerns on the training time that we can afford, we modify the building block as a bottleneck design. For each residual function F,we use a stack of 3 layers instead of 2 (Fig. 5). The three layers are 1×1, 3×3, and 1×1 convolutions, where the 1×1 layers are responsible for reducing and then increasing (restoring) dimensions, leaving the 3×3 layer a bottleneck with smaller input/output dimensions. Fig. 5 shows an example, where both designs have similar time complexity.
更深层次的瓶颈架构。接下来我们描述一下我们的ImageNet的深层网络。由于对我们所能承受的训练时间的关注,我们将构件修改为一个瓶颈设计。对于每个残差函数F,我们使用3层的堆栈,而不是2层(图5)。这三层是1×1、3×3和1×1的卷积层,其中1×1层负责减少,然后增加(恢复)维度,让3×3层成为输入/输出维度较小的瓶颈。图5显示了一个例子,两种设计的时间复杂性相似。
The parameter-free identity shortcuts are particularly important for the bottleneck architectures. If the identity shortcut in Fig. 5 (right) is replaced with projection, one can show that the time complexity and model size are doubled, as the shortcut is connected to the two high-dimensional ends. So identity shortcuts lead to more efficient models for the bottleneck designs.
无参数的恒等捷径对瓶颈结构特别重要。如果图5(右)中的身份捷径被替换成投影,可以看出时间复杂度和模型大小都增加了一倍,因为该捷径与两个高维端相连。所以恒等捷径导致了瓶颈设计的更有效的模型。
50-layer ResNet: We replace each 2-layer block in the 34-layer net with this 3-layer bottleneck block, resulting in a 50-layer ResNet (Table 1). We use option B for increasing dimensions. This model has 3.8 billion FLOPs.
50层的ResNet。我们用这个3层的瓶颈块替换34层网中的每一个2层块,从而得到一个50层的ResNet(表1)。我们使用选项B来增加维度。这个模型有38亿FLOPs。
101-layer and 152-layer ResNets: We construct 101layer and 152-layer ResNets by using more 3-layer blocks (Table 1). Remarkably, although the depth is significantly increased, the 152-layer ResNet (11.3 billion FLOPs) still has lower complexity than VGG-16/19 nets (15.3/19.6 billion FLOPs).
101层和152层的ResNets。我们通过使用更多的3层块来构建101层和152层的ResNets(表1)。值得注意的是,虽然深度大大增加,但152层ResNet(113亿FLOPs)的复杂性仍然低于VGG-16/19网(153/196亿FLOPs)。
The 50/101/152-layer ResNets are more accurate than the 34-layer ones by considerable margins (Table 3 and 4). We do not observe the degradation problem and thus enjoy significant accuracy gains from considerably increased depth. The benefits of depth are witnessed for all evaluation metrics (Table 3 and 4).
50/101/152层的ResNets比34层的要准确得多(表3和4)。我们没有观察到退化的问题,因此从大大增加的深度中获得了显著的准确性。深度的好处在所有的评估指标中都可以看到(表3和4)。
Comparisons with State-of-the-art Methods. In Table 4 we compare with the previous best single-model results. Our baseline 34-layer ResNets have achieved very competitive accuracy. Our 152-layer ResNet has a single-model top-5 validation error of 4.49%. This single-model result outperforms all previous ensemble results (Table 5). We combine six models of different depth to form an ensemble (only with two 152-layer ones at the time of submitting). This leads to 3.57% top-5 error on the test set (Table 5). This entry won the 1st place in ILSVRC 2015.
与最先进方法的比较。在表4中,我们与之前的最佳单模型结果进行了比较。我们的基线34层ResNets取得了非常有竞争力的准确性。我们的152层ResNet的单模型Top-5验证误差为4.49%。这个单一模型的结果超过了以前所有的集合结果(表5)。我们将六个不同深度的模型组合起来形成一个合集(在提交时只有两个152层的模型)。这导致了在测试集上3.57%的Top-5误差(表5)。这个作品赢得了ILSVRC 2015的第一名。
4.2. CIFAR-10和分析
We conducted more studies on the CIFAR-10 dataset [20], which consists of 50k training images and 10k testing images in 10 classes. We present experiments trained on the training set and evaluated on the test set. Our focus is on the behaviors of extremely deep networks, but not on pushing the state-of-the-art results, so we intentionally use simple architectures as follows.
我们对CIFAR-10数据集[20]进行了更多的研究,该数据集由10个类别的50k训练图像和10k测试图像组成。我们提出了在训练集上训练并在测试集上评估的实验。我们的重点是极深的网络的行为,但不是推崇最先进的结果,所以我们有意使用简单的架构,如下。
The plain/residual architectures follow the form in Fig. 3 (middle/right). The network inputs are 32×32 images, with the per-pixel mean subtracted. The first layer is 3×3 convolutions. Then we use a stack of 6n layers with 3×3 convolutions on the feature maps of sizes {32, 16, 8} respectively, with 2n layers for each feature map size. The numbers of filters are {16, 32, 64} respectively. The subsampling is performed by convolutions with a stride of 2. The network ends with a global average pooling, a 10-way fully-connected layer, and softmax. There are totally 6n+2 stacked weighted layers. The following table summarizes the architecture:
普通/残差架构遵循图3的形式(中间/右边)。网络输入是32×32的图像,每个像素的平均值被减去。第一层是3×3的卷积。然后,我们在大小为{32,16,8}的特征图上分别使用6n层的3×3卷积,每个特征图大小为2n层。滤波器的数量分别为{16,32,64}。该网络以全局平均池、10路全连接层和softmax结束。总共有6n+2个叠加加权层。下表总结了该架构。
When shortcut connections are used, they are connected to the pairs of 3×3 layers (totally 3n shortcuts). On this dataset we use identity shortcuts in all cases (i.e., option A), so our residual models have exactly the same depth, width, and number of parameters as the plain counterparts.
当使用捷径连接时,它们被连接到3×3层的对(总共3n个捷径)。在这个数据集上,我们在所有情况下都使用恒等捷径(即选项A),所以我们的残差模型的深度、宽度和参数数量与普通的对应模型完全相同。
We use a weight decay of 0.0001 and momentum of 0.9, and adopt the weight initialization in [12] and BN [16] but with no dropout. These models are trained with a minibatch size of 128 on two GPUs. We start with a learning rate of 0.1, divide it by 10 at 32k and 48k iterations, and terminate training at 64k iterations, which is determined on a 45k/5k train/val split. We follow the simple data augmentation in [24] for training: 4 pixels are padded on each side, anda32×32 crop is randomly sampled from the padded image or its horizontal flip. For testing, we only evaluate the single view of the original 32×32 image.
我们使用0.0001的权重衰减和0.9的动量,并采用[12]和BN[16]中的权重初始化,但没有dropout。这些模型是在两个GPU上以128个mini-batch的规模训练的。我们从0.1的学习率开始,在32000和48000的迭代中除以10,并在64000的迭代中终止训练,这是由45000/5000的训练/值分割决定的。我们按照[24]中的简单数据增强法进行训练:每边填充4个像素,从填充的图像或其水平翻转中随机抽出32×32的裁剪。对于测试,我们只评估原始32×32图像的单一视图。
We compare n = {3, 5, 7, 9}, leading to 20, 32, 44, and 56-layer networks. Fig. 6 (left) shows the behaviors of the plain nets. The deep plain nets suffer from increased depth, and exhibit higher training error when going deeper. This phenomenon is similar to that on ImageNet (Fig. 4, left) and on MNIST (see [41]), suggesting that such an optimization difficulty is a fundamental problem.
我们比较了n={3,5,7,9},导致了20,32,44和56层网络。图6(左)显示了普通网络的行为。深度普通网络受到深度增加的影响,并且在深入时表现出更高的训练误差。这一现象与ImageNet(图4,左)和MNIST(见[41])上的现象相似,表明这样的优化困难是一个基本问题。
Fig. 6 (middle) shows the behaviors of ResNets. Also similar to the ImageNet cases (Fig. 4, right), our ResNets manage to overcome the optimization difficulty and demonstrate accuracy gains when the depth increases.
图6(中间)显示了ResNets的行为。与ImageNet案例(图4,右)类似,我们的ResNets设法克服了优化困难,并在深度增加时表现出准确性的提高。
We further explore n =18that leads to a 110-layer ResNet. In this case, we find that the initial learning rate of 0.1 is slightly too large to start converging5. So we use 0.01 to warm up the training until the training error is below 80% (about 400 iterations), and then go back to 0.1 and continue training. The rest of the learning schedule is as done previously. This 110-layer network converges well (Fig. 6, middle). It has fewer parameters than other deep and thin networks such as FitNet [34] and Highway [41] (Table 6), yet is among the state-of-the-art results (6.43%, Table 6).
我们进一步探索n=18,这导致了一个110层的ResNet。在这种情况下,我们发现0.1的初始学习率略大,无法开始收敛5。所以我们用0.01来预热训练,直到训练误差低于80%(大约400次迭代),然后再回到0.1继续训练。其余的学习计划与之前一样。这个110层的网络收敛得很好(图6,中间)。它的参数比其他深薄网络如FitNet[34]和Highway[41]少(表6),但却属于最先进的结果(6.43%,表6)。
Analysis of Layer Responses. Fig. 7 shows the standard deviations (std) of the layer responses. The responses are the outputs of each 3×3 layer, after BN and before other nonlinearity (ReLU/addition). For ResNets, this analysis reveals the response strength of the residual functions. Fig. 7 shows that ResNets have generally smaller responses than their plain counterparts. These results support our basic motivation (Sec.3.1) that the residual functions might be generally closer to zero than the non-residual functions. We also notice that the deeper ResNet has smaller magnitudes of responses, as evidenced by the comparisons among ResNet-20, 56, and 110 in Fig. 7. When there are more layers, an individual layer of ResNets tends to modify the signal less.
层反应的分析。图7显示了各层响应的标准偏差(std)。响应是每个3×3层的输出,在BN之后和其他非线性(ReLU/Addition)之前。对于ResNets,这种分析揭示了残差函数的响应强度。图7显示,ResNets的反应通常比它们的普通对应物小。这些结果支持了我们的基本动机(第3.1节),即残差函数通常可能比非残差函数更接近于零。我们还注意到,较深的ResNet的响应幅度较小,图7中ResNet-20、56和110之间的比较证明了这一点。当层数较多时,单个层的ResNets对信号的修改往往较少。
Exploring Over 1000 layers. We explore an aggressively deep model of over 1000 layers. We set n = 200 that leads to a 1202-layer network, which is trained as described above. Our method shows no optimization difficulty, and this 103-layer network is able to achieve training error <0.1% (Fig. 6, right). Its test error is still fairly good (7.93%, Table 6).
探索超过1000层。我们探索一个超过1000层的积极的深度模型。我们设置n = 200,这导致了一个1202层的网络,如上所述进行训练。我们的方法没有显示出优化困难,这个103层的网络能够实现训练误差<0.1%(图6,右)。其测试误差仍然相当好(7.93%,表6)。
But there are still open problems on such aggressively deep models. The testing result of this 1202-layer network is worse than that of our 110-layer network, although both have similar training error. We argue that this is because of overfitting. The 1202-layer network may be unnecessarily large (19.4M) for this small dataset. Strong regularization such as maxout [9] or dropout [13] is applied to obtain the best results ([9, 25, 24, 34]) on this dataset. In this paper, we use no maxout/dropout and just simply impose regularization via deep and thin architectures by design, without distracting from the focus on the difficulties of optimization. But combining with stronger regularization may improve results, which we will study in the future.
但是,在这种积极的深度模型上仍然存在着开放性的问题。这个1202层网络的测试结果比我们110层网络的测试结果要差,尽管两者的训练误差相近。我们认为,这是因为过度拟合。对于这个小数据集来说,1202层的网络可能是不必要的大(19.4M)。强烈的正则化,如maxout[9]或dropout[13],在这个数据集上得到了最好的结果([9, 25, 24, 34])。在本文中,我们没有使用maxout/dropout,只是简单地通过深层和薄层架构的设计来施加正则化,而没有分散对优化困难的关注。但与更强的正则化相结合可能会改善结果,我们将在未来进行研究。
4.3. 在PASCAL和MS COCO的目标检测
Our method has good generalization performance on other recognition tasks. Table 7 and 8 show the object detection baseline results on PASCAL VOC 2007 and 2012 [5] and COCO [26]. We adopt Faster R-CNN [32] as the detection method. Here we are interested in the improvements of replacing VGG-16 [40] with ResNet-101. The detection implementation (see appendix) of using both models is the same, so the gains can only be attributed to better networks. Most remarkably, on the challenging COCO dataset we obtain a 6.0% increase in COCO’s standard metric (mAP@[.5, .95]), which is a 28% relative improvement. This gain is solely due to the learned representations.
我们的方法在其他识别任务上具有良好的泛化性能。表7和表8显示了PASCAL VOC 2007和2012[5]以及COCO[26]的目标检测基线结果。我们采用Faster R-CNN[32]作为检测方法。这里我们感兴趣的是用ResNet-101代替VGG-16[40]的改进。使用两种模型的检测实现(见附录)是相同的,所以收益只能归功于更好的网络。最引人注目的是,在具有挑战性的COCO数据集上,我们在COCO的标准指标(mAP@[.5, .95])上获得了6.0%的增长,这是一个28%的相对改进。这一收益完全归功于学习到的表征。
Based on deep residual nets, we won the 1st places in several tracks in ILSVRC & COCO 2015 competitions: ImageNet detection, ImageNet localization, COCO detection, and COCO segmentation. The details are in the appendix.
基于深度残差网,我们在ILSVRC和COCO 2015比赛中获得了多个项目的第一名。ImageNet检测、ImageNet定位、COCO检测和COCO分割。详细内容见附录。