AI WINTER AND SPRING · CHAPTER 05

连接主义的复活(1986—2012)

反向传播、数据与 GPU 共同推动神经网络复活,并在 2012 年完成关键转折。

一个被埋了二十年的算法

神经网络前向传播与反向传播计算路径示意图
反向传播通过链式法则高效计算各层梯度。Andreas Maier 等;CC BY 4.0。 查看原始资料

1986 年 10 月 9 日,《Nature》杂志刊出一篇七页的论文,标题是《Learning representations by back-propagating errors》(《通过反向传播误差学习表征》)。作者是大卫·鲁梅尔哈特(David Rumelhart)、杰弗里·辛顿(Geoffrey Hinton)和罗纳德·威廉斯(Ronald Williams)。算法本身并不新——反向传播的数学骨架,塞波·林奈马(Seppo Linnainmaa)1970 年在赫尔辛基大学的硕士论文里就描述过反向模式自动微分;保罗·韦尔博斯(Paul Werbos)1974 年在哈佛的博士论文里也写过用误差反向传播训练网络的方法。但它们一篇是芬兰语的数值分析论文,一篇是应用数学的博士论文,都埋在故纸堆里,没几个人知道。

1986 年真正发生的,是一次有效的传播。同一年,鲁梅尔哈特与詹姆斯·麦克莱兰(James McClelland)主编的两卷本《Parallel Distributed Processing》(《并行分布式处理》,简称 PDP)由 MIT Press 出版;第 1 卷第 8 章《Learning Internal Representations by Error Propagation》(《通过误差传播学习内部表征》)是 Nature 那篇短文的完整版,附有 XOR、家族关系等任务的完整推导和实验。算法、教科书、研究小组(PDP Research Group)三者合力,把一个沉睡的算法变成了一代人的共识方法。

为什么这次能成?关键在它解决了一个具体的历史欠账。1969 年,明斯基与帕佩特的《感知机》证明单层感知机学不会 XOR 这类非线性可分问题,把连接主义按了下去。反向传播第一次给出了训练含隐层的多层网络的可行算法——有了隐层,网络就能表达非线性函数,XOR 也就解了。十七年前那张盖下来的盖子,就这样被掀掉了。

第二次冷宫

但连接主义的复活,不是一帆风顺的直线。它刚暖过来,又被冻了一次。

1986 到 1990 年代初是短暂的春天。1989 年,杨立昆(Yann LeCun)在 AT&T 贝尔实验室把反向传播用到一个受约束的卷积网络上——这是第一个卷积神经网络,用来识别手写邮政编码。1998 年,成熟的 LeNet-5 架构被部署到 NCR 的银行支票读取系统,从 1996 年起每天处理数百万张支票,清洁数据上准确率超过 98%。这是一次实打实的商业成功。

可就在 LeNet 印钞票的同时,连接主义又被另一股潮流冲到了边缘:统计学习。1995 年,科尔特斯(Cortes)与瓦普尼克(Vapnik)发表《Support-vector networks》(《支持向量网络》),支持向量机(SVM)登场。SVM 有严格的泛化理论保证(VC 维、最大间隔),在中小数据集上稳健、不易过拟合,还有现成求解器好用——而训练神经网络当时被视作需要"黑魔法"的玄学。SVM 主导了机器学习十余年。同期,布雷曼(Breiman)1984 年的 CART 决策树、2001 年的随机森林、1995 年起步的 KDD 数据挖掘会议,一起构成了"不那么智能但扎实可用"的统计方法阵营,把神经网络挤到了角落。

更深的麻烦在算法内部。1991 年,慕尼黑工业大学的塞普·霍克莱特(Sepp Hochreiter)在他的硕士论文里发现了一个致命问题:梯度消失。当网络变深,误差信号在反向传播经过每一层时指数衰减,到最前面几层时几乎为零——网络根本学不动。约书亚·本吉奥(Yoshua Bengio)1994 年独立分析了同一问题。这解释了一个尴尬的事实:LeNet 在手写数字这种简单任务上极成功,可一旦想扩展到通用物体识别——比如分清一千种不同的物体——网络就深不下去,训不出来。

到 2000 年代中期,很多研究者已经放弃了神经网络。连接主义第二次进了冷宫。

一个女科学家的反直觉下注

然后,转折从一个意想不到的角落来了——不是算法,是数据。

2007 年初,李飞飞(Fei-Fei Li)回到她的母校普林斯顿任教,启动了一个被同行认为古怪的项目。当时整个计算机视觉界都在忙着改进算法;李飞飞的反直觉是:别再死磕算法了,先造一个足够大的标注数据集。 她和同事李凯的判断是,算法的瓶颈不在精巧程度,而在喂给它的数据太少——现有数据集几万张图就到顶了,远远不够。

这个项目叫 ImageNet。它的类别结构基于 WordNet(一个英语词汇层级数据库),最终包含约 1400 万张标注图像、约 21,841 个类别。竞赛用的子集是 1000 类、约 120 万张训练图。规模如此之大的标注工程之所以可行,是因为有 Amazon Mechanical Turk——一个众包平台,让全球成千上万的工人帮忙给图片打标签。没有 Mechanical Turk,1400 万张图的人工成本是任何课题组都承受不了的。

数据造好了,还需要一个舞台让算法来比武。2010 年,ImageNet 大规模视觉识别挑战赛(ILSVRC)开锣,每年一届。评测指标是 top-5 错误率——模型预测的前五个类别里没包含正确答案就算错。

2012 年 9 月 30 日

2012 年的那个秋天,比赛结果出来,整个领域被震了一下。

亚历克斯·克里热夫斯基(Alex Krizhevsky)、伊利亚·苏茨克维(Ilya Sutskever)和他们的导师辛顿——三个人,多伦多大学——提交了一个叫 AlexNet 的卷积网络。它的 top-5 错误率是 15.3%。第二名是 26.2%。差距约 10 个百分点

在 ImageNet 这种一年一届、众目睽睽的竞赛里,第二名和第一名差一两个百分点是常态。差 10 个百分点,不是技术上的进步,是一个量级的断层。AlexNet 用的方法其实不神秘——ReLU 激活函数替代了 sigmoid、dropout 正则化、双 GPU(两块 NVIDIA GTX 580)并行训练、数据增强。但这些方法之所以第一次能奏效,是因为三个条件在 2012 年同时成熟了:GPU 提供的算力、ImageNet 提供的大数据、加上 ReLU/dropout 这些算法技巧。缺一不可。

要理解这次为什么是革命,对比一下 LeNet 就清楚了。LeNet 1989 年就在手写数字上成功了,但杨立昆本人在 1998 年的论文里写道,那种复杂的网络如果放到 1989 年,"会需要几周的训练时间,而且数据远远不够"。算法早就有,但算力和数据都没到。AlexNet 之所以是引爆点,不是因为它发明了卷积神经网络——那是杨立昆的功劳——而是因为它第一次在三要素齐备的条件下,把深度网络推过了一个临界点。

GPU 这条线值得多说一句。2007 年 2 月,NVIDIA 发布 CUDA,让 GPU 第一次能被普通研究者(而非图形学专家)用于通用计算。2009 年,Raina、Madhavan 和吴恩达在 ICML 发表论文,论证 GPU 对深度信念网络的显著加速。第四章结尾那句"四十年后硬件叫 GPU"的伏笔,在这里兑现了——专用硬件的信念没有死,它只是换了一种形态:不再是 Lisp 机那种针对一种语言的整机,而是 GPU 这种针对并行矩阵运算的协处理器,便宜、通用、可大规模集群。

这一次,为什么活下来了

用于通用 GPU 计算的早期 NVIDIA Tesla 计算卡
早期 NVIDIA Tesla 通用计算卡。GPU 的并行计算能力成为深度学习复兴的重要硬件基础。Mahogny;公有领域。 查看原始资料

1986 年的连接主义复活之后又掉进了第二次冷宫。那么 2012 年这一次,会不会又是昙花一现?

不会。因为 2012 年之后立刻出现了一条清晰的、自我加速的曲线。2014 年,牛津的 VGG(19 层)和 Google 的 GoogLeNet/Inception(22 层)把网络更深地推进。2015 年,何恺明等人在微软做出 ResNet——用残差连接(residual connection)给梯度修了一条捷径,让网络能训到 152 层而不退化,top-5 错误率压到 3.57%,首次低于人类水平(约 5%)。残差连接解决的就是当年 Hochreiter 1991 年诊断的那个梯度消失问题——二十四年后,终于被工程化了。

这条曲线是关键的。它意味着深度学习不是靠一个 AlexNet 支撑的孤证,而是一个可复制、可加速、可超越人类的方法论。一旦 ResNet 证明"更深就更好",规模这条路就打开了——而这,正是下一章 Transformer 和基础模型的预演。

不过,在离开 2012 年之前,要诚实地补一句。AlexNet 解决的是感知问题——识别图像里有什么。它没有碰推理语言长程规划这些符号主义当年未能攻克的硬骨头。深度学习在 2012 年的胜利,是连接主义在感知领域的胜利,不是智能问题的终结。把感知做对了,不代表推理也对了。

这个区分,会在第七章 ChatGPT 出场时再次变得尖锐。

(本章史料均经独立核证,详见《第五章-史料核证附录》。)