在上篇Resnet中作者介绍了残差网络中基本结构,然而其中最核心的恒等映射相关的理论分析并没有给出,于是就有了下面这篇,还是同样的作者,可以说是对上篇方法的一个补充和改进。
1、文章贡献
文章分析了残差网络背后的的传播机制,表明了前向传播和反向传播的信号可以直接从一个模块传播到另一个模块,并且用实验证明了跳跃连接中恒等映射的重要性,也由此提出了一个新的残差单元来提高模型泛化能力。
2、残差结构分析
直接进入在上篇中未完成的跳跃连接恒等映射的理论分析
此文中将残差网络堆叠的模块称为残差单元,在上文中原始的残差单元执行以下计算:
其中XL表示第L层的输入特征,
WL表示一组与第L个残差单元相关的权重和偏差,
F表示残差函数(也就是在上篇中由2个3×3卷积层堆叠而成的),
h(x)表示跳跃连接中的映射函数
f(y)表示激活函数
这里给出了两个假设:
- 1、跳跃连接是恒等映射,即h(x)=x
- 2、激活函数是恒等映射,即f(y)=y
- 于是在这两个假设下,(1)式可以得到(3)
- (3)式经过不断迭代可以得到(4)
其中(4)式深层单元L的特征XL可以表示为浅层单元l的特征Xl加上各层残差函数的累加和
- 将损失函数定义为ε,根据反向传播的链式求导法则可得(5)
(5)式展开有两项,其中第一项表示直接传播信息而不用考虑权重层,可以确保信息直接传播回任意浅层单元;第二项信息传播通过权重层。
并且(5)式最大的特点是后面括号里项的值不总是刚好为0的,不论权重有多小,在反向传播时也就有效避免了梯度消失问题。
接下来作者举了一个反例,当跳跃连接不执行恒等映射的时候,他令 h(x)=λx,激活函数还是假设为恒等映射
- 于是有了(6)式,其中λ是缩放因子
- 将(6)式经过不断迭代可以得到(7)
- 于是类似(5)进行反向传播可以得到(8)
其中第一项有λ的连乘积,值容易受到λ的影响。
当λ>1时,梯度会呈指数型增大,产生梯度爆炸
当λ<1时,梯度会呈指数型减小,产生梯度消失
由此说明当不是恒等映射时,缩放的映射会阻碍信息的传播。
在以上理论基础上,作者针对恒等映射进行了实验
- a就是原始的一个恒等映射,bcdef都在恒等映射基础上进行了相应的变换和阻塞,最后结果显示这些额外的变换会阻碍信息的传播,恒等映射的效果是最好的,也由此证明了残差连接中恒等映射的重要性。
最后作者通过对激活函数作用在不同位置的实验提出了残差网络的一个改进结构
- a:原始的结构
- b:将第二个BN搬到加法后
- c:将Relu搬到加法前
- d:将Relu搬到卷积层前进行预激活
- e:将BN和Relu搬到卷积层前进行预激活
- 其中e的结构效果是最好的,它是把原先作用在加法后面的Relu激活挪到了卷积层前面进行一个预激活,再加了层批量归一化。
这样操作的好处是:首先这还是一个恒等映射,易于优化;其次BN层对所有权重层的输入进行了批量归一化,减少了过拟合。
3、总结
该篇文献主要在上篇Resnet的基础上对残差块中跳跃连接的恒等映射进行了理论和实证的分析,证明了恒等映射在前向和反向传播中的一个重要性,并提出了“预激活”对原来结构进行了改进,其他相关的实验部分就不再继续阐述了,可以在原文献中好好细品。