反向传播
BackpropagationBP常用用链式法则从输出往回逐层算梯度,是训练神经网络的核心算法。
反向传播是计算神经网络梯度的方法。训练时先前向计算得到输出和损失,再从损失出发,按链式法则从最后一层往前逐层传递误差,一次算出损失对所有参数的梯度,交给梯度下降、AdamW 等优化器更新参数,避免了对每个参数单独求导的大量重复计算。它可追溯到 Seppo Linnainmaa 1970 年的自动微分工作,Paul Werbos 1974 年将其用于神经网络,1986 年 Rumelhart、Hinton 和 Williams 在《Nature》上的论文让它广为人知。PyTorch 里的 loss.backward() 就是在做反向传播。
例子训练行为克隆策略时,每一步先前向算出预测动作与示范动作的均方误差,再调用 loss.backward() 得到所有权重的梯度,最后 optimizer.step() 更新参数。
- 也叫
- BP 算法、误差反向传播、Backprop
- 相关
- 梯度下降、优化器、损失函数、梯度消失 / 梯度爆炸、梯度阻断、神经网络
- 来源
- Wikipedia: Backpropagation
Google Machine Learning Glossary