追着幸福跑|为什么深度神经网络这么难训练?| 赠书( 六 )


追着幸福跑|为什么深度神经网络这么难训练?| 赠书5.2.1 为何出现梯度消失
梯度的完整表达式如下:
追着幸福跑|为什么深度神经网络这么难训练?| 赠书除了最后一项 , 该表达式几乎就是一系列
追着幸福跑|为什么深度神经网络这么难训练?| 赠书的乘积 。 为了理解每一项 , 先看看sigmoid函数的导数的图像 , 如图5-11所示 。
追着幸福跑|为什么深度神经网络这么难训练?| 赠书该导数在
追着幸福跑|为什么深度神经网络这么难训练?| 赠书时达到峰值 。 如果使用标准方法来初始化神经网络中的权重 , 那么会用到一个均值为0、标准差为1的高斯分布 , 因此所有权重通常会满足
追着幸福跑|为什么深度神经网络这么难训练?| 赠书 。 基于这些信息 , 可知有
追着幸福跑|为什么深度神经网络这么难训练?| 赠书 。 另外 , 在对所有这些项计算乘积后 , 最终结果肯定会呈指数级下降:项越多 , 乘积下降得越快 。 梯度消失的原因初见端倪 。
更具体一点 , 比较和稍后面一个偏置的梯度 , 例如 。 当然 , 还未明确给出的表达式 , 但计算方式是和相同的 。 二者的对比如图5-12所示 。
追着幸福跑|为什么深度神经网络这么难训练?| 赠书这两个表达式有很多项相同 , 但多了两项 。 由于这些项都小于
追着幸福跑|为什么深度神经网络这么难训练?| 赠书 , 因此会是的
追着幸福跑|为什么深度神经网络这么难训练?| 赠书或者更小 , 这其实就是梯度消失的根本原因 。
当然 , 以上并非梯度消失问题的严谨证明 , 而是一个不太正式的论断 , 可能还有别的一些原因 。 我们尤其想知道权重在训练中是否会增长 , 如果会 , 项
追着幸福跑|为什么深度神经网络这么难训练?| 赠书是否不再满足这个条件 。 实际上 , 如果项变得很大——超过1——那么梯度消失问题将不会出现 。 当然 , 这时梯度会在反向传播中呈指数级增长 , 即出现了梯度爆炸问题 。
5.2.2 梯度爆炸问题
下面分析梯度爆炸的原因 。 举的例子可能不那么自然:固定神经网络中的参数 , 以确保发生梯度爆炸 。 即使不太自然 , 这个例子也能说明梯度爆炸确实会发生(而非假设) 。
追着幸福跑|为什么深度神经网络这么难训练?| 赠书5.2.3 梯度不稳定问题
根本问题其实不是梯度消失问题或梯度爆炸问题 , 而是前面的层上的梯度来自后面的层上项的乘积 。 当层过多时 , 神经网络就会变得不稳定 。 让所有层的学习速度都近乎相同的唯一方式是所有这些项的乘积达到一种平衡 。 如果没有某种机制或者更加本质的保证来达到平衡 , 那么神经网络就很容易不稳定 。 简而言之 , 根本问题是神经网络受限于梯度不稳定问题 。 因此 , 如果使用基于梯度的标准学习算法 , 那么不同的层会以不同的速度学习 。


推荐阅读