解密ResNet:Identity Mappings in Deep Residual Networks

论文链接:https://arxiv.org/abs/1603.05027

本篇文章是对ResNet取得较好效果的分析与改进,在过去residual block的基础上,提出了新的residual block,并通过一系列实验验证了identity mapping能对模型训练产生很好的效果。

1、介绍

1、ResNet block表示:

  • resnet block结果如下:
    https://img-blog.csdn.net/20151216160852064

  • resnet block公式表示如下:

    y l = h ( x l ) + F ( x l , ω l ) , x l + 1 = f ( y l )

其中 x l x l + 1 是第l个单元的输入和输出,f表示一个残差函数。在He,ResNet论文中, h ( x l ) = x l 代表一个恒等映射,f代表 ReLU。

2、Analysis of Deep Residual Networks

在resnet表达式中,如果f是一个恒等映射: x l + 1 = y l ,我们可以将公式合并得到:

x l + 1 = h ( x l ) + F ( x l , ω l )

通过递归:如下面例子帮助理解

x l + 2 = x l + 1 + F ( x l + 1 , ω l + 1 ) = x l + F ( x l , ω l ) + F ( x l + 1 , ω l + 1 )

对于任意深的单元 L 和任意浅的单元 l,可以得到:
x L = x l + i = l L 1 ( x i , ω i )

该公式展示了一些良好的特性,如下:

  • 对于任意深的单元L的特征 x L 可以表达为浅层单元l的特征 x l 加上一个形如 i = l L 1 F 的残差函数,这表明了任意单元L和l之间都具有残差特性。
  • 对于任意深的单元L,它的特征 x L = x 0 + i = 0 L 1 ( x i , ω i ) ,即为之前所有残差函数输出的总和加上x0。
  • plain network中的特征 x l 是一系列矩阵向量的乘积,也就是 i = 0 L 1 W i x 0 (忽略了BN和ReLU)。
  • 具有良好的反向传播特性:
    这里写图片描述
    这里,梯度 E l 可以被分解成两个部分:其中 E l 直接传递信息而不涉及任何权重层,而另一部分 E L ( 1 + i = l L 1 F x 1 ) 表示通过权重层的传递。 E l 保证了信息能够直接传回任意浅层 l。
    同时,该公式表明在mini-batch中梯度不可能出现消失的情况,因为通常 i = l L 1 F x 1 对于一个mini-batch总的全部样本不可能都为-1。这意味着,哪怕权重是任意小的,也不可能出现梯度消失的情况。

3、On the Importance of Identity Skip Connections

1、 h ( x l ) = λ x l 替代恒等。

即: x l + 1 = λ l x l + F ( x l , W l )
则:根据递推这里写图片描述
反向传播过程:
这里写图片描述

如果对于所有的i都有 λi>1,那么这个因子将会是指数型的放大;
如果λi<1 ,那么这个因子将会是指数型的缩小或者是消失,从而阻断从捷径反向传来的信号,并迫使它流向权重层。

Experiments on Skip Connections

作者设计了constant scaling、exclusive gating、short-only gating、1*1 conv shortcut以及dropout shortcut来替代h(xl)=xl,实验中都是基于f= ReLU,如下图:
https://img-blog.csdn.net/20170307104019748?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd3NwYmE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast

https://img-blog.csdn.net/20170307104050765?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd3NwYmE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast

  • 经过实验发现,h(xl)=xl的误差衰减最快、误差也最低,而其他形式的都产生了较大的损失和误差。
  • 作者分析,连接中的操作 (包括:缩放、门控、1×1 的卷积以及 dropout) 会阻碍信息的传递,以致于对优化造成困难。

4、On the Usage of Activation Functions

作者进一步探索激活函数位置对于网络的影响,设计了如下网络:
https://img-blog.csdn.net/20170307110342968?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd3NwYmE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast

https://img-blog.csdn.net/20170307111133688?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd3NwYmE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast

https://img-blog.csdn.net/20170307111553453?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd3NwYmE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast

  • fig(b)效果不明显,BN层改变了流经捷径连接的信号,并阻碍了信息的传递,这从训练一开始降低训练误差的困难。
  • fig(c) 加入relu 导致输出永远为正数,然而一个“残差”函数的输出应该是(−∞,+∞)。
  • 预激活替代后激活,效果提升较高,且全预激活效果最好。

预激活分析

  • 使模型优化变得更为简单,层数较多时候尤为明显。
  • 降低过拟合。

不同数据集的实验结果

https://img-blog.csdn.net/20170307112519068?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd3NwYmE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast

https://img-blog.csdn.net/20170307112526224?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd3NwYmE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast

参考博客:http://blog.csdn.net/wspba/article/details/60750007

猜你喜欢

转载自blog.csdn.net/chunfengyanyulove/article/details/79263222