# 2015 He et al.

Deep Residual Learning for Image Recognition

图像识别的深度残差学习 何恺明,张祥雨,任少卿,孙剑 微软研究院 {kahe, v-xiangz, v-shren, jiansun}@microsoft.com --- 摘要 更深的神经网络更难训练。我们提出了一种残差学习框架,以简化比以往使用的网络深得多的网络的训练。我们明确地将层重新表述为学习关于层输入的残差函数,而不是学习未引用的函数。我们提供了全面的实证证据,...

精粹译文

图像识别的深度残差学习

何恺明,张祥雨,任少卿,孙剑 微软研究院 {kahe, v-xiangz, v-shren, jiansun}@microsoft.com


摘要

更深的神经网络更难训练。我们提出了一种残差学习框架,以简化比以往使用的网络深得多的网络的训练。我们明确地将层重新表述为学习关于层输入的残差函数,而不是学习未引用的函数。我们提供了全面的实证证据,表明这些残差网络更容易优化,并且可以从显著增加的深度中获得准确性。在 ImageNet 数据集上,我们评估了深度高达 152 层的残差网络——比 VGG 网络 [41] 深 8 倍,但复杂度更低。这些残差网络的集成在 ImageNet 测试集上达到了 3.57% 的错误率。该结果在 ILSVRC 2015 分类任务中获得了第一名。我们还展示了在 CIFAR-10 上对 100 层和 1000 层网络的分析。

表示的深度对于许多视觉识别任务至关重要。仅由于我们极深的表示,我们在 COCO 物体检测数据集上获得了 28% 的相对改进。深度残差网络是我们提交给 ILSVRC & COCO 2015 竞赛的基础,我们在这些竞赛中还获得了 ImageNet 检测、ImageNet 定位、COCO 检测和 COCO 分割任务的第一名。


1. 引言

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

受深度重要性的驱动,一个问题随之产生:学习更好的网络是否像堆叠更多层一样容易?回答这个问题的一个障碍是众所周知的梯度消失/爆炸问题 [1, 9],这从一开始就阻碍了收敛。然而,这个问题已通过归一化初始化 [23, 9, 37, 13] 和中间归一化层 [16] 在很大程度上得到了解决,这使得具有数十层的网络能够开始为带有反向传播 [22] 的随机梯度下降 (SGD) 收敛。

当更深的网络能够开始收敛时,一个退化问题暴露出来:随着网络深度的增加,准确率趋于饱和(这可能并不令人惊讶),然后迅速退化。出乎意料的是,这种退化并非由过拟合引起,并且在适当深度的模型中添加更多层会导致更高的训练误差,正如 [11, 42] 中所报道的那样,并经过我们的实验彻底验证。图 1 展示了一个典型的例子。

(训练准确率的)退化表明并非所有系统都同样容易优化。让我们考虑一个较浅的架构及其添加了更多层的更深对应物。对于更深的模型,存在一种构造解:添加的层是恒等映射,其他层从学习到的较浅模型中复制。这种构造解的存在表明,更深的模型产生的训练误差不应高于其较浅的对应物。但实验表明,我们手头的现有求解器无法找到比构造解同样好或更好的解(或无法在可行时间内找到)。

图 1. 在 CIFAR-10 上使用 20 层和 56 层“普通”网络的训练误差(左)和测试误差(右)。更深的网络具有更高的训练误差,因此测试误差也更高。ImageNet 上的类似现象如图 4 所示。

在本文中,我们通过引入深度残差学习框架来解决退化问题。我们不再希望每几层堆叠直接拟合所需的底层映射,而是明确让这些层拟合残差映射。形式上,将所需的底层映射表示为 H(x)H(x),我们让堆叠的非线性层拟合另一个映射 F(x):=H(x)xF(x) := H(x) - x。原始映射被重构为 F(x)+xF(x) + x。我们假设优化残差映射比优化原始的、未引用的映射更容易。极端情况下,如果恒等映射是最优的,那么将残差推向零比通过一堆非线性层拟合恒等映射更容易。

F(x)+xF(x) + x 的公式可以通过带有“快捷连接”(shortcut connections)的前馈神经网络来实现(图 2)。快捷连接 [2, 34, 49] 是那些跳过一层或多层的连接。在我们的例子中,快捷连接简单地执行恒等映射,它们的输出被添加到堆叠层的输出中(图 2)。恒等快捷连接既不增加额外的参数,也不增加计算复杂度。整个网络仍然可以通过带有反向传播的 SGD 进行端到端训练,并且可以使用通用库(例如 Caffe [19])轻松实现,而无需修改求解器。

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

类似的现象也出现在 CIFAR-10 数据集 [20] 上,这表明优化困难和我们方法的效果不仅仅局限于特定的数据集。我们展示了在该数据集上成功训练的超过 100 层的模型,并探索了超过 1000 层的模型。

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


2. 相关工作

残差表示。 在图像识别中,VLAD [18] 是一种通过相对于字典的残差向量进行编码的表示,Fisher Vector [30] 可以被表述为 VLAD 的概率版本 [18]。它们都是用于图像检索和分类的强大的浅层表示 [4, 48]。对于向量量化,编码残差向量 [17] 被证明比编码原始向量更有效。

在底层视觉和计算机图形学中,为了求解偏微分方程 (PDE),广泛使用的多重网格法 (Multigrid method) [3] 将系统重构为多尺度的子问题,其中每个子问题负责较粗尺度和较细尺度之间的残差解。多重网格的替代方案是分层基预处理 (hierarchical basis preconditioning) [45, 46],它依赖于表示两个尺度之间残差向量的变量。研究表明 [3, 45, 46],这些求解器的收敛速度比不了解解的残差性质的标准求解器快得多。这些方法表明,良好的重构或预处理可以简化优化。

快捷连接。 导致快捷连接 [2, 34, 49] 的实践和理论已经研究了很长时间。训练多层感知器 (MLP) 的早期实践是在从网络输入到输出之间添加一个线性层 [34, 49]。在 [44, 24] 中,一些中间层直接连接到辅助分类器,以解决梯度消失/爆炸问题。文献 [39, 38, 31, 47] 提出了通过快捷连接实现层响应、梯度和传播误差中心化的方法。在 [44] 中,“Inception”层由一个快捷分支和几个更深的分支组成。

与我们的工作同时,Highway 网络 [42, 43] 提出了带有门控函数 [15] 的快捷连接。这些门是数据相关的并且具有参数,这与我们无参数的恒等快捷方式形成对比。当门控快捷方式“关闭”(接近零)时,Highway 网络中的层表示非残差函数。相反,我们的公式总是学习残差函数;我们的恒等快捷方式永远不会关闭,所有信息总是被传递,同时还有额外的残差函数需要学习。此外,Highway 网络尚未证明在深度显著增加(例如超过 100 层)时准确率有所提高。


3. 深度残差学习

3.1. 残差学习

让我们考虑 H(x)H(x) 作为要由几层堆叠层(不一定是整个网络)拟合的底层映射,其中 xx 表示这些层中第一层的输入。如果假设多个非线性层可以渐近逼近复杂的函数,那么这等同于假设它们可以渐近逼近残差函数,即 H(x)xH(x) - x(假设输入和输出具有相同的维度)。因此,我们不期望堆叠层去逼近 H(x)H(x),而是明确让这些层逼近残差函数 F(x):=H(x)xF(x) := H(x) - x。原始函数因此变为 F(x)+xF(x) + x。尽管这两种形式都应该能够渐近逼近所需的函数(如假设的那样),但学习的难易程度可能不同。

这种重构的动机是关于退化问题的反直觉现象(图 1,左)。正如我们在引言中所讨论的,如果添加的层可以被构造为恒等映射,那么更深的模型应该具有不高于其较浅对应物的训练误差。退化问题表明,求解器可能难以通过多个非线性层来逼近恒等映射。通过残差学习重构,如果恒等映射是最优的,求解器可以简单地将多个非线性层的权重推向零以逼近恒等映射。

在实际情况中,恒等映射不太可能是最优的,但我们的重构可能有助于对问题进行预处理。如果最优函数比零映射更接近恒等映射,那么求解器应该更容易找到相对于恒等映射的扰动,而不是将函数作为新函数来学习。我们通过实验(图 7)表明,学习到的残差函数通常具有较小的响应,这表明恒等映射提供了合理的预处理。

3.2. 通过快捷方式进行恒等映射

我们将残差学习应用于每几层堆叠层。构建块如图 2 所示。形式上,在本文中,我们考虑定义为以下的构建块:

y=F(x,{Wi})+xy = F(x, \{W_i\}) + x

这里 xxyy 是所考虑层的输入和输出向量。函数 F(x,{Wi})F(x, \{W_i\}) 表示要学习的残差映射。对于图 2 中具有两层的示例,F=W2σ(W1x)F = W_2\sigma(W_1x),其中 σ\sigma 表示 ReLU [29],为了简化符号,省略了偏置。操作 F+xF + x 通过快捷连接和逐元素加法执行。我们在加法之后采用第二个非线性(即 σ(y)\sigma(y),见图 2)。

公式 (1) 中的快捷连接既不引入额外的参数,也不引入计算复杂度。这不仅在实践中具有吸引力,而且在普通网络和残差网络的比较中也很重要。我们可以公平地比较同时具有相同参数数量、深度、宽度和计算成本(除了可忽略的逐元素加法)的普通/残差网络。

公式 (1) 中 xxFF 的维度必须相等。如果不是这种情况(例如,在改变输入/输出通道时),我们可以通过快捷连接执行线性投影 WsW_s 以匹配维度:

y=F(x,{Wi})+Wsxy = F(x, \{W_i\}) + W_sx

我们也可以在公式 (1) 中使用方阵 WsW_s。但我们将通过实验表明,恒等映射足以解决退化问题并且是经济的,因此 WsW_s 仅在匹配维度时使用。

残差函数 FF 的形式是灵活的。本文中的实验涉及具有两层或三层的函数 FF(图 5),尽管更多层也是可能的。但如果 FF 只有单层,公式 (1) 类似于线性层:y=W1x+xy = W_1x + x,我们尚未观察到其优势。我们还注意到,尽管上述符号为了简单起见是关于全连接层的,但它们适用于卷积层。函数 F(x,{Wi})F(x, \{W_i\}) 可以表示多个卷积层。逐元素加法是在两个特征图上逐通道执行的。

3.3. 网络架构

我们测试了各种普通/残差网络,并观察到了持续的现象。为了提供讨论实例,我们描述了两个 ImageNet 模型如下。

普通网络。 我们的普通基准(图 3,中)主要受到 VGG 网络 [41](图 3,左)哲学的启发。卷积层大多具有 3×33 \times 3 滤波器,并遵循两个简单的设计规则:(i) 对于相同的输出特征图尺寸,层具有相同数量的滤波器;(ii) 如果特征图尺寸减半,滤波器数量加倍,以保持每层的计算复杂度。我们通过步长为 2 的卷积层直接执行下采样。网络以全局平均池化层和带有 softmax 的 1000 路全连接层结束。图 3(中)中加权层的总数为 34。

值得注意的是,我们的模型比 VGG 网络 [41](图 3,左)具有更少的滤波器和更低的复杂度。我们的 34 层基准具有 36 亿 FLOPs(乘加运算),仅为 VGG-19(196 亿 FLOPs)的 18%。

图 2. 残差学习:一个构建块。

图 3. ImageNet 的示例网络架构。左:作为参考的 VGG-19 模型 [41](196 亿 FLOPs)。中:具有 34 个参数层的普通网络(36 亿 FLOPs)。右:具有 34 个参数层的残差网络(36 亿 FLOPs)。虚线快捷方式增加了维度。表 1 显示了更多细节和其他变体。

残差网络。 基于上述普通网络,我们插入快捷连接(图 3,右),将网络转换为其对应的残差版本。当输入和输出维度相同时,可以直接使用恒等快捷方式(公式 (1))(图 3 中的实线快捷方式)。当维度增加时(图 3 中的虚线快捷方式),我们考虑两种选择:(A) 快捷方式仍然执行恒等映射,填充额外的零条目以增加维度。此选项不引入额外参数;(B) 公式 (2) 中的投影快捷方式用于匹配维度(通过 1×11 \times 1 卷积完成)。对于这两种选择,当快捷方式跨越两个尺寸的特征图时,它们以步长为 2 执行。

3.4. 实现

我们对 ImageNet 的实现遵循 [21, 41] 中的实践。图像被调整大小,其短边在 [256,480][256, 480] 中随机采样以进行尺度增强 [41]。从图像或其水平翻转中随机采样 224×224224 \times 224 的裁剪,并减去每像素均值 [21]。使用了 [21] 中的标准颜色增强。我们遵循 [16],在每次卷积之后和激活之前采用批量归一化 (BN) [16]。我们按照 [13] 初始化权重,并从头开始训练所有普通/残差网络。我们使用小批量大小为 256 的 SGD。学习率从 0.1 开始,当误差趋于平稳时除以 10,模型训练多达 60×10460 \times 10^4 次迭代。我们使用 0.0001 的权重衰减和 0.9 的动量。我们不使用 dropout [14],遵循 [16] 中的实践。

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


4. 实验

4.1. ImageNet 分类

我们评估了我们在 ImageNet 2012 分类数据集 [36] 上的方法,该数据集包含 1000 个类别。模型在 128 万张训练图像上进行训练,并在 50k 张验证图像上进行评估。我们还获得了 100k 张测试图像上的最终结果,由测试服务器报告。我们评估 top-1 和 top-5 错误率。

普通网络。 我们首先评估 18 层和 34 层普通网络。34 层普通网络如图 3(中)所示。18 层普通网络形式相似。详细架构见表 1。

表 2 中的结果显示,更深的 34 层普通网络比更浅的 18 层普通网络具有更高的验证误差。为了揭示原因,在图 4(左)中,我们比较了它们在训练过程中的训练/验证误差。我们观察到了退化问题——34 层普通网络在整个训练过程中具有更高的训练误差,即使 18 层普通网络的解空间是 34 层网络解空间的子空间。

我们认为这种优化困难不太可能是由梯度消失引起的。这些普通网络是用 BN [16] 训练的,这确保了前向传播的信号具有非零方差。我们还验证了反向传播的梯度在 BN 下表现出健康的范数。因此,前向和反向信号都没有消失。事实上,34 层普通网络仍然能够达到具有竞争力的准确率(表 3),这表明求解器在一定程度上是有效的。我们推测深度普通网络可能具有指数级低的收敛速度,这影响了训练误差的减少。这种优化困难的原因将在未来研究。

残差网络。 接下来我们评估 18 层和 34 层残差网络 (ResNets)。基准架构与上述普通网络相同,只是在每对 3×33 \times 3 滤波器上添加了快捷连接,如图 3(右)所示。在第一次比较中(表 2 和图 4 右),我们对所有快捷方式使用恒等映射,并对增加的维度使用零填充(选项 A)。因此,与普通对应物相比,它们没有额外的参数。

我们从表 2 和图 4 中有三个主要观察结果。首先,残差学习的情况发生了逆转——34 层 ResNet 比 18 层 ResNet 更好(提高了 2.8%)。更重要的是,34 层 ResNet 表现出相当低的训练误差,并且可以泛化到验证数据。这表明退化问题在这种设置下得到了很好的解决,我们设法从增加的深度中获得了准确率提升。

其次,与其普通对应物相比,34 层 ResNet 降低了训练误差。这种优化困难的原因将在未来研究。

表 1. ImageNet 的架构。构建块显示在括号中(另见图 5),并显示了堆叠的块数量。下采样由 conv3_1、conv4_1 和 conv5_1 执行,步长为 2。

图 4. 在 ImageNet 上训练。细曲线表示训练误差,粗曲线表示中心裁剪的验证误差。左:18 层和 34 层的普通网络。右:18 层和 34 层的 ResNets。在此图中,与普通对应物相比,残差网络没有额外的参数。

普通ResNet
18 层27.9427.88
34 层28.5425.03

表 2. ImageNet 验证集上的 Top-1 错误率(%,10-crop 测试)。此处 ResNets 与其普通对应物相比没有额外参数。图 4 显示了训练过程。


4.2. CIFAR-10 和分析

我们在 CIFAR-10 数据集 [20] 上进行了更多研究,该数据集包含 50k 张训练图像和 10k 张测试图像,分为 10 个类别。我们展示了在训练集上训练并在测试集上评估的实验。我们的重点是极深网络的行为,而不是推动最先进的结果,因此我们有意使用简单的架构如下。

普通/残差架构遵循图 3(中/右)的形式。网络输入是 32×3232 \times 32 的图像,减去每像素均值。第一层是 3×33 \times 3 卷积。然后,我们使用一堆 6n6n 层,在尺寸分别为 {32,16,8}\{32, 16, 8\} 的特征图上进行 3×33 \times 3 卷积,每个特征图尺寸有 2n2n 层。滤波器数量分别为 {16,32,64}\{16, 32, 64\}。下采样由步长为 2 的卷积执行。网络以全局平均池化、10 路全连接层和 softmax 结束。总共有 6n+26n+2 个堆叠的加权层。下表总结了架构:

输出图尺寸32×3232 \times 3216×1616 \times 168×88 \times 8
# 层1+2n1+2n2n2n2n2n
# 滤波器163264

当使用快捷连接时,它们连接到 3×33 \times 3 层对(总共 3n3n 个快捷方式)。在此数据集上,我们在所有情况下都使用恒等快捷方式(即选项 A),因此我们的残差模型与普通对应物具有完全相同的深度、宽度和参数数量。

我们使用 0.0001 的权重衰减和 0.9 的动量,并采用 [13] 中的权重初始化和 BN [16],但不使用 dropout。这些模型在两个 GPU 上以 128 的小批量大小进行训练。我们从 0.1 的学习率开始,在 32k 和 48k 次迭代时将其除以 10,并在 64k 次迭代时终止训练,这是在 45k/5k 训练/验证分割上确定的。我们遵循 [24] 中的简单数据增强进行训练:每边填充 4 个像素,并从填充的图像或其水平翻转中随机采样 32×3232 \times 32 的裁剪。对于测试,我们仅评估原始 32×3232 \times 32 图像的单视图。

我们比较 n={3,5,7,9}n = \{3, 5, 7, 9\},导致 20、32、44 和 56 层网络。图 6(左)显示了普通网络的行为。深度普通网络受到增加深度的影响,并且在更深时表现出更高的训练误差。这种现象类似于 ImageNet(图 4,左)和 MNIST(见 [42])上的现象,表明这种优化困难是一个根本性问题。

图 6(中)显示了 ResNets 的行为。同样类似于 ImageNet 的情况(图 4,右),我们的 ResNets 设法克服了优化困难,并证明了当深度增加时准确率有所提高。

我们进一步探索 n=18n = 18,这导致了 110 层 ResNet。在这种情况下,我们发现 0.1 的初始学习率稍微太大,无法开始收敛。因此,我们使用 0.01 来预热训练,直到训练误差低于 80%(约 400 次迭代),然后回到 0.1 并继续训练。其余的学习计划与之前相同。这个 110 层网络收敛良好(图 6,中)。它比其他深度和薄网络(如 FitNet [35] 和 Highway [42](表 6))具有更少的参数,但属于最先进的结果(6.43%,表 6)。

层响应分析。 图 7 显示了层响应的标准差 (std)。响应是每个 3×33 \times 3 层的输出,在 BN 之后和非线性(ReLU/加法)之前。对于 ResNets,此分析揭示了残差函数的响应强度。图 7 显示 ResNets 的响应通常比其普通对应物小。这些结果支持了我们的基本动机(第 3.1 节),即残差函数可能通常比非残差函数更接近零。我们还注意到,更深的 ResNet 具有更小的响应幅度,这在图 7 中 ResNet-20、56 和 110 的比较中得到了证明。当有更多层时,ResNets 的单个层倾向于较少地修改信号。

探索超过 1000 层。 我们探索了一个超过 1000 层的激进深度模型。我们设置 n=200n = 200,这导致了 1202 层网络,并按上述方式进行训练。我们的方法没有显示出优化困难,并且这个 10310^3 层网络能够实现 <0.1%<0.1\% 的训练误差(图 6,右)。其测试误差仍然相当不错(7.93%,表 6)。

但对于这种激进的深度模型,仍然存在悬而未决的问题。这个 1202 层网络的测试结果比我们的 110 层网络差,尽管两者的训练误差相似。我们认为这是因为过拟合。对于这个小数据集,1202 层网络可能是不必要地大(19.4M)。强正则化(如 maxout [10] 或 dropout [14])被应用于在该数据集上获得最佳结果([10, 25, 24, 35])。在本文中,我们不使用 maxout/dropout,只是简单地通过设计深度和薄架构来施加正则化,而不分散对优化困难的关注。但结合更强的正则化可能会改善结果,我们将在未来研究。


4.3. PASCAL 和 MS COCO 上的物体检测

我们的方法在其他识别任务上具有良好的泛化性能。表 7 和 8 显示了 PASCAL VOC 2007 和 2012 [5] 以及 COCO [26] 上的物体检测基准结果。我们采用 Faster R-CNN [32] 作为检测方法。在这里,我们对用 ResNet-101 替换 VGG-16 [41] 的改进感兴趣。使用这两种模型的检测实现(见附录)是相同的,因此增益只能归因于更好的网络。最值得注意的是,在具有挑战性的 COCO 数据集上,我们在 COCO 的标准指标 (mAP@[.5, .95]) 上获得了 6.0% 的增长,这是 28% 的相对改进。这种增益完全归功于学习到的表示。

基于深度残差网络,我们赢得了 ILSVRC & COCO 2015 竞赛中多个赛道的第一名:ImageNet 检测、ImageNet 定位、COCO 检测和 COCO 分割。详细信息在附录中。

表 6. CIFAR-10 测试集上的分类错误率。所有方法都带有数据增强。对于 ResNet-110,我们运行 5 次并显示“最佳(平均值±标准差)”,如 [43] 中所示。

图 6. 在 CIFAR-10 上训练。虚线表示训练误差,粗线表示测试误差。左:普通网络。plain-110 的误差高于 60%,未显示。中:ResNets。右:具有 110 层和 1202 层的 ResNets。

图 7. CIFAR-10 上层响应的标准差 (std)。响应是每个 3 \times 3 层的输出,在 BN 之后和非线性之前。上:层按其原始顺序显示。下:响应按降序排列。

表 7. 使用基准 Faster R-CNN 在 PASCAL VOC 2007/2012 测试集上的物体检测 mAP (%)。另见表 10 和 11 以获得更好的结果。

表 8. 使用基准 Faster R-CNN 在 COCO 验证集上的物体检测 mAP (%)。另见表 9 以获得更好的结果。


参考文献

[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. Van 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 images. 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 handwritten zip code recognition. Neural computation, 1989. [23] Y. LeCun, L. Bottou, G. B. Orr, and K.-R. Muller. Efficient backprop. 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. Dollar, 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. Montufar, 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. Valpola, 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: Towards real-time object detection with region proposal networks. In NIPS, 2015. [33] S. Ren, K. He, R. Girshick, X. Zhang, andJ. 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. LeCun. Overfeat: Integrated recognition, localization and detection using convolutional networks. In ICLR, 2014. [41] K. Simonyan and A. Zisserman. Very 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. Vanhoucke, 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. Vatanen, T. Raiko, H. Valpola, and Y. LeCun. Pushing stochastic gradient towards second-order methods–backpropagation learning with transformations in nonlinearities. In Neural Information Processing, 2013. [48] A. Vedaldi and B. Fulkerson. VLFeat: An open and portable library of computer vision algorithms, 2008. [49] W. Venables 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.


A. 物体检测基准

在本节中,我们介绍基于基准 Faster R-CNN [32] 系统的检测方法。模型由 ImageNet 分类模型初始化,然后在物体检测数据上进行微调。我们在 ILSVRC & COCO 2015 检测竞赛时对 ResNet-50/101 进行了实验。

与 [32] 中使用的 VGG-16 不同,我们的 ResNet 没有隐藏的全连接 (fc) 层。我们采用“卷积特征图上的网络”(Networks on Conv feature maps, NoC)[33] 的思想来解决这个问题。我们使用那些在图像上步长不超过 16 像素的层(即 conv1, conv2_x, conv3_x 和 conv4_x,在 ResNet-101 中总共有 91 个卷积层;表 1)来计算全图共享的卷积特征图。我们将这些层视为类似于 VGG-16 中的 13 个卷积层,通过这样做,ResNet 和 VGG-16 都具有相同总步长(16 像素)的卷积特征图。这些层由区域建议网络(RPN,生成 300 个建议)[32] 和 Fast R-CNN 检测网络 [7] 共享。RoI 池化 [7] 在 conv5_1 之前执行。在这些 RoI 池化特征上,采用 conv5_x 及以上的所有层用于每个区域,扮演 VGG-16 的 fc 层的角色。最终的分类层被两个兄弟层(分类和框回归 [7])取代。

对于 BN 层的使用,在预训练后,我们计算 ImageNet 训练集上每一层的 BN 统计量(均值和方差)。然后在物体检测的微调过程中固定 BN 层。因此,BN 层变成了具有恒定偏移和缩放的线性激活,并且 BN 统计量不会通过微调进行更新。我们固定 BN 层主要是为了减少 Faster R-CNN 训练中的内存消耗。

PASCAL VOC 遵循 [7, 32],对于 PASCAL VOC 2007 测试集,我们使用 VOC 2007 中的 5k trainval 图像和 VOC 2012 中的 16k trainval 图像进行训练(“07+12”)。对于 PASCAL VOC 2012 测试集,我们使用 VOC 2007 中的 10k trainval+test 图像和 VOC 2012 中的 16k trainval 图像进行训练(“07++12”)。训练 Faster R-CNN 的超参数与 [32] 中的相同。表 7 显示了结果。ResNet-101 比 VGG-16 的 mAP 提高了 >3%。这种增益完全是因为 ResNet 学习到的改进特征。

MS COCO MS COCO 数据集 [26] 涉及 80 个物体类别。我们评估 PASCAL VOC 指标 (mAP @ IoU = 0.5) 和标准 COCO 指标 (mAP @ IoU = .5:.05:.95)。我们使用 train 集上的 80k 张图像进行训练,使用 val 集上的 40k 张图像进行评估。我们的 COCO 检测系统与 PASCAL VOC 的类似。我们使用 8-GPU 实现训练 COCO 模型,因此 RPN 步骤的小批量大小为 8 张图像(即每个 GPU 1 张),Fast R-CNN 步骤的小批量大小为 16 张图像。RPN 步骤和 Fast R-CNN 步骤都训练 240k 次迭代,然后以 0.0001 的学习率训练 80k 次迭代。

表 8 显示了 MS COCO 验证集上的结果。ResNet-101 在 mAP@[.5, .95] 上比 VGG-16 提高了 6%,这是 28% 的相对改进,完全归功于更好网络学习到的特征。值得注意的是,mAP@[.5, .95] 的绝对增长 (6.0%) 几乎与 mAP@.5 的增长 (6.9%) 一样大。这表明更深的网络可以同时改善识别和定位。

B. 物体检测改进

为了完整起见,我们报告了为竞赛所做的改进。这些改进基于深度特征,因此应该从残差学习中受益。

MS COCO 框细化(Box refinement)。 我们的框细化部分遵循 [6] 中的迭代定位。在 Faster R-CNN 中,最终输出是一个与建议框不同的回归框。因此,对于推理,我们从回归框中池化一个新特征,并获得一个新的分类分数和一个新的回归框。我们将这 300 个新预测与原始的 300 个预测结合起来。非极大值抑制 (NMS) 应用于使用 0.3 [8] 的 IoU 阈值的预测框集合,随后进行框投票 [6]。框细化将 mAP 提高了约 2 个点(表 9)。

全局上下文(Global context)。 我们在 Fast R-CNN 步骤中结合了全局上下文。给定全图卷积特征图,我们通过全局空间金字塔池化 [12](具有“单级”金字塔)池化一个特征,该特征可以实现为使用整个图像的边界框作为 RoI 的“RoI”池化。这个池化特征被馈送到 post-RoI 层以获得全局上下文特征。该全局特征与原始的每区域特征连接,随后是兄弟分类和框回归层。这种新结构是端到端训练的。全局上下文将 mAP@.5 提高了约 1 个点(表 9)。

多尺度测试(Multi-scale testing)。 在上述内容中,所有结果均通过单尺度训练/测试获得,如 [32] 所示,其中图像的短边为 s=600s = 600 像素。多尺度训练/测试已在 [12, 7] 中通过从特征金字塔中选择尺度,以及在 [33] 中通过使用 maxout 层开发。在我们当前的实现中,我们遵循 [33] 进行了多尺度测试;由于时间有限,我们没有进行多尺度训练。此外,我们仅对 Fast R-CNN 步骤进行了多尺度测试(但尚未对 RPN 步骤进行)。使用训练好的模型,我们在图像金字塔上计算卷积特征图,其中图像的短边为 s{200,400,600,800,1000}s \in \{200, 400, 600, 800, 1000\}

表 9. 使用 Faster R-CNN 和 ResNet-101 在 MS COCO 上进行的物体检测改进。

表 10. PASCAL VOC 2007 测试集上的检测结果。基准是 Faster R-CNN 系统。“baseline+++”系统包括表 9 中的框细化、上下文和多尺度测试。

表 11. PASCAL VOC 2012 测试集上的检测结果。基准是 Faster R-CNN 系统。“baseline+++”系统包括表 9 中的框细化、上下文和多尺度测试。

我们遵循 [33] 从金字塔中选择两个相邻的尺度。RoI 池化和后续层在这些两个尺度的特征图上执行 [33],并通过 maxout 合并,如 [33] 所示。多尺度测试将 mAP 提高了超过 2 个点(表 9)。

使用验证数据。 接下来,我们使用 80k+40k trainval 集进行训练,并使用 20k test-dev 集进行评估。test-dev 集没有公开可用的 ground truth,结果由评估服务器报告。在这种设置下,结果是 55.7% 的 mAP@.5 和 34.9% 的 mAP@[.5, .95](表 9)。这是我们的单模型结果。

集成(Ensemble)。 在 Faster R-CNN 中,系统旨在学习区域建议和物体分类器,因此可以使用集成来提升这两项任务。我们使用集成来建议区域,并且建议的并集由每区域分类器的集成处理。表 9 显示了我们基于 3 个网络集成得到的结果。mAP 在 test-dev 集合上为 59.0% 和 37.4%。该结果赢得了 COCO 2015 检测任务的第一名。

PASCAL VOC 我们基于上述模型重新审视 PASCAL VOC 数据集。通过 COCO 数据集上的单模型(表 9 中 55.7% 的 mAP@.5),我们在 PASCAL VOC 集合上微调该模型。框细化、上下文和多尺度测试的改进也被采用。通过这样做,我们在 PASCAL VOC 2007 上达到了 85.6% 的 mAP(表 10),在 PASCAL VOC 2012 上达到了 83.8%(表 11)。PASCAL VOC 2012 上的结果比之前最先进的结果 [6] 高出 10 个点。

ImageNet 检测 ImageNet 检测 (DET) 任务涉及 200 个物体类别。准确率由 mAP@.5 评估。我们用于 ImageNet DET 的物体检测算法与表 9 中用于 MS COCO 的相同。网络在 1000 类 ImageNet 分类集上进行预训练,并在 DET 数据上进行微调。我们按照 [8] 将验证集分为两部分 (val1/val2)。我们使用 DET 训练集和 val1 集微调检测模型。val2 集用于验证。我们不使用其他 ILSVRC 2015 数据。我们带有 ResNet-101 的单模型具有 58.8% 的 mAP,我们的 3 个模型集成在 DET 测试集上具有 62.1% 的 mAP(表 12)。该结果赢得了 ILSVRC 2015 ImageNet 检测任务的第一名,超过第二名 8.5 个点(绝对值)。

表 12. 我们在 ImageNet 检测数据集上的结果(mAP,%)。我们的检测系统是带有表 9 中改进的 Faster R-CNN [32],使用 ResNet-101。

C. ImageNet 定位

ImageNet 定位 (LOC) 任务 [36] 要求分类和定位物体。遵循 [40, 41],我们假设首先采用图像级分类器来预测图像的类别标签,定位算法仅负责根据预测的类别预测边界框。我们采用“每类回归”(per-class regression, PCR)策略 [40, 41],为每个类别学习一个边界框回归器。我们预训练网络进行 ImageNet 分类,然后微调它们进行定位。我们在提供的 1000 类 ImageNet 训练集上训练网络。

我们的定位算法基于 [32] 的 RPN 框架,并进行了一些修改。与 [32] 中类别无关的方式不同,我们的定位 RPN 设计为每类形式。该 RPN 以两个兄弟 1×11 \times 1 卷积层结束,用于二分类 (cls) 和框回归 (reg),如 [32] 所示。cls 和 reg 层都是每类形式,与 [32] 相反。具体来说,cls 层具有 1000-d 输出,每个维度是用于预测是否为物体类别的二元逻辑回归;reg 层具有 1000×41000 \times 4-d 输出,由 1000 个类别的框回归器组成。如 [32] 所示,我们的边界框回归是参考每个位置的多个平移不变“锚”(anchor)框。

正如我们的 ImageNet 分类训练(第 3.4 节)一样,我们随机采样 224×224224 \times 224 的裁剪进行数据增强。我们使用 256 张图像的小批量进行微调。为了避免负样本占主导地位,为每张图像随机采样 8 个锚,其中采样的正负锚比例为 1:1 [32]。对于测试,网络以全卷积方式应用于图像。

表 13 比较了定位结果。遵循 [41],我们首先使用 ground truth 类作为分类预测进行“oracle”测试。VGG 的论文 [41] 报告了使用 ground truth 类时 33.1% 的中心裁剪误差(表 13)。在相同的设置下,我们使用 ResNet-101 网络的 RPN 方法显著将中心裁剪误差降低到 13.3%。此比较证明了我们框架的优异性能。通过密集(全卷积)和多尺度测试,我们的 ResNet-101 在使用 ground truth 类时误差为 11.7%。使用 ResNet-101 预测类别(4.6% 的 top-5 分类错误率,表 4),top-5 定位错误率为 14.4%。

上述结果仅基于 Faster R-CNN [32] 中的建议网络 (RPN)。人们可以使用 Faster R-CNN 中的检测网络 (Fast R-CNN [7]) 来改进结果。但我们注意到,在该数据集上,一张图像通常包含一个主导物体,并且建议区域彼此高度重叠,因此具有非常相似的 RoI 池化特征。结果,Fast R-CNN [7] 的以图像为中心的训练生成了微小变化的样本,这可能不是随机训练所期望的。受此启发,在我们当前的实验中,我们使用原始的 R-CNN [8](以 RoI 为中心)代替 Fast R-CNN。

我们的 R-CNN 实现如下。我们将如上训练的每类 RPN 应用于训练图像,以预测 ground truth 类的边界框。这些预测框扮演类相关建议的角色。对于每张训练图像,提取得分最高的 200 个建议作为训练样本来训练 R-CNN 分类器。图像区域从建议中裁剪出来,扭曲到 224×224224 \times 224 像素,并像在 R-CNN [8] 中一样馈送到分类网络。该网络的输出由两个用于 cls 和 reg 的兄弟 fc 层组成,也是每类形式。该 R-CNN 网络在训练集上以 RoI 为中心的模式使用 256 的小批量进行微调。对于测试,RPN 为每个预测类别生成得分最高的 200 个建议,R-CNN 网络用于更新这些建议的分数和框位置。

该方法将 top-5 定位错误率降低到 10.6%(表 13)。这是我们在验证集上的单模型结果。使用用于分类和定位的网络集成,我们在测试集上实现了 9.0% 的 top-5 定位错误率。该数字显著优于 ILSVRC 14 的结果(表 14),显示了 64% 的相对错误减少。该结果赢得了 ILSVRC 2015 ImageNet 定位任务的第一名。

表 13. ImageNet 验证集上的定位错误率 (%)。在“LOC error on GT CLS”列 ([41]) 中,使用了 ground truth 类。在“testing”列中,“1-crop”表示在 224 \times 224 像素的中心裁剪上进行测试,“dense”表示密集(全卷积)和多尺度测试。

表 14. ImageNet 数据集上与最先进方法的定位错误率 (%) 比较。

硬核测试

正确率:0 / 5
1

在深度残差学习论文中,作者提到的“退化问题”(degradation problem)指的是什么?

2

残差学习框架的核心思想是什么?

3

关于残差网络中的“快捷连接”(shortcut connections),下列说法正确的是?

4

在 ImageNet 实验中,作者对比了 18 层和 34 层的普通网络与残差网络,结果显示?

5

残差网络与 Highway 网络的主要区别是什么?