ResNet 笔记

ResNet (Residual Network)是由何恺明等人提出,获得了ILSVRC-2015图像分类、图像物体定位和图像物体检测比赛的冠军。

什么是残差网络?

ResNet 采用了残差学习来解决训练卷积神经网络时加深网络导致准确度下降的问题。训练深度神经网络时,误差反向传播的过程中,梯度通常会变得越来越小,从而权重的更新量也越小,导致远离损失函数的层训练缓慢,不易优化,从而导致准确度下降。

ResNet 通过增加跨层的连接来解决梯度逐层回传时变小的问题。如图1所示,这些“快捷连接”跳过层数,让非线性层拟合 $F(x)+x $,既不增加额外的参数也不增加计算复杂度。底层的输入不仅输出给中间层,而且与中间层结果相加进入上一层。这样在梯度方向传播时,最上层梯度可以直接跳过中间层传到最下层,避免最下层梯度过小情况。

作者认为,如果多个非线性层可以渐进地逼近复杂的函数,那么其相当于多个非线性层可以渐进地逼近复杂函数的残差函数:$H(x) - x$。所以,与其逼近 $H(x)$ ,不如明确地让这些非线性叠加层去逼近一个残差函数:$F(x)=H(x)+x $,这样做能够学习起来会更加容易。

思考:为什么选择加 $x$, 而不是 $\frac{x}{2}$,或者其他系数呢?
参考文献[4]



图1 残差块

快捷连接的理论和实践已经研究了很长时间。在 GoogLeNet 中利用辅助分类器来帮助梯度消失或爆炸的问题(后来作者发现,然并卵用)。在 Inception 结构中,也是由由一个快捷分支和一些更深的分支组成。Highway network 提出了门函数的快捷连接。

对于残差网络的直观理解,可将结构拆分如下,一个一层,一个两层:



图2 残差块的拆分理解

在训练过程中,左边的网络因为更简单所以更容易训练。这个小网络没有拟合到的部分,也就是残差,则被右边的网络抓取住。

ResNet 为什么有效?

对 ResNet 有许多不同的解释。一般认为,通过引入快捷连接,使得训练非常深的网络成为可能,而深层网络比浅层网络有更好的性能。

文献[3] 则提出了一种不同的解释:

  • ResNet的优良性能,并不来自于层数深,而是由于指数多(相对于层数)的浅层(相对物理层数)网络的集成模型。
  • ResNet 也并没有解决深层网络情况下的梯度反传问题,而是回避的这一问题——ResNet 只是训练了一系列浅层模型,而集成模型 中的深层模型并没并良好的训练,只不过是这部分模型数量少,并没有影响 ResNet 的整体性能。


图3 ResNet 信息流的展开

为证明 上述观点,作者进行了一系统实验。基本方法是,在训练过的 ResNet 上进行某种破坏,观察受损网络的性能变化。

文献[5]基于这一观点,对 ResNet 进行了一些改进,并取得很不错的效果。

参考资料

请作者吃酒!