跳到主内容

什么是反向传播?AI 是怎么「知道自己错在哪」的

2026-10-06 发布 来源:我告诉你AI导航 阅读

模型输出错了,但问题出在几亿个参数里的哪几个?这就是反向传播要解决的问题:它先从最终的错误出发,逐层算出每个参数"负多少责任",再由梯度下降按责任大小微调参数。理解它,就理解了 AI 训练的基本节奏。

模型输出错了,但问题出在几亿个参数里的哪几个?这就是反向传播要解决的问题:它先从最终的错误出发,逐层算出每个参数"负多少责任",再由梯度下降按责任大小微调参数。理解它,就理解了 AI 训练的基本节奏。

它要解决的问题:错在哪,谁的责任

训练开始前,网络里的参数是随机的,输出基本是乱的。给它一个输入,它给出预测;预测和标准答案一比,得出一个错误值。错误本身是个总数,但参数有几亿个——不改总数,改什么、改多少,必须有个分法。

反向传播就是这个分法。它的任务一句话能说清:把最终的错误按贡献拆到每个参数头上。没有这一步,训练无从下手。

一轮训练里发生了什么

一次训练轮次分三步。先做前向传播:输入数据进入网络,从靠近输入端的一侧逐层流向输出端,每层做一次加权求和加非线性变换,最后吐出一个预测。进来的是输入,发生的是逐层计算,出去的是一个结果。

再算损失:把预测和标准答案交给损失函数,得出一个数,衡量这次错得有多离谱。这个数是后面所有调整的源头。

最后是反向传播加更新:从损失出发往回走,逐层算出每个参数的梯度——也就是"这个参数往某方向动一点,错误会升还是降";然后梯度下降按梯度方向把每个参数挪一小步,步长由学习率控制。一轮结束,进入下一轮。

链式法则:误差怎么一层层传回去

为什么能"逐层"算责任?靠的是链式法则。可以这么类比:一条流水线出了次品,从最后一道工序往回查,看每道工序各自贡献了多少偏差——最后一层的误差,等于它上一层的输出乘以它自己的系数,责任沿着这条乘积链一路分回去。

类比到此为止。回到机制本身:误差沿着每层的乘积链往回传,传到某一层,就知道这一层的输出对最终错误"贡献"了多少,再据此算出该层每个参数的调整方向。反向传播负责算方向和大小,梯度下降负责真的去调——一个算,一个走,循环往复。

这也是为什么"训练一轮"不够:一轮只走一小步,模型要经过成千上万轮才收敛到可用的状态。还有一个常见误解要澄清:反向传播不是笼统地"把错误告诉每一层",它精确到每个参数,是具体的一个数;网络的深浅不影响这套方法的适用性,多深多复杂都能算。

环节这一步在做什么常见误解
前向传播输入逐层计算,输出一个预测以为一次前向就能定对错
损失函数把预测和答案换算成一个错误值以为错误值能直接指出哪个参数错
反向传播用链式法则把误差拆到每个参数以为是笼统地"通知每一层"
参数更新按梯度方向挪一小步,步长看学习率以为一步就能调到最优
下一轮用新参数重新前向,循环往复以为一轮训练就能得到可用模型

它的局限与代价

三个代价必须先知道。一,需要可求导:网络结构里出现不能算梯度的环节,这套方法就用不了,这是早期一些网络被冷落的原因之一。二,深层网络有梯度问题:层数太深时,梯度传着传着可能消失或爆炸,训练变得不稳定,这是深层网络早期难训的关键原因。三,内存开销大:反向计算要保存前向时的中间结果,模型一大,显存占用很可观。

还有一层边界:它需要一个可计算的优化目标。监督学习靠标准答案,自监督学习把"预测下一个词"本身当作信号,没有参照,反向传播不知道该把错误分给谁。它优化的是"缩小预测和目标的差距",至于目标定得对不对、数据有没有偏,它不管。相关讨论可以延伸读「微调一次一劳永逸」错在哪和「继续训练越久越好」错在哪。

再补一个流程上的事实:预训练、微调、人类反馈训练,虽然数据来源和信号构造不同,底层的参数更新都依赖这套"算方向—走一步"的机制,「RLHF 就是人类全程盯着」错在哪里讲到的训练阶段也不例外。

反向传播速查

  • 前向:输入进,预测出,逐层计算
  • 损失:一个数,衡量这次错得多少
  • 反向:用链式法则把误差拆到每个参数
  • 更新:梯度下降按方向挪一小步,步长看学习率
  • 一轮 = 一次前向 + 一次反向 + 一次更新,训练是成千上万轮

还没聊到的三个问题

一定要有标准答案吗?监督学习要;自监督学习把"预测下一个词"本身当作信号,答案由数据自己生成。共同点是都要有一个可计算的优化目标,没有目标就没有梯度。

人脑学习也用反向传播吗?没有证据支持这一点。反向传播是工程意义上的计算方法,需要精确知道每层的内部结构才能倒推;大脑的生理结构和学习机制与它不同,把它当"人脑原理"是误读。

学习率为什么不能设大一点,早点训完?步长太大,参数可能在最低点两侧来回跨,甚至越走越远;太小则训练缓慢。常见做法是从小值起步并按计划调整,具体取值以所用框架的官方建议为准。

反馈页面信息

请描述需要更正的地方,页面标题和网址会自动附上。

也可以发邮件至 [email protected]