全书导航
大模型之路:从图灵、感知机到 ChatGPT · 卷 1

第 8 章:反向传播:神经网络的复活火种

本章问题:错误如何变成学习信号?


8.1 1974 年,哈佛教案里躺着一颗种子

1974 年,哈佛大学,一个叫保罗·沃伯斯的社会科学博士生写了一篇很不像社科论文的博士论文。题目叫《超越回归:行为科学中的预测与分析新工具》。这篇论文里藏着一个后来改变了人工智能进程的数学方法。

沃伯斯意识到:如果你有一个由多个函数嵌套组成的系统——而神经网络的每一层就是对一个函数的计算——你可以用微积分中的链式法则,把最外层的误差信号一层一层往内传,算出系统里每一个参数对最终误差"贡献"了多少。

这就是反向传播的核心思想。

沃伯斯把他的方法用来解决社会科学和经济学中的预测问题。他也建议说,这个方法可以用来训练人工神经网络。但他无法让论文被人工智能的主流学术界看到。他尝试发表,被拒。再投,再拒。审稿人说神经网络已经被证明没有前途——明斯基和派珀特 1969 年不是写得很清楚了吗?

十二年后,1986 年——当鲁梅尔哈特、辛顿和威廉姆斯在《自然》杂志发表了他们关于反向传播的论文时,神经网络界沸腾了。这篇论文通过一系列精心设计的实验证明了:多层神经网络不仅可以训练,而且可以学到令人印象深刻的东西——从对称性判断到词族识别。

但他们不是"发明"了反向传播。他们独立重新发现了它。

同样的算法在历史上至少被重新发现了三次:1970 年,芬兰数学家林南马把它作为"自动微分的反向模式"发表了;1974 年,沃伯斯在博士论文中描述它并建议用于神经网络;1985 年,帕克独立推导了它。但每一次都被埋在文献堆里。

1986 年的不一样之处不是数学本身,而是时代终于准备好了


8.2 为什么多层网络一直"不可训练"

要理解反向传播为什么如此重要,需要先理解它解决了什么问题。

前几章我们反复提到的一个困境:单层感知机能力有限——连 XOR 都学不会。多层网络理论上更强大——但没人知道怎么训练它。

为什么多层网络这么难训练?

想象一个三层网络:输入层→隐藏层→输出层。网络接收输入,经过隐藏层处理,输出一个预测。如果预测错了,你知道输出层应该怎么调整——它和正确答案的差距直接可见。但隐藏层呢?隐藏层的输出没有"正确答案"。没有人告诉它:"你这一步应该输出 0.7,但你输出了 0.3。"

这是明斯基和派珀特指出的核心困难,后来被称为"信用分配问题":在一个多层系统中,你如何知道哪个层对最终错误的贡献最大?错误在输出端发生了,但责任需要分配到中间每一步。

没有这个能力,训练多层网络就像管理一个完全哑巴的团队——你知道最终产品有问题,但你看不到每个成员的贡献,所以不知道该告诉谁改进什么。你只能随机调整,祈祷效果变好。

反向传播解决的就是这个问题。它提供了一个精确的数学机制:错误可以沿着网络反向流动,告诉每个参数它应该往哪个方向调整、调多少。


8.3 直觉:错误像水一样流回去

在进入任何数学公式之前,先抓住直觉。

想象一条河从山上流到山下。河有多条支流汇入,最终水量在山脚被测量。如果你在山脚发现水量比预期少了,你可以沿着河流往上追溯,检查每一级支流的水量分配——哪条支流该多供水,哪条支流其实比想象的大——这种"从上往下追溯"的评估,就是反向传播的直觉。

或者换一个比喻:你在一个多人协作的管弦乐队里,最后的演出效果不好。其他成员在终点都听到了不和谐。问题是——哪个乐手走了调?反向传播的做法是:从最后一个音符往回推,按"每个乐手对最终声音的影响力"来分配调整的建议。吹小号的调低一点,拉小提琴的调高一点,各人拿到一个具体的修正量。

在数学上,这个直觉对应的是一个 1600 年代就被发现的微积分工具——链式法则。

链式法则说的是:如果你有一个嵌套函数 f(g(x)),你对 x 求导,等于先对外层 f 求导(代入 g(x) 的值),再乘以对内层 g 求导(代入 x 的值)。

用大白话说:变化会沿着函数链传递,求导就是沿着这条链把变化率拆解到每个环节。

反向传播做的事情,就是把链式法则应用到神经网络上:每一个层的输出都是下一个层的输入,它们形成了一条很长的函数链。最终预测和正确答案之间的差距(误差),可以沿着这条链一层一层往回传——每一层算出自己造成了多少误差,然后往"减少误差"的方向调整自己的参数。

这个思路不是一个"崭新发明"。它是在微积分诞生三个世纪后,终于被正确地应用到了正确的问题上。而中间浪费的这些年,就是一个领域陷入错误方向后沉没成本的最佳注脚。


8.4 最小数学:梯度与链式法则的直觉版本

不需要进入完整的公式推导——但值得看一眼核心概念。

想象一个简单的两层网络,只有两个参数:w₁ 和 w₂。你输入一个样本,网络输出一个数字 ŷ。正确答案是 y。误差就是两者的差距——通常用平方差 (ŷ - y)² 来衡量。

你想让误差变小。怎么变小?

这就是梯度的概念。梯度告诉你:在当前参数值的位置上,哪个方向的调整会让误差减少最快。 如果误差是一个"山谷",梯度就是指坡最陡的地方——沿着这个方向走,最快到达谷底。

对于输出层,求梯度很简单——误差就在它脚底下。对于隐藏层,求梯度需要通过链式法则:隐藏层到输出层的"影响力"× 输出层到误差的"距离"。

写成极简形式:

隐藏层的梯度 = (输出层权重) × (输出层的误差信号)

输出层把误差"传"给隐藏层,隐藏层再传给更前面的层。整件计算是简洁、可编程、并且从数学上保证正确的——只要你的激活函数是光滑的。

这也是为什么感知机只能用阶跃函数(输出 0 或 1),而反向传播需要光滑的激活函数(如 sigmoid):光滑才能求导,求导才能传播梯度。


8.5 1986 年:一根火柴扔进了干柴堆

1986 年《自然》杂志的那篇论文——作者是鲁梅尔哈特、辛顿和威廉姆斯——提供的东西比一个新的数学方法更多。它用大量实验证明了一件之前被认为不可能的事:

多层神经网络是完全可以被训练的。而且它们学到的东西比单层网络强大得多。

这篇论文不只是一个数学证明——它是一场实验秀。论文里展示了一系列令人振奋的学习结果:网络学会了镜像对称的判断,学会了识别英语动词过去式的规则模式,学会了在语义相关的词语之间建立联系。这些任务单独看都不大,但它们共同描绘出一个新模式:网络不只是靠运气记住模式——它似乎在从数据中提取结构。

这个信号在当时的研究界产生了巨大震动。

因为在过去接近二十年里,"神经网络没有前途"已经成为了进入 AI 领域后最先被告知的事情之一。一整代学生被告知:神经网络是个死胡同,单层证明不行,多层没法训练,经费也没有,别浪费时间。

1986 年之后,这个结论不再成立。

人们开始重新思考多层网络的潜力。不是所有批评都被推翻——明斯基和派珀特的数学证明对单层网络仍然是正确的——但"单层网络的局限"不再等同于"所有神经网络的局限"。

火种燃起来了。


8.6 火焰之后:1986 之后发生了什么

反向传播的复兴并没有马上带来 AGI。但它做了一件重要的事:打开了可能性。

在 1986 年以前,从事神经网络研究意味着在一个被主流视为失败的方向上赌博。1986 年以后,它成为一个合法的、有前途的研究方向。

紧接着的几年里,一系列"第一次"开始出现:

1987 年,NETtalk——一个神经网络学会了朗读英文文本,从完全随机的声音开始,逐渐学会了发出有辨识度的词汇。它不是被"编程"来朗读英文的——它从例子中学到了发音规则。

1989 年,杨立昆在贝尔实验室用反向传播训练了一个叫 LeNet 的卷积神经网络,它学会了识别手写邮政编码——后来被美国邮政服务部署,每天读取数百万封信件上的手写数字。从感知机被宣判死亡到神经网络在真实世界中大规模运作,正好二十年。

同年,ALVINN 系统在卡内基·梅隆大学被搭出来——一个用反向传播训练的神经网络,能看着路面图像,自己开车。它在 1990 年代从匹兹堡开到了圣地亚哥,全程 4500 公里中神经网络控制了 98% 的方向盘。

这些成就放在今天看可能不起眼——能读数字、能看路、能发音。但关键不是它们的绝对水平,而是它们全是被训练出来的,不是被编程出来的。它们证明了感知机没有走错路——只是时代条件还没有准备好。

算力不够,数据不够,算法隐匿在文献深处,学术方向被有力的批判锁死。当三个条件分别开始松动时,神经网络就活了。


8.7 本章小实验:追踪一个乘法中的错误分配

这个实验不需要电脑——只需要草稿纸。

假设你经营一家奶茶店。一天的营业额 = 客人数量 × 人均消费。

昨天你预计有 100 个客人,人均消费 20 元,预计营业额 2000 元。 实际结果是:80 个客人,人均消费 15 元,实际营业额 1200 元。

短缺了 800 元。

问题:客人数量和人均消费,各自对这个短缺"贡献"了多少?

一个天真的做法是各打五十大板——每人一半责任,调整 400 元。但这显然不对——因为客人少了 20% 但人均消费少了 25%。

反向传播的思路是:分别算两个因素的"影响力"——

  • 客人数量的"影响力" = 人均消费的实际值 (15 元/人) × 缺口 (20 人) = -300 元
  • 人均消费的"影响力" = 预计客人数 (100 人) × 消费差额 (-5 元/人) = -500 元

总短缺确实等于 -300 + (-500) = -800。

这就是链式法则在这个最简单例子里的运作方式。你沿着"营业额 = 客人 × 人均"这条计算链往回走,把最终误差拆成每个因素自己的那一份。

神经网络的情况完全一样——只是因素不是两个,而是可能有上千万个。但每个因素的"应有调整量",仍然可以用同一个原理算出来。


8.8 本章地图

text
问题:错误如何变成学习信号?方法:反向传播——将误差从输出层沿网络层层回传,利用链式法则为每个参数分配调整量。历史:沃伯斯(1974 博士论文)首次提出但被忽视;1986 年鲁梅尔哈特、辛顿、威廉姆斯独立重新发现并在《自然》杂志发表实验验证。突破:证明了多层神经网络完全可以被训练——打破了自 1969 年以来"神经网络没有前途"的共识。局限:反向传播需要大量数据和算力——这两个条件在 1986 年仍然远不充足。真正的深度学习爆发还要再等二十多年。今天:反向传播和梯度下降仍然是训练所有大模型的核心机制——从 GPT 到 Claude,从图像生成到语音识别。

8.9 本章结语:卷一的终点,种子的发芽

我们用八章的篇幅,走过了人工智能从图灵的大脑实验到反向传播的四十多年。

图灵问了一个问题:机器会思考吗?他把问题从"思考是什么"转为"表现如何测试"。达特茅斯会议的人们给这场探索起了一个名字——人工智能,并相信智能可以通过规则写出来。罗森布拉特不同意——他相信机器应该被训练,不是被编程。他的感知机第一次证明,一台没有预写规则的机器,可以从样本中自己找到规律。

但感知机有硬伤。单层网络学不会最简单的非线性规则。明斯基和派珀特用数学严格证明了这一点,而资助机构误读了证明的范围,把整个神经网络方向判了死刑。

在接下来的二十年里,人工智能走向了另一条路——符号主义。这条路建立在一个优雅的信念上:智能是对符号的操作。专家系统把它推向了商业应用——第一次证明 AI 可以为公司省下真金白银。但规则系统也有自己的天花板:知识写不完、维护太贵、隐性知识无法被规则化。

两轮寒冬来了。资金撤离,媒体转向,研究转入低潮。但寒冬没有杀死一切——冬天里,算法在静默地进步。反向传播这颗种子,在 1974 年被埋进了沃伯斯的论文里,十二年之后被重新发现。它解开了困住感知机的锁:多层网络现在可以被训练了。

卷一的终点不是人工智能的终点。它只是一个阶段性的答案:

智能是不是只能靠"写规则"?不一定。也许机器确实可以从经验中学到东西——只是要等时代。

卷二将进入数据成为老师的故事:从统计学习、特征工程,到互联网、大数据、GPU 和 ImageNet——看看为什么深度学习等到 2010 年代才真正爆发。

SECTION §02 · ENGAGE

Discussion

留言区 · GitHub-powered comments via Giscus