ResNet论文逐句精读

标题:Deep Residual Learning for Image Recognition

作者:Kaiming He Xiangyu Zhang Shaoqing Ren Jian Sun

作者单位:Microsoft Research

论文来源:https://arxiv.org/pdf/1512.03385.pdf

Abstract

更深层次的神经网络更难训练。我们提出了一个残差学习框架,以简化比以前使用的网络更深的网络训练。我们明确地将层重新表示为参考层输入的学习残差函数,而不是学习未引用的函数。我们提供了全面的经验证据,表明这些残差网络更容易优化,并且可以通过显著增加的深度来获得准确性。在 ImageNet 数据集上,我们评估深度高达 152 层的残差网络,比 VGG 网络 [41] 深 8 倍,但复杂度仍然较低。这些残差网络的集合在 ImageNet 测试集上实现了 3.57% 的误​​差。该结果在 ILSVRC 2015 分类任务中获得第一名。我们还对 100 层和 1000 层的 CIFAR-10 进行了分析。表征深度对于许多视觉识别任务至关重要。仅仅是我们的深度表征,就已经在在 COCO 目标检测数据集上获得了 28% 的相对改进。深度残差网络是我们提交 ILSVRC 和 COCO 2015 竞赛的基础,我们还在 ImageNet 检测、ImageNet 定位、COCO 检测和 COCO 分割任务中获得了第一名。

1、首句直接说明了研究结果,即提出一种模型来解决更深层网络的训练问题。

2、摘要大部分作者直接说明了自己提出的模型,所取得的成果,包括视觉任务、识别和分割等等。

1. Introduction

译文

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

从AlexNet到VGG,GoogLeNet,深度神经网络的层数总是在不断增加。

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

关于梯度消失和梯度爆炸问题可以看这篇博客的详解https://blog.csdn.net/ftimes/article/details/105837637

当更深的网络能够开始收敛时,退化问题就暴露出来了:随着网络深度的增加,准确性变得饱和(这可能并不奇怪),然后迅速退化。出乎意料的是,这种退化并不是由过度拟合引起的,并且向适当深度的模型添加更多层会导致更高的训练误差,如[11, 42]中所报告的,并经过我们的实验彻底验证。图 1 显示了一个典型示例。

ResNet这篇论文的一大亮点就是提出了“退化问题”,注意这并不是由过拟合导致的,过拟合是训练误差小而测试误差大,这里的退化问题会导致训练误差变大,因此和过拟合有本质区别。

图1左边是训练误差,右边是测试误差,红线是56层网络,黄线是20层网络(注意这里用的是传统神经网络plain,不是resnet)。可以发现,随着网络迭代次数的增加,网络层数越高,那么它相应的误差也就越大,并且在迭代几次之后,它的误差会突然下降一次,这是不是和我们通常认为的“层数越多,效果越好”相反呢?这就是“Degradation退化问题”!

(训练准确性)的下降表明并非所有系统都同样容易优化。让我们考虑一个较浅的架构及其在其上添加更多层的较深层的对应架构。存在一种通过构建更深层次模型的解决方案:添加的层是恒等映射,其他层是从学习的较浅层模型中复制的。这种构造的解决方案的存在表明,更深的模型不应比其更浅的对应模型产生更高的训练误差。但实验表明,我们现有的求解器无法找到比构造的解决方案差不多或更好的(或无法在可行的时间内做到这一点)。

在本文中,我们通过引入深度残差学习框架来解决退化问题。我们不希望每几个堆叠层都直接适合所需的底层映射,而是明确让这些层适合残差映射。形式上,将所需的基础映射表示为 H(x),我们让堆叠的非线性层拟合 F(x) := H(x) − x 的另一个映射。原始映射被重铸为F(x)+x。我们假设优化残差映射比优化原始的、未引用的映射更容易。在极端情况下,如果恒等映射是最优的,则将残差推至零比通过一堆非线性层拟合恒等映射更容易。

如果深层网络的后面那些层是恒等映射,那么模型就可以退化为一个浅层网络。问题是学习恒等映射函数, 但是直接让一些层去拟合一个潜在的恒等映射函数H(x) = x,比较困难,(神经网络这么强大,可以拟合各种复杂的函数,却难以拟合一个最简单的f(x)=x哈哈)这也许就是深层网络难以训练的原因。所以提出这样的思想,如果把网络设计为H(x) = F(x) + x,如图2所示,我们可以转换为学习一个残差函数F(x) = H(x) - x. 只要F(x)=0,就构成了一个恒等映射H(x) = x. 而且,拟合残差肯定更加容易。

F(x) + x 的公式可以通过具有“快捷连接”的前馈神经网络来实现(图 2)。快捷连接[2,34,49]是那些跳过一层或多层的连接。在我们的例子中,快捷连接只是执行恒等映射,并且它们的输出被添加到堆叠层的输出中(图 2)。快捷方式连接既不会增加额外的参数,也不会增加计算复杂性。整个网络仍然可以通过 SGD 通过反向传播进行端到端训练,并且可以使用通用库(例如 Caffe [19])轻松实现,而无需修改求解器。

“快捷连接shortcut”是该论文的第二大亮点,shortcut连接简易地执行了同等映射,不会产生额外的参数,也不会增加计算复杂度。 而且,整个网络仍然可以通过端到端的反向传播训练。

我们在 ImageNet [36] 上进行了全面的实验,以展示退化问题并评估我们的方法。我们表明: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 分割方面的第一名。这个有力的证据表明残差学习原理是通用的,我们期望它适用于其他视觉和非视觉问题。

后面几段就是说明ResNet及其不同的变体的效果十分nb!

2. Related Work

残差表示。在图像识别中,VLAD [18] 是通过残差向量相对于字典进行编码的表示,Fisher Vector [30] 可以表示为 VLAD 的概率版本 [18]。它们都是用于图像检索和分类的强大浅层表示[4, 48]。对于矢量量化,编码残差矢量[17]被证明比编码原始矢量更有效。

VLAD(Vector of Local Aggregated Descriptors),是图像特征提取方法的一种。有兴趣了解的朋友可以去看这篇文章从VLAD到NetVLAD,再到NeXtVlad - 知乎 (zhihu.com)

在低级视觉和计算机图形学中,为了求解偏微分方程(PDE),广泛使用的多重网格方法[3]将系统重新表述为多个尺度的子问题,其中每个子问题负责较粗和较精细之间的残差解规模。多重网格的替代方法是分层基础预处理 [45, 46],它依赖于表示两个尺度之间残差向量的变量。研究表明 [3,45,46],这些求解器比不知道解的残差性质的标准求解器收敛得快得多。这些方法表明良好的重新配制或预处理可以简化优化。

快捷连接。导致快捷连接的实践和理论[2,34,49]已经被研究了很长时间。训练多层感知器(MLP)的早期实践是添加一个从网络输入连接到输出的线性层 [34, 49]。在[44, 24]中,一些中间层直接连接到辅助分类器以解决梯度消失/爆炸问题。 [39,38,31,47]的论文提出了通过快捷连接实现的居中层响应、梯度和传播误差的方法。在[44]中,“初始”层由一个快捷分支和一些更深的分支组成。

在我们的工作同时,“高速公路网络”[42, 43] 提供了带有门控功能的快捷连接[15]。这些门依赖于数据并且具有参数,与我们的无参数身份快捷方式相反。当门控捷径“关闭”(接近零)时,高速公路网络中的层代表非残差函数。相反,我们的公式总是学习残差函数;我们的身份捷径永远不会关闭,所有信息总是会被传递,并且需要学习额外的残差函数。此外,高速网络尚未表现出随着深度的极大增加(例如超过 100 层)而带来的精度提升。

除了作者他们在做这份工作以外,其他研究者也提出了类似的shortcut connect,不过他们的快捷连接是以门控的形式呈现的,也就是说信息并不是一直被传递的,而且呢他们的这种方法貌似没有取得什么有效的成果...

3.Deep Residual Learning

3.1. Residual Learning

让我们将 H(x) 视为由几个堆叠层(不一定是整个网络)拟合的底层映射,其中 x 表示第一层的输入。如果假设多个非线性层可以渐近逼近复杂函数,那么就相当于假设它们可以渐近逼近残差函数,即H(x) − x(假设输入和输出具有相同的维度)。因此,我们不是期望堆叠层逼近 H(x),而是明确地让这些层逼近残差函数 F(x) := H(x) − x。原函数因此变为 F(x)+x。尽管两种形式都应该能够渐近地逼近所需的函数(如假设的那样),但学习的难易程度可能不同。

这种重新表述的动机是关于退化问题的反直觉现象(图 1,左)。正如我们在简介中所讨论的,如果添加的层可以构建为恒等映射,则更深的模型的训练误差应该不大于其较浅的对应模型。退化问题表明求解器在通过多个非线性层逼近恒等映射时可能会遇到困难。通过残差学习重构,如果恒等映射是最优的,则求解器可以简单地将多个非线性层的权重驱动至零以接近恒等映射。

在实际情况下,恒等映射不太可能是最优的,但我们的重新表述可能有助于预先解决该问题。如果最优函数更接近恒等映射而不是零映射,那么求解器应该更容易参考恒等映射找到扰动,而不是学习该函数作为新函数。我们通过实验表明(图 7),学习到的残差函数通常具有较小的响应,这表明恒等映射提供了合理的预处理。

3.2. Identity Mapping by Shortcuts

我们对每隔几个堆叠层采用残差学习。构建块如图 2 所示。正式地,在本文中,我们考虑的构建块定义为:

这里 x 和 y 是所考虑层的输入和输出向量。函数F(x,{Wi})表示要学习的残差映射。对于图 2 中具有两层的示例,F = W2σ(W1x),其中 σ 表示为了简化符号,ReLU [29] 和偏差被省略。运算 F + x 通过快捷连接和逐元素加法来执行。我们采用相加后的第二个非线性(即 σ(y),见图 2)。

方程(1)中的快捷连接既不引入额外的参数,也不引入额外的计算复杂度。这不仅在实践中有吸引力,而且在我们比较普通网络和残差网络时也很重要。我们可以公平地比较同时具有相同数量的参数、深度、宽度和计算成本的普通/残差网络(除了可忽略的逐元素加法)。

式(1)中x和F的尺寸必须相等。如果情况并非如此(例如,当更改输入/输出通道时),我们可以通过快捷连接执行线性投影 Ws 以匹配尺寸:

我们还可以在方程(1)中使用方阵Ws。但我们将通过实验证明恒等映射足以解决退化问题并且经济,因此Ws仅在匹配维度时使用。

残差函数F的形式是灵活的。本文中的实验涉及具有两层或三层的函数 F(图 5),但更多层也是可能的。但如果 F 只有单层,则方程(1)类似于线性层:y = W1x + x,我们尚未观察到其优点。我们还注意到,尽管为了简单起见,上述符号是关于全连接层的,但它们适用于卷积层。函数F(x, {Wi})可以表示多个卷积层。逐元素相加是在两个特征图上逐个通道执行的。

3.3. Network Architectures

我们测试了各种普通/残差网络,并观察到了一致的现象。为了提供讨论实例,我们描述了 ImageNet 的两个模型如下。

普通网络。我们的简单基线(图 3,中)主要受到 VGG 网络 [41](图 3,左)的启发。卷积层大多具有 3×3 滤波器,并遵循两个简单的设计规则:(i)对于相同的输出特征图大小,层具有相同数量的滤波器; (ii)如果特征图大小减半,滤波器的数量加倍,以保持每层的时间复杂度。我们直接通过步长为 2 的卷积层执行下采样。网络以全局平均池化层和带有 softmax 的 1000 路全连接层结束。图3(中)中加权层的总数为34。值得注意的是,我们的模型比 VGG 网络 [41] 具有更少的滤波器和更低的复杂性(图 3,左)。我们的 34 层基线有 36 亿次 FLOP(乘加),仅为 VGG-19(196 亿次 FLOP)的 18%。

残差网络。基于上述普通网络,我们插入快捷连接(图 3,右),将网络变成其对应的残差版本。当输入和输出具有相同维度时,可以直接使用恒等快捷方式(方程(1))(图3中的实线快捷方式)。当维度增加时(图 3 中的虚线快捷方式),我们考虑两种选择:(A)快捷方式仍然执行恒等映射,并填充额外的零条目以增加维度。该选项不引入额外的参数; (B) 方程 (2) 中的投影快捷方式用于匹配维度(通过 1×1 卷积完成)。对于这两个选项,当快捷方式穿过两种尺寸的特征图时,它们的步幅为 2。

普通网络与深度残差网络的最大区别在于,深度残差网络有很多旁路的支线将输入直接连到后面的层,使得后面的层可以直接学习残差,这些支路就叫做shortcut。传统的卷积层或全连接层在信息传递时,或多或少会存在信息丢失、损耗等问题。ResNet 在某种程度上解决了这个问题,通过直接将输入信息绕道传到输出,保护信息的完整性,整个网络则只需要学习输入、输出差别的那一部分,简化学习目标和难度。

3.4. Implementation

我们对 ImageNet 的实现遵循 [21, 41] 中的实践。图像的大小被调整,其短边在 [256, 480] 中随机采样,以进行尺度增强 [41]。从图像或其水平翻转中随机采样 224×224 裁剪,并减去每个像素的平均值[21]。使用[21]中的标准颜色增强。我们在每次卷积之后和激活之前采用批量归一化(BN)[16],如下[16]。我们按照[13]中的方式初始化权重,并从头开始训练所有普通/残差网络。我们使用小批量大小为 256 的 SGD。学习率从 0.1 开始,当误差达到稳定水平时除以 10,并且模型的训练次数最多为 60 × 104 次迭代。我们使用 0.0001 的权重衰减和 0.9 的动量。我们不使用 dropout [14],遵循[16]中的做法。

由于不同的输入数据集的尺寸不尽相同,而ResNet的输入图形尺寸是固定的,所以首先要对输入图形进行预处理,包括各种变换以及裁剪,剩下的就交给网络让它自己去处理。值得注意的是,resnet并没有在全连接层中使用dropout,因为它的全连接层就只有一个,所以不需要去随机丢弃,而是采用了BN方法去解决过拟合问题。

在测试中,为了进行比较研究,我们采用标准的 10-crop 测试 [21]。为了获得最佳结果,我们采用[41, 13]中的完全卷积形式,并在多个尺度上平均分数(调整图像大小,使较短的边位于{224, 256, 384, 480, 640})。

第四部分是作者他们做的实验,具体的可以去看原文,最好是看图表,简洁直观,这里就不详细赘述了,如果有朋友需要的话我再进行更新!

持续更新中...谢谢支持!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值