Deep Residual Learning for Image Recognition
Microsoft Research
图像识别中的深度残差学习
微软研究院 2015. 12 .10
摘要
更深层次的神经网络更难被训练。我们提出了一个残差学习框架,以简化网络的训练,大大比以前使用的更深入。我们明确地将每一层重构为相对于输入层的学习残差函数,而不是学习原始的函数。我们提供了全面的经验证据,表明这些残差网络更容易最优化,并可以从相当增加的深度获得精度。在ImageNet数据集上,我们评估的残差网的深度高达152层——比VGG网深8倍的层数,但仍然具有较低的复杂度。一个这些残差网络的模型集成仅仅只在ImageNet测试集上造成了3.57%的误差。这个结果在ILSVRC2015的分类任务上取得了第一名的成绩。我们还对具有100和1000层的CIFAR-10进行了分析。
特征提取的深度对于许多视觉识别任务都至关重要。仅仅由于我们的深度表示,我们在COCO物体检测数据集上获得了的28%的相对改进。深度残差网络使得我们在一些竞赛中获得了第一名。
简介
深度卷积神经网络CNN为图像分类带来了一系列的突破。深度网络在一种端到端的多层模式中自然地集成了低/中/高层的特征和分类器,而且特征的“level”可以随着神经网络层数的增加而更高。(说人话就是网络越深,提取到的特征越深奥,特征的level越高,一些特征是由其他特征集成而来的,人越难理解和解释这个网络提取到的特征到底是什么)。最新的研究证据表明网络的深度是至关重要的,并且在很有挑战性的ImageNet竞赛的数据集上产生重要结果的网络VCG, GoogleNet,PReLU,BN-Inception都使用了“层数很深”的从十六层到三十层不等的网络模型。还有其他很多重要的视觉识别任务也从深层网络中受益良多。
在深度的重要性的驱动下,我们想到了一个问题:学习更好的网络就像stacking more layers(堆叠更多的层)一样简单吗?回答这个问题的一个重要阻碍就是臭名昭著的梯度消失和梯度爆炸问题,这个东西从一开始就阻碍了函数的收敛(convergence)。然而这个问题又在很大程度上被权重初始化技巧(normalized initialization)和中间层正则化( intermediate normalization layers) 给解决了。这些解决方法使得具有数十层的网络能够以具有反向传播BP的随机梯度下降(随机梯度下降又称为SCD)方法进行收敛。
当更深层的网络可以开始收敛,就会暴露出退化的问题:也就是说,随着网络深度的增加,精度会渐趋于饱和(这也许是意料之中的),然后网络很迅速的退化。意外的是,这种退化并不是由于过拟合所引起的,并且当向一个深度适当的深度模型中加入更多的隐藏层会导致更高的训练时的错误,这种情况就像在[11,42]的论文中提到的一样,并且还被我们的实验给完全的证明了。图1就是一个典型的例子。
(训练精度带来的)退化问题表明不是所有的系统都可以很简单的用同样的处理办法去最优化。我们考虑一下一个浅层的结构和他对应的加入更多隐藏层的更深层的版本。我们用这样的解决办法来构建一个更深层的模型:加入的层必须是恒等映射,并且其他的新加入的层是从已有的进行过训练学习的浅层网络模型中复制来的层。这个构建模型方案的存在可以证明更深层的模型使得模型在训练集上的表现相较于它之前的浅层网络而言不会很差。但是实验结果证明我们现在手边的解决方案是不能找到比上述提到的构造方案同样的好或者是更好(或者说不能在一段时间内找到)的解决办法。
在这篇文章中,我们通过应用深度残差学习架构解决了这个退化的问题。我们并没有希望每一些加入的堆叠的网络层直接对应一个期望的底层映射,相反,我们使得这些网络层对应一个个的残差映射。也就是说,如果把一个期望的底层映射记作,把非线性的层对应于另外一个函数映射 [这里是一个拟合残差]。一开始的映射会被改动到 。我们假定残差映射相比一开始的、不具体的映射一定会更好被最优化。在极端的情况下,如果一个特定的映射是最优的,相较于用一堆非线性的层寻找一个特定的最适合的映射,把残差归为零就会显得更容易。
的表示方法可以被前馈神经网络的捷径链接(“shortcut connections”)很好实现。捷径连接是说跳过一个或者更多的隐藏层的连接。在我们看来,捷径连接就正是实现了恒等映射,并且他们的输出也同样要被考虑进多层网络的输出中。恒等捷径连接或者说恒等短路连接既不会增加额外的参数也不会增加更多的复杂度。整个网络可以由端到端的带有反向误差的SGD训练,并且可以被很简单的由一些很常见的库实现而并不需要多做些什么。(例如, Caffe框架)
我们将在ImageNet比赛上呈现一个便于理解的实验来展现我们所提到的退化问题然后评估我们的方案。我们可以证明:1)我们极深的网络可以很简单地被最优化(收敛问题),但是和我们深度相当的“平凡的”网络(不过仅仅是堆叠了很多层)会随着深度的增加比我们的方法在训练集上有更多的错误;2)我们的深度残差网络可以很好的适应随着网络深度不断增加而带来的参数精度不断提高,产生比之前网络充分好的结果。
相同的现象也在CIFAR-10的数据集上有所呈现,这表明最优化的困难和我们的方法带来的影响不仅仅局限于类似的特定的数据集上。我们成功展示了在这种数据集上的训练好的模型…… (此处省略一堆自夸结果十分好看类似这样的废话,这篇文章自夸的废话一直很多,也侧面说明这篇文章成果确实显著?)。
相关工作
残差表示
捷径连接/短路连接
深度残差网络
残差学习
让我们考虑H (x)是一个底层映射,对应几个堆叠层(不一定是整个网络)(这里需要说明一下层的优化就是要找到这些层对应的映射函数来优化),记x表示第一层的输入。如果假设多个非线性层可以渐近近似复杂函数,那么它就等价于假设它们可以渐近近似残差函数,即(假设输入和输出具有相同的维数)。因此,我们不是期望所有的层近似于,而是明确地让这些层近似于一个残差函数。原来的函数就变成了。虽然这两种形式都应该能够渐近地近似于所期望的函数(如假设的那样),但网络学习的容易程度可能是不同的。
这种重新表述是由关于退化问题的反直觉现象引起的(图1,左)。正如我们在引言中所讨论的,如果添加的层可以构造为恒等映射,那么更深的模型的训练误差应该不大于较浅的对应模型。退化问题表明,求解器在通过多个非线性层逼近恒等映射时可能存在困难。通过残差学习重构,如果恒等映射是最优的,求解器可以简单地将多个非线性层的权值置为零,以接近恒等映射。(本质:如果恒等映射已经是最优的,残差模块只需要拟合零映射)。
在实际情况下,恒等映射不太可能是最优的,但我们的重构可能有助于解决使问题成立的先决条件。如果期望拟合的最优函数(optimal function)更接近于恒等映射而不是零映射,那么求解器应该更容易找到相对于恒等映射的扰动,而不是将该函数学习为一个新的函数更容易。我们通过实验(图7)表明,学习到的残差函数一般responses较小,这表明恒等映射已经被合理的预处理。
通过短路实现恒等映射
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ELdTDi9L-1680939717605)(media/6ec01c0e7bacfba7ceb9745ba23ad9ef.png)]我们每隔几个堆叠层就采用残差学习。一个构建块如图2所示。在本文中,我们考虑将一个building block定义为:
这里的x和y是所考虑的层的输入和输出向量。函数F(x,{Wi})表示要学习的残差映射。对于图2中有两层的例子,是F = W2σ(W1x),其中σ表示为了简化符号,省略了ReLU [29]和偏差。操作F + x是通过一个快捷方式连接和元素级加法来执行的。我们采用了加法后的第二个非线性关系(即σ(y),见图2)。Eqn中的快捷方式连接。(1)既不引入额外的参数,也不引入计算复杂度。这不仅在实践中很有吸引力,而且在我们比较普通网络和残差网络中也很重要。我们可以相当好地比较同时具有相同数量的参数、深度、宽度和计算成本的普通/残差网络(除了可忽略的元素加法)。
x和F的尺寸必须相等。如果不是这样的情况(例如,当改变输入/输出通道时),我们可以通过快捷连接执行一个线性投影,以匹配尺寸:
我们也可以在方程中使用方阵。(1)。但我们将通过实验表明,恒等映射足以解决退化问题,并且是经济的,因此只在匹配维数时使用。残差函数F的形式是灵活的。本文的实验涉及一个函数F的两或三层函数(图5),同时可能有更多的层。但如果F只有一个层,Eqn(1)类似于线性层: y = W1x + x,我们没有观察到其优势。我们还注意到,尽管为了简单起见,上述符号是关于全连接层的,但它们也适用于卷积层。函数F(x,{Wi})可以表示多个卷积层。元素级添加将在两个特征映射上执行,一个通道一个通道。
网络架构
我们已经测试了各种普通/残差网,并观察到一致的现象。为了提供讨论的实例,我们描述了ImageNet的两个模型。
普通网络。我们的基本基础想法(图3,中间)主要是受到VGG nets [41]哲学的启发(图3,左)。卷积层大多有3x3滤波器,并遵循两个简单的设计规则: (i)对于相同的输出特征映射大小,各层具有相同数量的过滤器;(ii)如果特征映射大小减半,过滤器的数量将增加一倍,以保持每层的时间复杂度。我们通过步长为2的卷积直接执行下采样。该网络以一个全局平均池化层(GAP)和一个具有softmax的1000路全连接层结束。图3(中间)中加权层总数为34层。
值得注意的是,我们的模型比VGG网络[41]具有更少的过滤器和更低的复杂度(图3,左)。我们的34层基线有36亿个流量(倍数增加),仅占VGG-19的18%(196亿个流量)的比例。
**残差网络。**在上述普通网络的基础上,我们插入短路连接(图3,右),将网络转化为对应的残差版本。当输入和输出的尺寸相同时,恒等短路(Eqn(1))可直接使用(图3中的实线快捷方式)。当维度增加时(图3中的虚线快捷方式),我们考虑两个选项: (A)短路连接仍然执行恒等映射,为增加的维度(多出来的通道)填充额外的零项。此方案不引入额外的参数;(B)Eqn2中的投影短路连接方式。(2)用于匹配维度(由1⇥1卷积完成)。对于这两个选项,当快捷方式跨越两种大小的特征映射时,它们将以2的步幅执行。
实践应用
实验结果
略。