反向传播
一种利用链式法则将误差从输出层向输入层反向传播,高效计算损失函数对各网络参数梯度的算法。
反向传播(Backpropagation)是训练神经网络的核心算法。它利用微积分的链式法则,将输出层的预测误差逐层向输入方向传播,高效计算损失函数对每个权重参数的梯度。1986 年 Rumelhart 等人的论文使该算法广为人知。
训练流程分为前向传播和反向传播两个阶段:
- 前向传播:输入数据逐层经过线性变换和激活函数,最终产生预测输出
- 损失计算:将预测值与真实标签比较,计算损失函数值(如交叉熵)
- 反向传播:从输出层开始,利用链式法则逐层计算每个参数的梯度
- 参数更新:优化器(SGD、Adam 等)根据梯度更新权重,使损失逐步减小
反向传播面临的主要挑战包括梯度消失(深层网络中梯度趋近于零)和梯度爆炸。残差连接(ResNet)、批量归一化和梯度裁剪等技术有效缓解了这些问题,使百层以上的深度网络训练成为可能。
现代深度学习框架(PyTorch、TensorFlow)通过自动微分机制实现反向传播,开发者只需定义前向计算图,梯度计算由框架自动完成。