返回首页

Roadmap
更新于 2026年10月30日 全文 1468 字未阅读

神经网络:使用反向传播训练#

本页要点:

  • 反向传播:神经网络最主要的训练算法,正是它让梯度下降在多层网络上成为可能,通常由机器学习库自动完成。
  • 梯度消失:发生在底层几层的梯度变得极小、拖慢训练的时候,用 ReLU 激活函数可以缓解。
  • 梯度爆炸:发生在权重过大、梯度大到无法收敛的时候,可以用批归一化或降低学习率来对付。
  • 死掉的 ReLU 单元:指输出卡在 0、梯度再也流不过去的情况,降低学习率或改用 LeakyReLU 这类变体可以避免。
  • Dropout 正则化:通过训练时随机「丢掉」一部分单元的激活来防止过拟合,丢掉的比例越高,正则化越强。

反向传播(backpropagation)是神经网络最常用的训练算法,正是它让梯度下降在多层网络上成为可能。很多机器学习代码库(比如 Keras)都会自动完成反向传播,所以你根本不需要自己去算那些底层的东西。

神经网络训练的最佳实践#

这一节要讲的是:反向传播会在哪些地方翻车,以及最常用的一种神经网络正则化手段。

对于反向传播的直观理解,可以看成是:模型先做出预测,再根据预测结果与正确答案之间的差距,逐层向后调整各个参与者的影响力(权重),从而不断减少预测误差。

以教室识别树木为例:

1. 前向传播(做出预测):从最后一排到第一排,学生们依次传递各自对树木种类的判断,最终汇总得出预测结果。就像模型将输入数据逐层传递,最终得到预测值。

2. 计算误差(发现问题):老师将预测结果与正确答案进行比较,发现班级只识别对了 7 张照片中的 1 张,说明当前的判断方式存在较大偏差。

3. 反向传播(追溯误差):老师从最终公布答案的学生开始,逐排向后分析,判断哪些学生的意见对错误结果产生了较大影响。

4. 更新权重(调整影响力):老师调整不同学生的发言比重,降低不合理的影响,提升有价值的判断,让下一次预测更加准确。

核心理解: 前向传播负责根据当前权重做出预测,反向传播负责计算误差如何影响各层参数的梯度,而优化器则根据梯度更新权重。通过反复迭代,模型逐渐学会更准确地预测。

MLWM: 一句话总结,通过梯度下降最小化目标函数求得参数,但使用梯度下降的前提是知道目标函数关于每个参数的梯度,而反向传播算法恰恰是求解梯度的一大利器。

提示: 反向传播算法用到了微积分里的梯度概念,靠它来调整模型权重、把损失压到最小。要理解并排查下面这些问题,通常得先有点微积分基础。

梯度消失#

越靠近输入层的那些底层网络,它们的梯度可能会变得非常小。在深度网络(隐藏层超过一层的网络)里,算这些梯度往往要连乘很多个很小的项。

当底层那些层的梯度值趋近于 0 时,我们就说梯度「消失」了。出现梯度消失的层,训练起来会非常慢,甚至干脆完全不训练。 此时,ReLU 激活函数可以极大地帮我们避免梯度消失。

梯度爆炸#

反过来,如果网络里的权重非常大,底层的梯度就变成很多大项的连乘。这种情况下就可能出现梯度爆炸:梯度大到根本没法收敛。这个时候,不妨可以试试 批归一化(batch normalization)和降低学习率这两个方法。

死掉的 ReLU 单元#

虽然 ReLU 激活函数能够有效缓解梯度消失的问题,不过一旦某个 ReLU 单元的加权和掉到 0 以下,那这个单元就永远失去了作用,因为此时它的输出恒为 0,对网络输出毫无贡献,反向传播时梯度也再也流不过去了。当梯度这么一断,喂给这个 ReLU 的输入就可能永远变不到足够大,导致这个加权和再也回不到 0 以上。

此时,降低学习率,可以在一定程度上缓解这一问题。

提示: 当然,针对这个问题,业界还设计了不少 ReLU 的变体,比如 LeakyReLU ,可以考虑用它来当激活函数。

Dropout 正则化#

还有一种正则化手段叫 Dropout 正则化(dropout regularization),在神经网络里十分管用。它的做法是:在每一次梯度更新中,随机「丢掉」网络里一部分单元的激活值。丢掉的越多,对应的正则化效果也就越强:

  • 0.0 = 不做任何 Dropout 正则化。

  • 1.0 = 把所有节点都丢掉,模型什么也学不到。

  • 取 0.0 到 1.0 之间的值 = 更实用。

MLWM: 关于反向传播的完整推导、以及梯度该往哪个方向走,可以参见 「反向传播与梯度下降:梯度消失与爆炸的解决方法」;正则化这一类手段(含 Dropout)的完整梳理,参见 「正则化(Regularization)」。


关键术语:

  • 反向传播(Backpropagation)
  • Dropout 正则化(Dropout regularization)
  • 梯度爆炸问题(Exploding gradient problem)
  • 梯度消失问题(Vanishing gradient problem)
阅读 --