原文:Identity Mappings in Deep Residual Networks
译文:Identity Mappings in Deep Residual Networks(译)_小时候贼聪明-CSDN博客
ResNet:ResNet论文笔记_小时候贼聪明-CSDN博客_resnet论文
目录
On the Importance of Identity Skip Connections
On the Usage of Activation Functions
Abstract
深度残差神经网络表现出了很好的分类准确率和很好的收敛特性。本文是残差网络的作者在原始resnet的基础上分析了残差块背后的数学原理,表明了无论在前向还是反向过程中,信号可以在任意一对残差块之间进行传递。同时作者设计了新的残差结构,使得网络更加易于训练和改善了网络的泛化性能。
(a)原始的残差单元 (b)本文提出的残差单元
深度残差网络(ResNets)由很多个“残差单元”组成。每一个单元(Fig.1 (a))可以表示为:
原始的ResNet论文的核心是学习残差函数F,通过使用一个恒等的跳跃式连接“shortcut”设置h(xl)=xl。
本文中,我们不只是在残差单元内部,而是要在整个网络中创建一个“直接”的计算传播路径来分析深度残差网络。我们的推导展示了:如果h(xl)和f(yl)都是恒等映射,那么在前向和反向阶段,信号可以直接的从一个单元传递到其他任意一个单元。我们的实验表明了,当框架接近于以上两种状态时,训练变得更加简单。
作者进行了两组实验:
深度残差网络的分析
原始中的残差块的计算为:
如果f也是一个恒等映射,那么可以得到:
通过递归,对任意深层单元L和任意浅层单元l可以得到:
公式4展现了一些良好的特性:
- 任意深层单元的特征
可以表示为浅层单元
的特征加上形如
的残差函数,表明了任意单元L与l之间都具有残差特性。
- 对于任意一个L层的深度网络,
,最后一层的输出特征
是
加上中间层残差函数的结果。但是对于非残差形式的普通网络(plain network)来说却是矩阵相乘的形式,即
公式4具有很好的反向传播特性,将网络的损失函数表示为,根据链式法则有:
Discussion
上面分析的公式的基础是两个恒等映射:恒等跳跃映射h(xl)=xl和f也是一个恒等映射,这些恒等映射就是图当中的灰色箭头部分,不附加任何操作,也就是clean。接下来就是分别讨论这两种映射的作用。
On the Importance of Identity Skip Connections
考虑一种简单的修改来代替恒等的跳跃映射,令:
其中是一个调节标量,并且f仍然是恒等映射。通过方程的递归,可以得到类似于公式4的等式,简单表示为公式7:
为原始残差函数F和标量系数相乘之后的结果,然后依然假设损失函数为
,那么损失函数对输入数据的偏导数为:
不同于上面的公式5,公式8的第一项包含了一个系数,对于一个特别深的网络,L很大,如果对于所有的i,
>1,这个系数会非常大造成梯度爆炸,如果对于所有的i,
<1,这个系数会非常小造成梯度消失。
上面讲解的是原始h(xl)=xl替换为,如果h(xl)继续踢馆成更加复杂的变换(例如门控和1×1卷积),则在公式8中的第一项变为
,下面就是为了验证各种h(xl)对分类结果的影响,图中的f采用relu方式:
constant scaling
如图Fig.2(b)所示,设置=0.5,即h(xl)=0.5xl,对于残差函数F有两种处理方式,一种是不加缩放系数,另一种是残差函数F以1-
为系数进行缩放。试验结果表明,第一种方式的模型无法很好的收敛,第二种方式的模型能够收敛,但在最终的测试集上的分类错误率大于原始的模型。
exclusive gating
如图Fig.2(c)所示,考虑一个gating函数,g(x)通过1×1的卷积实现。对于残差函数F部分乘以系数g(x),shortcut部分乘以系数1-g(x),实验发现偏置项bg的初始化非常重要,最好的情况是bg=-6是在测试集上得到了8.70%的误差,依然不如原始网络。
exclusive gating的影响有两个方面:当1-g(x)接近于1,g(x)就接近于0,在这种情况下shortcut约等于恒等映射,有助于信号的传递过程,但此时的g(x)接近于0,这抑制了残差函数的作用。为了进一步分析在shortcutbu部分的gating作用,作者进一步设计了shortcut-only gating的方式
shortcut-only gating
如图Fig.2(d)所示,这种方式不再对残差部分进行处理,而是只对shortcut部分乘以1-g(x),bg的取值依然很关键,当bg为0时,1-g(x)的期望是0.5,最终网络的误差为12.86%。如果设置bg为-6,那么1-g(x)很接近1,网络接近于恒等映射,取得的6.91%的误差耶很接近原始网络。
1×1卷积shortcut
在shortcut部分使用1×1卷积,效果远不如原始网络,证明了1×1卷积依然阻碍了信号的传递过程。
dropout shortcut
对shortcut部分以0.5的概率进行dropout,最终的结果依然是很差。
实验结果表明,shortcut部分最好的方式就是直接映射,其他方式的shortcut都阻碍了信号的传递,以至于对优化造成了困难。
值得注意的是,门控和1×1卷积shortcut引入了更多的参数,应该比恒等映射的shortcut具有更强的表示能力。实际上,shortcut-only gating和1×1卷积覆盖了恒等映射的解决方案空间(即它们可以优化为恒等shortcut)。然而,它们的训练误差高于恒等映射,这表明这些模型的退化是由优化问题造成的,而不是由表征能力造成的。
On the Usage of Activation Functions
下面部分的实验是验证激活函数f改如何选择
基准网络使用164层的ResNet网络,Fig. 4(a)的结构,在CIFAR-10数据集上取得了5.93%的测试误差。
BN after addition
如Fig.4(b)所示,效果不如基准网络。因为BN层阻碍了信号的传输过程。
ReLU before addition
如Fig.4(c)所示,将ReLU放到逐元素相加之前,但是这样做使得得到的残差值为非负值,影响模型的表示能力,最终的测试误差也是不如基准网络。还是需要残差值分布于负无穷到正无穷之间。
Post-activation or pre-activation?
在原始的残差块处理公式1、2当中,默认h(xl)=xl,激活函数在两条线路上影响着下一个残差单元,因为:
可见激活函数既影响了shortcut部分,又影响了残差函数部分。 现在作者设计了新的不对称的网络块结构,从Fig5.(a)到Fig5.(b),使得激活函数只影响残差部分,即
很容易的发现 Eq.9与 Eq.4很类似,因此能够得到与Eq.5类似的反向方程。对于如 Eq.9所示的新的残差单元,新的附加激活函数变成了一个恒等映射,优化变得更加容易。
这个设计表明了,如果一个新的附加激活是非对称的,这就等同于将
作为下一个残差单元的预激活(pre-activation)项,如Fig.5所示。
作者设计两种方案进行实验:(i) 只使用ReLU的预激活(Fig.4(d)),和(ii) 全预激活 (Fig.4(e)) ,它的BN和ReLU全都放置在权重层的前面。Table2表明了,只使用ReLU预激活的结果与原始ResNet-110/164的很接近。这个ReLU层不与BN层连接使用,因此无法共享BN所带来的好处(BN用在pre-activation中也增强了模型的正则化能力)。全预激活的效果超越原来的基准网络。
Table3展示了在CIRAR-10/100上面使用原始残差单元和本文设计的残差单元的分类错误率。在Table3中,展示了使用不同结构的结果:(i) ResNet-110,(ii) ResNet-164,(iii) 一个110层的ResNet结构,其中每一个捷径连接跳过1层(即,每一个残差单元只包含一层),称它为“ResNet-110(1layer)”,以及(iv) 一个含有333个残差单元的1001层瓶颈结构(对应于每一种尺寸特征图有111个残差单元),称它为“ResNet-1001”。可以看到当BN和Relu都用在预激活当中时,性能比原始的模型要好。
Analysis
我们发现预激活的影响具有两个方面。第一,由于也是恒等映射,优化变得更加简单(与原始ResNet相比)。第二,在预激活中使用BN能够提高模型的正则化。
易于优化
如Fig1右边所示,原始设计的网络的训练误差在训练初始阶段减小的较慢,这是因为f=ReLU时,如果信号为负则会受到ReLU函数的影响,当残差单元很多时,这个影响还会比较大。但是如果f是恒等映射时,就不会存在这个问题,这种影响在训练1001层ResNet时尤为显著。
另外发现如果ResNet层数不多时(例如,Fig.6(右)中的164层), ReLU 的影响并不是很强烈。在训练初期,训练曲线似乎收到了一点影响,但是马上回归到良好的状态。通过监控模型的响应,我们观测到,这是因为在经过一定的训练后,权重被调整到使得 Eq.1中的y1总是大于0的,因此并不会截断它(由于先前ReLU的存在, 总是非负的,因此只有当F是非常负的时候,才会小于0)。然而当使用1000层的模型时,这种截断就会更加频繁。
减少过拟合
如Fig.6右侧图所示,预激活方式训练误差略大,但是测试误差要小很多。这是因为BN层使用带来的正则化效应。作者认为在Fig. 4(a)所示的结构中,虽然BN层归一化了信号,但是加上shortcut之后的信号在输入到下一层之前并没有进行归一化操作。但是在提出的Fig. 4(e)结构中,所有输入到权重层的信号都被归一化处理了。
Conclusions
本文研究了深度残差网了的连接机制背后的传播方式。我们的推导表明了恒等捷径连接和恒等附加激活对于信息的顺利传播是至关重要的。“消融”实验(Ablation experiments)展示了和我们推导一致的现象。我们还提出了1000层深度网络,这些网络可以很容易地进行训练,并实现更高的准确率。