
1. 数值稳定性在深度网络中反向传播本质上是沿着计算图做链式求导。当网络层数很深时梯度的数值稳定性就成了训练能否收敛的关键问题。本节先厘清几个基础概念。1.1 基础概念MLP多层感知机Multi-Layer Perceptron由输入层、若干隐藏层和输出层堆叠而成是理解深度网络梯度传播的最小模型。对角矩阵diagonal matrix主对角线之外的元素皆为 0 的矩阵常记作diag(a1,a2,…,an)\text{diag}(a_1, a_2, \dots, a_n)diag(a1,a2,…,an)。1.2 为什么会出现对角矩阵在反向传播中diag⋅W\text{diag} \cdot Wdiag⋅W可以把diag\text{diag}diag和WWW分开来看它本质上就是一次链式求导diag\text{diag}diag是nnn维 ReLU 输出向量对nnn维 ReLU 输入向量的导数向量对自身求导得到的就是一个对角矩阵。也就是说激活函数这一层的雅可比矩阵是一个对角阵其对角元素正是每个神经元处的激活导数。2. 梯度爆炸当权重矩阵WWW的元素值大于 1 时随着层数加深反向传播中的连乘会不断放大梯度最终导致梯度爆炸。其直观原因在于每一层都要乘以一个权重矩阵若这些矩阵的谱半径普遍大于 1则LLL层连乘后梯度量级近似按指数增长。3. 梯度消失梯度消失与梯度爆炸方向相反但成因同样来自连乘。下图中蓝色为原函数黄色为梯度函数。当激活函数的输入稍微大一点时它的导数就变为接近 0连续nnn个接近 0 的数相乘最后的梯度就接近 0梯度也就消失了。这也是 Sigmoid、Tanh 等饱和激活函数在深层网络中表现不佳的核心原因。4. 总结梯度爆炸与梯度消失都源于反向传播中的连乘效应因子大于 1 则爆炸因子小于 1 则消失。要缓解这一问题需要让训练过程更稳定。5. 训练更稳定为了让深层网络的训练更稳定通常会引入以下假设与手段假设权重是独立同分布i.i.d.的且均值为 0假设输入与权重是相互独立的。在这些假设下可以推导出每层输出的方差保持稳定从而避免梯度在层间传播时被指数级放大或衰减。这也是 Xavier / He 初始化等方法的理论基础。6. 总结数值稳定性是深层网络训练的基础问题核心在于控制反向传播中连乘因子的量级。梯度爆炸源于因子大于 1 的连乘梯度消失源于饱和激活导数接近 0 的连乘。通过合理的初始化如保持权重零均值、输入与权重独立与激活函数选择可以让训练过程更加稳定。