BRAIN / BRAIN × AI20 SEP 2026
脑科学与AI88|反向传播:一本倒着算的账,给几千亿个旋钮各指一个方向
小明哥问:说大模型"用反向传播,先算出最后错了多少,再把误差精确分给每一个参数",这是什么意思?他特意划出两句要我讲细:精确在哪?为什么了不起?这一篇就讲这两件事。
反向传播做的事是:先让模型做一道题,对照答案算出错了多少;再从最后一层往回算,给每一个参数算出一个数——"你往上拧一点点,错误会变大还是变小、变多少";然后所有参数一起朝"错误变小"的方向拧一小下。它的"精确",是算出每个旋钮此刻该往哪拧、拧多猛,不是判定"这个错是谁犯的"。它的了不起,是倒着算一遍,就同时给几千亿个旋钮各指了方向,代价只比正着算一遍多两倍左右。
2个旋钮 01 手算一遍 |
约3倍 02 训练比预测多的计算 |
1986 03 鲁梅尔哈特等论文 |
一台调音台上密密麻麻的旋钮。大模型有几千亿个这样的旋钮,反向传播的作用,是一次告诉每个旋钮"往哪边拧、拧多少"。图片来源:Lukas Blazek / Pexels
反向传播的三步:正着算出答案和错误,倒着算出每个旋钮的调整方向,所有旋钮一起拧一小下。重复几百万次,就是训练。
BRAIN / 01
一、先看一个只有两个旋钮的例子
把大模型缩到最小:只有两个旋钮,一个叫"甲",一个叫"乙"。
—正着算:输入是 2。先乘甲(现在是 3),得到中间结果 6;再乘乙(现在是 0.5),得到输出 3。—对答案:正确答案是 5,输出少了 2。错误的大小,按惯例用"差值平方的一半"来量:2 × 2 ÷ 2 = 2。
BRAIN / 02
二、"精确"精确在哪:倒着把账一层层算回去
靠的是微积分里的"链式法则",说白了就是:一连串的影响,可以一段一段乘起来。
从最后往前算:
—输出对错误的影响:输出现在比答案少 2。输出每多一点点,错误就减少大约 2 倍那么多。记作"-2"。—乙对输出的影响:输出 = 中间结果 × 乙,中间结果是 6,所以乙每多一点点,输出就多 6 倍那么多。—乙对错误的影响:把两段乘起来,-2 × 6 = -12。意思是:乙往上拧一点点,错误会以 12 倍的速度下降。乙该往上拧,而且很该拧。—再往前一层,中间结果对错误的影响:中间结果每多一点点,输出多 0.5 倍(因为乘的是乙 = 0.5),所以是 -2 × 0.5 = -1。—甲对错误的影响:中间结果 = 输入 × 甲,输入是 2,所以 -1 × 2 = -2。甲也该往上拧,但没有乙那么急。
这就是"把误差精确分给每一个参数":每个旋钮都拿到一个数,正负号告诉它往哪边拧,大小告诉它此刻有多敏感。这些数是算出来的,不靠猜。
但要注意它算的是什么。它算的是"在现在这个位置,往哪边动一点点最有用",就像站在山坡上,脚下哪边最陡。它不是在判"这个错是乙犯的、乙负主要责任"。到了别的位置,坡度就不一样了。
BRAIN / 03
三、为什么每次只敢拧一小下
接着上面的例子,看两种拧法:
—小步走:每个旋钮按自己的数拧百分之一。乙从 0.5 变成 0.62,甲从 3 变成 3.02。重新算一遍:输出变成约 3.74,错误从 2 降到约 0.79。变好了。—大步走:每个旋钮拧十分之一。乙变成 1.7,甲变成 3.2。重新算:输出变成 10.88,冲过头了,错误从 2 涨到约 17。反而更糟。
原因就在上一节那句话:坡度只在脚下这一点准。走一小步,坡度还差不多;走一大步,地形早变了,你还按原来的坡度冲,就会冲过头。所以训练时有一个关键设定叫"学习率",就是每次拧多大。训练大模型时很多麻烦,都出在这个"步子"的大小上。
BRAIN / 04
四、为什么这件事了不起
—笨办法试不完。最直接的办法是一个一个试:把一个旋钮拧一点,整个模型重算一遍,看错误变没变。一个有一千亿个参数的模型,每走一步就要重算一千亿次,永远训不完。—反向传播倒着算一遍就够。正着算一遍得到答案,再倒着算一遍,所有参数的方向和力度同时出来。按常用的估算,训练时每处理一个字的计算量,大约是只做预测时的三倍:正着算一份,倒着算两份。一千亿次和三倍,差的是天文数字。—所以大模型训得出来,全靠这一招。它的思路 1970 年前后就有人提出过,1986 年鲁梅尔哈特、辛顿、威廉姆斯在《自然》上发表的论文让它在神经网络里流行起来。今天所有大模型,训练时都在一遍遍重复这本"倒着算的账"。
还有一个前提:这本账要算得通,每一步都必须是平滑的、能算出坡度的。第 32 篇讲过,类脑芯片上的神经元要么放电、要么不放,是一串跳变,在跳的地方算不出坡度,反向传播就用不上。
BRAIN / 05
五、大脑多半做不到这一点
—拿不到那本账。反向传播要求每个连接都知道"最后错了多少,经过后面每一层传回来,分到我头上是多少"。大脑里一个突触只知道自己两头的神经元在干什么,没有一条通道把这本精确的账一层层传回来。—还有一个"对称"难题。严格的反向传播要求,往回传账时用的连接强度,和往前传信号时用的完全一样。大脑里往前和往回是两套不同的连接,没理由正好对得上。2016 年利利克拉普等人发现了一件意外的事:往回传时用随机的连接强度,网络照样能学会,前向连接会自己慢慢"对齐"过去。这说明大脑不一定需要严格对称,但它到底用的是哪种办法,还没定论。—大脑手里的工具是另外几样:第 62 篇讲的"一起放电的连得更紧",只看身边;第 55 篇讲的多巴胺,向一大片区域广播"刚才比预期好还是差"。这些都是局部的、或者很粗的信号,没有一本按人头分好的账。—所以这是一道公认的难题。2020 年利利克拉普、辛顿等人在《自然·神经科学评论》上写过一篇综述,题目就叫《反向传播与大脑》,讨论大脑可能用什么方式近似地做到这件事。答案目前还没有。
BRAIN / 06
六、对我们有什么用
—"精确"两个字要读准。反向传播精确的是"此刻往哪拧",不是"谁该负责"。看到"AI 能精确归因"之类的说法,先问清楚它精确的到底是哪一种。—步子大小比方向更常出事。方向算对了,步子太大照样冲过头。这条在模型之外也成立:判断对了方向,调整的幅度也要小步、多次、每次重新看一眼地形。
BRAIN / 07
七、边界
—文中的两个旋钮例子是为了讲清楚而极度简化的,真实模型的参数之间互相牵连,地形复杂得多。—"训练约是预测的三倍"是常用的粗略估算,不同模型、不同实现有出入。—大脑部分是对照:大脑做不到严格的反向传播,这一点比较有共识;它用什么办法近似,还在研究。
BRAIN / 08
八、自测:合上文章回答
—用两个旋钮的例子,说出乙为什么拿到 -12、甲为什么拿到 -2。—大脑为什么多半做不到严格的反向传播?举两条理由。
BRAIN / 09
九、三行,留着复习
```
做什么 正着算出错多少,倒着用链式法则把账一层层乘回去,每个参数拿到"往哪拧、多敏感"的一个数
精确在哪 精确的是此刻脚下的坡度,不是谁该负责;坡度只在脚下准,所以每次只拧一小步,步子大了会冲过头
为什么了不起 一个个试要重算上千亿次,倒着算一遍只多两倍左右;大脑拿不到这本账,靠局部规则和多巴胺广播
```