论文信息
- 年份:2016
- 作者:Kaiming He
- 会议/期刊:CVPR
- 论文地址:Deep Residual Learning for Image Recognition
- 源码:torchvison resnet
论文解读
Abstract
作者指定了网络层学习的目标为残差函数,作者提出了一种残差网络结构来训练更深的网络模型,并在大量的实验中验证了该残差结构能够随着网络模型的变深而获益,在ImageNet上测试了152层的残差网络,并取得了ILSVRC 2015分类任务第一名。
1 Introduction
深度网络模型通过端到端、多层级的方式抽取了低、中、高级别的特征,并且可以通过增加网络层的数量来丰富特征的级别。事实表明,越深的网络模型能够带来更好的分类效果。
那是不是,为了获得更好的模型,只要增加网络的深度就可以了呢?显示不是,梯度消失和梯度爆炸是其中的一个问题,不过该问题可以通过:1)初始化;2)BN等方式解决。当更深的网络能够开始收敛时,就会出现降级问题:随着网络深度的增加,准确度变得饱和(这可能不足为奇)然后迅速降级。
但是作者提出,如果增加的网络深度每层只做identity mapping的话,那么更深的网络模型的表征能力是不会比较浅的网络差的。而随着网络越深,模型效果降级的现象表明了,网络越深,模型会变得难训练,甚至连identity mapping都变得困难。
为此,作者提出了残差网络来解决这个问题。形式上,假设所需的底层映射表示为
2 Related Work
残差表示在很多方面都有应用,如:VLAD、Fisher Vector、vector quantization。Shortcut Connetions也在很多地方有应用,“inception”的NIN网络结构中,包含了shortcut分支和一些多层分支。
3 Deep Residual Learning
3.1 Residual Learning
实际上就是让残差网络去逼近
利用残差学习重新表达,如果恒等映射是最优的,模型可以简单地将多个非线性层的权重调为0以接近恒等映射。
3.2 Idnetity Mapping by Shortcuts
这节主要将如何实现上述的残差学习,实际非常简单,只要让 building block的输入,输出满足如下表达式即可:
其中
这里因为要做加法,所以需要保证
作者提出
3.3 Network Architectures
这一节拿Residual Network和Plain Network做比较,其中Plain Network参考了VGG来设计。网络结构如下:
3.4 Implementation
网络的数据处理和训练设置介绍。数据处理主要经过了resize、scale augmentation、horizontal flip、mean subtracted。训练包括使用了BN、SGD(mini-batch 256)、lr=0.1(divided by 10 when the error plateaus)、weight decay=0.0001、momentum=0.9