反向传播
反向传播
一句话理解
前向传播是"从输入算到输出",反向传播是"从误差倒着算回去,看看每个权重该往哪调"。
为什么需要它
神经网络要学,就得知道损失(预测和真实的差距)怎么分摊到每个权重上。反向传播用链式法则把误差从输出层一层层传回输入层,得到每个权重对损失的影响(梯度)。
过程
- 前向传播:输入 x → 隐藏层 → 输出 y,算出损失 Loss
- 反向传播:从 Loss 开始,对每个参数求偏导 ∂Loss/∂w
- 梯度下降:每个权重按照负梯度方向更新一步
w = w - learning_rate * ∂Loss/∂w
关键点
- 数学基础就是高数里的链式求导法则
- 反向传播的计算量 ≈ 前向传播,效率高
- learning rate 太大容易震荡不收敛,太小收敛太慢
- 梯度消失/爆炸:层数太多时梯度会指数级变小或变大,是深度网络难训的原因之一
类比
就像一个学生在考试(前向)之后,对着答案(标签)找到自己每道题错在哪(梯度),然后决定哪块知识要多补(更新权重),再考一次,直到对为止。