Zubnet AI学习Wiki › 反向传播
基础

反向传播

别名:反向传播算法、反向传递
计算神经网络中每个参数对误差的贡献程度的算法,使梯度下降能够高效地更新参数。反向传播通过网络反向应用微积分的链式法则:从输出的损失开始,将梯度向后传播通过每一层,以确定每个权重的"责任份额"。

为什么重要

反向传播是使神经网络训练成为可能的算法。没有一种高效的方式为数十亿个参数计算梯度,梯度下降将在计算上不可行。你使用的每个模型——从小型分类器到400B的LLM——都是使用反向传播训练的。它是深度学习中最重要的单一算法。

深度解析

前向传播:输入通过网络流动,每一层应用其变换,最终层产生预测。损失函数计算预测的错误程度。反向传播:从损失开始,反向传播使用链式法则计算每个权重的∂loss/∂weight:∂loss/∂w = ∂loss/∂output · ∂output/∂hidden · ∂hidden/∂w。每一层接收来自上层的梯度并将自己的梯度传递给下层。

计算效率

朴素地为每个权重独立计算梯度需要每个权重一次单独的前向传播——对数十亿参数来说不可能昂贵。反向传播重用中间结果:每层的梯度只计算一次并与该层所有权重共享。反向传播的计算成本大约是前向传播的2倍,意味着一次训练步骤(前向+反向+更新)的总成本约为单次前向传播的3倍。

自动微分

现代深度学习框架(PyTorch、JAX)通过自动微分(autograd)实现反向传播。你定义前向计算,框架自动构建反向计算图并计算梯度。这意味着你永远不需要手动推导梯度——你定义模型架构和损失,调用loss.backward(),框架处理其余部分。这种自动化使快速的架构实验成为可能。

相关概念

← 所有术语
← 双重用途 叠加态 →