用于图像识别的深度残差学习
摘要
更深的神经网络更难训练。 我们提出了一个残差学习框架,以简化比以前使用的网络更深的网络训练。 我们明确地将层重新表示为参考层输入的学习残差函数,而不是学习未引用的函数。 我们提供了全面的经验证据,表明这些残差网络更容易优化,并且可以通过显着增加的深度来获得准确性。 在 ImageNet 数据集上,我们评估深度高达 152 层的残差网络,比 VGG 网络 [41] 深 8,但复杂度仍然较低。 这些残差网络的集合在 ImageNet 测试 集上实现了 3.57% 的误差。 该结果在 ILSVRC 2015 分类任务中获得第一名。 我们还对 100 层和 1000 层的 CIFAR-10 进行了分析。
表示的深度对于许多视觉识别任务至关重要。 仅仅由于我们极深的表示,我们在 COCO 目标检测数据集上获得了 28% 的相对改进。 深度残差网络是我们向 ILSVRC 和 COCO 2015 竞赛提交作品的基础111http://image-net.org/challenges/LSVRC/2015/ 和 http://mscoco.org /dataset/#detections-challenge2015。,我们还在 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展示了一个典型的例子。
(训练准确性)的下降表明并非所有系统都同样容易优化。 让我们考虑一个较浅的架构及其在其上添加更多层的较深层的对应架构。 对于更深层次的模型,存在一种通过构建的解决方案:添加的层是身份映射,其他层是从学习到的较浅层模型复制的。 这个构造的解决方案的存在表明,更深的模型不应该比其更浅的对应模型产生更高的训练误差。 但实验表明,我们现有的求解器无法找到与构造的解决方案相当或更好的解决方案(或者无法在可行的时间内找到)。
在本文中,我们通过引入深度残差学习框架来解决退化问题。 我们不希望每几个堆叠层都直接适合所需的底层映射,而是明确让这些层适合残差映射。 正式地,将所需的底层映射表示为 ,我们让堆叠的非线性层拟合 。 原始映射被重铸为 。 我们假设优化残差映射比优化原始的、未引用的映射更容易。 在极端情况下,如果恒等映射是最优的,则将残差推至零比通过一堆非线性层拟合恒等映射更容易。
可以通过具有“快捷连接”的前馈神经网络来实现(图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]这些求解器的收敛速度比不知道解的残差性质的标准求解器快得多。 这些方法表明良好的重新配制或预处理可以简化优化。
Shortcut 连接。 导致快捷连接[2,34,49]的实践和理论已经被研究了很长时间。 训练多层感知器(MLP)的早期实践是添加一个从网络输入连接到输出的线性层[34, 49]。 在[44, 24]中,一些中间层直接连接到辅助分类器以解决梯度消失/爆炸问题。 [39,38,31,47]的论文提出了通过快捷连接实现的居中层响应、梯度和传播误差的方法。 在[44]中,“起始”层由一个快捷分支和一些更深的分支组成。
与我们的工作同时,“高速公路网络”[42, 43]提供了带有门控功能[15]的快捷连接。 这些门依赖于数据并且具有参数,与我们的无参数身份快捷方式相反。 当门控捷径“关闭”(接近零)时,高速公路网络中的层代表非残差功能。 相反,我们的公式总是学习残差函数;我们的身份捷径永远不会关闭,所有信息总是会被传递,并且需要学习额外的残差函数。 此外,高速公路网络尚未表现出随着深度的极大增加(例如.,超过 100 层)的准确性提升。
3深度残差学习
3.1 剩余学习
让我们考虑 作为底层映射,适合几个堆叠层(不一定是整个网络), 表示这些层中第一层的输入。 如果假设多个非线性层可以渐近逼近复杂函数222然而,这个假设仍然是一个悬而未决的问题。 请参阅[28]。,则相当于假设它们可以渐近逼近残差函数,即.,(假设输入和输出具有相同的维度)。 因此,不要期望堆叠层近似 ,我们明确地让这些层近似残差函数。 原始函数因此变为 。 尽管两种形式都应该能够渐近地逼近所需的函数(如假设的那样),但学习的难易程度可能不同。
这种重新表述的动机是关于退化问题的反直觉现象(图1,左)。 正如我们在简介中所讨论的,如果添加的层可以构造为恒等映射,则更深的模型的训练误差应该不大于其较浅的对应模型。 退化问题表明求解器在通过多个非线性层逼近恒等映射时可能会遇到困难。 通过残差学习重构,如果恒等映射是最优的,则求解器可以简单地将多个非线性层的权重驱动至零以接近恒等映射。
在实际情况下,恒等映射不太可能是最优的,但我们的重新表述可能有助于预先解决该问题。 如果最优函数更接近恒等映射而不是零映射,那么求解器应该更容易参考恒等映射找到扰动,而不是学习该函数作为新函数。 我们通过实验表明(图7),学习到的残差函数通常具有较小的响应,这表明恒等映射提供了合理的预处理。
3.2 通过快捷方式进行身份映射
我们对每隔几个堆叠层采用残差学习。 构建块如图2所示。 正式地,在本文中,我们考虑的构建块定义为:
(1) |
这里 和 是所考虑层的输入和输出向量。 函数 表示要学习的残差映射。 图中的例子2 有两层、其中,表示 ReLU [29],为了简化符号,省略了偏置。 操作 通过快捷连接和逐元素加法来执行。 我们采用相加后的第二个非线性(即.,,见图2
方程中的快捷方式连接。(1) 既不引入额外的参数,也不引入额外的计算复杂度。 这不仅在实践中有吸引力,而且在我们比较普通网络和残差网络时也很重要。 我们可以公平地比较同时具有相同数量的参数、深度、宽度和计算成本的普通/残差网络(除了可忽略的逐元素加法)。
在方程(1)中, 和 的维度必须相等。 如果不是这种情况(例如,当更改输入/输出通道时),我们可以执行线性投影 通过 shortcut 连接来匹配维度:
(2) |
我们还可以在方程(1)中使用方阵。 但我们将通过实验证明恒等映射足以解决退化问题并且是经济的,因此 仅在以下情况下使用匹配尺寸。
我们还注意到,尽管为了简单起见,上述符号是关于全连接层的,但它们适用于卷积层。 函数 可以表示多个卷积层。 逐元素相加是在两个特征图上逐个通道执行的。
3.3网络架构
我们测试了各种普通/残差网络,并观察到了一致的现象。 为了提供讨论实例,我们描述了 ImageNet 的两个模型如下。
普通网络。 我们的普通基线(图3,中)主要受到VGG网络[41]哲学的启发(图3,左) 。 卷积层大多具有 33 个滤波器,并遵循两个简单的设计规则:(i)对于相同的输出特征图大小,各层具有相同数量的滤波器; (ii)如果特征图大小减半,滤波器的数量加倍,以保持每层的时间复杂度。 我们直接通过步幅为 2 的卷积层执行下采样。 网络以全局平均池化层和带有 softmax 的 1000 路全连接层结束。 图3(中)中加权层总数为34。
值得注意的是,我们的模型比 VGG 网络 [41] 具有更少个过滤器和更低复杂度(图3,左)。 我们的 34 层基线有 36 亿次 FLOP(乘加),仅为 VGG-19(196 亿次 FLOP)的 18%。
残差网络。 基于上述普通网络,我们插入快捷连接(图3,右),将网络变成其对应的残差版本。 恒等式快捷方式(方程式(1)) 当输入和输出具有相同维度时可以直接使用(图3中的实线快捷方式)。 当维度增加时(图3中的虚线快捷方式),我们考虑两种选择:(A)快捷方式仍然执行恒等映射,并填充额外的零条目以增加维度。 该选项不引入额外的参数; (B) 方程中的投影快捷方式。(2) 用于匹配维度(通过 11 卷积完成)。 对于这两个选项,当快捷方式穿过两种尺寸的特征图时,它们的步幅为 2。
layer name | output size | 18-layer | 34-layer | 50-layer | 101-layer | 152-layer |
conv1 | 112112 | 77, 64, stride 2 | ||||
conv2_x | 5656 | 33 max pool, stride 2 | ||||
2 | 3 | 3 | 3 | 3 | ||
conv3_x | 2828 | 2 | 4 | 4 | 4 | 8 |
conv4_x | 1414 | 2 | 6 | 6 | 23 | 36 |
conv5_x | 77 | 2 | 3 | 3 | 3 | 3 |
11 | average pool, 1000-d fc, softmax | |||||
FLOPs | 1.8 | 3.6 | 3.8 | 7.6 | 11.3 |
3.4实现
我们对 ImageNet 的实现遵循 [21, 41] 中的实践。 图像调整大小,其短边在 用于尺度增强[41]。 从图像或其水平翻转中随机采样 224224 裁剪,并减去每像素平均值[21]。 使用[21]中的标准颜色增强。 我们在每次卷积之后和激活之前采用批量归一化(BN)[16],紧随[16]。 我们按照 [13] 中的方式初始化权重,并从头开始训练所有普通/残差网络。 我们使用小批量大小为 256 的 SGD。 学习率从 0.1 开始,当误差稳定时除以 10,模型训练时间最多为 次迭代。 我们使用 0.0001 的权重衰减和 0.9 的动量。 我们不使用 dropout [14],遵循 [16] 中的做法。
在测试中,为了进行比较研究,我们采用标准的 10 作物测试[21]。 为获得最佳效果,我们采用了 [41, 13] 中的全卷积形式,并在多个尺度上平均得分(图像大小经过调整,短边在 ).
4实验
4.1 ImageNet分类
我们在包含 1000 个类的 ImageNet 2012 分类数据集 [36] 上评估我们的方法。 这些模型在 128 万张训练图像上进行训练,并在 5 万张验证图像上进行评估。 我们还获得了测试服务器报告的 100k 测试图像的最终结果。 我们评估 top-1 和 top-5 错误率。
表2中的结果表明,较深的34层普通网络比较浅的18层普通网络具有更高的验证误差。 为了揭示原因,在图4(左)中,我们比较了训练过程中的训练/验证错误。 我们观察到退化问题 - 34 层普通网络在整个训练过程中具有较高的 训练 错误,即使 18 层普通网络的解空间是 34 层普通网络的子空间-第一层。
plain |
ResNet | |
---|---|---|
18 layers |
27.94 |
27.88 |
34 layers |
28.54 |
25.03 |
我们认为这种优化困难不太可能是由消失梯度引起的。 这些普通网络使用 BN [16] 进行训练,确保前向传播信号具有非零方差。 我们还验证了反向传播梯度与 BN 表现出健康的规范。 因此,前向或后向信号都不会消失。 事实上,34 层普通网络仍然能够达到有竞争力的精度(表3),这表明求解器在一定程度上发挥了作用。 我们推测深层平原网络的收敛速度可能呈指数级低,这会影响训练误差的减少333我们尝试了更多的训练迭代(3),但仍然观察到退化问题,这表明这个问题不能通过以下方法切实解决只是使用更多的迭代。. 未来将研究造成这种优化困难的原因。
残差网络。 接下来我们评估 18 层和 34 层残差网络 (ResNets)。 基线架构与上述普通网络相同,只是将快捷连接添加到每对 33 滤波器,如图 3(右)所示。 在第一个比较中(表 2 和图 4 右侧),我们对所有快捷方式使用恒等映射,并使用零填充来增加维度(选项 A)。 因此,与普通的对应物相比,它们没有额外的参数。
我们从表2和图4中得到了三个主要观察结果。 首先,残差学习的情况正好相反——34层ResNet优于18层ResNet(提高了2.8%)。 更重要的是,34 层 ResNet 表现出相当低的训练误差,并且可推广到验证数据。 这表明退化问题在此设置中得到了很好的解决,并且我们设法通过增加深度来获得精度增益。
最后,我们还注意到,18 层普通网络/残差网络相当准确(表 2),但 18 层 ResNet 收敛速度更快(图 4 右 vs. 左)。 当网络“不太深”(此处为 18 层)时,当前的 SGD 求解器仍然能够为普通网络找到良好的解决方案。 在这种情况下,ResNet 通过在早期提供更快的收敛来简化优化。
model | top-1 err. | top-5 err. |
---|---|---|
VGG-16 [41] | 28.07 | 9.33 |
GoogLeNet [44] | - | 9.15 |
PReLU-net [13] | 24.27 | 7.38 |
plain-34 | 28.54 | 10.02 |
ResNet-34 A | 25.03 | 7.76 |
ResNet-34 B | 24.52 | 7.46 |
ResNet-34 C | 24.19 | 7.40 |
ResNet-50 | 22.85 | 6.71 |
ResNet-101 | 21.75 | 6.05 |
ResNet-152 | 21.43 | 5.71 |
method | top-1 err. | top-5 err. |
---|---|---|
VGG [41] (ILSVRC’14) | - | 8.43 |
GoogLeNet [44] (ILSVRC’14) | - | 7.89 |
VGG [41] (v5) | 24.4 | 7.1 |
PReLU-net [13] | 21.59 | 5.71 |
BN-inception [16] | 21.99 | 5.81 |
ResNet-34 B | 21.84 | 5.71 |
ResNet-34 C | 21.53 | 5.60 |
ResNet-50 | 20.74 | 5.25 |
ResNet-101 | 19.87 | 4.60 |
ResNet-152 | 19.38 | 4.49 |
method | top-5 err. (test) |
---|---|
VGG [41] (ILSVRC’14) | 7.32 |
GoogLeNet [44] (ILSVRC’14) | 6.66 |
VGG [41] (v5) | 6.8 |
PReLU-net [13] | 4.94 |
BN-inception [16] | 4.82 |
ResNet (ILSVRC’15) | 3.57 |
Identity vs. Projection Shortcuts。 我们已经证明,无参数的身份快捷方式有助于训练。 接下来我们研究投影快捷方式(Eqn.(2))。 在表3中,我们比较了三个选项:(A)零填充快捷方式用于增加维度,并且所有快捷方式都是无参数的(与表2和图1相同) .4 对); (B) 投影捷径用于增加维度,其他捷径为恒等; (C) 所有捷径都是投影。
表 3 显示所有三个选项都比普通选项要好得多。 B 比 A 稍好一些。 我们认为这是因为 A 中的零填充维度确实没有残差学习。 C 比 B 稍好一些,我们将其归因于许多(十三个)投影快捷方式引入的额外参数。 但 A/B/C 之间的微小差异表明投影捷径对于解决退化问题并不是必需的。 因此,我们在本文的其余部分不使用选项 C,以减少内存/时间复杂度和模型大小。 身份快捷方式对于不增加下面介绍的瓶颈架构的复杂性特别重要。
更深层次的瓶颈架构。 接下来我们描述 ImageNet 的更深网络。 由于担心我们能够承受的训练时间,我们将构建块修改为瓶颈设计444更深的非-瓶颈ResNets(例如.,图5 left)也可以通过增加深度来获得准确性(如 CIFAR-10 所示),但不如瓶颈 ResNet 那么经济。 所以瓶颈设计的使用主要是出于实际的考虑。 我们进一步注意到,瓶颈设计也出现了普通网络的退化问题。. 对于每个残差函数,我们使用3层而不是2层的堆栈(图5)。 这三个层分别是 11、33 和 11 个卷积,其中 1 1 层负责减少然后增加(恢复)维度,使 3 图5显示了一个示例,其中两种设计具有相似的时间复杂度。
无参数恒等快捷方式对于瓶颈架构尤其重要。 如果将图5(右)中的恒等快捷方式替换为投影,可以看到时间复杂度和模型大小加倍,因为快捷方式连接到两个高维端。 因此,身份快捷方式可以为瓶颈设计带来更有效的模型。
50层ResNet: 我们用这个 3 层瓶颈块替换 34 层网络中的每个 2 层块,形成 50 层 ResNet(表 1)。 我们使用选项 B 来增加维度。 该模型有 38 亿次 FLOP。
101层和152层ResNet: 我们通过使用更多的 3 层块构建 101 层和 152 层 ResNet(表1)。 值得注意的是,尽管深度显着增加,但 152 层 ResNet(113 亿次 FLOP)仍然比 VGG-16/19 网络(15.3/196 亿次 FLOP)复杂度更低。
4.2CIFAR-10 与分析
我们对 CIFAR-10 数据集 [20] 进行了更多研究,该数据集由 10 个类别的 50k 个训练图像和 10k 个测试图像组成。 我们提出了在训练集上训练并在测试集上评估的实验。 我们的重点是极深网络的行为,而不是推动最先进的结果,因此我们有意使用如下简单的架构。
普通/残差架构遵循图3(中/右)中的形式。 网络输入是 3232 图像,减去每像素平均值。 第一层是33个卷积。 Then we use a stack of layers with 33 convolutions on the feature maps of sizes respectively, with 2 layers for each feature map size. 过滤器数量为 分别。 子采样是通过步幅为 2 的卷积来执行的。 网络以全局平均池化、10 路全连接层和 softmax 结束。 总共有 6+2 个堆叠的加权层。 下表总结了该架构:
output map size | 3232 | 1616 | 88 |
---|---|---|---|
# layers | 1+2 | 2 | 2 |
# filters | 16 | 32 | 64 |
当使用快捷连接时,它们连接到 33 层对(总共 快捷键)。 在此数据集上,我们在所有情况下都使用身份快捷方式(即。,选项 A),因此我们的残差模型具有与普通的对应者。
method | error (%) | ||
Maxout [10] | 9.38 | ||
NIN [25] | 8.81 | ||
DSN [24] | 8.22 | ||
# layers | # params | ||
FitNet [35] | 19 | 2.5M | 8.39 |
Highway [42, 43] | 19 | 2.3M | 7.54 (7.720.16) |
Highway [42, 43] | 32 | 1.25M | 8.80 |
ResNet | 20 | 0.27M | 8.75 |
ResNet | 32 | 0.46M | 7.51 |
ResNet | 44 | 0.66M | 7.17 |
ResNet | 56 | 0.85M | 6.97 |
ResNet | 110 | 1.7M | 6.43 (6.610.16) |
ResNet | 1202 | 19.4M | 7.93 |
我们使用 0.0001 的权重衰减和 0.9 的动量,并采用 [13] 和 BN [16] 中的权重初始化,但没有 dropout。 这些模型在两个 GPU 上使用 128 的小批量进行训练。 我们从 0.1 的学习率开始,在 32k 和 48k 迭代时将其除以 10,并在 64k 迭代时终止训练,这是根据 45k/5k 训练/val 分割确定的。 我们在训练中遵循 [24] 中的简单数据增强:每侧填充 4 个像素,并从填充图像或其图像中随机采样 3232 裁剪。水平翻转。 为了进行测试,我们仅评估原始 3232 图像的单个视图。
我们比较 ,导致20、32、44和56层网络。 图6(左)显示了普通网络的行为。 深平原网的深度增加,并且在更深时表现出更高的训练误差。 这种现象与ImageNet(图4,左)和MNIST(参见[42])上的现象类似,表明这种优化难度是一个根本问题。
我们进一步探索 ,从而形成 110 层 ResNet。 在这种情况下,我们发现初始学习率 0.1 稍微太大而无法开始收敛555初始学习率为 0.1,几个 epoch 后开始收敛(90% 误差),但仍达到相似的准确度。. 因此我们使用 0.01 来预热训练,直到训练误差低于 80%(大约 400 次迭代),然后回到 0.1 并继续。 其余的学习计划如前所述。 这个 110 层网络收敛良好(图 6,中)。 与 FitNet [35] 和 Highway [42] 等其他深网络和瘦网络相比,它的参数更少(表6),但属于最先进的结果(6.43%,表6)。
层响应分析。 图7显示了层响应的标准偏差(std)。 响应是 BN 之后、其他非线性(ReLU/加法)之前每个 33 层的输出。 对于 ResNets,此分析揭示了残差函数的响应强度。 图 7 显示 ResNet 的响应通常比普通网络的响应更小。 这些结果支持我们的基本动机(第3.1),即残差函数通常可能比非残差函数更接近于零。 我们还注意到,更深的 ResNet 具有更小的响应幅度,如图 7 中 ResNet-20、56 和 110 之间的比较所证明。 当层数较多时,ResNet 的单个层往往对信号的修改较少。
探索超过 1000 层。 我们探索了一个超过 1000 层的深度模型。 我们设置 形成 1202 层网络,该网络按上述方式进行训练。 我们的方法显示没有优化难度,并且这个层网络能够实现训练误差 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 上的物体检测
training data | 07+12 | 07++12 |
---|---|---|
test data | VOC 07 test | VOC 12 test |
VGG-16 | 73.2 | 70.4 |
ResNet-101 | 76.4 | 73.8 |
metric | mAP@.5 | mAP@[.5, .95] |
---|---|---|
VGG-16 | 41.5 | 21.2 |
ResNet-101 | 48.4 | 27.2 |
我们的方法在其他识别任务上具有良好的泛化性能。 表8和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 分割。 详情见附录。
参考
- [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. Müller. 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. 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. 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, 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. 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层。 我们采用“Conv特征图上的网络”(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-pooled 特征上,每个区域都采用 conv5_x 及以上的所有层,扮演 VGG-16 的 fc 层的角色。 最终的分类层被两个兄弟层取代(分类和框回归[7])。
对于 BN 层的使用,在预训练之后,我们计算 ImageNet 训练集上每个层的 BN 统计数据(均值和方差)。 然后在物体检测的微调过程中固定 BN 层。 因此,BN 层成为具有恒定偏移和尺度的线性激活,并且 BN 统计数据不会通过微调进行更新。 我们修复 BN 层主要是为了减少 Faster R-CNN 训练中的内存消耗。
帕斯卡VOC
继[7, 32]之后,对于PASCAL VOC 2007 测试集,我们使用VOC 2007中的5k trainval图像和16k 图像trainval VOC 2012 中的图像用于训练(“07+12”)。 对于 PASCAL VOC 2012 test 集,我们使用 VOC 2007 中的 10k trainval+test 图像和 16k trainval VOC 2012 中用于训练的图像 (“07++12”)。 训练 Faster R-CNN 的超参数与[32]中的相同。 表8显示了结果。 ResNet-101 比 VGG-16 将 mAP 提高了 3%。 这一增益完全是因为 ResNet 学习到的特征得到了改进。
可可女士
MS COCO数据集[26]涉及80个对象类别。 我们评估 PASCAL VOC 指标 (mAP @ IoU = 0.5) 和标准 COCO 指标 (mAP @ IoU = .5:.05:.95)。 我们使用训练集上的 80k 图像进行训练,使用 val 集上的 40k 图像进行评估。 我们的 COCO 检测系统与 PASCAL VOC 的检测系统类似。 我们使用 8-GPU 实现来训练 COCO 模型,因此 RPN 步骤的小批量大小为 8 个图像(i.e.,每个 GPU 1 个),并且Fast R-CNN 步骤的小批量大小为 16 张图像。 RPN 步骤和 Fast R-CNN 步骤均以 0.001 的学习率训练 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对象检测改进
为了完整起见,我们报告了比赛的改进。 这些改进基于深层特征,因此应该受益于残差学习。
training data | COCO train | COCO trainval | ||
---|---|---|---|---|
test data | COCO val | COCO test-dev | ||
mAP | @.5 | @[.5, .95] | @.5 | @[.5, .95] |
baseline Faster R-CNN (VGG-16) | 41.5 | 21.2 | ||
baseline Faster R-CNN (ResNet-101) | 48.4 | 27.2 | ||
+box refinement | 49.9 | 29.9 | ||
+context | 51.1 | 30.0 | 53.3 | 32.2 |
+multi-scale testing | 53.8 | 32.5 | 55.7 | 34.9 |
ensemble | 59.0 | 37.4 |
system |
net |
data |
mAP |
areo |
bike |
bird |
boat |
bottle |
bus |
car |
cat |
chair |
cow |
table |
dog |
horse |
mbike |
person |
plant |
sheep |
sofa |
train |
tv |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
baseline |
VGG-16 |
07+12 |
73.2 |
76.5 |
79.0 |
70.9 |
65.5 |
52.1 |
83.1 |
84.7 |
86.4 |
52.0 |
81.9 |
65.7 |
84.8 |
84.6 |
77.5 |
76.7 |
38.8 |
73.6 |
73.9 |
83.0 |
72.6 |
baseline |
ResNet-101 |
07+12 |
76.4 |
79.8 |
80.7 |
76.2 |
68.3 |
55.9 |
85.1 |
85.3 |
89.8 |
56.7 |
87.8 |
69.4 |
88.3 |
88.9 |
80.9 |
78.4 |
41.7 |
78.6 |
79.8 |
85.3 |
72.0 |
baseline+++ |
ResNet-101 |
COCO+07+12 |
85.6 | 90.0 | 89.6 | 87.8 | 80.8 | 76.1 | 89.9 | 89.9 |
89.6 |
75.5 | 90.0 | 80.7 | 89.6 | 90.3 | 89.1 | 88.7 | 65.4 | 88.1 | 85.6 | 89.0 | 86.8 |
system |
net |
data |
mAP |
areo |
bike |
bird |
boat |
bottle |
bus |
car |
cat |
chair |
cow |
table |
dog |
horse |
mbike |
person |
plant |
sheep |
sofa |
train |
tv |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
baseline |
VGG-16 |
07++12 |
70.4 |
84.9 |
79.8 |
74.3 |
53.9 |
49.8 |
77.5 |
75.9 |
88.5 |
45.6 |
77.1 |
55.3 |
86.9 |
81.7 |
80.9 |
79.6 |
40.1 |
72.6 |
60.9 |
81.2 |
61.5 |
baseline |
ResNet-101 |
07++12 |
73.8 |
86.5 |
81.6 |
77.2 |
58.0 |
51.0 |
78.6 |
76.6 |
93.2 |
48.6 |
80.4 |
59.0 |
92.1 |
85.3 |
84.8 |
80.7 |
48.1 |
77.3 |
66.5 |
84.7 |
65.6 |
baseline+++ |
ResNet-101 |
COCO+07++12 |
83.8 | 92.1 | 88.4 | 84.8 | 75.9 | 71.4 | 86.3 | 87.8 | 94.2 | 66.8 | 89.4 | 69.2 | 93.9 | 91.9 | 90.9 | 89.6 | 67.9 | 88.2 | 76.8 | 90.3 | 80.0 |
MS COCO
边框细化。 我们的框细化部分遵循[6]中的迭代本地化。 在 Faster R-CNN 中,最终输出是一个与其提案框不同的回归框。 因此,为了进行推理,我们从回归框中汇集一个新特征,并获得新的分类分数和新的回归框。 我们将这 300 个新预测与原始 300 个预测结合起来。 使用 0.3 [8] 的 IoU 阈值对预测框的并集应用非极大值抑制 (NMS),然后进行框投票 [6]。 框细化将 mAP 提高了约 2 个点(表 9)。
全局上下文。 我们在 Fast R-CNN 步骤中结合了全局上下文。 给定全图像卷积特征图,我们通过全局空间金字塔池[12](具有“单级”金字塔)来池化特征,该特征可以使用整个空间金字塔池实现为“RoI”池图像的边界框作为 RoI。 该池化特征被输入 RoI 后层以获得全局上下文特征。 该全局特征与原始的每个区域特征连接,后面是同级分类和框回归层。 这种新结构是端到端训练的。 全局上下文将 mAP@.5 提高了约 1 个点(表 9)。
多尺度测试。 上面的所有结果都是通过单尺度训练/测试得到的,如[32],其中图像的短边为 像素。 通过从特征金字塔中选择尺度,在 [12, 7] 中开发了多尺度训练/测试,在 [33] 中通过使用 maxout 层开发了多尺度训练/测试。 在我们当前的实现中,我们在[33]之后执行了多尺度测试;由于时间有限,我们没有进行多尺度训练。 此外,我们仅针对 Fast R-CNN 步骤进行了多尺度测试(但尚未针对 RPN 步骤)。 使用经过训练的模型,我们计算图像金字塔上的卷积特征图,其中图像的短边为 。 我们从[33]之后的金字塔中选择两个相邻的尺度。 RoI池化和后续层在这两个尺度[33]的特征图上执行,它们由maxout合并,如[33]中。 多尺度测试将 mAP 提高了 2 个点以上(表9)。
使用验证数据。 接下来我们使用 80k+40k trainval 集进行训练,使用 20k test-dev 集进行评估。 测试开发集没有公开可用的基本事实,结果由评估服务器报告。 在此设置下,结果为 mAP@.5 为 55.7%,mAP@[.5, .95] 为 34.9%(表9)。 这是我们的单一模型结果。
组合。 在 Faster R-CNN 中,系统旨在学习区域提议和对象分类器,因此可以使用集成来增强这两项任务。 我们使用集合来提议区域,并且提议的并集由每个区域分类器的集合处理。 表 9 显示了我们基于 3 个网络的集合的结果。 测试开发集上的 mAP 分别为 59.0% 和 37.4%。 该结果获得COCO 2015检测任务第一名。
PASCAL VOC
我们基于上述模型重新审视 PASCAL VOC 数据集。 通过 COCO 数据集上的单一模型(表 9 中的 55.7% mAP@.5),我们在 PASCAL VOC 集上调整了该模型。 还采用了框细化、上下文和多尺度测试的改进。 通过这样做,我们在 PASCAL VOC 2007 上实现了 85.6% 的 mAP(表 11),在 PASCAL VOC 2012 上实现了 83.8%(表 11)666http://host.robots.ox.ac.uk:8080/anonymous/3OJ4OJ.html,于 2015-11 提交-26。. PASCAL VOC 2012 的结果比之前的最先进结果[6]高出 10 个点。
ImageNet检测
val2 | test | |
---|---|---|
GoogLeNet [44] (ILSVRC’14) | - | 43.9 |
our single model (ILSVRC’15) | 60.5 | 58.8 |
our ensemble (ILSVRC’15) | 63.6 | 62.1 |
ImageNet 检测 (DET) 任务涉及 200 个对象类别。 精度通过mAP@.5进行评估。 我们针对 ImageNet DET 的目标检测算法与表 9 中针对 MS COCO 的目标检测算法相同。 网络在 1000 类 ImageNet 分类集上进行预训练,并在 DET 数据上进行微调。 我们按照 [8] 将验证集分为两部分 (val1/val2)。 我们使用 DET 训练集和 val1 集来影响检测模型。 val2 集用于验证。 我们不使用其他 ILSVRC 2015 数据。 我们使用 ResNet-101 的单一模型在 DET 测试集上具有 58.8% 的 mAP,而我们的 3 个模型的组合在 DET 测试集上具有 62.1% 的 mAP(表 12)。 该结果在 ILSVRC 2015 的 ImageNet 检测任务中获得第一名,超越第二名8.5分(绝对)。
附录 C ImageNet 本地化
|
|
testing |
|
|
|
||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
VGG’s [41] | VGG-16 | 1-crop | 33.1 [41] | ||||||||||||
RPN | ResNet-101 | 1-crop | 13.3 | ||||||||||||
RPN | ResNet-101 | dense | 11.7 | ||||||||||||
RPN | ResNet-101 | dense | ResNet-101 | 14.4 | |||||||||||
RPN+RCNN | ResNet-101 | dense | ResNet-101 | 10.6 | |||||||||||
RPN+RCNN | ensemble | dense | ensemble | 8.9 |
ImageNet 定位(LOC)任务[36]需要对对象进行分类和定位。 在[40, 41]之后,我们假设首先采用图像级分类器来预测图像的类标签,并且定位算法仅考虑基于预测类来预测边界框。 我们采用“每类回归”(PCR)策略[40, 41],为每个类学习一个边界框回归器。 我们预先训练网络以进行 ImageNet 分类,然后调整它们以进行本地化。 我们在提供的 1000 级 ImageNet 训练集上训练网络。
我们的定位算法基于[32]的RPN框架并进行了一些修改。 与[32]中与类别无关的方式不同,我们的本地化 RPN 是以每类形式设计的。 该 RPN 以两个同级 11 卷积层结束,用于二元分类 (cls) 和盒回归 (reg),如 中所示[32]。 与 [32] 相比,cls 和 reg 层均位于 per-class 中。 具体来说,cls层有1000维的输出,每个维度都是二元逻辑回归,用于预测是否是一个对象类; reg 层有 10004 维输出,由 1000 个类的框回归器组成。 与[32]一样,我们的边界框回归参考每个位置的多个平移不变“锚”框。
正如在我们的 ImageNet 分类训练(第 3.4 节)中一样,我们随机采样 224224 个作物以进行数据增强。 我们使用 256 个图像的小批量大小进行微调。 为了避免负样本占主导地位,每张图像随机采样8个anchor,其中采样的正负anchor的比例为1:1[32]。 为了进行测试,网络以全卷积方式应用于图像。
method | top-5 localization err | |
---|---|---|
val | test | |
OverFeat [40] (ILSVRC’13) | 30.0 | 29.9 |
GoogLeNet [44] (ILSVRC’14) | - | 26.7 |
VGG [41] (ILSVRC’14) | 26.9 | 25.3 |
ours (ILSVRC’15) | 8.9 | 9.0 |
表13比较了本地化结果。 继[41]之后,我们首先使用真实类别作为分类预测来执行“oracle”测试。 VGG 的论文 [41] 报告使用地面实况类的中心裁剪误差为 33.1%(表 13)。 在相同的设置下,我们使用 ResNet-101 网络的 RPN 方法将中心裁剪误差显着降低至 13.3%。 这一比较证明了我们框架的出色性能。 通过密集(全卷积)和多尺度测试,我们的 ResNet-101 使用地面实况类的错误率为 11.7%。 使用 ResNet-101 预测类别(top-5 分类误差为 4.6%,表 5),top-5 定位误差为 14.4%。
上述结果仅基于Faster R-CNN [32]中的proposal network(RPN)。 人们可以使用 Faster R-CNN 中的检测网络(Fast R-CNN [7])来改善结果。 但我们注意到,在这个数据集上,一张图像通常包含一个主导对象,并且提议区域彼此高度重叠,因此具有非常相似的 RoI 池化特征。 因此,Fast R-CNN [7] 以图像为中心的训练会生成小变化的样本,这对于随机训练来说可能是不需要的。 受此启发,在我们当前的实验中,我们使用原始的以 RoI 为中心的 R-CNN [8] 来代替 Fast R-CNN。
我们的 R-CNN 实现如下。 我们在训练图像上应用上面训练的每类 RPN 来预测地面实况类的边界框。 这些预测框起着依赖于类的建议的作用。 对于每个训练图像,提取得分最高的 200 个提案作为训练样本来训练 R-CNN 分类器。 图像区域从提案中裁剪,扭曲为 224224 像素,然后输入分类网络,如 R-CNN [8] 中所示。 该网络的输出由 cls 和 reg 两个同级 fc 层组成,也是按类形式。 该 R-CNN 网络以以 RoI 为中心的方式使用 256 的小批量大小在训练集上进行微调。 为了进行测试,RPN 为每个预测类别生成得分最高的 200 个提案,并使用 R-CNN 网络来更新这些提案的得分和框位置。