经典论文翻译:Deep Residual Learning for Image Recognition

摘要:深度神经网络很难训练。我们提出了一种残差学习框架来尝试解决这一问题。We explicitly reformulate the layers as learning residual functions with reference to the layer inputs, instead of learning unreferenced functions。我们提供全面的经验证据表明这些残留网络更容易优化,并且可以获得更高的准确率。在ImageNet数据集上,我们评估了深度高达152层的残留网络 - 比VGG网络深8倍,但仍然具有较低的复杂度。该模型(集成了这些残差网络)在ImageNet测试集上实现了3.57%的误差。 该结果在ILSVRC 2015分类任务中获得第一名。 我们还提供了100和1000层的CIFAR-10分析。

深度表示对于许多视觉识别任务而言至关重要。 由于我们很深层次的表示,我们在COCO目标检测数据集上获得了28%的提高。深度残差网络是我们向ILSVRC和COCO 2015竞赛提交的基础,我们还在ImageNet检测,ImageNet定位,COCO检测和COCO分割任务中获得了第一名。

1. Introduction

深度卷积神经网络[22,21]为图像分类带来了一系列突破[21,50,40]。 深度网络自然地以端到端的方式集成了低/中/高级特征[50]和分类器,并且可以通过堆叠层(stacked layers)的数量(深度)来丰富特征的“级别”。最近的证据[41,44]揭示了网络深度至关重要,而且在具有挑战性的ImageNet数据集上[36]的主要结果[41,44,13,16]都利用了“非常深”的[41]模型, 深度为十六[41]至三十[16]。许多有名的视觉识别任务[8,12,7,32,27]也从非常深的模型中获益匪浅。

在深度概念的推动下,出现了一个问题:学习更好的网络就像堆叠更多层一样容易吗? 回答这个问题的一个障碍是消失/爆炸梯度问题[1,9],这两个问题从一开始就阻碍模型收敛。然而,在很大程度上,这个问题已经被归一化初始化[23,9,37,13]和中间归一化层的方法[16]解决了,这使得具有数十个层的网络在使用SGD[22]的情况下能够收敛。

当更深的网络能够开始收敛时,就会出现退化问题:随着网络深度的增加,准确度变得饱和(这可能不足为奇),然后迅速退化。出乎意料的是,这种退化不是由于过度拟合造成的,并且在适当深度模型中添加更多层会导致更高的训练误差,如[11,42]中所报道,并且通过我们的实验进行了彻底验证。 图1显示了一个典型的例子。
经典论文翻译:Deep Residual Learning for Image Recognition
出现退化问题(训练精度)表明并非所有系统都易于优化。 让我们考虑一个浅层网络及其对应的深层网络(就是在浅层网络上添加更多层)。这里介绍一个构建更深层模型的解决方案:添加的层是恒等映射(identity mapping),其它层是从已经学习过的浅层模型中拷贝过来的。这种构建解决方案的存在表明,更深的模型不应该产生比其对应的浅层模型更高的训练误差。 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).

在本文中,我们通过引入深度残差学习框架来解决退化问题。 我们明确地(explicitly )让这些层拟合残差映射,而不是希望每个少数堆叠层(stacked layers)直接适合所需的底层映射(underlying mapping)。正式地,我们把底层映射(underlying mapping)标记为H(x)H(x),我们让堆叠的非线性层去拟合another mapping(另外一个映射)F(x):=H(x)xF(x):=H(x)-x。original mapping(初始映射为)F(x)+xF(x)+x。我们假设优化residual mapping(残差映射)比优化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.
经典论文翻译:Deep Residual Learning for Image Recognition
公式F(x)+xF(x)+ x的可以通过具有“快捷连接”(shortcut connections)的前馈神经网络来实现(图2)。 快捷连接(shortcut connections)[2,34,49]是跳过一个或多个层的连接。在我们的例子中,快捷连接(shortcut connections)只是执行恒等映射(identity mapping) ,它们的输出被添加到堆叠层(stacked layers)的输出中(图2)。 恒等快捷连接(Identity shortcut connections)既不增加额外参数也不增加计算复杂度。整个网络仍然可以通过SGD反向传播进行端到端地训练,并且可以使用公共库(例如,Caffe [19])轻松实现,而无需修改求解器。

我们在ImageNet上进行了全面的实验[36],以展示退化问题并评估我们的方法。我们表明:1)我们极深的残差网很容易优化,但对应的“普通(plain)”网(简单地堆叠层stack layers)在深度增加时表现出更高的训练误差; 2)我们的深度残差网可以更容易的从大大增加的深度中获得准确性增益,产生的结果比以前的网络更好。

类似的现象也显示在CIFAR-10集[20]上,表明优化困难(optimization difficulties)和我们的方法的效果不仅仅与特定数据集类似。 我们在该数据集上提供了100多个成功训练的模型,并探索了超过1000层的模型。

在ImageNet分类数据集[36]中,我们通过极深的残差网络获得了出色的结果。 我们的152层残差网络是ImageNet上有史以来最深的网络,同时仍然具有比VGG网络更低的复杂性[41]。我们的集成模型在ImageNet测试集上有3.57%的前5名错误,并在ILSVRC 2015分类竞赛中获得第一名。深层次表示也在其他识别任务上具有出色的泛化性能,并使我们在ILSVRC和COCO 2015竞赛中进一步赢得第一名:ImageNet检测(localization),ImageNet定位,COCO检测和COCO分割。这一有力证据表明残差学习原则是通用的,我们希望它适用于其他视觉和非视觉问题。

2. Related Work

Residual Representations.(残差表示):在图像识别中,VLAD [18]是通过关于字典的残差向量进行编码的表示,并且Fisher Vector [30]可以被看做是VLAD的概率版本[18]。它们都是图像检索和分类的强大浅层表示[4,48]。 对于矢量量化,
编码残差向量[17]被证明比编码原始向量更有效。

在低级视觉和计算机图形学中,为了求解偏微分方程(PDEs),广泛使用的多重网格(Multigrid)方法[3]将系统重新(reformulates)表述为多个尺度的子问题,其中每个子问题负责较粗(coarser)和较精细(finer scale)之间的残差解( residual solution)。多重网格(Multigrid)方法的替代方法是层次基础预处理(hierarchical basis preconditioning)[45,46],它依赖于表示两个尺度之间的残差向量的变量。 已经显示[3,45,46]这些求解器比不知道解(are unaware of)的残余性质(the residual nature of the solutions)的标准求解器收敛得快得多。 这些方法表明良好的重构(reformulation )或预处理可以简化优化。

Shortcut Connections.:快捷链接(shortcut connections)的实践和理论[2,34,49]已经研究了很长时间。训练多层感知器(MLP)的早期实践是添加从网络输入连接到输出的线性层[34,49]。 在[44,24]中,一些中间层(intermediate )直接连接到辅助(auxiliary )分类器,用于解决消失/爆炸梯度。[39,38,31,47]的论文提出了通过快捷连接(shortcut connections)实现的中心层响应,梯度和传播错误的方法。 在[44]中,“初始”层由快捷分支和一些较深的分支组成。与我们的工作同时,“高速公路网络(highway networks)”[42,43]提出了与门控功能的快捷连接[15]。 与我们的无参数恒等快捷方式(identity shortcuts)相比,这些门是数据相关的并且具有参数。 当门控快捷方式“关闭”(接近零)时,公路网络中的层表示非残差(non-residual)功能。相反,我们的表述总是学习剩余的功能; 我们的恒等快捷方式(identity shortcuts)永远不会关闭,所有信息都会通过,还需要学习额外的残差功能(residual functions)。 另外,高速网络未显示出具有极大增加的深度(例如,超过100层)的准确度增益。

3. Deep Residual Learning(深度残差学习)

3.1. Residual Learning(残差学习)

我们将H(x)视为底层映射( underlying mapping ),使其适合几个堆叠层(stacked layers)(不一定是整个网络),x表示这些层中第一层的输入。如果假设多个非线性层可以渐近逼近复杂函数,那么它等效于假设它们可以渐近逼近残差函数(residual functions),即H(x)- x(假设输入和输出具有相同的维度)。因此,我们明确地(explicitly )让这些层近似于残差函数F(x):= H(x) - x,而不是期望堆叠层(stacked layers)接近H(x)。 因此原始函数(original function)变为F(x)+ x。 虽然两种形式都应该能够渐近地(asymptotically )逼近所需的函数(如假设的),但学习的容易程度(the ease of)可能会有所不同。

这种重新制定(reformulation )的动机是关于退化问题的违反直觉(counterintuitive )的现象(图1,左)。 正如我们在介绍中所讨论的,如果添加层( added layers)可以构造为恒等映射( identity mappings),则更深层次的模型应该具有不大于其对应的较浅的层次模型(shallower counterpart)的训练误差。退化(degradation )问题表明求解器可能难以通过多个非线性层(nonlinear layers)来近似恒等映射(identity mappings)。 利用残差学习重构(residual learning reformulation),如果恒等映射(identity mappings)是最优的,则求解器可以简单地将多个非线性层(nonlinear layers)的权重朝向零驱动以接近恒等映射(identity mappings)。

在实际情况下,恒等映射(identity mappings)不太可能是最优的,但我们的重新制定(reformulation )可能有助于预先解决问题(precondition the problem)。如果最优函数更接近于恒等映射(identity mappings)而不是零映射,则解算器应该更容易参考恒等映射(identity mappings)来查找扰动(perturbations ),而不是将该函数作为新映射来学习。我们通过实验(图7)表明,学习的残差函数通常具有较小的响应(small responses),这表明恒等映射(identity mappings)提供了合理的预处理(reasonable preconditioning)。

3.2. Identity Mapping by Shortcuts

我们对每个堆叠层(stacked layers)采用残差学习(residual learning)。 构建块如图2所示。在本文中,我们认为构建块定义为:
经典论文翻译:Deep Residual Learning for Image Recognition
这里x和y是所考虑的层的输入和输出向量。函数F(x,{Wi})F(x,\{W_i\})代表要学习的残差映射,比如图2有两层,F=W2σ(W1x)F=W_2\sigma(W_1x),这里的σ\sigma表示ReLU [29]并且为了简化符号(simplifying notations)而省略(omitted)了偏差。操作F+xF + x通过快捷连接(shortcut connection)和逐元素添加(element-wise addition)来执行。 我们采用加法后的第二非线性(即σ(y)\sigma (y),见图2)。

方程(1)中的快捷方式连接既不引入额外参数也不引入计算复杂性。 这不仅在实践中具有吸引力,而且在我们对普通网络(plain )和残差网络之间的比较中也很重要。 我们可以公平地比较同时具有相同数量的参数,深度,宽度和计算成本的普通/残差网络(except for the negligible element-wise addition)。

公式(1)中x和F的尺寸必须相等。 如果不是这种情况(例如,在更改输入/输出通道时),我们可以通过快捷连接方式( shortcut connections)执行线性投影(linear projection)WsW_s以匹配尺寸:
经典论文翻译:Deep Residual Learning for Image Recognition
我们也可以在方程(1)中使用方阵矩阵。 但是我们将通过实验证明,恒等映射(identity mappings)足以解决退化(degradation )问题并且是经济(economical)的,因此WsW_s仅在匹配维度时使用。

残差函数F的形式是灵活的。 本文中的实验涉及具有两层或三层的函数F(图5),而更多层是可能的。 但是如果F只有一层,则方程(1)类似于线性层:y=W1x+xy = W_1x + x,我们没有观察到它们的优点。我们还注意到,尽管为简单起见(for simplicity),上述符号(above notations)是关于完全连接的层,但它们适用于(are applicable to)卷积层。函数F(x,{Wi})F(x,\{W_i\})可以表示多个卷积层。 逐个元素的添加(element-wise addition)是在两个特征映射上逐个通道执行的。

3.3. Network Architectures(网络结构)

我们测试了各种普通/残差网,并观察到了一致的现象(consistent phenomena)。 为了提供讨论的实例,我们为ImageNet描述了两个模型,如下所示。

**Plain Network(普通网络):**我们的普通网络标准(图3,中间)主要受到VGG网络启发[41](图3,左)。 卷积层主要有3x3过滤器,遵循两个简单的设计规则:(i)对于相同的输出特征映射大小,这些层具有相同数量的滤波器;(ii)如果特征映射大小减半(halved),则过滤器的数量加倍(doubled ),以便保持每层的时间复杂度(time complexity)。我们直接通过步幅为2的卷积层进行下采样。网络以全局平均池化(global average pooling )层和带有softmax的1000-way(1000-way fully-connected layer)全连接层结束。 在图3(中间)中,加权层的总数是34。值得注意的是,我们的模型比VGG网络具有更少的过滤器和更低的复杂性[41](图3,左)。 我们的34层基线(baseline )有36亿FLOP(乘法增加),仅为VGG-19(196亿FLOP)的18%。
经典论文翻译:Deep Residual Learning for Image Recognition

Residual Network:基于上述普通网络(plain network),我们插入了快捷连接(shortcut connections)(图3,右),将网络转换为对应的残差版本(its counterpart residual version)。当输入和输出具有相同的尺寸时,可以直接使用标识快捷方式(identity shortcuts)(公式(1))(图3中的实线快捷(shortcuts )方式)。当尺寸(dimensions)增加时(图3中的虚线(dotted line)快捷键),我们考虑两个选项:(A)快捷方式仍然执行恒等映射(identity mapping),对于维度的增加用零来填补空缺。此策略不会引入额外的参数;投影捷径( projection shortcut)(公式2)被用来匹配尺寸(match dimensions)(靠1×1的卷积完成)。对于这两种选项,当快捷连接在两个不同大小的特征图谱上出现时,用stride=2来处理。

3.4. Implementation(实现)

我们对ImageNet的实现遵循[21,41]中的实践。根据图片的短边调整图像大小,随机采样[256; 480]用于数据增加[41]。从图像或其水平翻转(horizontal flip)中随机采样224x224的裁剪块,并将裁剪结果减去每像素平均值[21]。 使用[21]中的标准颜色增强。 我们在每次卷积之后和**之前采用批量归一化(BN)[16]。我们根据[13]中的方法初始化权重,并从头开始训练所有普通/残差网。 我们使用小批量256的SGD。学习率从0.1开始,当误差平稳时除以10,并且模型训练多达60x104次迭代。 我们使用0.0001的重量衰减(weight decay)和0.9的动量(momentum)。 按照[16]中的实践,我们不使用dropout [14]。

在测试中,为了比较研究,我们采用标准的10-crop测试[21]。 为了获得最佳结果,我们采用[41,13]中的完全卷积形式,并在多个尺度上平均得分(图像被调整大小以使得短边在{224; 256; 384; 480; 640}中)。

4. Experiments(实验)

4.1. ImageNet Classification(ImageNet 图像分类)

我们在由1000个类组成的ImageNet 2012分类数据集[36]上评估我们的方法。 模型在128万个训练图像上进行训练,并在50k验证图像上进行评估。 我们还获得了测试服务器报告的100k测试图像的最终结果。 我们评估前1和前5错误率。
经典论文翻译:Deep Residual Learning for Image Recognition
经典论文翻译:Deep Residual Learning for Image Recognition

Plain Networks:我们首先评估18层和34层普通网络。 34层普通网络在图3(中间)。 18层普通网络具有类似的形式。 有关详细的体系结构,请参阅表1。表2中的结果表明,较深的34层普通网络比较浅的18层普通网络具有更高的验证误差。 为了揭示原因,在图4(左)中我们比较了他们在训练过程中的训练/验证错误。我们观察到34层普通网络在整个训练过程中具有较高训练误差的退化问题,即使18层普通网络的解空间是34层普通网络的子空间。
经典论文翻译:Deep Residual Learning for Image Recognition
我们认为这种优化难度(optimization difficulty)不太可能是由于梯度消失造成的。 这些普通网络采用BN[16]进行训练,确保前向传播信号具有非零方差(non-zero variances)。 我们还验证了向后传播的梯度与BN表现出健康的规范(healthy norms)。 因此,前向和后向信号都不会消失。事实上,34层普通网络仍然能够达到竞争准确性(表3),这表明求解器在某种程度上起作用。 我们推测深普通网络可能具有指数级低的收敛速度(exponentially low convergence rates),这会影响训练误差的减少3。 将来将研究这种优化困难的原因。

Residual Networks
接下来,我们评估18层和34层残差网络(ResNets)。 基线体系结构(baseline architectures)与上述普通网络相同,期望快速连接(shortcut connection)添加到每对3x3过滤器,如图3(右)所示。在第一次比较中(表2和图4右),我们对所有快捷方式(shortcuts )使用恒等映射(identity mapping),为增加维度使用零填充(选项A)(zero-padding for increasing dimensions (option A))。 因此,与对应的普通网络相比,他们没有额外的参数。我们从表2和图4中得到了三个主要观察结果。首先,情况与残差学习相反 - 34层ResNet优于18层ResNet(2.8%)。 更重要的是,34层ResNet表现出相当低的训练误差,并且可以推广到验证数据。 这表明在该设置中很好地解决了退化问题,并且我们设法从增加的深度获得准确度增益。