英文原文:《Deep Residual learning for Image Recognition》
中文翻译:用于图像识别的深度残差学习 何恺明
摘要
更深的神经网络更难以训练。我们提出了一个残差学习框架来减轻网络的训练,这些网络比以前使用的网络要深得多。我们明确地将层次重新定义为参照层次输入学习残差功能,而不是学习未引用的功能。我们提供全面的经验证据,显示这些残留网络更容易优化,并且可以从深度增加中获得准确性。在ImageNet数据集上,我们评估了深度达152层的残余网络,其深度比VGG网络深8倍,但仍然具有较低的复杂度。这些残差网络的集合在ImageNet测试集上达到3.57%的误差。这一成绩赢得了ILSVRC 2015分类任务的第一名。我们还分析了100和1000层的CIFAR-10。
网络表示的深度对于许多视觉识别任务来说具有核心重要性。仅仅由于我们对深层的表示,我们对COCO目标检测数据集获得了28%的相对改进。深度残留网络是我们提交ILSVRC&COCO 2015比赛的基础,我们还在ImageNet检测,ImageNet本地化,COCO检测和COCO分割任务中赢得了第一名。
1.引言
深卷积神经网络[22,21]已经为图像分类带来了一系列突破[21,49,39]。深度网络自然地以端到端的多层方式集成了低/中/高级特征[49]和分类器,并且特征的“水平”可以通过堆叠层数(深度)来丰富。最近的证据[40,43]揭示了网络深度是至关重要的,并且在具有挑战性的ImageNet数据集[36]中的主要结果[40,43,12,16]都利用“非常深”的[40]模型,深度十六[40]至三十[16]。许多其他非平凡的视觉识别任务[7,11,6,32,27]也从非常深的模型中获益匪浅。
受深度意义的驱动,出现了一个问题:学习更好的网络就像堆叠更多层一样简单吗?回答这个问题的一个障碍是臭名昭著的消失/爆发梯度问题[1,9],这阻碍了从一开始的融合。然而,这个问题已经基本上通过归一化初始化[23,8,36,12]和中间归一化层[16]来解决,这使得具有数十个层的网络开始收敛以用于反向传播的随机梯度下降(SGD)[22]。
当更深的网络能够开始收敛时,就会出现退化问题:随着网络深度的增加,准确度变得饱和(这可能不令人意外),然后迅速退化。出乎意料的是,这种退化不是由过拟合引起的,并且向适当深度的模型中添加更多层会导致更高的训练错误,如[10,41]中所报告并且我们的实验已经完全验证。图1显示了一个典型的例子。
图1:在20层和56层纯网络的CIFAR-10上,训练误差(左)和测试误差(右)。网络越深,训练误差越大,测试误差越大,在ImageNet上类似的现象如图4所示
退化(训练准确性)表明并非所有系统都同样易于优化。让我们考虑一个更浅的架构和更深层次的架构,在其上添加更多层。在深层模型中存在一个解决方案:增加的层是恒等映射,其他层是从学习的浅层模型复制的。这个构建的解决方案的存在表明,深层模型不应该比浅层模型产生更高的训练误差。但是实验表明,我们目前的求解器无法找到比构建的解决方案相当好或更好的解决方案(或在可行时间内无法这样做)。
在本文中,我们通过引入深度残差学习框架来解决退化问题。除了希望每个堆叠层都直接适合所需的底层映射外,我们明确地让这些层适合残差映射。形式上,将期望的底层映射表示为H(x),我们让堆叠的非线性层适合F(x)的另一个映射:= H(x) - x。原始映射重写为F(x)+ x。我们假设优化残差映射比优化原始的,未引用的映射更容易。极端情况下,如果身份映射是最优的,那么将残差推到零比通过一堆非线性层适合身份映射更容易。
图2:残差学习:一个构件块
F(x)+ x的公式可以通过具有“捷径连接”的前馈神经网络来实现(图2)。快捷方式连接[2,33,48]是跳过一个或多个图层的连接。在我们的例子中,快捷方式连接只需执行标识映射,并将其输出添加到堆叠层的输出中(图2)。身份快捷连接既不增加额外的参数,也不增加计算复杂性。整个网络仍然可以通过反向传播以SGD进行端对端培训,并且可以使用通用库(例如Caffe [19])轻松实施,而无需修改解算器。
我们在ImageNet上展示全面的实验[35]来展示退化问题并评估我们的方法。 我们表明:1、我们极深的残余网络很容易优化,但当深度增加时,对应的“简单”网络(即简单叠加层)表现出更高的训练误差; 2、我们的深度残余网络可以通过大大增加的深度轻松获得准确性收益,产生的结果大大优于以前的网络。
类似的现象也在CIFAR-10集[20]上显示,这表明我们的方法的优化困难和影响不仅仅是类似于特定的数据集。 我们在这个数据集上提供了超过100层的成功训练模型,并探索超过1000层的模型。
在ImageNet分类数据集[35]中,我们通过非常深的残余网络获得了极好的结果。我们的152层残留网络是有史以来在ImageNet上提供的最深的网络,但仍比VGG网络复杂度低[40]。我们的团队在ImageNet测试集中出现了3.57%的前5名错误,并在ILSVRC 2015分类竞赛中获得了第一名。在其他识别任务中,这些非常深刻的表达