痛苦的教训
Rich Sutton
2019年3月13日
(原文链接: http://www.incompleteideas.net/IncIdeas/BitterLesson.html)
从人工智能研究长达70年的历程中能读到的最大教训是:利用通用方法与计算能力,最终会产生最有效的成果,而且效果差距非常显著。其根本原因在于摩尔定律,或者说更宽泛地讲,是计算单位成本不断呈指数级下降这一长期趋势。大多数人工智能研究都是在假设“智能体可用的计算量保持不变”的前提下开展的(在这种前提下,运用人类知识或许是提升性能的少数途径之一),然而只要时间略微拉长到超出典型研究项目的范围,我们就会发现,海量的额外算力迟早会变得触手可及。研究人员往往会寻求一些能够在短期内见效的改进,于是便尝试让系统尽量利用人类对领域的理解,但从长远来看,真正能产生变革性影响的只有对计算能力的充分利用。这两种途径理论上并不冲突,但在实践中它们往往此消彼长:你在一条路上花的时间,就意味着无法在另一条路上投入同样的精力;并且研究者在某种方法上的投入越大,往往在心理上对另一种方法就越排斥。此外,人类知识导向的方法通常会使系统更加复杂,反而不利于借助通用性方法及不断增长的算力来获得优势。回顾人工智能研究中的诸多案例,都是在历经时间和挫败后才痛苦地体会到这一经验教训,下面一些著名的例子就是明证。
在计算机国际象棋领域,1997年打败卡斯帕罗夫(当时的世界冠军)的方法主要依靠大规模、深度的搜索。那时,绝大多数从事计算机国际象棋研究的人都在利用人类对棋局特殊结构的理解来设计方法,并对这种依赖搜索的方案表现出失望情绪。当一个更简洁的、以硬件和软件支持的搜索为核心的系统大获成功时,那些依赖人类知识的研究者并不甘心接受结果。他们说“暴力搜索”这次赢了,但并不具备普适性,而且这也不是人类下棋的方式。他们希望基于人类经验的手段能够取胜,对结果自然大感失望。
在计算机围棋上,也能看到相似的研究轨迹,只是比国际象棋晚了大约20年。早期研究投入了大量精力,希望利用人类对围棋的理解或游戏本身的特殊性质,来避免进行大规模搜索;但事实证明,一旦搜索在更大规模上被有效应用,这些人类知识导向的努力都变得无关紧要,甚至阻碍了更进一步的进展。另一个至关重要的因素是自对弈学习价值函数(在许多游戏中都用到这一理念,在国际象棋中也有应用,尽管在1997年那场击败世界冠军的程序中,学习并不是主角)。自对弈学习以及泛化的学习,本质上与搜索有相似之处:它们都能大幅扩大可用的计算量。搜索和学习是AI研究中利用海量算力的两大核心手段。在计算机围棋中,就像在国际象棋中一样,研究者们起初想借用人类对棋局的理解来减少搜索需求,而最终取得的重大突破,却来自对搜索和学习的拥抱。
在语音识别领域,早在上世纪70年代,DARPA曾举办过一次竞赛。参赛者中有很多基于人类知识的特定方法——比如利用对单词、音素和人类声道结构的理解;另一边则是更多依赖统计和大规模计算的隐马尔可夫模型(HMM)类方法。结果再次证明,基于统计与计算的方法胜过了那些借助大量人类先验知识的算法。这一成果引发了整个自然语言处理领域几十年的变革:统计和计算方法逐渐占据主导地位。近年来,深度学习在语音识别方面的崛起则延续并加速了这一趋势。深度学习依赖更少的人类先验知识,借助更强的计算能力和海量的训练数据,使得语音识别的性能出现了质的飞跃。与之前的案例类似,研究者总是试图让系统模仿他们所认为的人类大脑工作方式,并将这些知识硬编码进去,但事实证明,当摩尔定律使得算力充沛,并且研究者找到合适的算法来利用这种算力时,这种大量依赖人工先验知识的做法不仅没能带来长远收益,反而浪费了研究者大量时间。
在计算机视觉中,也能观察到类似历程。早期的方法曾设想用边缘检测、通用圆柱体或SIFT特征来解决视觉问题,但如今这些方案都被抛弃。现代的深度学习卷积神经网络基本只保留了卷积操作和特定类型的不变性假设,其性能却远远胜过旧方案。
这就是一个巨大的教训。遗憾的是,我们作为一个领域,至今仍未完全吸取这个教训——我们依然在重复同样的错误。想要看清这一点,并有效地避免错误,我们必须理解这种错误为何如此诱人。我们必须深刻体会这个痛苦的教训:试图将我们自身对思维的理解直接内置到系统里,最终是行不通的。而这一教训之所以“痛苦”,正是因为历史一再告诉我们:1)AI研究者经常想把自己的知识注入智能体;2)在短期内,这往往确实有所帮助,也能让研究者颇有成就感;3)但在长远来看,此路会走到瓶颈甚至阻碍更深层次的进展;4)真正的突破往往来自与此截然相反、依靠大规模搜索和学习来持续扩展算力的方案。当这类对手法最终取得成功时,研究者会很难受,因为他们倾向的人类中心范式被超越了,而且往往也无法完全反思这背后的更深原理。
从这个痛苦的教训中,我们首先要认识到通用方法的强大威力——那些能在算力不断增强时依旧可持续扩展的方法。搜索和学习恰恰是到目前为止最重要、可无限扩展的两种路径。
其次,我们还要认识到人类思维的内容本身极其复杂,以致无法被简洁地归纳或先验地内置。我们应当放弃对诸如空间、物体、多智能体或对称性的简单先验表述。这些概念都是外部世界固有的、任意的、并且有着无穷无尽的复杂性。我们不该将它们硬编码进系统;我们真正需要做的是构建能够自主发现、提炼、捕捉这些复杂度的“元方法”。而这些元方法至关重要的一点在于,它们能够找到好的近似方案,而不是让研究者去直接写下或提供这些方案。我们希望AI像人类那样自行发现知识,而不是事先装着我们所发现的知识。把我们已知的知识硬编码进去,只会更难让我们看清:系统自身的“发现”过程究竟是如何完成的。