论文地址:https://arxiv.org/pdf/1512.03385.pdf
Deep Residual Learning for Image Recognition
Abstract
神经网络的深度越深就会越难训练。我们提出了一个残差学习框架,可以使比之前常用网络更深的网络的训练变的容易些。我们将层重新定义为学习关于该层输入的残差函数而不是学习未引用的函数。我们通过全面的实验表明该残差网络更容易优化,可以通过更深的层次来获得更高的精度。在 ImageNet 数据集上,我们评估深度高达152层的残差网络——比VGG网络[41]深8倍,但仍然具有较低的复杂度。 这些残差网络的集合在 ImageNet 测试集上的错误率为3.57%。该结果在 ILSVRC 2015 分类任务中获得第一名。 我们还在CIFAR-10上对100 层和 1000 层的网络进行了实验分析。
对于很多视觉识别任务,特征的深度是一个最关键的问题。由于我们的超常的深度,我们在COCO检测数据集上精度提升了28%。深度残差网络是我们提交给 ILSVRC & COCO 2015 竞赛的基础,我们还在 ImageNet 检测、ImageNet 定位、COCO 检测和 COCO 分割任务中获得了第一名。
1. Introduction
深度卷积神经网络[22,21]为图片分类领域[21, 50, 40]带来了一系列的突破。深度网络使用端到端的多个层次的方式将低/中/高级别的特征[50]和分类器结合到一起,特征的"层"可以通过堆叠层次的数量(深度)来扩展。最近证据[41, 44]表明网络的深度是至关重要的,在ImageNet挑战数据集[36]上成绩领先[41, 44, 13, 16]都利用了非常深的模型,深度为16层[41]和30层[16]。许多其他重要的视觉识别任务[8, 12, 7, 32, 27]也从非常深的模型中受益匪浅。
随着深度越来越重要,出现了一个问题:训练更好的网络是否与叠加更多层一样容易?回答这个问题的一个障碍是臭名昭著的梯度消失/爆炸问题[1,9],该问题从一开始就阻碍了收敛。然而,归一化的初始化[23,9,37,13]和中间归一化层[16]在很大程度上解决了这一问题,这使得使用带反向传播的随机梯度下降(SGD)[22]的具有数十层的网络能够收敛。
当更深的网络可以收敛,精度退化的问题就暴露出来了:随着网络深度的增加,精度达到一个最大值(这应该不奇怪)然后快速退化。出乎意料的是,这中精度退化并不是过拟合引起的,在一个适当层次的网络上添加更多的层次后会导致更高的训练误差,如[11, 42]所述,并由我们的实验彻底验证了该问题。图1中展示了一个典型例子。
训练精度的下降说明并非所有系统都易于优化。我们考虑一个层次更少的结构和一个与之对应的在它基础上添加其他层构成的更多层次的结构。通过构造更深层次模型就有了一个解决方案:新添加的层是恒等映射,其他的层是从训练好的更浅层次复制的。这种构造方案的存在说明,更深的模型不应产生比其更浅的对应模型更高的训练误差。但是实验证明我们现有的方法无法找到能够与构造解决方案差不多或者更好的解决方案(或者能够在可能的时间内找到)。
在本文中,我们通过引入一个深度残差学习框架来解决退化问题。我们直接让这些层拟合残差映射,而不是让这几个层去拟合期望的基础映射。形式上,我们把期望的基础映射表示为H(x),我们让几个非线性层拟合另一个映射F(x) := H(x) − x。原始的映射就转换称为F(x)+x。我们假设优化残差映射比原始未引用的映射更容易。极端情况下,如果恒等映射是最优的,将残差变为0比用一组非线性层来满足恒等映射更简单。
在前馈神经网络中F(x) + x可以通过"短接"来实现(图2)。短接[2, 34, 49]意思就是跳过一个或多个层的连接。在我们的例子中,短接只是简单的表示恒等映射,他们的输出会与堆叠层的输出相加(图2)。恒等的短接即不会增加额外的参数也不会增加计算复杂度。整个网络仍然可以时候用带反向传播的SGD进行端到端的训练,可以使用公共库很容易的实现(例如Caffe [19])而不需要修改已有方案。
我们在ImageNet上进行了全面的实验来展示退化问题并对我们的方法进行评估。结果表明:1)我们的极深残差网络易于优化,但是与之对应的"普通"网络(只是简单堆砌层)在深度增加时表现出了更高的训练误差;2)我们的深度残差网络可以很容易的通过大大的增加深度来提高精度,得到的结果比之前的网络要好得多。
在CIFAR-10数据集[20]上也有类似的现象,这说明优化难题和我们方法的有效性不是针对特定的数据集。我们在这个数据集上成功的训练了一个超过100层的网络,并探索了超过1000层的模型。
在ImageNet的分类数据集[36]上,我们使用极深的残差网络获得了非常好的结果。我们的152层的残差网络是目前为止应用到ImageNet上深度最深的网络,同时还有以VGG[41]更低的复杂度。在ImageNet的测试数据集上我们的top-5误差为3.57%,赢得了ILSVRC
2015分类竞赛的冠军。这种极深网络在其他识别任务上有很好的泛化性能,这使我们在 ILSVRC & COCO 2015 竞赛中进一步赢得了 ImageNet 检测、ImageNet 定位、COCO 检测和 COCO 分割的冠军。强有力的证据表明,残差学习理念是通用的,我们也希望它能适用于其他视觉和非视觉问题。
2. Related Work
残差表示。 在图片识别领域,VLAD[18]是一种由残差向量相对于字典进行编码的表示方式,Fisher Vector[30]可以作为VLAD的一种概率版本[18]。他们都是用于图片检索和分类的强大表示。对于向量的量化,对残差向量进行encoding证明比原始向量进行编码更有效。
在低级视觉和计算机图像领域中,为了求解偏微分方程(PDEs),广泛应用的Multigrid[3]方法将其系统重新表述为一个多尺度子问题,每一个子问题负责一个粗粒度和更细粒度尺度之间的残差结果。Multigrid的一个可替代方法分层基础预处理[45,46],它依赖能够表示两个尺度之间残差向量的变量。已经证明[3,45,46],这些解决方法比不知道残差的标准解决方案收敛更快。这些方法表明良好的重构和预处理可以简化优化。
计算机视觉层次可大致分为三个层次:低级视觉,中级视觉,高级视觉。参考文章:https://blog.csdn.net/wangzhebupt/article/details/11961501
Shortcut Connections。 提出Shortcut Connections[2,34,49]的理论和实践已经研究很长时间了。一个早期的实践是训练多层感知器[MLPs]时在网络的输入和输出之间添加一个线性层[34,49]。在[44, 24]中,将几个中间层直接连接到了辅助分类器上面,用来解决梯度的消失/爆炸。在[39, 38, 31, 47]等文章中提出了通过Shortcut Connections实现的响应,梯度和反向误差中心化的方法。在[44]中"inception"层由一个短接分支和几个更深分支组成。
与我们工作同时进行的,“highway networks”[42, 43]提供了门控功能的[15]shortcut connections。与我们的无参数恒等映射不同的是这些门依赖数据并且拥有参数。当一个门控"关闭"也就是趋于0的时候,