参考链接
- 参考论文:
- 参考博客:
一、 梯度消失/梯度爆炸问题:
-
首先我们对如下的前向神经网络,我们讨论一下其BP算法:
-
BP算法在求每层参数和的梯度前都是先求解每层神经元输入和的梯度,即:
-
其中表示第层神经元输入的梯度,也是该层的误差项。与是相关的,比如:其中为神经元**函数。由上面表达式可以看出第2层的误差项以比例传递到第1层的误差项。
-
如果在很深的神经网络中, 如果每层传输比例都小于1,则较深的层的误差项传递到较底层时可能已经被放缩成了0,这就出现了梯度消失。如果每层传输比例都大于1,则较深的层的误差项传递到较底层时可能已经被放缩成了非常大的一个量,这就出现了梯度爆炸。
-
上面讨论的是特殊的前向神经网络,现在我们讨论一下一般的神经网络:
- 令第l层的净输入为输出为,则一层神经外科可以表示为:为该层的内部运算,依照网络类型有所不同,一般都是线性运算;是第l层的输出**函数,是非线性运算.
- 第层的某参数更新需要计算损失对其的梯度,该梯度依赖于该层的误差项: 根据链式法则, 又依赖于后一层的误差项 :时,第层的误差项较后一层减小,如果很多层的情况都是如此,就会导致反向传播中,梯度逐渐消失,底层的参数不能有效更新,这也就是梯度消失。
当时,则会使得梯度以指数级速度增大,造成系统不稳定,也就是梯度爆炸问题。
-
梯度爆炸/消失问题可以通过Batch Normalization等技术避免
二、 网络退化问题:
-
网络退化问题:在神经网络可以收敛的前提下,随着网络层数的增加,训练集loss先逐渐下降,然后达到一个最小值,当到达该最小值后再继续增加网络深度的话,训练集loss反而会增大,注意这并不是过拟合,因为在过拟合中训练loss是一直减小的。这个现象被称为:退化(degradation)现象。如下图所示:
从上图可以看出在模型训练过程中,同样的训练轮次下,退化的网络也比稍浅层的网络的训练错误更高,所以可知网络退化问题不是过拟合导致的 -
网络退化情况下,相同结构的层网络会比层网络取得更优的结果,这与我们常理是不合:因为如果我们将的所有参数都复制到的前层,而将的后层学习为恒等映射。那么就可以取得和一样的效果。按照这个逻辑如果还不是所谓“最佳层数”,那么更深的网络就可以取得更好的结果。总而言之,与浅层网络相比,更深的网络的表现不应该更差。
-
所以一个合理的猜测就是,对神经网络来说,恒等映射并不容易拟合。即的后层很难学习到一个恒等映射,才会使得效果比效果好。为了解决这个问题我们可以在神经网络中直接引入直接映射,这就形成了残差网络。
三、 残差网络的形式:
-
既然神经网络不容易拟合一个恒等映射,那么一种思路就是直接向网络中加入恒等映射。假设神经网络每层的输入和输出维度一致,可以将神经网络每层要拟合的函数拆分成两个部分,即:其中x_l就是恒等映射,而为目标与输入的差,即残差,所有叫残差函数。当时该层就学习到了一个恒等映射。
-
残差快图:
-
残差块分成两部分:直接映射部分和残差部分
- 直接映射:对应上图的左边的直线。用
- 残差部分: 对应上图的右边的部分,一般由两个或者三个卷积操作和Batch_Normalization构成,用表示。
- 图中的Weight是指卷积操作
- addition是指单位加操作
- BN是Batch_Normalization
-
为了使得两条路径的输出能进行addition需要统一Feature Map的数量,所以在直接映射中加一个1×1卷积进行升维或者降维.所以最终表达式为:
-
残差网络很好地解决了深度神经网络的退化问题,并在ImageNet和CIFAR-10等图像任务上取得了非常好的结果,同等层数的前提下残差网络也收敛得更快。这使得前馈神经网络可以采用更深的设计。除此之外,去除个别神经网络层,可以应用到各中网络中去。
四、 残差网络的原理:
-
残差块一个更通用的表示方式是:
-
两个假设:
- 是直接映射,即先不考虑升维或者降维的情况
- 也是直接映射,上图表示的为ReLU。
-
那么这时候残差块可以表示为:
-
现在从使用上式一直递推到更深的层可以得到:由此可知层可以表示为任意一个比它浅的层和他们之间的残差部分之和
-
可以从第0成开始地推:层可以表示为各个残差块特征的累加。
-
损失函数关于的梯度可以表示为:
-
在整个训练过程中不可能一直为-1,这样不可能一直为0,也就是说不会出现梯度消失的问题
-
表示层的梯度可以直接传递到任何一个比它浅的层
-
通过上面分析分析,我们发现,当残差块满足上面两个假设时,信息可以非常畅通的在高层和低层之间相互传导,说明这两个假设是让残差网络可以训练深度模型的充分条件。
-
现在说明直接映射是最好的选择:
- 我们采用反证法,假设,则残差块的表示的为:
- 对于更深的层:
- 对于 部分有:
- 当 时,很有可能发生梯度爆炸
- 当 时,很有可能发生梯度消失
- 所以必须等1
- 对于其它不影响梯度的,例如LSTM中的门机制(下图c和d)、Dropout(下图f)以及用于降维的1×1卷积(下图e)试验效果图如下:试验的结果为:在所有的变异模型中,依旧是直接映射的效果最好
- Exclusive Gating:在LSTM的门机制中,绝大多数门的值为0或者1,几乎很难落到0.5附近。当g(x)→0时,残差块变成只有直接映射组成,阻碍卷积部分特征的传播;当g(x)→1时,直接映射失效,退化为普通的卷积网络;
- Short-cut only gating:g(x)→0时,此时网络便是直接映射的残差网络;g(x)→0 时,退化为普通卷积网络;
- Dropout:类似于将直接映射乘以1-p,所以会影响梯度的反向传播;
- 1×1 conv:1×1卷积比直接映射拥有更强的表示能力,但是实验效果却不如直接映射,说明该问题更可能是优化问题而非模型容量问题。
-
**函数的位置试验
- 试验图:试验结果:实验结果也表明将**函数移动到残差部分可以提高模型的精度
- 试验图: