论文笔记: 网络结构_Deep Residual Learning for Image Recognition

前言
学习cs231n时接触到这篇文章,这篇文章提出了ResNet,ResNet可以说是深度学习史上的一个里程碑,具有很高的价值,因此打算好好理解以下ResNet的思想和方法。


问答总结

  • 残差网络提出的动机是什么?
  • 根据动机作者是如何提出残差网络的?
  • 残差网络shortcut部分是恒等映射是最优的,基于此,作者将relu移到了 F ( x ) \mathcal{F(x)} F(x)处。
  • 从直观理解、梯度消失、模型集成、破坏对称性说明残差网络为何起作用。
  • ResNet对shorCut部分进行卷积更改维度,不会破坏横等映射性质吗?待理解

文章目录

  • 一、文章信息
  • 二、动机:退化问题
  • 三、解决:残差网络
  • 四、解释
    • 1、直观理解
    • 2、梯度消失
    • 3、模型集成
    • 4、残差结构打破了对称性
    • 5、ResNet和微分方程
  • 五、模型细节
  • 参考文献
  • 参考资料

一、文章信息

  • 作者: 何凯明
  • 发表: CVPR 2016
  • 成就:
    • CVPR 2016 Best Paper
    • 论文方法横扫ImageNetCOCO各大任务。

二、动机:退化问题

论文笔记: 网络结构_Deep Residual Learning for Image Recognition_第1张图片
作者注意到这样一个实验现象: 深层的网络在训练集上的误差竟然高于浅层网络,这是违反常理的,因为极端的看,我们可以假设多出来的层学习到的时恒等映射,这样深层的网络在训练集上的误差至多和浅层网络相等。但是实验却出现了这样的反常,因此原因只可能是:深层的网络无法更好的训练优化

三、解决:残差网络

论文笔记: 网络结构_Deep Residual Learning for Image Recognition_第2张图片
本着如何更好优化深层网络动机,作者提出残差网络,残差网络的基本组成模块为上图所示的单元(Unit.) . 对于plain网络(没有残差机制的网络)的一个单元,我们希望学习到的映射可以表示为 H ( x ) \mathcal{H(x)} H(x),作者认为出现退化问题是因为映射 H ( x ) \mathcal{H(x)} H(x)的学习是不易的。因此,作者引入残差概念,其定义残差 F ( x ) : = H ( x ) − x \mathcal{F(x)}:=\mathcal{H(x)}- x F(x):=H(x)x. 那么原来希望学习到的映射为 F ( x ) + x \mathcal{F(x)}+x F(x)+x. 这样,作者就将对 H ( x ) \mathcal{H(x)} H(x)的学习转换到了对残差 F ( x ) \mathcal{F(x)} F(x)的学习。

四、解释

残差网络单元实际就是将 H ( x ) \mathcal{H(x)} H(x)拆分为了 F ( x ) + x \mathcal{F(x)}+x F(x)+x。为什么这样的简单的变形如此精巧有用?有如下几种解释。

1、直观理解

残差映射 F ( x ) \mathcal{F(x)} F(x)比目标映射 H ( x ) \mathcal{H(x)} H(x)更好学得

假设目标映射是恒等映射, [1]中提到,使用残差网络学习恒等映射,我们只需要置 F ( x ) \mathcal{F(x)} F(x)参数全为0即可,直觉上来看,这很容易学得。

2、梯度消失

[2]中结合数学推导和实验证明了shortcut部分使用恒等映射是最优的。为了保证shortcut是恒等映射,作者进一步修改了残差单元结构(将relu移到了 F ( x ) \mathcal{F(x)} F(x)处),如下图:
论文笔记: 网络结构_Deep Residual Learning for Image Recognition_第3张图片
进一步的实验结果证明,这样的结构确实要好于初始结构。基于新的残差单元结构,[2]中证明了深层的残差网络不会产生梯度消失问题,且层 L L L的梯度可以直接传送到任何一个比他浅的 l l l层。这稍微理论地证明了为什么残差网络更容易学习。

这里也可以从感觉上直观得到shortcut有助于解决梯度消失问题,回想cs231n课程,+在网络中相当于一个梯度分发器

3、模型集成

[3] 中将残差网络进行多路拆分,指出残差网络是模型集成,并没有实质性增加网络深度,只是增加了网络多样性。(个人感觉这个想法有点小偏)
论文笔记: 网络结构_Deep Residual Learning for Image Recognition_第4张图片

4、残差结构打破了对称性

[4] 中从打破模型对称性的角度解释了残差结构为何起作用,待理解

5、ResNet和微分方程

(4)说明了微分方程和ResNet的联系,网上也有人说ResNet是一阶常微分方程. 待理解

五、模型细节

作者将一个残差单元定义为: y = F ( x , { W i } ) + x y = \mathcal{F}(x, \{W_i\}) + x y=F(x,{Wi})+x
其中+代表逐位相加,当然,为了使得维度一致,可以使用一个矩阵 W s W_s Ws调节维度. 因此有
y = F ( x , { W i } ) + W s x y = \mathcal{F}(x, \{W_i\}) + W_sx y=F(x,{Wi})+Wsx

残差单元是可变的,中间可以有多层全连接层(最少两层),也可以是卷积层。当是卷积层时,+代表各通道逐位相加。

更多细节可以参看源码解读.

源代码中有一些可以参考的细节,比如:

  • 使用_make_layer函数配合nn.Sequential(*layers)封装同一类型卷积层
  • 使用isinstance(m, nn.Conv2d)进行初始化

参考文献

  • [1] He K, Zhang X, Ren S, et al. Deep residual learning for image recognition[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2016: 770-778.
  • [2] He K, Zhang X, Ren S, et al. Identity mappings in deep residual networks[C]//European Conference on Computer Vision. Springer, Cham, 2016: 630-645.
  • [3] Veit A, Wilber M J, Belongie S. Residual networks behave like ensembles of relatively shallow networks[C]//Advances in Neural Information Processing Systems. 2016: 550-558.
  • [4] Orhan, A. Emin, and Xaq Pitkow. “Skip connections eliminate singularities.” arXiv preprint arXiv:1701.09175 (2017).

参考资料

  • (1) CSDN: 对ResNet的理解
  • (2) 知乎: 详解残差网络
  • (3) resnet中的残差连接,你确定真的看懂了? - 龙鹏-言有三的文章 - 知乎
  • (4) 硬核NeruIPS 2018最佳论文,一个神经了的常微分方程

你可能感兴趣的:(信息科学,深度学习,网络结构,论文笔记)