Deep Residual Learning for Image Recognition

Abstract

深度很深的神经网络是很难训练的,我们提出了一个残差学习框架,以简化比以前使用的网络更深的网络的训练。我们明确地将提及的层表述为输入的学习残差函数,而不是学习本文未提及的其他函数。根据经验表明,残差网络是更容易优化的。此外,显著增加网络的深度是可以提高准确性的。在 ImageNet 数据集上,我们评估了深度高达 152 层的残差网络——比 VGG 网络深 8 倍,但复杂度仍然较低。这些残差网络的集合在 ImageNet 测试集上达到了 3.57% 的错误率。该结果在 ILSVRC 2015 分类任务中获得第一名。我们还在具有 100 层和 1000 层的网络上对数据集 CIFAR-10 进行了分析。

模型的深度对于许多视觉识别任务至关重要。由于我们的残差网络深度很深,我们在CoCo物体检测数据集上获得了28%的相对改进。深度残差网络是我们提交给 ILSVRC & COCO 2015 竞赛的基础,我们还在 ImageNet 检测、ImageNet 定位、COCO 检测和 COCO 分割任务上获得了第一名。

1. Introduction

深度卷积神经网络在图像分类方面取得了一系列突破。深度网络以端到端的多层方式自然地集成了低/中/高级特征[49]和分类器,特征的“层次”可以通过堆叠层数(深度)来丰富。最近的证据表明网络深度至关重要,在具有挑战性的 ImageNet 数据集 上的领先结果都利用“非常深”的模型,具有深度为十六 至三十 。许多其他重要的视觉识别任务也极大地受益于非常深的模型。

在深度重要性的驱动下,出现了一个问题:学习更好的网络是否像堆叠更多层一样容易?回答这个问题的一个障碍是臭名昭著的梯度消失/爆炸问题 ,它从一开始就阻碍了收敛。然而,这个问题在很大程度上通过归一初始化和中间归一化层得到了解决。这使得具有数十层的网络能够使用带有反向传播的SGD算法能够收敛。

当更深层次的网络能够开始收敛时,一个退化问题就暴露出来了:随着网络深度的增加,准确性会饱和(这可能不足为奇),然后网络的深度增加了准确度竟然会下降。出乎意料的是,这种退化不是由过度拟合引起的,并且向适当深度的模型添加更多层会导致更高的训练误差,并通过我们的实验进行了彻底验证。图 1 显示了一个典型的例子。

(训练精度的)下降表明并非所有不同深度的网络都同样容易优化。让我们考虑一个较浅的架构及其在其上添加更多层的较深的对应物。对于构建更深层次的模型存在一个解决方案:相较于浅层网络而言,深层网络多余的其他层是一个一致映射,其他的层是在较浅的网络上复制过来的。这种构造的解决方案的存在表明,较深的模型不应比其较浅的模型产生更高的训练误差。但经验表明,我们目前手头的求解器无法找到与构建的解决方案相当或更好的解决方案(或无法在可行的时间内这样做)。言下之意只能找到这样一个解决方案。

在本文中,我们通过引入深度残差学习框架来解决退化问题。我们不希望相较于浅层网络多余的其它层直接拟合所需的底层的映射,而是让这些多余的层来使用残差映射。形式上,将所需的底层映射表示为 H(x),我们让堆叠的非线性层拟合 F(x):=H(x) − x 的另一个映射。那么映射用F(x)+x来表示。我们假设优化残差映射比优化原始的、未使用的映射更容易。

在极端情况下,如果恒等映射是最优的,则将残差推到零(梯度消失)比通过一堆非线性层拟合恒等映射更容易。

F(x)+x 的公式可以通过具有“快捷连接”的前馈神经网络来实现(图 2)。快捷连接 是那些跳过一层或多层的连接。

你可能感兴趣的:(深度学习,深度学习,人工智能)