Residual Networks Behave Like Ensembles of Relatively Shallow Networks从ensemble角度解释Deep Residual Networks。
深度残差网络,使网络的层数大大加深,网络的学习表达能力超过在此之前的所有网络。这篇文章从emsemble角度来解释其工作的原理,对比从残差角度来解释,似乎更有说服力。
残差网络与之前网络不同点
现代的计算机视觉系统架构都比较类似,都是输入low-level features,学习和和任务相关的high-level features。深度残差网络与之不同:1、引入了identity skip-connections,数据可以跳过某些层;2、skip-connections使得网络的深度多了两个量级,深度可达1202层;3、在测试阶段,移除某些层,对结果不会有显著影响,以往的网络结果,移除任何一层会对结果又非常大影响。
深度残差网络可以看过许多路径组成网络的一个集合。这些路径是否独立,它们之间是否有冗余?作者通过移除某些路径做实验,得出结论:深度残差网络是多个模型ensemble,逐渐移除路径,对结果的影响是平滑的。深度残差网络的路径不同,深度不同;路径的分布服从二项分布,意味着一个110层的网络实际大概深度只有55层。在训练过程中,梯度的来源更浅,只有10-34层。
残差网络展开后的形式
深度残差网络中,起作用的路径相对不深。深度残差网络并没有解决梯度消失的问题,它只是通过缩短有效连接路径使得网络变深。
上图左边是一个残差网络结构,一个残差网络可以定义为:
其中 fi 是一个模块它中间可能经过了convoltion、batch normalization、ReLU。
右边是把左边网络展开后的结构,两者等同。从这个角度来看,残差网络显式连接路径有 O(2n) 个。它的数学表示为:
通过上面公式可以看出,数据有很多路径可以通过残差模块。对于一个残差模块,数据可以通过或跳过两种选择,对于
n
各残差模块,共有
VGG和AlexNet这样序列网络结构(上图右边),网络数学表示为:
上图左边,残差网络除去 f2 层,需要去掉4条路径。
实验
通过实验,在测试阶段,残差网络通过删除一些路径或残差模块,或者re-order残差模块,通过测试结果对比影响。。
路径对测试结果的影响
首先对比删除一个路径,即删除残差模块中的非线性部分,
yi=f(yi−1)+yi−1
变为
yi=yi−1
。
1、在CIFAR-10数据集上,通过删除某些层,和VGG做对比:
可以发现,VGG删除任何一层,测试结果相当于随机选择了。而残差网络不通,删除层对残差网络分类结果影响很小。
2、在ImageNet数据集上,训练200层网络,包含66个残差模块,删除第几个模块中的非线性部分对结果影响:
可以看出,残差网络中,路径虽然训练时在一起联合训练,但是它们之间并没有太强的依赖性。
模块对测试结果的影响
1、删除残差模块
删除
k
个残差模块,有效路径从
2、re-order模块
上面实验只是drop Layer,这里改变一下网络结构,re-order残差模块。这样相当于移除了某些模块,插入了新的模块。
re-order时,随机交换 k 对模块(模块之间匹配),使用Kendall Tau rank correlation coefficient可视化结果,如上图右边所示。
残差网络中的短路径非常重要
残差网络中的路径,并不是十分相互依赖,下面看一下它们的特点。
!residual_network_ensemble_06.jpg
路径长度分布
包含
梯度消失
数据从各个路径传输,但是不同路径传递梯度不同。在反向传播时测量不同长度路径梯度大小。梯度幅度大小随路径长度变化如上图(b)所示,可以看出呈指数衰减。
有效路径相对较浅
通过测量不同长度路径对梯度贡献,找出有效路径。如上图(c)所示。一个54模块的残差网络,激活所有梯度贡献都来自第5-17模块,这些有效路径仅仅占所有路径额0.45%。
为了验证这一结果,对一个54模块的网络,训练它的子网络23个模块。最终对比得到,54模块的网络错误率为6.10%,23模块网络错误率为5.96%,两者之间没有显著差别。