深度残差网在图像分类上的应用(Deep Residual Learning for Image Recognition”)

深度残差网学习在图像分类上的应用

何凯明张翔宇任少卿孙剑

微软研究院

{kahe, v-xiangz, v-shren,jiansun}@microsoft.com

摘要

当前,深度神经网络比普通神经网络更难训练。我们提出了一种减轻网络训练负担的残差学习框架,这种网络比以前使用过的网络本质上层次更深。我们明确地重定义这层为学习输入层相关的残差函数,而不是学习未知的函数。同时,我们提供了全面经验数据,这些数据证明残差网络更容易优化,并且可以从深度增加中大大提高精度。我们在ImageNet数据集用152 层--比VGG网络[41]深8倍的深度神经网络来评估残差网络,但它仍具有较低的复杂度。在ImageNet测试集中,这些残差网络整体达到了3.57%的误差。该结果在2015年大规模视觉识别挑战赛分类任务中赢得了第一。此外,我们还用了100到1000层深度分析了的CIFAR-10。

对于大部分视觉识别任务,深度表示是非常重要的。正式由于使用极深的表示,在COCO对象检查数据集上,我们就得到了近28%相关的改进。深度残差网络是我们提交给ILSVRC和COCO2015竞赛[1]的基础,而且在ImageNet检测任务,ImageNet定位,COCO检测和COCO分割等领域赢我们也都获得了第一。 1. 简介

深度卷积网络[21,22]引领了一系列图像分类上的突破[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]解决了,它们确保数10层的网络开始用反向传播算法以随机梯度下降(SGD)的方式收敛[22]。

当更深的网络能够开始收敛时,降级问题的问题开始出现:随着网络深度的增加,精准度开始饱和(这并不令人吃惊),然后迅速下降。预料之外的是,在[11,42]中报道并且经过我们实验验证发现,精准度的下降并不是由过度拟合造成的,而且在合适的深度模型中增加更多的层数,会造成更高的训练误差。图1展示了一个经典的实例。

图1 CIFAR-10数据集上的20层和56层的―平‖网络的训练误差(左)和测试误差(右)。更深的网络有更高的训练误差和测试误差,图4显示了在ImageNet也有相似的现象

(在训练集上精度)降级显示并不是所有的系统都容易去优化。我们考虑一个较浅的体系结构与在深度增加

了更多层的体系结构。这里存在一个方案是去构造一个更深的模型:这个增加的层是一个恒等映射,其它的层是从学习到的浅的模型里面复制过来的。这个构造方案的存在表明一个更深的模型应该不会产生毕浅层模型更高的训练误差。但是实验结果表明我们当前不能找到一个与之前的构造方案一样好或者更好的解决方案(或者不能在可行时间内做到)。

图2残差学习:构造块 在本论文中,我们引入了一个深层次的残差学习框架来解决精准度下降问题。我们明确地让这些层适合残差映射,而不是寄希望于每一个堆叠层直接适合一个所需的底层映射。形式上,把F(x):?H(x)-xH(x)F(x)?x作为所需的基本映射,让堆叠的非线性层适合另一个映射F(x):?H(x)-x。那么原映

射便转化成:F(x)?x。我们假设优化

残差的映射,比优化原来未引用的映射更容易。极端情况下,如果恒等映射是最佳的,那么将残差的映射推为零,就比用一堆非线性层来适应恒等映射更容易。 公式F(x)?x可以通过―快捷连接‖前馈神经网络实现(图2)。快捷连接[2,34,49]是那些跳过中的一层或更多层。在我们的情景中,快捷连接简单的执行恒等映射,并将它们的输出添加到叠加层的输出(图2)。恒等快捷连接既不产生额外的参数,也会增加不计算的复杂度。整个网络仍然可以

完全使用反向传播的SGD,并且可以

在不修改结构的情况下很容易的使用通用库来实现(例如Caffe)。

我们在ImageNet[36]上进行了综合性的实验展示精准度下降问题,并评估我们的方法。我们发现:(1)我们的特别深的残差网很容易优化,但深度增加时,对应的―平面‖网(即简单的堆栈层)表现出更高的训练误差。(2)深度残差网络能够在大大增加深度中获得高精准度,产生的结果本质上优于以前的网络。

相似的现象同样出现在了

CIFAR-10集[20]中,这表明了优化的难度,以及我们方法影响的不仅仅是类似于一个特定的数据集。我们在这

个训练集中成功训练了超过100层的网络,并探讨了超过1000层的模型。 在ImageNet分类数据集[36]中,通过极深的残差网络,我们得到了非常好的结果。我们152层的残差网络在ImageNet中是最深层的网络,同时相

比于VGG网络仍然具有较低的复杂性。我们的集成方案在ImageNet测试集中

有3.57%的top-5的误差,并且在

2015ILSVRC分类竞争中取得第一名。

这种极深的表征在其它识别任务方面

也有出色的泛化性能,并带领我们进一步赢得了其他比赛的冠军:

ImageNet检测,ImageNet定位,COCO

检测,和COCO分割(ILSVRC%COC02015竞赛)。这有力的证据表明,残差的学习的原则是通用的,我们期望它适用于其它的视觉和非视觉问题。

2. 相关工作

残差表示。在图像识别中,

VLAD[18]是一个象征,通过关于字典的残差向量进行编程,而且费舍尔向量可以被制定成VLAD的概率版本。它们两个对于图像检索与分类都是有效的浅表示。

对于矢量化,编码残差向量比编码

原始向量更有效。

在低层次视觉和计算机图形学中,为了解决偏微分方程(PDEs),它们广泛的使用多重网格法,将系统重构成多尺度的子问题,每个子问题负责更粗和更细规模之间的残差解答。多重网格的一种替代方法是分层的基础预处理,它依赖于表示两个尺度之间的残差向量的变量。

这些收敛解法比不知道残差性质的标准解法快得多。这些方法表明,一个好的方法或预处理可以简化优化。快捷连接。导致快捷连接的方法和理论已经被研究了很长时间。训练多层感知器早期的实践是从网络的输入到输出添加一个线性层。在[44,24]中,一些中间层直接连接到辅助分类器,来解决梯度的爆发与消失问题。论文的[39,38,31,47]提出用于中心层响应,梯度和传播误差了的方法,该方法通过快捷连接实现。在[ 44 ],一个―开始‖层是由一个快捷的分支和一些更深的分支组成。

并发我们的工作,―highway

network‖提出了门控功能的快捷连接。这些门依赖于数据和已有的参数,而我们的恒等快捷键无需参数。当一个门控的快捷方式―关闭‖(接近零时),highway network中的层代表非残差函数。相反的是,我们的想法总是学习残差函数,我们的恒等快捷方式从来没有关闭,而且所有的信息通过时,总是需要学习额外的残差函数。此外,highway network并没有表现出,精准度并没有随着深度的大大增加而提高(例如,超过100层)。 3. 深度残差学习 3.1 残差学习

我们将H(x)假设为由几个堆叠层匹配的(不一定是整个网)基础映射,用x表示这些第一层的输入。假设多元

非线性层能逼近复杂的函数2,也就相

当于假设它们可以逼近残差函数,例如H(x)?x(假设输入和输出在相同规模)。因此我们非常明确的让这些层近似于残差函数F(x):?H(x)?x,而并非期待堆叠层近似于H(x)。所以原函数变成了:F(x)?x。尽管两种形式都能逼近期望函数(假设),但它的学习难易度可能不同。

新的构思源于反常的精准度下降问题[图1.左图]。如我们在简介中讨论的一样,如果添加的层可以被构造为恒等映射,那么一个更深度模型的训练误差,不应大于与其相应的更浅的模型训练误差。精准度下降问题表明,求解器在通过多个非线性层近似于恒等映射方面有困难。随着残差学习重构,如果恒等映射是最佳的方法,那么求解器可以简单地驱动多个非线性层的权重趋向于零,以便逼近恒等映射。

在现实情况中,恒等映射不可能是最优的,但我们的方法可能有助于事先处理该问题。如果最优函数与趋近于零映射相比更趋近于恒等函数,那么与学习一个新函数相比,求解器更容易找到关于恒等映射的干扰。我们通过实验展示(图7)所学到的剩余函数一般有小的响应,这表明恒等映射提供了合理的预处理。 3.2快捷方式的恒等映射

我们对每一个堆叠层都采用残差学习,一个构建模块如图2所示。正式地说,本文构建模块定义为:

y?F(x,{Wi})?x (1) 其中x和y是考虑到的层的输入和输出向量。函数F(x,{Wi})代表学习的残差函数。如图2所示有两个层,

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4