引言
1969 年,Minsky 和 Papert 宣称多层感知机「无法有效训练」。17 年后,David Rumelhart、Geoffrey Hinton 和 Ronald Williams 在《Nature》上发表了一篇论文,证明他们错了。
反向传播算法让训练多层神经网络成为可能——这是神经网络发展史上最重要的里程碑之一。
多层网络的困境
为什么多层网络这么难训练?
单层感知机的学习很简单——知道输入和预期输出,直接调整权重。但多层网络有一个致命问题:
输入层 隐藏层 输出层
x₁ ──→ [神经元] ──→ [神经元] ──→ ŷ
x₂ ──→ [神经元] ──→ [神经元]
[神经元]
问题:我们知道最终输出应该是什么,
但不知道隐藏层的每个神经元应该输出什么。
类比:你知道产品不合格,
但不知道是哪条产线、哪个工人的问题。
→ 怎么分配「责任」?梯度下降:优化的基本方法
在理解反向传播之前,先理解它依赖的核心工具。
直觉
想象你蒙着眼站在山顶,要走到谷底:
策略:用脚感受哪个方向最陡,向那个方向走一步
损失函数 L(w) = 衡量当前权重下的预测误差
梯度 ∇L = 损失函数在每个方向上的变化率
更新规则:w ← w - η × ∇L
η = 学习率(步长)反向传播:用链式法则分配「责任」
核心思想
反向传播利用链式法则高效计算多层网络中每个权重的梯度——从输出层开始,将误差信号「反向传播」到每一层。
算法步骤:
第一步:前向传播(Forward Pass)
输入数据 → 逐层计算 → 得到预测输出
第二步:计算损失
比较预测与真实标签
第三步:反向传播(Backward Pass)
从输出层开始 → 利用链式法则逐层反向计算梯度
把误差的「责任」分配给每一层的每个权重
第四步:更新权重
用梯度下降更新每一层的权重为什么叫「反向」?
前向传播(计算输出):
输入 → 隐藏层1 → 隐藏层2 → 输出 → 损失
══════════════════════════════════►
反向传播(计算梯度):
◄══════════════════════════════════
梯度 ← ∂L/∂隐藏层2 ← ∂L/∂隐藏层1 ← ∂L/∂输入
信号从输出往回传——所以叫「反向」传播Werbos (1974):被埋没 12 年的发现
PW1947-
Paul Werbos
哈佛大学博士
"1974 年在博士论文中首次将反向传播应用于神经网络,但论文几乎无人引用。"
Werbos 在 1974 年的博士论文中就提出了将反向传播用于神经网络。但在当时的学术氛围下:
为什么被忽视了 12 年?
├── 1974 年 = 第一次 AI 寒冬深处
├── 学术界的主流是符号 AI,对神经网络毫无兴趣
├── 没有足够的计算能力验证大规模网络
└── 论文发表在非主流渠道,没有引起注意
→ 一个好的发现 + 错误的时代 = 被埋没Hinton 等人 (1986):让世界重新看见
1986 年,Rumelhart、Hinton 和 Williams 在《Nature》上发表了 《Learning representations by back-propagating errors》。
GH1947-
Geoffrey Hinton
多伦多大学教授,后来被称为「深度学习之父」
"我花了 30 年证明神经网络是正确方向。大多数人觉得我疯了。"
为什么这次成功了?
1. 发表在《Nature》——顶级期刊的影响力
2. 时机更好——专家系统的局限正在暴露,人们开始寻找替代方案
3. 配套实验——论文展示了多层网络能学到有意义的内部表示
4. PDP 研究组的系统性工作——不是单打独斗
关键洞察:多层网络不只是堆叠感知机
它能自动学习数据的「内部表示」
→ 这比手工设计特征强大得多激活函数:从 step 到 ReLU
反向传播需要可微分的激活函数——这是感知机的 step 函数被替换的根本原因:
| 激活函数 | 公式 | 微分 | 问题 |
|---|---|---|---|
| Step | f(x) = 1 if x≥0 | 不可微 | 无法用反向传播 |
| Sigmoid | f(x) = 1/(1+e⁻ˣ) | 可微 | 深层梯度消失 |
| Tanh | f(x) = (eˣ-e⁻ˣ)/(eˣ+e⁻ˣ) | 可微 | 深层梯度消失 |
| ReLU | f(x) = max(0,x) | 可微(大部分) | 计算快,缓解梯度消失 |
本节小结
| 概念 | 要点 |
|---|---|
| 多层网络困境 | 不知道隐藏层应该输出什么 |
| 梯度下降 | 向损失减少最快的方向走 |
| 反向传播 | 用链式法则从输出到输入逐层计算梯度 |
| Werbos (1974) | 首次提出,但被寒冬埋没了 12 年 |
| Hinton 等 (1986) | 在 Nature 发表,重新点燃了神经网络研究 |
| 激活函数 | 必须可微分,从 step 演变为 ReLU |
思考题
- 反向传播被发明了两次(1974 和 1986),这说明一个好的发现被接受需要哪些条件?
- 梯度下降只找到局部最优,为什么在实践中仍然如此有效?
- Hinton 在几乎没人支持的情况下坚持了 30 年。这种坚持是科学的必要品质还是固执?
延伸阅读
- Rumelhart, Hinton, Williams, Learning representations by back-propagating errors, Nature, 1986