「Deep Learning」Note on ResNet(残差网络)

QQ Group: 428014259
Tencent E-mail:[email protected]
http://blog.csdn.net/dgyuanshaofeng/article/details/79765197

图像识别(Image Recognition)是许多计算机视觉任务,比如物体检测、语义分割、视频分析、医学图像分析,的基础。何恺明等人提出的残差网络(ResNet)[1, 2]是至今被最广泛使用的图像分类卷积网络。

0 摘要

更深的神经网络(neural networks)更难以训练。提出残差学习框架,以放松网络训练难度。在ImageNet测试集上,残差网络的集成模型达到3.57%的错误率。这一成绩赢得了ILSVRC 2015分类任务的第一名。还赢得了ImageNet检测、定位任务,COCO检测、分割任务的第一名。

1 介绍

ZFNet[3]通过反卷积(Deconvolution)技术直观说明,深度网络(AlexNet)[4]可整合低级、中级和高级特征,分类器(指2-3层全连接层)是端到端多层形式,特征的水平/层级可通过网络深度或堆叠计算层的数目来增加(the “levels” of features can be enriched by the number of stacked layers (depth))。后者这句话说明,通过堆叠网络计算层,特征可以更为细腻,更多层次。残差网络一文探索了超参数“network depth”的重要性。问题来了,“堆叠更多layers,容易学习更好的网络吗?”回答这一问题并不简单,首先要解决梯度弥散或爆炸(vanishing/exploding gradients)问题。目前,通过归一化初始化,即采用讲究的初始化方法,和使用BatchNorm[5]这一中间层归一化方法,可大大地缓解上述问题,可训练几十层(30)网络。更深的网络虽然训练可以收敛,但是会遇到退化问题(degradation):随着网络深度增加,准确率会变得饱和,然后迅速下降。上述的退化问题不是由于过拟合(overfitting)造成的,因为增加更多计算层会导致更高的训练误差,如图1所示。kaiming等人提出深度残差学习解决上述退化问题。

「Deep Learning」Note on ResNet(残差网络)_第1张图片
图 1:平凡网络的训练和测试误差

这句话"To the extrame, if an identity mapping were optimal, it would be easier to push the residual to zero than to fit an identity mapping by a stack of nonlinear layers"特别深刻。 F ( x ) + x F(x)+x F(x)+x的实现可通过"shortcut connections"(捷径连接),如图2所示。

「Deep Learning」Note on ResNet(残差网络)_第2张图片
图 2:残差学习的building block(构件):捷径连接

恒等捷径连接具有两点好处:1、没有引入额外的参数(当然也可以引入加权参数);2、没有增加计算复杂性。

2 相关工作

残差表达(Residual Representations) 在传统图像识别中,VLAD和Fisher Vector均是浅显表达。对于向量量化,编码残差向量比编码原始向量更有效。
捷径连接(Shortcut Connections) 在实践和理论中,捷径连接由来已久地被研究。训练多层感知器MLPs,在输入和输出之间添加了线性层。在深度监督网络[6]和谷歌网络[7]中,添加辅助分类器可解决梯度弥散和爆炸。谷歌网络的"inception layer"由捷径分支和一些更深分支组成。在同期工作中,“highway networks”(高速公路网络)[8, 9]借用门控函数(gating functions)提出捷径连接。文中在高速公路网络和深度残差网络之间,进行了比较,得到深度残差网络比高速公路网络先进。

3 深度残差学习

3.1 残差学习

堆叠数层计算层是为了学习/拟合潜在映射(underlying mapping) H ( x ) H(x) H(x) x x x为输入图像/特征。在残差学习中,放弃期望堆叠层来逼近 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。退化问题显示,求解器/优化器利用多层非线性层逼近恒等变换存在困难,换句话说,逼近残差函数更为容易,又换句话说,我们直接添加恒等变换而不需要学习。

3.2 通过捷径实现恒等变换

在此文中,构件(building block)如图2所示,定义为 y = F ( x , { W i } ) + x y=F(x, \{W_{i}\})+x y=F(x,{Wi})+x,其中 x , y x,y x,y分别为输入和输出向量/特征。 F ( x , { W i } ) F(x, \{W_{i}\}) F(x,{Wi})为需要学习的残差映射。如果上述公式加号两边的维度不等,要变化输入 x x x的维度, y = F ( x , { W i } ) + W s x y=F(x, \{W_{i}\})+W_{s}x y=F(x,{Wi})+Wsx。**值得一提的是,如果残差构件中仅有一层计算层,那么第一条公式类似于线性计算层,实验表明这样做是没有好处的。**残差构件既可以在多层全连接层中使用,又可以在多层卷积层中使用。

3.3 网络架构

Plain网络 平凡网络如图3中间所示。
Residual网络 残差网络如图3右边所示。

「Deep Learning」Note on ResNet(残差网络)_第3张图片
图 3:左:VGG-19,中:34层平凡网络,右:34层残差网络

3.4 执行

4 实验

4.1 ImageNet分类

详见论文

4.2 CIFAR-10

详见论文

4.3 PASCAL和MS COCO物体检测

详见论文

[1] Deep Residual Learning for Image Recognition CVPR 2016 [paper]
[2] Identity Mappings in Deep Residual Networks [paper]
[3] Visualizing and Understanding Convolutional Networks ECCV 2014 [paper]
[4] ImageNet Classification with Deep Convolutional Neural Networks NIPS 2012 [paper]
[5] Batch Normalization Acceleraing Deep Network Training by Reducing Internal Covariate Shift ICML 2015 [paper]
[6] Deeply-supervised Nets 2014 [paper]
[7] Going Deeper with Convolutions CVPR 2015 [paper]
[8] Highway Networks 2015 [paper]
[9] Training Very Deep Networks 2015 [paper]

你可能感兴趣的:(「Deep Learning」Note on ResNet(残差网络))