ResNet——深度残差学习用于图像识别

摘要: 深度神经网络难于训练。本文提出一种残差学习结构以缓解网络训练的难度,其比之前的架构更深。通过在残差学习函数中参考层的输入,而不是无参考,精确的重新定义层。本文提供一种广泛的实验数据展示了残差网络易于优化,能够在相当深的情况下提高准确度。在ImageNet数据集中评估深度高达152层——8倍于VGG网络的残差网络,但只有很低的复杂度。总体上,残差网络在ImageNet数据测试集达到了3.57%的错误率。该结果赢得了ILCVRC 2015分类任务的第一位。本文也提出了CIFAR-10使用100与1000层的分析。
  深度表现是很多视觉识别任务的核心。仅仅因为该网络优异的深度表现,在COCO目标检测数据集上取得了28%的相对提升。深度残差网络是ILSVRC与COCO 2015竞赛子任务的基础,包括ImageNet检测,ImageNet定位,COCO检测,COCO分割均取得第一位。


一、简介
  深度卷积神经网络已经在图像分类上取得了一系列的突破。基于深度的意义,一个问题出现了:随着层数的堆叠,网络学习的更好吗?当更深的网络收敛时,一个退化问题出现了:随着网络深度的增加,准确率变得饱和(这并不令人惊讶)然后快速下降。出乎意料的是,这种退化并非由过拟合引起,而是在一个合适深的网络中加入了更多的层之后引起的更高的训练错误率,图1展示了一个典型的例子。
网络退化
  图1:CIFAR-10上使用20层与56层标准网络的训练错误率(左)与测试错误率(右),越深的网络带来了越高的训练错误率,也导致了测试错误率。在ImageNet上的相似现象见图4。
  (训练准确率的)退化表明并非所有的系统都易于优化。考虑一种浅的架构,并逐渐增加层。这对更深的模型的结构存在一个解释:增加的层是恒等映射,仅从浅层学习复制。这种结构解释的存在表明更深的模型不会产生比浅层更佳的训练错误率。但是实验表明改现有的结构无法得到更好的解决方案。
  本文试图通过引入深层残差学习结构解决退化问题。并非让一些堆叠的层直接拟合期望的潜在映射,而是精确的让这些层拟合一个残差映射。形式上定义期望的潜在映射为 H ( x ) H(x) H(x),让堆叠的非线性层拟合映射 F ( x ) = H ( x ) − x F(x) = H(x) - x F(x)=H(x)x。原始的映射被分解为 F ( x ) + x F(x) + x F(x)+x。本文假设了优化残差映射比优化原始无参考的映射更简单。更极端的,即使恒等映射是最优的,将残差优化为0也要比堆叠的非线性层拟合一个恒等映射要简单。
   F ( x ) + x F(x) + x F(x)+x的结构可以认为是短切连接【shortcut connections】的前馈网络,如图2。短切连接跨越了一或多层,简化的执行恒等映射,其输出被加入堆叠层的输出。恒等短切连接既不增加额外的参数,也不增加计算复杂度。整个网络仍可以通过反向传播的SGD来端到端的训练,并可以通用的库(如Caffe)简便的实现。
短切连接
  图2:残差学习:一个结构块
  该网络在COCO等多类任务上取得了优秀的表现,其有力的表示残差学习原理是通用的,且期望应用到其他问题中。


二、相关工作
2.1 残差表现
  对图像识别与低级视觉与计算机图的某些领域有所改善。
2.2 短切连接
  短切连接在多层感知机等已有长时间的理论与实践研究。


三、深度残差学习
3.1 残差学习
  考虑 H ( x ) H(\bm{x}) H(x)是一个潜在的映射,其通过堆叠的层拟合(不一定是全部的层),其中 x \bm{x} x定义为这些层的第一层的输入。如果设定多个非线性层能够渐进的逼近复杂的函数,那其等同于假设其能够渐进的逼近残差函数,例如 H ( x ) − x H(\bm{x}) - \bm{x} H(x)x(假设输入与输出维度相同)。因此相比于使用堆叠的层逼近 H ( x ) H(\bm{x}) H(x),本文显式的让这些层逼近残差函数 F ( x ) = H ( x ) − x F(\bm{x}) = H(\bm{x}) - \bm{x} F(x)=H(x)x。原函数因此变成了 F ( x ) + x F(\bm{x})+\bm{x} F(x)+x。尽管两种形式都能够渐进的逼近期望函数(如假设所属),但学习的难度是不同的。
  该方法启发于退化问题中违背直觉的现象(图1左)。如简介中讨论,如果增加的层知识恒等映射,更深的模型的训练错误率应该不优于浅层模型。退化问题表明运算使用多层非线性层逼近恒等映射是困难的。使用残差学习,如果恒等映射是最优的,运算将会驱使多层非线性层的权重为0以逼近恒等变换。
  实际上,恒等变换并非最优的,但是残差有助于预处理该问题。如果优化函数相比于0映射更接近于恒等变换,残差更易于驱使运算在参考恒等映射的情况下找到微小的变化,而不是学习一个新的函数。在实验(图7)展示了通常学习残差函数有更小的响应,表明恒等变换提供了合理的微小的变化。

3.2 短切恒等映射
  本文采取对一些堆叠层进行残差学习。一个结构块在图2展示。正式的定义结构块为 y = F ( x , { W i } ) + x \bm{y} = F(\bm{x}, \{\bm{W}_i\}) + \bm{x} y=F(x,{Wi})+x其中 x \bm{x} x y \bm{y} y分别是考虑层的输入与输出向量。函数 F ( x , { W i } ) F(\bm{x}, \{\bm{W}_i\}) F(x,{Wi})代表学习的残差映射。以图2为例,其结构有两层, F = W 2 σ ( W 1 x ) F = \bm{W}_2\sigma(\bm{W}_1\bm{x}) F=W2σ(W1x),其中 σ \sigma σ定义为ReLU,偏置由于简化符号省略。 F + x F + \bm{x} F+x的操作通过短切连接与元素级的相加实施。本文在相加后采取二次非线性操作(例如 σ ( y ) \sigma(\bm{y}) σ(y),见图2)。
  短切连接既未引入额外的参数,又没有使用复杂的计算。这使得其在应用中是有吸引力的,并且在残差网络区别于其他网络中是重要的。本文公平的比较普通网络与残差网络,其同时拥有相同的参数,深度,宽度与计算复杂度(除了可以忽略的元素级相加)。
   x \bm{x} x F \bm{F} F的维度必须相等,如果不能满足,可以引入线性映射 W s \bm{W}_s Ws,使得短切连接匹配维度,形如 y = F ( x , { W i } ) + W s x \bm{y} = F(\bm{x}, \{\bm{W}_i\}) + \bm{W}_s\bm{x} y=F(x,{Wi})+Wsx其中 W s \bm{W}_s Ws仅用于匹配维度。
  残差函数 F F F的形式是固定的。本文的实验使用的 F F F又两到三层(如图5),然而更多层也是可能的。但是如果 F F F仅有一层,其接近线性层,并且没有明显的优点。
  注意到上述符号为了简便与全连接层已知,但残差函数可以应用于卷积层,函数 F ( x , { W i } ) F(\bm{x}, \{\bm{W}_i\}) F(x,{Wi})代表了多个卷积层,元素级相加对于两个特征图可以逐频道相加。

3.3 网络架构
  本文描述两种用于ImageNet的模型如下。
  通用网络:通用网络的基线(图3,中)主要受到VGG网络思想的启发(图3,左)。卷积层大多数有3x3的卷积核,并遵从两个简单的设计规则:相同输出特征图尺寸的层拥有相同数量的卷积核;如果特征图尺寸减半,卷积核数量加倍以保证每层的时间复杂度。在卷积层后直接使用步长为2的下采样。网络以全局平均池化层与带有弱极大值的1000通道的全连接。权重层的数量为34,如图3(中)。
  值得一提的,该网络拥有更少的卷积核以及比VGG网络更低的时间复杂度。34层极限拥有3.6M的每秒浮点运算次数【floating-point operations per second,FLOPs】,仅是VGG-19的18%(19.6M FLOPs)。
  残差网络:基于上述通用网络,将短切连接插入(图3,右)使之变为残差网络。当输入与输出拥有相同维度时,恒等短切可以直接使用(图3实线短切)。当维度增加时(图3虚线短切),考虑两个选项:短切仍然实施恒等映射,使用额外的0填充增加的维度,该方法不增加额外的参数;使用1x1卷积短切映射实现匹配维度。当短切连接经过了两种尺寸的特征图,两种选项都使用步长为2来实施。
网络架构
  图3:ImageNet的样例网络架构。左:作为参考的VGG-19模型。中:34参数层通用网络。右:34参数层残差网络。虚线短切增加了维度。表1展示了更多细节与其他变化。

3.4 实施
  图像调整短边放缩到随机在 [ 256 , 480 ] [256, 480] [256,480]采样以数据增强。从图像及其水平翻转中224x224随机切图采样,并进行像素平均相减。使用标准的图像增强。使用BN在每次卷积之后、激活之前。使用SGD,小批样本尺寸为256。学习率以0.1开始,当错误率稳定时下降10倍,模型训练搞高达600K次迭代。使用权重衰减0.0001,冲量0.9。不使用随机失活。
  测试时,使用标准的10次裁剪测试,为了得到最好的结果,使用全卷积形式,并平均多尺度的得分。


四、实验


  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值