梯度下降与反向传播
可复习 · 待写自己的解释本章材料
重点
- 前向传播先计算预测,损失函数再比较预测和目标。 损失是训练要降低的量,不是准确率。
- 反向传播计算梯度。 它沿计算关系向后使用链式法则,得到损失对每个参数的导数。
- 梯度下降使用梯度更新参数。 对参数 w,更新公式是 w新 = w旧 − 学习率 × 梯度。
- 山谷图是低维示意。 横轴代表可调整的参数,高度代表损失;真实网络需要同时处理许多参数。
由 Codex 根据 3Blue1Brown 的 Gradient descent 与 Backpropagation 课程核对后编写。下面的两权重算例是独立的教学例子。
难点
- 梯度与负梯度的符号相反。 若题目已经给出负梯度,就用“旧参数 + 学习率 × 负梯度”,不要再减一次。
- 导数描述局部敏感程度。 它不是给参数永久安排的增减方向;参数更新后,需要重新计算。
- 降低训练损失不保证泛化更好。 还需要用未参与训练的数据评估。
- 13,002 是该课程示例的权重和偏置总数,不是神经元个数,也不是只有权重。
对应上述两份课程。梯度下降不保证每一步都降低损失,也不保证找到全局最低点。
动手看
展开:梯度是怎样算出来的?
这里 h = w₁x,ŷ = w₂h,L = ½(ŷ − y)²。
- 损失对预测的导数是 ŷ − y = −0.52。
- 对 w₂:梯度为 (ŷ − y) × h = −0.52 × 0.6 = −0.312。
- 对 w₁:还要沿 h 的计算关系往回传,梯度为 (ŷ − y) × w₂ × x = −0.52 × 0.8 × 1 = −0.416。
这就是链式法则:沿影响路径把局部导数相乘。所有梯度都在更新前的同一个参数点计算,然后一起更新。
容易混淆的几个概念
| 概念 | 做什么 | 在本例里 |
|---|---|---|
| 前向传播 | 使用当前参数计算预测 | 得到 0.48 |
| 损失函数 | 衡量预测和目标的差异 | 得到 0.1352 |
| 反向传播 | 计算损失对参数的梯度 | 得到 −0.416、−0.312 |
| 梯度下降 | 用梯度和学习率更新参数 | 学习率 0.1 时得到 0.6416、0.8312 |
记法:先预测、算损失,再求梯度、改参数。
来源
- 原问题来自 ChatGPT「AI知识问答」(2026-10-29 归档,第 31–53 条中的 6 条消息);ChatGPT 当时的回答在「原始对话」标签,未经核校。
- 3Blue1Brown · Gradient descent 与 Backpropagation(2026-10-30 核对)。
- 解释、实验与测验由 Codex 编写。实验是人工设置的简化计算,不来自真实模型。