点击上方“图灵人工智能”,选择“星标”公众号
您想知道的人工智能干货,第一时间送达
转自NeuroPrior AI LTD,仅用于学术分享,如有侵权留言删除
【NeuroPrior AI 导读】反向传播是一种高效的信用分配算法:当模型输出错误时,它沿着计算图反向追踪,计算每一个参数对错误的责任,然后用梯度下降把参数朝更小错误的方向微调。现代深度学习的许多奇迹——图像识别、语音识别、机器翻译、蛋白结构预测、大语言模型、扩散生成模型——都是因为海量可微计算、反向传播、自动微分、优化器、GPU/TPU 集群和数据规模共同构成了一个巨大的可训练系统。 |
从曲线拟合开始,经过损失函数、导数、梯度下降、链式法则和计算图,最后到反向传播与现代神经网络训练。几乎所有现代机器学习系统——从生成式模型到 AlphaFold,再到大语言模型——虽然架构不同、数据不同、任务不同,但训练过程背后共享一个核心思想:通过反向传播计算参数如何影响损失,并据此更新参数。
但要真正理解反向传播,更深的问题是:为什么复杂系统可以被拆成可微的小模块?为什么局部导数可以告诉我们全局目标的变化方向?为什么这套算法如此适合硅基计算,却又看起来不像大脑真实的学习机制?这些问题正是反向传播最值得思考的地方。
训练的本质
绝大多数监督学习、深度学习和生成模型训练,首先是一类优化问题。我们给模型一个输入 x,希望它输出某个目标 y。模型内部有大量可调参数 θ,例如神经网络中的权重和偏置。模型根据当前参数产生预测 ŷ = fθ(x)。如果预测和真实目标不一致,我们用一个数值函数 L 来衡量错误大小,这就是损失函数。训练的目标不是让模型“相信”什么,而是让参数 θ逐步移动到使损失 L(θ) 更小的位置。

从这个角度看,曲线拟合就是最朴素的机器学习。假设我们有一组二维数据点,希望找到一条平滑曲线 y = f(x) 去穿过这些点。我们可以假设曲线是一个五阶多项式:
f(x) = k0 + k1x + k2x^2 + k3x^3 + k4x^4 + k5x^5
这条曲线的形状完全由 k0到 k5 六个参数决定。每换一组参数,曲线就变一次。为了让“好不好”变成客观标准,我们计算每个数据点到曲线的平方误差,并把它们加起来:
L(k0,...,k5) = Σi (f(xi) - yi)^2
于是,原本模糊的“找一条合适曲线”被转化为一个明确问题:在六维参数空间里,找到一组 k,使 L 最小。神经网络只是把这个思想扩展到数百万、数十亿甚至数万亿参数,把多项式换成由矩阵乘法、非线性激活、注意力机制、归一化层和其他可微模块组成的巨大函数。
导数是“局部未来”的信息
如果我们完全不知道参数如何影响损失,最笨的方法是随机扰动每个参数:把某个旋钮向右转一点,看看损失是否下降;如果下降,就保留;如果上升,就撤回。这种黑箱扰动在原则上可以工作,但在高维模型中几乎不可行。一个大语言模型可能有数十亿参数,如果每次只能一个参数一个参数试错,训练会变成天文级别的搜索问题。
反向传播真正利用的是一个关键条件:模型内部的计算是可微的。可微意味着,如果我们轻微改变某个参数,损失函数会以可预测的局部方式变化。导数 dy/dx 衡量的是当 x 发生一个极小变化时,y 会怎样变化。它不是远距离预言,而是局部斜率;但在优化中,局部斜率已经非常宝贵,因为它告诉我们当下应该向哪个方向迈出下一小步。
在一维情况下,如果损失函数在当前点的导数为正,说明参数增加会让损失上升,因此我们应该减小参数;如果导数为负,说明参数增加会让损失下降,因此我们应该增加参数。多维情况下,每个参数都有一个偏导数。所有偏导数组成一个向量,即梯度 ∇θL。梯度指向损失上升最快的方向;因此,梯度的反方向就是最陡下降方向。参数更新可以写成:
θ ← θ - η ∇θL
其中 η是学习率。学习率太小,训练会非常慢;学习率太大,参数会越过谷底甚至发散。现代优化器如 Adam、AdamW、Lion 以及近年来针对大模型训练的各种归一化/动量方法,本质上仍然围绕这个问题展开:如何利用梯度信息,在巨大、嘈杂、非凸的损失地形中更稳定、更高效地前进。
链式法则:为什么复杂模型仍然可以求导?
反向传播的核心不是某个神经网络专属技巧,而是微积分里的链式法则。假设一个复杂函数是由多个简单函数串联而成:x 先经过 g 得到 h = g(x),再经过 f 得到输出 L = f(h)。那么 x 对最终输出 L 的影响不是凭空出现的,而是沿着路径逐层相乘:
dL/dx = (dL/dh) · (dh/dx)
如果有十层、百层、千层,原则仍然一样。每一层只需要知道自己的局部导数,然后这些局部导数按计算路径组合起来,就能得到任意早期参数对最终损失的影响。这就是“信用分配”的数学形式:最终错误不是只归咎于最后一层,而是沿着计算链条把责任分摊给每一个参与输出的参数。
链式法则:复杂函数可以分解为简单函数的组合,总导数由局部导数连乘得到。
这个思想非常深刻。它说明,如果一个系统可以被写成由很多可微小模块组成的计算图,那么我们不必对每个参数做昂贵的黑箱试验,而可以系统性地计算每个参数的梯度。反向传播之所以高效,是因为它不是重复求导,而是复用中间结果。一次前向传播记录每个节点的数值;一次反向传播从输出开始,沿相反方向传播梯度。
四、计算图与自动微分:反向传播的现代形态
现代深度学习框架通常不是手写每个权重的导数,而是把整个模型构建为一个计算图。图中的节点可以是加法、乘法、矩阵乘法、指数、对数、激活函数、注意力操作、归一化操作等。前向传播时,数据从输入端流向输出端,计算预测和损失。反向传播时,梯度从损失端反向流回输入端和参数端。
计算图的本质:前向传播计算数值,反向传播计算每个节点对损失的贡献。
更精确地说,反向传播是反向模式自动微分(reverse-mode automatic differentiation)的一个重要实例。自动微分不同于数值差分,也不同于符号求导。数值差分用小扰动近似斜率,容易受步长和数值误差影响;符号求导会产生可读公式,但在大型程序中容易表达式膨胀。自动微分则在程序执行过程中记录基本操作,并用链式法则精确地传播导数。Baydin 等人在 JMLR 综述中指出,自动微分比传统“神经网络反向传播”更一般:它适用于任何由可微数值程序表示的函数。
这也是为什么 PyTorch、TensorFlow、JAX 等框架如此重要。PyTorch 采用动态图和 tape-based autograd,使研究者可以像写普通 Python 程序一样定义模型,同时由框架记录计算并自动求梯度。JAX 则把自动微分、自动向量化、JIT 编译和并行变换统一到可组合程序变换体系中,使研究者能把普通数值函数转化为可微、可编译、可批处理、可并行的高性能程序。现代 AI 的训练能力,不仅来自反向传播的数学,也来自这些软件系统把“求导”变成了工程基础设施。
从多层感知机到Transformer:反向传播如何训练神经网络?
一个前馈神经网络可以看成许多层函数的组合。每一层通常执行矩阵乘法、加偏置和非线性变换:
h(l+1) = σ(W(l)h(l) + b(l))
这里 W 和 b 是要学习的参数,σ是激活函数。网络最后输出预测,损失函数比较预测和目标,反向传播计算每一层参数对损失的梯度。早期神经网络训练困难的关键问题之一,是如何把输出层的错误传递到隐藏层。Rumelhart、Hinton 和 Williams 1986 年在 Nature 发表的经典论文《Learning representations by back-propagating errors》证明,多层神经网络可以通过误差反向传播学习隐藏层表征,从而捕捉任务中的重要规律。
今天的Transformer 看起来远比多层感知机复杂:它有多头注意力、残差连接、层归一化、前馈网络、位置编码、词嵌入和大规模并行矩阵运算。但从训练角度看,它仍然是一个巨大的可微函数。输入 token 经过层层变换得到输出分布,损失函数衡量输出与训练目标之间的差异,反向传播把误差信号传回每个权重矩阵。GPT 类模型、BERT 类模型、扩散模型和许多蛋白结构预测模型,其训练过程都可以抽象为图 4 所示的循环:前向计算、损失评估、反向求梯度、优化器更新参数、重复。
深度学习训练循环:前向传播、计算损失、反向传播、更新参数,然后不断重复。为什么反向传播如此强大?
反向传播最核心的贡献,是解决了高维复杂系统中的信用分配问题。假设模型输出了错误答案:是哪个参数造成了错误?是第一层某个权重,还是中间层某个特征组合,还是最后分类层的权重?如果没有梯度,我们只能粗糙地试错。反向传播则提供了一种连续、可计算、可扩展的责任分配机制。
这种机制非常强大,只要我们能把某个任务表达为可微目标函数,把模型表达为可微计算图,把数据规模和算力规模堆到足够大,就可以让系统自动调整内部表示。卷积网络学到边缘、纹理、形状;Transformer 学到词法、句法、语义、世界知识和程序模式;AlphaFold 类模型学到氨基酸序列与三维结构之间的复杂关系。反向传播只是不断问一个问题:如果我稍微改变这个参数,损失会变大还是变小?但当这个问题被问了数万亿次,宏观上就表现为学习。
这也是深度学习与传统人工智能的关键差别。传统系统往往需要工程师手写规则;深度学习系统则让规则隐含在参数中,由数据和损失函数塑形。反向传播不是智能本身,但它是现代 AI 从数据中雕刻出复杂内部结构的主要工具。
最新进展
截至 2026 年,反向传播仍然是主流深度学习的中心算法。真正发生变化的是它周围的工程生态。
第一,自动微分已经从神经网络专用工具扩展为“可微编程”基础设施。研究者不仅训练分类器,也用可微物理、可微渲染、可微仿真和可微科学计算求解复杂系统。
第二,大模型训练把反向传播推向极限:显存、通信带宽、梯度同步、混合精度、检查点重计算、张量并行、流水线并行和数据并行共同决定训练可行性。
第三,优化器从简单 SGD 发展到带动量、自适应学习率、解耦权重衰减和符号动量方法,核心仍然是利用梯度,但对梯度的尺度、噪声和历史信息进行更精细的处理。
反向传播本身也不断被改造。为了训练极深网络,研究者使用残差连接、归一化层和合适初始化来改善梯度流。为了降低内存,使用梯度检查点、可逆网络、激活重计算和低精度训练。为了训练长序列模型,使用 FlashAttention、分块计算和更高效的并行策略。可以说,今天的大模型不是简单“用了反向传播”,而是在庞大的系统工程中保护、压缩、并行和稳定反向传播。
另一方面,反向传播的局限也越来越清楚。它通常需要大量标注或自监督数据,需要可微目标,需要前向和反向计算图,需要存储中间激活,训练成本极高,而且容易学习到与目标函数相关但与人类价值不一致的捷径。未来的学习系统可能不会完全抛弃反向传播,但会把它与检索、强化学习、世界模型、符号推理、因果学习、记忆系统和主动探索结合起来。
大脑是否也在做反向传播?
大脑的学习算法并非反向传播:一种可能超越反向传播的脑启发学习框架从工程角度看,反向传播非常成功;从生物学角度看,它又显得非常不同。经典反向传播要求精确的前向权重和反向权重对应,需要全局损失信号,需要在层与层之间传递误差信号,还需要在更新参数前保留前向过程中的活动状态。这些要求与皮层局部突触可塑性、脉冲活动、神经调质、树突计算和局部回路结构之间存在明显区别。
因此,计算神经科学一直在寻找更生物可行的替代方案。反馈对齐(feedback alignment)表明,反向通路不一定要精确复制前向权重,随机反馈也可能在某些条件下支持深层学习。预测编码模型提出,大脑可能通过局部预测误差和循环推断近似某种梯度学习;Song 等人在 Nature Neuroscience 的研究进一步讨论了预测编码网络中推断活动与突触可塑性之间的关系,以及这种机制与人工网络反向传播的联系和差异。
2025 年,Asabuki 和 Clopath 在 Nature Communications 提出 predictive alignment,用局部预测规则训练混沌循环神经网络,强调局部回路中的预测可以引导强大且鲁棒的学习。Hinton 提出的 Forward-Forward 算法则尝试用两个前向过程替代传统前向-反向过程,使每一层根据正样本与负样本的“goodness”进行局部学习。这些方向尚未取代主流反向传播,但它们把一个深层问题推到台前:高效学习一定需要显式全局梯度吗?还是大脑通过局部预测、扰动、神经调质和循环动力学实现了另一种信用分配?
反向传播真正教给我们的:智能不是单一算法,而是目标、结构、数据和动力学的耦合
如果把反向传播简单理解为“机器学习的训练算法”,我们会低估它的哲学意义。它告诉我们,一个系统不需要程序员手写每条规则;只要系统内部结构足够丰富,外部目标足够明确,误差信号可以被分解并反馈到内部参数,系统就能逐渐形成适合任务的表征。
但这也提示了现代 AI 的根本风险:模型学到什么,取决于损失函数、数据分布、架构约束和优化过程。一个系统可以在训练损失上表现很好,却不一定具有我们期待的理解、可靠性或价值对齐。反向传播擅长让模型“更像训练数据中被奖励的模式”,但它本身并不判断这些模式是否真实、因果、伦理或安全。
对神经科学而言,反向传播也提供了一面镜子。它并不一定是大脑的真实算法,但它清晰揭示了学习系统必须面对的共同问题:如何把远端目标分解成局部变化?如何在高维参数空间中找到有用方向?如何在噪声中积累稳定结构?如何在旧知识与新经验之间保持平衡?这些问题连接了人工神经网络、突触可塑性、强化学习、预测编码、运动学习和认知控制。
结语
最好的比喻可能是:反向传播是一台误差显微镜。它把最终输出中的一点错误,沿着复杂计算图层层放大、分解、追踪,直到每一个参数都收到一条微小但方向明确的更新建议。单次更新几乎微不足道;数十亿次更新之后,模型内部会形成复杂表示。
这就是它为什么重要。它不是AI 的全部,却是现代 AI 能从数据中自组织出能力的中心机制。它不是大脑工作原理的正确解释,却迫使我们重新思考生物学习如何解决信用分配。它不是未来学习算法的终点,却是理解未来算法绕不开的起点。
因此,真正值得追问的问题不只是“反向传播怎么工作”,而是:当一个系统可以持续把错误转化为结构性改变时,它会学到什么?它会忽略什么?它会形成怎样的内部世界?这正是机器学习、神经科学和认知科学在未来十年需要共同探索的问题。
扫描或长按识别二维码获取超强医疗模型MedGPT免费使用额度
参考文献
Linnainmaa S. The representation of the cumulative rounding error of an algorithm as a Taylor expansion of the local rounding errors. Master’s thesis, University of Helsinki; 1970.
Linnainmaa S. Taylor expansion of the accumulated rounding error. BIT Numerical Mathematics. 1976;16:146-160.
Rumelhart DE, Hinton GE, Williams RJ. Learning representations by back-propagating errors. Nature. 1986;323:533-536.
LeCun Y, Bengio Y, Hinton G. Deep learning. Nature. 2015;521:436-444.
Baydin AG, Pearlmutter BA, Radul AA, Siskind JM. Automatic differentiation in machine learning: a survey. Journal of Machine Learning Research. 2018;18(153):1-43.
Goodfellow I, Bengio Y, Courville A. Deep Learning. Cambridge, MA: MIT Press; 2016.
Kingma DP, Ba J. Adam: A method for stochastic optimization. International Conference on Learning Representations; 2015.
Loshchilov I, Hutter F. Decoupled weight decay regularization. International Conference on Learning Representations; 2019.
Vaswani A, Shazeer N, Parmar N, et al. Attention is all you need. Advances in Neural Information Processing Systems. 2017.
Paszke A, Gross S, Massa F, et al. PyTorch: an imperative style, high-performance deep learning library. Advances in Neural Information Processing Systems. 2019.
Bradbury J, Frostig R, Hawkins P, et al. JAX: composable transformations of Python+NumPy programs. 2018.
Song Y, et al. Inferring neural activity before plasticity as a foundation for learning beyond backpropagation. Nature Neuroscience. 2024;27:348-358.
Asabuki T, Clopath C. Taming the chaos gently: a predictive alignment learning rule in recurrent neural networks. Nature Communications. 2025;16:6196.
Hinton G. The Forward-Forward Algorithm: Some Preliminary Investigations. arXiv:2212.13345; 2022.
Lillicrap TP, Cownden D, Tweed DB, Akerman CJ. Random synaptic feedback weights support error backpropagation for deep learning. Nature Communications. 2016;7:13276.
Whittington JCR, Bogacz R. An approximation of the error backpropagation algorithm in a predictive coding network with local Hebbian synaptic plasticity. Neural Computation. 2017;29:1229-1262.
文章精选:
1.编程时代已终结!ClaudeCode创始人断言:编程就像发短信一样自然,首曝个人最新工作流:自创Sloop循环,单日PR达150!传统SaaS护城河崩掉