深度学习论文:Deep Residual Learning for Image Recognition

本文提出了残差学习框架,解决了深度神经网络的退化问题,允许训练远超过100层的网络。通过引入跳接和残差块,网络能够更好地优化并提高准确率。在ImageNet分类任务上,使用152层的残差网络取得了3.57%的错误率,优于VGG网络,并在多个识别任务中表现出色。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

论文:

He, Kaiming, et al. "Deep residual learning for image recognition." Proceedings of the IEEE conference on computer vision and pattern recognition. 2016.

Abstract

深度神经网络难以训练,本文提出残差块来简化比以往深很多网络的训练,我们明确的重新定义了把输入作为参照的残差函数层,并提供了全面的证据表明残差网络更容易优化,在ImageNet数据集使用152层的残差网络(比vgg还深8倍),但仍有较低的复杂度,这些残差网络的集成在ImageNet测试集上取得了3.57% error。

表征深度对许多视觉识别任务非常重要,仅由于我们的表征非常深,在coco目标检测数据集上得到了28%的相对改进。 深度残差网络是我们参加ILSVRC & COCO 2015 竞赛上所使用模型的基础,并且在ImageNet检测、ImageNet定位、COCO检测以及COCO分割上均获得了第一名的成绩。

1. Introduction

深度卷积神经网络在图像识别上取得了一些列突破,深度网络通常集成low/mid/high level的特征,而特征的“level”可以通过堆叠层的数量(深度)来丰富,最近的证据表明网络深度十分重要,在富ImageNet数据集比赛上的领先结果都用了非常深的模型,深度为16至30。许多其他重要(nontrivial)的视觉识别任务也从非常深的模型中获益良多。

在深度的重要意义的驱动下,有一个问题:学习更好的网络就像堆叠更多的层一样简单吗?回答问题有一个障碍:可恶(notorious)的梯度消失/爆炸问题,这个问题在一开始就妨碍着收敛,但是它们已经在很大程度上被归一初始化和中间的归一化层解决,使得数十层的网络在反向传播的随机梯度下降中开始收敛。

当更深的网络能够开始收敛,暴露出一个退化(degradation )问题:随着深度增加,准确率达到饱和(这可能不足为奇),然后迅速下降。出乎意料的是,这种退化并不是由过度拟合造成的。我们的实验已经完全证实,在一个合适的深度模型上增加更多的层会导致更高的training error,图1给出了一个典型的例子。

这种训练集准确率的退化表明:不是所有系统都同样容易优化。让我们考虑一个较浅的结构和更深的对应结构,它在上面添加了更多的层,对于更深的模型,存在一个解决方案:添加的层是恒等映射(identity mapping),其他层是从更浅层中复制,恒等映射的存在表明,较深的模型不应该比较浅的模型产生更大的训练误差。但实验表明,我们手中现有的solver无法找到和恒等映射一样好或更好的解(或在可行时间内无法找到)。

(可以认为ResNet的目的,是让网络至少有恒等映射的能力,这样堆叠更多层时,网络至少不会产生退化。)

在本文中,我们通过引入一个深度残差学习框架来解决退化问题。我们不希望每个堆叠的几个层直接拟合(fit)一个期望的底层映射,而是显式地让这些层拟合一个残差映射(residual mapping)。我们将期望的底层映射表示为H(x),我们让堆叠的非线性层拟合另一个映射 F(x) = H(x) − x 。原始映射被重新映射为 F(x) + x 。我们假设优化残差映射比优化原始的、unreferenced的映射更容易,在极端情况下,如果恒等映射是最优的,那么将残差推到零要比通过一堆堆叠的非线性层更容易拟合一个恒等映射。

F(x) + x 可以通过前馈神经网络的“ 跳接(shortcut connections)”来实现(图2)。跳接是跳过一个或多个层的连接。在本例中,跳接只简单的执行恒等映射,它们的输出被添加到叠加层的输出中。它既不增加额外的参数,也不增加计算的复杂性。整个网络仍然可以使用反向传播的SGD进行端到端的训练,并且可以使用公共框架(例如caffe)来实现,而无需修改 solvers。

(残差函数F(x) = H(x) - x是学习的目标,即输入和输出的差。如果F(x)=0,残差块就构成了一个恒等映射H(x) = x。 拟合残差比拟合恒等映射容易许多。)

类似的现象也出现在CIFAR-10上,这表明优化的困难和我们方法的效果不仅仅适用于特定的数据集。我们在这个超过100层的数据集中展示了成功训练的模型,并探索了超过1000层的模型。 

在ImageNet分类数据集上,我们通过极深的残差网络得到了很好的结果。152层残差网络是迄今为止在ImageNet上出现的最深的网络,但仍然比VGG的复杂度低。我们的ensemble在ImageNet测试集的top-5 error为3.57%,在2015 ILSVRC分类竞赛中获得第一名。极深的表征在其他识别任务上也有很好的泛化性能,并带领我们在2015 ILSVRC & COCO竞赛中进一步获得了第一名:ImageNet检测、ImageNet定位、COCO检测、COCO分割。这一有力的证据表明,残差学习原理是通用的,我们希望它能适用于其他视觉和非视觉问题。

2. Related Work

残差表示(Residual Representations):在图像识别中,VLAD是一种对字典的残差向量进行编码的表示,Fisher Vector可以表示为VLAD的概率版本,它们都是图像检索和分类任务中有力的浅层表示法。在向量量化方面,对残差向量进行编码比对原始矢量进行编码更有效。

在低水平视觉和计算机图形学中,为了求解偏微分方程(Partial Differential Equations,PDEs),广泛使用的多重网格方法将系统重新表述为多个尺度上的子问题,其中每个子问题负责较粗和较细尺度之间的残差解(residual solution)。替代多重网格的一种方法是分层基础预处理(hierarchical basis preconditioning),它依赖于表示两个尺度之间的残差向量的变量。研究表明,这些solver比不知道the residual nature of the solutions的标准solver收敛得快得多。这些方法表明,一个好的的重新定义或预处理可以简化优化过程。

跳接(Shortcut Connections):跳接的实践和理论已经被研究了很长时间。早期训练多层感知器(multi-layer perceptrons, MLPs)的一个实践是添加一个从网络输入连接到输出的线性层。在GoogleNet中,一些中间层直接连接到辅助分类器,用于处理消失/爆炸梯度。文献[38,37,31,46]提出了通过跳接来调整层响应、梯度和传播误差的方法。在[43]中,“inception”层由一个shortcut分支和几个更深的分支组成。

与此同时,“highway networks” [41,42]将跳接与门函数(gating functions)结合,这些“门”是依赖数据的并且有参数,但是我们的跳接是没有参数的(input x),当一个gated shortcut关闭(接近0),highway networks中的层就表示非残差函数,与之相反,我们的公式总是学习残差函数,identity shortcuts永远不会关闭,所有的输入信息总是被传递,还有额外的残差需要学习,此外,highways networks并没有随着深度的增加显示出精度的提高。

3. De

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值