Resnet两篇论文阅读纪要
《Deep Residual Learning for Image Recognition》
论文围绕的核心问题是:Is learning better networks as easy as stacking more layers?
也就是说如果加深网络是否可以使学习效率得到提高,重点瞄准于解决degradation problem
degradation问题描述
简单来说就是当网络(plain network)的深度加深时,网络的训练误差不降反升。一般来讲,当模型的复杂度提高时,而数据集不变,那么有可能造成一定的过拟合,训练误差应该下降。然而当作者把网络堆叠成更深层的网络时,训练误差和测试误差都比浅层网络的更大。通过分析反向传播过程(backprogadation),深层网络的梯度值在反向传播的过程中逐渐减小直到最后消失,也就是常说的梯度消失(vanishing gradient)问题。
基本思路
论文提出了一种由残差块(building block和bootleneck)堆叠而成的深度网络结构,理想情况下,这种结果可以无限加深,影响其性能的主要是过拟合。
building block和bootleneck的结构如下:
残差学习
作者主要利用了两个概念来构建残差网络,第一个是残差表达(residual representations),第二个是跨桥连接(Shortcut Connections)
残差表达/残差学习: 假设网络的特征函数为H(x),如果网络能够学习得到H(x),那么也能够学习到残差函数H(x)-x,因此可以令残差函数F(x):=H(x)-x,使building block中堆叠的网络学习残差函数。以恒等映射x为参考训练F(x)比直接训练H(x)更容易收敛,并且每层网络的响应的方差也会更小,分布更集中。
跨桥连接(identity mapping/skip connection):这个结构在第二篇论文中进行了详细分析,主要作用是使残差单元(residual unit)的前向和后向过程具有直通的作用。后向梯度传播的过程中,不论网络的梯度如何小,它们总会通过identity mapping/skip connection直接反向传递到上一个unit,也就是说,梯度总是大于1的。这种结构在一定程度上解决了梯度消失的问题,从而使更深的网络成为可能。
残差网络的结构图
实验训练过程
《Deep Residual Learning for Image Recognition》
文章概要
文章分析了使用跨连接(skip connection)的残差块(residual building block)的前向和反向传播过程。这个过程表明了恒等映射的(identity mapping)的跨连接结构(skip connection)可以使前向和反向信号在残差单元(residual unit)间直接传递。文章从理论上分析了identity mapping结构的skip connection可以有效解决梯度消失的问题,从而使网络加深。
要使残差单元(residual unit)满足恒等映射(identity mapping)要满足两个条件:
condition1: the identity skip connection is h(xl)=xl.
condition2:the activation function f is a identity function: f(yl)=yl.
全文就是从这两个条件出发变换各种形式以及做了多个对比实验,最后得出最高效的residual unit结构(称为pre-activation),结构图如下:
数学推导
residual unit的数学表达式在identity mapping的条件下h(xl)=xl,f(yl)=yl,前向过程后反向梯度计算过程变为如下形式。
从上式中可以看出梯度总是大于1的,所以从理论上是可以避免梯度消失的问题。
condition1实验
这一系列实验主要测试skip connect的结构对准确率的影响,作者设计了五种结构,分别是constant scaling, exclusive gating, shortcut-only gating, conv shortcut, dropout shortcut五种结构,如图所示。
实验结果如下:
最后得出结论clean skip connection是效果最好的,这也印证了上述数学推导过程中h(xl)=xl的条件。
值得注意的是,作者在文章中提到1x1 conv shortcut和gating shortcut这两种结构实际上增强了网络的表达能力,但是对于深层次网络来说优化问题和degradation problem可能是更主要的问题。
condition2实验
这个部分的实验是使激活函数具有恒等映射(identity mapping)的能力。作者通过调整relu和bn在网络的中的位置得到了多种结构并做了对比实验,结构如下。
实验结果,
最后表明full pre-activation的结果最佳。
这个变换的主要思想是将relu放到下一个residual unit的weight之前,那么上一个weight的输出可以直接输入到下一个unit,也就满足了f(yl)=yl的条件,使其成为恒等映射。对比最后两个结构的主要区别在于BN的位置,因为从skip connection的数据可能发生了偏移,如果不经过BN直接输入到ReLU单元中示,可能会导致ReLu饱和,梯度无法传播,从而导致训练误差增大。在ReLU之前加入BN保证了数据分布的有效性,结果表明full pre-activation的结构的效果也是最好的。
参考
[1] He, K., Zhang, X., Ren, S., Sun, J.: Deep residual learning for image recognition. In: CVPR. (2016)
[2] He, K., Zhang, X., Ren, S., Sun, J.: Identity Mappings in Deep Residual Networks. In: ICCV. (2016)