ResNet:深度残差学习用于图像识别

摘要

深层神经网络更难训练。我们提出了一种残差学习框架,以简化比以往使用的网络更深的网络的训练。我们明确地将层重新表述为学习相对于层输入的残差函数,而不是学习没有参考的函数。我们提供了全面的实验证据,表明这些残差网络更容易优化,并且通过显著增加深度可以提高准确性。在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]不等。许多其他复杂的视觉识别任务[8, 12, 7, 32, 27]也从非常深的模型中获益良多。
受深度意义的推动,出现了一个问题:学习更好的网络仅仅是堆叠更多层数就能做到吗?
解决这个问题的障碍是臭名昭著的梯度消失/爆炸问题[1, 9],这在一开始就阻碍了收敛。然而,这个问题已经通过归一化初始化[23, 9, 37, 13]和中间归一化层[16]得到了大幅解决,使得具有数十层的网络能够在使用反向传播的随机梯度下降(SGD)时开始收敛[22]。
在这里插入图片描述

当更深的网络能够开始收敛时,出现了退化问题:随着网络深度的增加,准确度会饱和(这可能并不令人惊讶),然后迅速下降。出乎意料的是,这种退化并不是由于过拟合造成的,且向一个适当深的模型中增加更多层会导致更高的训练误差,正如[11, 42]中报告的那样,并且通过我们的实验得到了充分验证。图1展示了一个典型的例子。
训练准确度的退化表明,并非所有的系统都容易优化。让我们考虑一个较浅的架构及其较深的对应模型,后者在其上添加了更多的层。对于这个更深的模型,存在一种构造性解决方案:新增的层是恒等映射,其他层则复制自学习到的较浅模型。这个构造性解决方案的存在表明,一个更深的模型不应该比它的浅层对应模型产生更高的训练误差。但实验表明,我们当前手头的求解器无法找到与这个构造方案一样好的解决方案,或者无法在可行的时间内做到这一点。

在这里插入图片描述

在本文中,我们通过引入深度残差学习框架来解决退化问题。我们并不是希望每一组堆叠的层直接拟合一个期望的基础映射,而是明确让这些层拟合一个残差映射。形式上,设期望的基础映射为 H ( x ) \mathcal{H}(\mathbf{x}) H(x),我们让堆叠的非线性层拟合另一个映射:
F ( x ) : = H ( x ) − x \mathcal{F}(\mathbf{x}) := \mathcal{H}(\mathbf{x}) - \mathbf{x} F(x):=H(x)x 原始映射重新表述为 F ( x ) + x \mathcal{F}(\mathbf{x}) + \mathbf{x} F(x)+x。我们假设优化残差映射比优化原始的、未引用的映射更容易。极端情况下,如果恒等映射是最优的,那么让残差为零比通过一组非线性层拟合一个恒等映射更容易。

F ( x ) + x \mathcal{F}(\mathbf{x}) + \mathbf{x} F(x)+x 的这种表述可以通过具有“快捷连接”的前馈神经网络来实现(图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),广泛使用的多重网格方法[3]将系统重新表述为多个尺度下的子问题,其中每个子问题负责处理粗尺度和细尺度之间的残差解。多重网格方法的替代方案是层次基础预处理[45, 46],它依赖于表示两个尺度之间残差向量的变量。已有研究表明[3, 45, 46],这些求解器的收敛速度比那些没有考虑解的残差性质的标准求解器要快得多。这些方法表明,一个好的重新表述或预处理可以简化优化过程。

快捷连接。导致快捷连接[2, 34, 49]的实践和理论已经被研究很长时间。训练多层感知机(MLP)的早期做法是添加一个从网络输入到输出的线性层[34, 49]。在[44, 24]中,一些中间层直接连接到辅助分类器,以解决消失/爆炸梯度问题。[39, 38, 31, 47]的论文提出了用于对齐层响应、梯度和传播误差的方法,这些方法通过快捷连接实现。在[44]中,“inception”层由一个快捷分支和一些更深的分支组成。
与我们的工作同时进行的“高速公路网络”[42, 43]提出了带有门控函数的快捷连接[15]。这些门控是数据依赖的并具有参数,而我们的恒等快捷连接是无参数的。当门控快捷连接“关闭”(趋近于零)时,高速公路网络中的层表示非残差函数。相反,我们的表述始终学习残差函数;我们的恒等快捷连接从不关闭,所有信息始终通过,附加的残差函数也会被学习。此外,高速公路网络在极度增加的深度(例如超过100层)下并未展示出准确性的提升。

3. 深度残差学习

3.1. 残差学习

我们考虑 H ( x ) \mathcal{H}(x) H(x) 作为一个底层映射,目标是通过几个堆叠的层(不一定是整个网络)来拟合,其中 x x x 表示这些层的第一个输入。如果假设多个非线性层可以渐近地逼近复杂的函数,那么就等同于假设它们可以渐近地逼近残差函数,即 H ( x ) − x \mathcal{H}(\mathbf{x}) - \mathbf{x} H(x)x(假设输入和输出具有相同的维度)。因此,与其期望堆叠层去逼近 H ( x ) \mathcal{H}(\mathbf{x}) H(x),我们明确让这些层去逼近一个残差函数 F ( x ) : = H ( x ) − x \mathcal{F}(\mathbf{x}) := \mathcal{H}(\mathbf{x}) - \mathbf{x} F(x):=H(x)x。原始函数因此变为 F ( x ) + x \mathcal{F}(\mathbf{x}) + \mathbf{x} F(x)+x。尽管这两种形式在渐近逼近期望函数时应该是等效的(根据假设),但学习的难易程度可能不同。

这种重新表述的动机来源于关于降级问题的反直觉现象(图1,左)。正如我们在引言中讨论的那样,如果添加的层可以构造为恒等映射,则更深的模型的训练误差不应大于其较浅的对照模型。降级问题表明,求解器在通过多个非线性层逼近恒等映射时可能会遇到困难。通过残差学习的重新表述,如果恒等映射是最优的,求解器可能会简单地将多个非线性层的权重推向零,从而逼近恒等映射。

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

3.2. 恒等映射通过快捷连接

我们在每几层堆叠中采用残差学习。一个基本模块如图2所示。形式上,本文中我们考虑的基本模块定义为:

y = F ( x , { W i } ) + x . ( 1 ) \mathbf{y} = \mathcal{F}(\mathbf{x}, \{ W_i \}) + \mathbf{x}. \quad(1) y=F(x,{Wi})+x.(1)

这里, x \mathbf{x} x y \mathbf{y} y 分别是所考虑的层的输入和输出向量。函数 F ( x , { W i } ) \mathcal{F}(\mathbf{x}, \{ W_i \}) F(x,{Wi}) 表示要学习的残差映射。以图2中具有两层的示例为例, F = W 2 σ ( W 1 x ) \mathcal{F} = W_2 \sigma(W_1 \mathbf{x}) F=W2σ(W1x),其中 σ \sigma σ 表示 ReLU [29],并且为了简化表示,省略了偏置项。操作 F + x \mathcal{F} + \mathbf{x} F+x 通过快捷连接和逐元素加法进行。我们在加法之后采用第二次非线性变换 ( i . e . , σ ( y ) ) (i.e., \sigma(\mathbf{y})) (i.e.,σ(y)),如图2所示。

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

在公式(1)中, x \mathbf{x} x F \mathcal{F} F 的维度必须相等。如果不相等(例如,当输入/输出通道不同),我们可以通过快捷连接进行线性投影 W s W_s Ws 来匹配维度:

y = F ( x , { W i } ) + W s x . ( 2 ) \mathbf{y} = \mathcal{F}(\mathbf{x}, \{ W_i \}) + W_s \mathbf{x}. \quad(2) y=F(x,{Wi})+Wsx.(2)

我们也可以在公式(1)中使用一个方阵 W s W_s Ws。但我们通过实验表明,恒等映射足以解决降级问题,并且是经济的,因此 W s W_s Ws 仅在需要匹配维度时使用。

残差函数 F \mathcal{F} F 的形式是灵活的。本文中的实验涉及一个具有两层或三层的函数 F \mathcal{F} F(见图5),但也可以使用更多层。但是,如果 F \mathcal{F} F 只有单层,那么公式(1)就类似于一个线性层: y = W 1 x + x \mathbf{y} = W_1 \mathbf{x} + \mathbf{x} y=W1x+x,对此我们没有观察到明显的优势。

我们还注意到,尽管上述符号是为了简化表示而使用的全连接层,它们同样适用于卷积层。函数 F ( x , { W i } ) \mathcal{F}(\mathbf{x}, \{W_i\}) F(x,{Wi}) 可以表示多个卷积层。逐元素加法在两个特征图上进行,按通道逐一加法。

3.3. 网络架构

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

普通网络

我们的普通基准网络(见图3中间)主要受到VGG网络[41](见图3左)哲学的启发。卷积层大多采用3×3的滤波器,并遵循两个简单的设计规则:

  1. 对于相同的输出特征图大小,层的滤波器数量相同;
  2. 如果特征图大小减半,滤波器的数量翻倍,以保持每层的时间复杂度。

我们通过具有步幅为2的卷积层直接进行下采样。网络最后使用一个全局平均池化层和一个具有1000个类的全连接层,并采用softmax。图3(中)中共有34层加权层。

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

残差网络

基于上述普通网络,我们插入了快捷连接(见图3右),将网络转变为其对应的残差版本。当输入和输出的维度相同(见图3中的实线快捷连接)时,可以直接使用身份快捷连接(Eqn.(1))。当维度增加时(见图3中的虚线快捷连接),我们考虑以下两种选择:

  • A. 快捷连接仍然执行身份映射,并为增加的维度填充额外的零条目。这种选项不会引入额外的参数;
  • B. 使用Eqn.(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万次迭代。我们使用0.0001的权重衰减和0.9的动量。我们不使用dropout[14],遵循[16]中的做法。

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

4. 实验

4.1. ImageNet分类

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

普通网络

我们首先评估了18层和34层的普通网络。34层普通网络如图3(中)所示,18层普通网络具有类似的结构。详细架构见表1。

表2中的结果显示,较深的34层普通网络比较浅的18层普通网络具有更高的验证错误率。为了揭示原因,在图4(左)中,我们比较了它们在训练过程中的训练/验证错误。我们观察到退化问题——尽管18层普通网络的解空间是34层网络解空间的子空间,但34层普通网络在整个训练过程中始终具有较高的训练错误。
在这里插入图片描述
在这里插入图片描述

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

残差网络

接下来,我们评估了18层和34层的残差网络(ResNets)。基线架构与上述普通网络相同,唯一的区别是每一对3×3滤波器后添加了快捷连接,如图3(右)所示。第一次比较(表2和图4右)中,我们对所有快捷连接使用身份映射,并对增加的维度进行零填充(选项A)。因此,与普通网络相比,它们没有额外的参数。

从表2和图4中我们得出三个主要观察结果。首先,随着残差学习的引入,情况发生了变化——34层ResNet的表现优于18层ResNet(提高了2.8%)。更重要的是,34层ResNet表现出了明显更低的训练误差,并且能够很好地推广到验证数据。这表明,退化问题在这种设置下得到了良好的解决,并且通过增加深度,我们成功地获得了准确率的提升。

第二,与其普通网络相比,34层ResNet将top-1错误率降低了3.5%(表2),这得益于成功降低的训练误差(图4右vs.左)。这种比较验证了残差学习在极深网络中的有效性。
在这里插入图片描述
在这里插入图片描述

最后,我们还注意到,18层的普通网络和残差网络的准确性相当(表2),但18层的ResNet收敛速度更快(图4右vs.左)。当网络“不是特别深”时(这里是18层),当前的SGD求解器仍然能够找到好的解。在这种情况下,ResNet通过在早期阶段提供更快的收敛来简化优化过程。

身份映射与投影快捷连接

我们已经展示了不引入参数的身份快捷连接有助于训练。接下来,我们研究投影快捷连接(式(2))。在表3中,我们比较了三种选项:(A)对增加的维度使用零填充快捷连接,所有快捷连接都是无参数的(与表2和图4右相同);(B)对增加的维度使用投影快捷连接,其他快捷连接为身份映射;(C)所有快捷连接都是投影。
在这里插入图片描述

表3显示,三种选项都比普通网络有显著提升。选项B略优于选项A。我们认为这是因为选项A中的零填充维度没有进行残差学习。选项C稍微优于选项B,我们归因于许多(十三个)投影快捷连接引入了额外的参数。但A/B/C之间的差异很小,表明投影快捷连接对于解决退化问题并非必需。因此,在本文的其余部分,我们不使用选项C,以减少内存/时间复杂度和模型大小。身份快捷连接对于避免增加以下引入的瓶颈架构的复杂性特别重要。

更深的瓶颈架构

接下来,我们描述了用于ImageNet的更深的网络。由于训练时间的限制,我们将构建块修改为瓶颈设计。对于每个残差函数F,我们使用3层堆叠,而不是2层(图5)。这三层分别是1×1、3×3和1×1卷积,其中1×1层负责降低和恢复维度,留下3×3层作为瓶颈,具有较小的输入/输出维度。图5展示了一个示例,其中两种设计具有相似的时间复杂度。

参数免费的身份快捷连接对于瓶颈架构尤为重要。如果将图5(右)的身份快捷连接替换为投影连接,可以证明时间复杂度和模型大小会翻倍,因为快捷连接连接到两个高维度的端点。因此,身份快捷连接使得瓶颈设计的模型更加高效。

50层ResNet

我们将34层网络中的每个2层块替换为这种3层瓶颈块,得到50层ResNet(表1)。对于增加维度,我们使用选项B。该模型具有3.8亿FLOP。

101层和152层ResNet

通过使用更多的3层块,我们构建了101层和152层的ResNet(表1)。值得注意的是,尽管深度显著增加,但152层ResNet(11.3亿FLOP)仍然比VGG-16/19网络(15.3/19.6亿FLOP)具有更低的复杂度。

50层/101层/152层ResNet在准确度上比34层的网络有显著提升(表3和表4)。我们没有观察到退化问题,因此在深度大幅增加的情况下获得了显著的准确度提升。深度的好处在所有评估指标中都有体现(表3和表4)。

与最先进方法的比较

在表4中,我们与之前最好的单模型结果进行了比较。我们的基准34层ResNet已经达到了非常具有竞争力的准确度。我们的152层ResNet在单模型上取得了4.49%的Top-5验证误差。这个单模型结果超越了所有之前的集成结果(表5)。我们将六个不同深度的模型结合成一个集成(提交时只有两个152层模型)。这导致在测试集上的Top-5误差为3.57%(表5)。

这一成绩在ILSVRC 2015中获得了第一名。

4.2. CIFAR-10与分析

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

平面/残差架构遵循图3(中/右)的形式。网络输入为32x32的图像,去除每个像素的均值。第一层是3x3卷积层。然后我们使用6n层堆叠的3x3卷积层,分别在大小为{32, 16, 8}的特征图上进行,其中每个特征图大小有2n层。滤波器的数量分别为{16, 32, 64}。下采样通过步幅为2的卷积进行。网络以全局平均池化、10路全连接层和softmax结束。总共有6n+2个加权层。以下表格总结了架构:

在这里插入图片描述

当使用捷径连接时,它们会连接到成对的3×3卷积层(总共3n个捷径)。在这个数据集上,我们在所有情况下使用身份捷径(即选项A),因此我们的残差模型在深度、宽度和参数数量上与平面模型完全相同。
在这里插入图片描述

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

我们比较了 n = { 3 , 5 , 7 , 9 } n = \{ 3 , 5 , 7 , 9 \} n={3,5,7,9},分别得到20、32、44和56层网络。图6(左)展示了平面网络的表现。深层的平面网络随着深度的增加出现更高的训练误差。这一现象类似于在ImageNet(图4,左)和MNIST(参见[42])上的情况,表明这种优化困难是一个基础问题。

图6(中)展示了ResNet的表现。与ImageNet的情况(图4,右)类似,我们的ResNet成功克服了优化困难,并在深度增加时展现了准确度提升。

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

在这里插入图片描述
在这里插入图片描述

层响应分析。图7展示了各层响应的标准差(std)。这些响应是每个3×3层的输出,经过BN处理后,在其他非线性操作(ReLU/加法)之前进行记录。对于ResNet,这一分析揭示了残差函数的响应强度。图7显示,ResNet的响应通常比它们的平面网络对手小。这些结果支持我们在第3.1节中提出的基本动机,即残差函数通常比非残差函数更接近零。我们还注意到,更深的ResNet具有更小的响应幅度,正如图7中ResNet-20、56和110的比较所示。当网络层数增加时,ResNet的单层对信号的修改通常较小。

探索超过1000层的网络。我们探索了一种极深的模型,层数超过1000层。我们设置 n = 200 n = 200 n=200,得到一个1202层的网络,并按照上述方法进行训练。我们的模型没有遇到优化困难,这个103层的网络能够实现小于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]作为检测方法。在这里,我们关心的是将VGG-16[41]替换为ResNet-101所带来的改进。两种模型的检测实现(见附录)是相同的,因此改进只能归因于网络本身的优势。最显著的是,在具有挑战性的COCO数据集上,我们在COCO的标准指标(mAP@[.5, .95])上获得了6.0%的提升,相当于28%的相对改进。这一提升完全归因于所学习的表示。基于深度残差网络,我们在2015年ILSVRC和COCO竞赛的多个赛道中获得了第一名:ImageNet检测、ImageNet定位、COCO检测和COCO分割。具体细节见附录。

附录

A. 目标检测基准

在本节中,我们介绍了基于基准Faster R-CNN[32]系统的目标检测方法。模型通过ImageNet分类模型初始化,然后在目标检测数据上进行微调。我们在ILSVRC和COCO 2015目标检测比赛期间进行了ResNet-50/101的实验。

与[32]中使用的VGG-16不同,我们的ResNet没有隐藏的全连接层。我们采用了“基于卷积特征图的网络”(NoC)[33]思想来解决这个问题。我们通过那些在图像上的步幅不大于16像素的层(即conv1,conv2 x,conv3 x和conv4 x,总共有91个ResNet-101中的卷积层;见表1)来计算整个图像共享的卷积特征图。我们将这些层视为与VGG-16中的13个卷积层类似,通过这样做,ResNet和VGG-16的卷积特征图具有相同的总步幅(16像素)。这些层被区域提议网络(RPN,用于生成300个提议)[32]和Fast R-CNN检测网络[7]共享。在conv5 1之前进行RoI池化[7]。在这个RoI池化后的特征上,conv5 x及以上的所有层都被用于每个区域,充当VGG-16的全连接层。最终的分类层被两个兄弟层(分类和框回归[7])替代。

关于BN层的使用,预训练后,我们计算每层的BN统计量(均值和方差)以获得ImageNet训练集。然后,在微调过程中,BN层被固定用于目标检测。因此,BN层变成了带有常数偏移和缩放的线性激活,BN统计量在微调过程中不再更新。我们主要固定BN层是为了减少Faster R-CNN训练中的内存消耗。

PASCAL VOC

按照[7, 32]的方法,在PASCAL VOC 2007测试集上,我们使用VOC 2007中的5k训练验证图像和VOC 2012中的16k训练验证图像进行训练(“07+12”)。对于PASCAL VOC 2012测试集,我们使用VOC 2007中的10k训练验证+测试图像和VOC 2012中的16k训练验证图像进行训练(“07++12”)。训练Faster R-CNN的超参数与[32]相同。表7展示了结果。ResNet-101在mAP上比VGG-16提高了>3%。这一提升完全来源于ResNet学习到的更好的特征。

MS COCO

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

表8展示了在MS COCO验证集上的结果。ResNet-101在mAP@[.5, .95]上比VGG-16提高了6%,相当于28%的相对改进,这完全归功于由更好的网络学习到的特征。值得注意的是,mAP@[.5, .95]的绝对增加(6.0%)几乎与mAP@.5的增加(6.9%)一样大。这表明,更深的网络不仅能提高识别精度,还能提升定位能力。

B. 目标检测改进

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

MS COCO

框回归:我们的框回归部分参考了[6]中的迭代定位方法。在Faster R-CNN中,最终的输出是一个回归框,与其提议框不同。因此,在推理过程中,我们从回归后的框中池化新的特征,并获得新的分类分数和新的回归框。我们将这300个新的预测与原始的300个预测结合。对预测框的联合集应用非最大抑制(NMS),使用IoU阈值为0.3[8],然后进行框投票[6]。框回归将mAP提高了约2个点(表9)。

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

多尺度测试:在上述方法中,所有结果都是通过单尺度训练/测试获得的,如[32]所述,其中图像的较短边是s = 600像素。多尺度训练/测试方法已在[12, 7]中开发,通过从特征金字塔中选择一个尺度,在[33]中通过使用maxout层实现。在我们当前的实现中,我们执行了遵循[33]的多尺度测试;由于时间限制,我们没有执行多尺度训练。此外,我们仅对Fast R-CNN步骤执行了多尺度测试(但尚未对RPN步骤进行多尺度测试)。使用训练好的模型,我们在图像金字塔上计算卷积特征图,其中图像的较短边为 s ∈ 200 , 400 , 600 , 800 , 1000 s ∈ {200, 400, 600, 800, 1000} s200,400,600,800,1000
在这里插入图片描述

我们从金字塔中选择两个相邻的尺度,按照[33]的方法进行操作。在这两个尺度的特征图上进行 RoI 池化和后续的层处理,并通过 maxout 合并它们,和[33]中的方法相同。多尺度测试使得 mAP 提升了超过 2 个百分点(表 9)。

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

集成。在 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 的物体检测算法与 MS COCO 中的算法相同(表 9)。网络在 1000 类的 ImageNet 分类集上进行了预训练,并在 DET 数据上进行了微调。我们将验证集分为两部分(val1/val2),按照[8]的方法进行。我们使用 DET 训练集和 val1 集对检测模型进行微调,val2 集用于验证。我们没有使用其他 ILSVRC 2015 数据。我们的单模型(ResNet-101)在 DET 测试集上的 mAP 为 58.8%,而我们的 3 模型集成在 DET 测试集上的 mAP 为 62.1%(表 12)。这一结果在 ILSVRC 2015 的 ImageNet 检测任务中获得了第一名,超过第二名 8.5 个百分点(绝对值)。
在这里插入图片描述

C. ImageNet 定位

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

我们的定位算法基于[32]的 RPN 框架,并进行了少许修改。与[32]的类别无关方法不同,我们的定位 RPN 是按类别设计的。该 RPN 以两个兄弟 1×1 卷积层结束,分别用于二分类(cls)和框回归(reg),与[32]相似。与[32]不同的是,cls 和 reg 层都是按类别形式设计的。具体来说,cls 层的输出为 1000 维,每一维进行二元逻辑回归,预测是否属于某一物体类别;reg 层的输出为 1000×4 维,包含 1000 类的框回归器。如同[32],我们的边界框回归是基于每个位置的多个平移不变的“锚”框进行的。

与我们在 ImageNet 分类训练中的做法相同(见第3.4节),我们通过随机采样 224×224 的图像裁剪进行数据增强。我们使用 256 张图像的迷你批量大小进行微调。为了避免负样本的主导作用,每张图像随机采样 8 个锚点,其中采样的正负锚点比例为 1:1[32]。在测试时,网络对图像进行全卷积处理。

表 13 比较了定位结果。根据[41],我们首先使用“oracle”测试,使用地面真实类别作为分类预测。VGG 的论文[41]报告了使用地面真实类别时,中心裁剪误差为 33.1%(表 13)。在相同设置下,我们使用 ResNet-101 网络的 RPN 方法将中心裁剪误差显著降低至 13.3%。这一比较展示了我们框架的优异性能。通过密集(全卷积)和多尺度测试,我们的 ResNet-101 在使用地面真实类别时的误差为 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 来预测地面真实类别的边界框。这些预测的框充当类别相关的提议。对于每张训练图像,提取得分最高的 200 个提议作为训练样本,用于训练 R-CNN 分类器。图像区域从提议中裁剪,扭曲为 224×224 像素,并作为 R-CNN [8] 中的输入喂入分类网络。该网络的输出包含两个兄弟全连接层,用于类别预测(cls)和框回归(reg),也是按类别形式设计的。该 R-CNN 网络以 RoI 为中心的方式,在训练集上使用 256 的迷你批量大小进行微调。在测试时,RPN 为每个预测类别生成得分最高的 200 个提议,R-CNN 网络用于更新这些提议的得分和边界框位置。

这种方法将 top-5 定位误差降低到 10.6%(表 13)。这是我们在验证集上的单模型结果。使用网络集成进行分类和定位,我们在测试集上实现了 9.0% 的 top-5 定位误差。这个结果显著超越了 ILSVRC 14 的结果(表 14),显示出 64% 的相对误差减少。这个结果在 ILSVRC 2015 的 ImageNet 定位任务中获得了第一名。

论文名称:
Deep Residual Learning for Image Recognition
论文地址:
https://openaccess.thecvf.com/content_cvpr_2016/papers/He_Deep_Residual_Learning_CVPR_2016_paper.pdf
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

无声之钟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值