如果要评选出整个人工智能史上
最被低估、被嘲笑、又最终逆袭的算法
反向传播
一定值得一个第一。
Backpropagation。
简称 Backprop。
2024 年 10 月,诺贝尔物理学奖颁给了辛顿(Geoffrey Hinton)。
颁奖委员会说,他的工作「为今天的机器学习革命奠定了基础」。
那一天,全世界 AI 圈刷屏了。
但很少有人知道,辛顿最重要的贡献之一,是一个在 1986 年发表的算法。
那个算法在发表之后,被主流学术界冷落了将近二十年。
很多人说,这条路走不通。
辛顿一个人撑着,撑过了整个冬天。
我们现在每天用的 ChatGPT、Claude、DeepSeek...
每一个神经网络,每一次模型训练,
背后都在运行这个算法。
这就是反向传播。
要理解反向传播,先要理解一件事:
神经网络是怎么「学习」的。
一个神经网络,里面有成千上万个参数。
你可以把每个参数想象成一个旋钮。
旋钮拧到不同的位置,网络对同一张图片、同一段文字,会给出不同的判断。
训练的目标,就是找到所有旋钮的最佳位置。
让网络看到猫的图片,就说「这是猫」。
看到狗的图片,就说「这是狗」。
如果你读过上一篇讲 transformer 的文章只用小学数学带你读懂AI封神论文《Attention Is All You Need》,这些旋钮你其实已经见过了。
那 8 组多头注意力的权重矩阵(Wq、Wk、Wv),是旋钮。
每一层前馈网络把向量从 512 维升到 2048 维、再压回来用的那些系数,是旋钮。
6 层 Encoder、6 层 Decoder,每一层都有自己的一套旋钮。
GPT-3 的 1750 亿个参数,说的就是这 1750 亿个旋钮。
每一个,都需要被调到正确的位置。
那么问题来了,
一个稍微复杂点的网络,旋钮数量轻松达到几百万个。
怎么知道每个旋钮该往哪个方向拧,拧多少
靠猜,不可能。
靠穷举,更不现实。
这就是反向传播要解决的问题。
我们先回到 1943 年
那一年,神经科学家麦卡洛克和数学家皮茨,发表了一篇论文。
他们说:
人类大脑里的神经元,其实可以用数学来模拟。
一个神经元接收信号,超过某个阈值,就激活,把信号传给下一个神经元。
这个想法震惊了所有人。
人们第一次觉得,「思维」这件事,也许可以用机器来做。
到了 1950 年代,感知机出现了。
这是最早的「神经网络」——只有一层,只能做最简单的分类。
整个学界都在为此鼓掌。
有人放话,再过十年,机器就能模拟人类大脑了。
然后现实给了一巴掌。
1969 年,明斯基(Minsky)和帕伯特(Papert)出了一本书,用数学证明,单层感知机连「异或」这种最简单的逻辑都做不了。
整个领域的热情,被狠狠地浇了一盆冷水。
这就是第一次 AI 寒冬的开始。
辛顿却是在寒冬里入行的。
1970 年代,他在剑桥读心理学,然后转向 AI。
那个时代,几乎没有人愿意研究神经网络。
主流的学术界在搞「符号 AI」——用规则,用逻辑,用人类写的知识库来做智能。
神经网络被认为是死路。
辛顿不信。
他有一个直觉,大脑不是靠规则运转的,它是靠连接,靠权重,靠经验学出来的。
他想找到一种方法,让多层的神经网络也能学习。
问题卡在一件事上:
怎么告诉网络里每一层、每一个神经元,它在这次错误里,要负多少责任
这个问题,难在哪里
难在神经网络是分层的。
输入进来,一层一层往前传,最后输出一个结果。
结果出来了,对比标准答案,能知道「整体错了多少」。
但具体是哪一层的哪个旋钮拧错了
没有直接的答案。
就像一家公司今年亏损了,你知道总亏了多少钱,但你不知道到底是销售部门的问题,还是产品部门的问题,还是财务部门的问题。
责任要怎么分
接下来的内容有点干,我们先喝口水...
1986 年,辛顿和两位合作者鲁梅尔哈特(Rumelhart)、威廉姆斯(Williams),发表了这篇论文。
题目很朴素:
Learning representations by back-propagating errors
通过反向传播误差来学习表示。
核心思想就藏在这个题目里。
既然误差是从最后一层产生的,那就把误差从最后一层,往回传。
一层一层往回算,每一层都分到自己应该承担的那一份责任。
然后每个旋钮,根据自己分到的责任,微微调整一下方向。
这个过程,重复几万次,几十万次,几百万次。
网络就慢慢学会了。
我们用一个具体的例子走一遍。
假设网络的任务,是判断一张图片里是不是猫。
网络看了一张猫的图片,输出了 0.2。
意思是「我认为这张图片是猫的概率是 20%」。
但正确答案是 1,这就是猫,100% 确定。
误差是 0.8。
方向错了,而且错得很多。
第一步,正向传播。
图片从输入层进来,经过一层一层的神经元,最后到输出层,得到 0.2 这个结果。
这是正向的过程,信息从前往后流。
第二步,计算误差。
拿 0.2 和 1 做对比,误差是 0.8。
这个误差,就是接下来要往回传的信号。
第三步,反向传播。
误差从输出层开始,往回走。
走到最后一层,每个神经元分到一份:「你在这次错误里,贡献了多少」
这个分配,靠的是微积分里的「链式法则」。
不用害怕这四个字,我们继续用旋钮来理解:
某个旋钮,如果它往右拧一点,输出就会往 1 靠近——说明它拧少了,下次要往右再拧一点。
某个旋钮,如果它往右拧一点,输出反而离 1 更远——说明方向拧错了,下次要往左拧。
每个旋钮,都得到了自己的「调整方向」和「调整幅度」。
这个调整的过程,有一个专门的名字,就是 梯度下降。
Gradient Descent。
「梯度」是方向,「下降」是让误差变小。
可以这么想象
你在一片有山有谷的地形上,蒙着眼睛,想走到最低的谷底。
没法看到全局地图,只能感受脚下的坡度。
哪边低,就往哪边走一小步。
走一步,再感受,再走一小步。
一步一步,慢慢走向谷底。
谷底,就是误差最小的地方。
就是网络「学对了」的地方。
反向传播,就是告诉网络每一步该往哪个方向走的那只手。
到这里,我们可能会问:
这个思路听起来不难啊,为什么当时没人想到
其实想到的人不少。
反向传播的数学原理,早在 1960 年代就有人研究过了。
但当时没人觉得有用。
因为没有足够快的计算机,没有足够多的数据,理论上可行,实践上跑不动。
更重要的是,主流学界不信这条路。
1986 年论文发表之后,辛顿等了很久,没有等来掌声。
1990 年代,支持向量机(SVM)出现了。
那是一种更「数学」的机器学习方法,理论优雅,可解释,而且当时效果也不错。
整个学界转向了 SVM。
神经网络,再一次被冷落。
有人直接嘲讽辛顿,说他在浪费时间。
有人说,神经网络永远不可能超过 SVM。
辛顿在加拿大的办公室里,继续他的研究。
一个人带着几个学生。
没有大公司的资助,没有顶级期刊的热情。
就这样撑过了整个 1990 年代,撑过了 2000 年代的大半。
转折点在 2012 年。
那一年,辛顿带着两个学生,克里日夫斯基(Alex Krizhevsky)和伊利亚(Ilya Sutskever),
参加了一个叫 ImageNet 的图像识别竞赛。
他们用的模型叫 AlexNet。
结果出来,所有人都愣住了。
AlexNet 的错误率,比第二名低了将近 11 个百分点。
这不是小赢。
这是碾压。
整个计算机视觉领域在那一晚上改变了方向。
AlexNet 的核心,就是深层神经网络加反向传播。
就是辛顿坚持了二十六年的那条路。
这两个学生里,有一个人你一定听说过。
就是伊利亚·苏茨克维尔
他从俄罗斯移民到以色列,又从以色列移民到加拿大。
16 岁那年,他转学到多伦多,在高中只读了一个月,因为成绩太好被大学提前录取了。
进了多伦多大学之后,他听说有一位教授在研究神经网络。
所有人都说那是一条死路。
但伊利亚好奇,他直接敲开了那位教授的办公室门,问能不能加入实验室。
那位教授,就是辛顿。
两个人就这样走到了一起。
AlexNet 之后,他们三人成立了一家公司,叫 DNNresearch。
公司只有三个人,没有产品,没有收入,没有任何业务。
辛顿去问律师,这家公司怎样才能卖出最高价
他们决定不卖给任何一家,而是拍卖。
Google、微软、DeepMind,几家公司同时竞标。
最后 Google 以 4400 万美元拿下了这家三人公司。
伊利亚去了 Google Brain。
2015 年底,一个叫奥特曼(Sam Altman)的人想创立一家公司,就是 OpenAI。
他开出了条件,想把伊利亚从 Google 挖过来。
伊利亚犹豫了很久,因为 Google 当时是全世界最好的 AI 研究平台,待遇优厚,资源无限。
后来马斯克在采访里说:
「伊利亚来回反复了好几次,说要加入,又被 DeepMind 的人说服留下。就这样来回好几次,最终他决定加入 OpenAI。」
「伊利亚的加入,是 OpenAI 最终成功的关键。」
加入之后,伊利亚成为 OpenAI 的首席科学家。
他做的第一件事,是提出了一个当时所有人都觉得太激进的信念:
把模型做大,能力就会涌现出来。
没有人教 GPT-3 做推理,但当参数到了 1750 亿,它自己会了。
没有人教它写代码,但它学会了。
这里我们做一个小小的预告,涌现会出现在之后的文章中。
GPT-1、GPT-2、GPT-3、GPT-4,一路推进,一路让人瞠目结舌。
2022 年 11 月,ChatGPT 上线。
72 小时,100 万用户。
两个月,1 亿用户。
人类历史上增长最快的消费级产品。
伊利亚,那个16岁在多伦多高中只读了一个月就进了大学、然后敲开辛顿办公室门的孩子,是 ChatGPT 最核心的架构师之一。
辛顿,就是他的老师。
而反向传播,是这一切的根基。
现在我们知道了,到底什么是反向传播。
它不只是一个算法。
它是让所有神经网络能「学习」的根本机制。
没有反向传播,神经元再多,也只是一堆死数字,不会进化,不会迭代。
有了反向传播,每一次犯错,都变成了下一次进步的基础。
ChatGPT 训练了多少次反向传播
没有公开数字。
但可以参考的是,GPT-3 训练时处理了大约 3000 亿个 token。
每处理一批数据,就做一次反向传播。
每次反向传播,1750 亿个参数,每一个都被微微调整了一下。
我们每次跟 AI 的对话,背后都是无数次这样的调整。
一个小彩蛋。
反向传播这个想法,其实最早出现在 1970 年一位芬兰数学家林纳因马(Seppo Linnainmaa)的硕士论文里。
不是辛顿。
但那篇论文写的是数值分析,和神经网络没什么关系,也没什么人引用。
后来又有几个人独立发现了类似的方法,时间都早于 1986 年。
所以严格来说,反向传播不是被「发明」的,它是被「发现」的——而且被好几个人独立发现了好几次。
真正的贡献,是辛顿看到了它对神经网络的价值,并且花了二十年,让全世界也看到了这件事。
2024 年 10 月 8 日,凌晨两点。
辛顿在加州的一家酒店里睡觉。
手机屏幕亮了,是一个他不认识的国际号码。
接通对方是瑞典口音。
「您是辛顿吗?」
「您获得了 2024 年诺贝尔物理学奖。」
辛顿后来说,他的第一反应是:
「等等,我不是做物理的。这有可能是个骗局。」
他在那通电话里说了四个字:
「I'm flabbergasted.」
我目瞪口呆。
一个在 90 年代被人说在「浪费时间」的研究者。
一个带着学生在多伦多的办公室里撑过整个寒冬的老头。
一个从剑桥读心理学、转行 AI、几十年默默无闻的固执的人。
接到了诺贝尔委员会的电话,第一反应不是喜悦,而是:
这是真的吗?
颁奖典礼上,有人问他对年轻研究者有什么建议。
他想了想,说:
「如果你有一个想法,它和所有人的想法不一样,但你觉得它是对的
不要放弃,直到你自己弄清楚它到底哪里错了。
大多数时候,你是错的。但极少数时候,你是对的。
你永远不会知道哪种情况,除非你一直坚持下去。」
我很擅长忽略别人说的话
反向传播,用了二十年,才等到被相信。
辛顿,用了四十年,才等到被承认。
但训练模型的错误一次一次往回传,那些旋钮一点一点被调整的过程,从来没有停过。
这就是反向传播,辛顿的故事。
从上一篇 transformer 到反向传播,相信你又对 AI 又有了一点新的了解。
希望这篇文章能对你有一点点帮助
以上,既然看到这里了,如果觉得不错,随手点个赞、在看、转发三连吧,如果想第一时间收到推送,也可以给我个星标⭐
谢谢你看我的文章,我们,下次再见。
>/作者:AI真人感