苦涩的教训:AI 七十年反复验证的一条规律
原作者: Richard S. Sutton
原文标题: The Bitter Lesson
原文发布日期: 2019 年 3 月 13 日
原文出处: Richard Sutton 的个人网站 Incomplete Ideas
原文链接: https://www.cs.utexas.edu/~eunsol/courses/data/bitter_lesson.pdf
附件链接: bitter_lesson.pdf说明: 本文根据 Richard Sutton 的原文整理并翻译。为了让中文读起来更自然,部分句式和段落结构结合中文语境做了调整,并加入了少量背景说明与个人理解;核心论点、例子与推理顺序尽量保持与原文一致。
2019 年,强化学习研究者 Richard Sutton 写下了一篇很短的文章,回顾人工智能七十年的发展。他看到的规律并不复杂:从长期看,真正带来突破的往往不是研究者写入系统的领域知识,而是那些能不断利用更多计算资源的通用方法。
这就是所谓的“苦涩教训”。它之所以苦涩,不是因为计算没有技术含量,而是因为历史一次次表明:研究者精心总结的人类知识,常常会输给看上去不那么聪明的搜索和学习。
文章讲了什么
- 人工知识通常能带来短期收益,但也容易限制方法的扩展上限。
- 搜索和学习可以随着计算资源增长而持续改进,因此更可能在长期胜出。
- 与其把我们已经发现的规律交给机器,不如设计一种让机器自行发现规律的方法。
Sutton 并不是在说“算力大于一切”,也不是主张抛弃算法设计。更准确地说,他要求我们换一个时间尺度看问题:一个方法今天领先几个百分点固然重要,但更值得问的是,当计算量增加十倍、百倍以后,它还能否继续受益。
正文
七十年人工智能研究留下的经验
回顾人工智能七十年的发展,可以看到一条最重要的经验:能够有效利用计算资源的通用方法,最终往往表现最好,而且优势可能非常大。
原因在于,单位计算成本会持续下降,可用的计算资源则会不断增加。许多研究却默认计算量不会变化。在固定的资源条件下,研究者想要提高性能,最直接的办法就是利用已有的领域知识:理解问题的结构,再把这种理解写进系统。
这种做法在短期内经常奏效。问题是,研究项目结束后,计算资源仍会继续增长。几年之后,当可用算力远超系统设计之初,能够吸收新增计算的方法便会取得更大的进步。
原则上,利用人类知识和利用计算并不冲突。实践中,两者却容易相互牵制。研究者投入越多精力构造领域知识,就越少关注通用方法;有些精巧的人为结构还会妨碍系统利用更多计算。人工智能的发展史已经多次出现这种情况。
国际象棋:被称为“暴力”的搜索赢了
计算机国际象棋是最典型的例子之一。1997 年,计算机击败世界冠军 Garry Kasparov,决定胜负的是大规模、深层次的搜索。
这让不少研究计算机象棋的人感到失望。此前,他们花了很长时间研究人类棋手如何理解棋局:怎样判断局面,哪些模式值得优先考虑,又该如何避开那些看起来没有意义的分支。他们希望计算机像人一样下棋。
最后获胜的系统却主要依靠搜索,并用专门的软硬件把搜索规模推到新的高度。有人把它称为“暴力搜索”,认为这种方法不够优雅,也算不上真正的智能,因为人类棋手并不这样思考。
但比赛结果不在意研究者的审美。只要搜索能够继续扩大规模,人类总结的棋类知识就很难成为决定胜负的因素。
围棋:二十年后重演
围棋几乎重复了同一个过程,只是晚了大约二十年。
围棋的搜索空间极大,早期研究者因此投入大量精力研究棋形、局部结构和局势判断,希望借助人类知识减少搜索。这些工作并非毫无价值,但当大规模搜索真正变得可行后,许多用于绕开搜索的设计很快失去了原有的重要性。
围棋的突破还依赖自我对弈。系统通过对弈产生经验、学习价值函数,不必完全依靠人类告诉它如何评价一个局面。
在 Sutton 看来,搜索与学习之所以重要,是因为二者都能把更多计算转化为更强的能力:计算越多,搜索可以更深,经验可以更多,价值估计也可以更准确。围棋最终留下了与国际象棋相同的教训:真正的跃迁发生在研究者不再设法绕开搜索,而是开始认真利用搜索和学习之后。
语音识别:统计方法取代手工知识
语音识别也经历过类似的变化。
20 世纪 70 年代,DARPA 组织过早期语音识别系统的竞争。一类系统大量采用人类知识,包括词汇、音素、声道结构和语言学假设;另一类系统更依赖统计与计算,其中就包括后来影响深远的隐马尔可夫模型(HMM)。最终占据主导地位的是后者。
此后的自然语言处理也沿着这条路线发展:统计和计算越来越重要,人工规则逐渐退到次要位置。深度学习又把这个过程向前推进了一步。它减少了对人工特征的依赖,使用更多数据和计算,最终显著改善了语音识别性能。
研究者总想让系统按照自己理解的方式工作。这种冲动很自然,但当计算规模真正扩大后,被写入系统的人类理解有时反而会成为负担。
计算机视觉:让表示从数据中学出来
早期计算机视觉研究显式设计了大量结构和特征,例如边缘、广义圆柱和 SIFT。它们背后有一个共同思路:既然人类认为视觉系统应当先识别某些结构,那就把这些结构直接设计进去。
深度神经网络改变了这条路线。研究者仍会提供卷积、不变性等较为通用的机制,但大量具体表示改由网络从数据中学习。最终,这类方法的性能远远超过了依赖手工特征的系统。
Sutton 并不是在否定早期研究的价值。他在意的是,类似的转变已经出现了很多次,研究者却仍会回到同一种思路:把自己对问题的理解直接写进系统。
为什么称它为“苦涩教训”
把领域知识写入 AI,往往能很快看到效果。对研究者来说,这也很有吸引力:系统性能提高,似乎证明了自己确实理解这个问题。
但这类方法常常会逐渐进入平台期。随后,另一条路线开始占据优势:它不再堆叠越来越复杂的人工规则,而是借助搜索和学习,把更多计算转化为性能。新的突破由此出现。
最后胜出的,往往不是研究者最欣赏的方案。我们希望机器按照人类理解世界的方式获得智能,也希望自己发现的知识成为智能不可缺少的一部分。历史给出的回答却没有那么令人满意:我们最该交给机器的,也许不是已经发现了什么,而是怎样继续发现。
第一条教训:寻找可以持续扩展的方法
Sutton 的第一条教训,是重视通用方法的力量。
一种方法的长期价值,不只取决于它在当前资源条件下的表现,还取决于计算资源增长后能否继续进步。目前看来,搜索和学习尤其具备这种性质。它们可以把新增计算转化为更大的搜索空间、更多经验和更准确的近似。
因此,评价一个 AI 方法时,不能只比较固定计算预算下的结果,还要问:如果未来的计算资源再增加几个数量级,它能否真正利用这些资源?这可能比眼前几个百分点的提升更重要。
第二条教训:不要设计“心智的内容”
Sutton 的第二条教训更深,也更容易被忽略。
真实世界的复杂性几乎无法穷尽。空间、物体、对称性以及多个智能体之间的关系,都可以被总结成某种概念,再做成精巧的表示。但这样的概念没有尽头。若不断把已知的世界结构写入 AI,最终会变成一项无法完成的工程。
另一种思路是:不要预先规定复杂性的具体内容,而要设计能够发现和捕捉复杂性的元方法。
AI 当然需要形成对世界的有效近似,但这种近似具体是什么,不应主要由研究者预先决定。发现近似的过程,本身就应由算法完成。我们想要的是能够发现规律的机器,而不是一台装满人类现有结论的机器。
我的理解:Sutton 反对的不是知识,而是过早固化知识
我更愿意把 The Bitter Lesson 看成一篇讨论研究时间尺度的文章。
在几个月的研究周期里,加入一个 heuristic、一组 feature 或几条领域规则,往往能迅速改善 benchmark 结果。论文评价的也是眼前这次实验。但 Sutton 讨论的是十年乃至几十年的变化。在这样的尺度上,方法能否继续利用更多数据、计算和交互经验,往往比当前领先多少更重要。
这也解释了为什么一些起初显得笨拙的方法最后会赢。它们未必在今天最有效,却可能拥有更长的增长曲线。
不过,The Bitter Lesson 也不该变成一句新的口号。把它理解成“领域知识无用,只要堆数据和算力”同样草率。任何机器学习系统都有 inductive bias。Transformer 是人为选择的架构,训练目标、优化器、数据分布、反馈信号和评价标准也都需要设计。
真正需要避免的,是过早把任务的最终解法硬编码进系统。人类知识更适合用来设计学习机制、搜索空间、反馈信号和安全边界,而不是替模型规定世界必须如何被理解。
今天的大模型为 Sutton 的判断提供了有力证据,但远不是终点。Scaling 不是“停止思考,增加算力”。模型架构、训练方法和系统基础设施仍决定着计算能否真正转化为能力。更实用的问题始终是:我们加入的结构是在帮助系统学习,还是在替系统决定答案,并最终限制它继续扩展?
这篇文章最值得留下的,也许就是这个追问。
参考
- Richard S. Sutton, The Bitter Lesson, March 13, 2019.
- 原文镜像:The Bitter Lesson(PDF)