什么是反向传播?
反向传播(Back Propagation,BP) 是训练神经网络的核心算法,用于计算损失函数对网络中每个参数(权重和偏置)的梯度。
名字的由来
"反向"是指计算方向:从输出层开始,逐层向输入层方向传播误差信息。与数据流动的方向(前向传播)相反。
神经网络训练的完整流程
第1步:前向传播
输入数据从输入层出发,经过每一层的计算(线性变换 + 激活函数),最终在输出层得到预测结果。
输入 → 隐藏层1 → 隐藏层2 → ... → 输出层 → 预测值
第2步:计算损失
用损失函数(如交叉熵、均方误差)衡量预测值与真实标签之间的差距。
第3步:反向传播
利用链式法则,从输出层开始,逐层计算损失对每个参数的偏导数(梯度)。
损失 → 输出层梯度 → 隐藏层2梯度 → 隐藏层1梯度
第4步:参数更新
用梯度下降法更新所有参数:
参数 = 参数 - 学习率 × 梯度
第5步:重复
重复以上步骤,直到损失收敛到满意的程度。
链式法则
反向传播的数学基础是微积分中的链式法则。如果 y = f(g(x)),那么:
dy/dx = dy/dg × dg/dx
对于多层网络,每一层的梯度都可以通过后面一层的梯度递推得出,这就是"反向传播"的实质。
反向传播 vs 梯度下降
这两个概念经常一起出现,但要区分清楚:
| 概念 | 作用 |
|---|---|
| 反向传播 | 计算每个参数的梯度 |
| 梯度下降 | 使用梯度来更新参数 |
反向传播负责"算方向",梯度下降负责"走一步"。
考试要点
- 反向传播的主要作用是调整网络的权重和偏置
- 利用链式法则逐层计算梯度
- 训练流程:前向传播 → 计算损失 → 反向传播 → 参数更新 → 重复
- 反向传播计算梯度,梯度下降使用梯度