人工智能研究 70 年来最大的教训是,利用计算的通用方法最终是最有效的,而且优势巨大。 究其根本原因在于摩尔定律,或者更确切地说,是其计算单位成本持续呈指数级下降的普遍规律。 大多数人工智能研究都是在假设代理可用的计算力是恒定的情况下进行的(在这样的情况下,利用人类知识将是提高性能的唯一方法之一),但是,在比典型的研究项目稍长的时间内,可用的计算力不可避免地会大幅增加。 为了寻求在短期内有所作为的改进,研究人员试图利用他们对领域的人类知识,但从长远来看,唯一重要的是利用计算。 这两者不必相互冲突,但实际上它们往往会相互冲突。 花费在其中一种方法上的时间就不是花费在另一种方法上的时间。 人们在心理上会承诺投资于一种或另一种方法。 并且,基于人类知识的方法往往会使方法复杂化,使其不太适合利用通用方法来发挥计算能力。 人工智能研究人员迟迟才认识到这个痛苦的教训,这样的例子有很多,回顾一些最突出的例子是很有启发意义的。

在计算机国际象棋领域,1997 年击败世界冠军卡斯帕罗夫的方法是基于大规模、深度搜索的。 当时,大多数计算机国际象棋研究人员对此感到沮丧,他们一直追求的是利用人类对国际象棋特殊结构的理解的方法。 当一种更简单、基于搜索的方法,配合特殊的硬件和软件,被证明更有效时,这些基于人类知识的国际象棋研究人员并不是好的失败者。 他们说“蛮力”搜索这次可能赢了,但这并不是一种通用的策略,而且无论如何这也不是人们下棋的方式。 这些研究人员希望基于人类输入的方法获胜,但当它们没有获胜时感到失望。

在计算机围棋中也看到了类似的研究进展模式,只是延迟了 20 年。 最初,人们付出了巨大的努力来避免搜索,而是利用人类知识或游戏的特殊特征,但是一旦有效地大规模应用搜索,所有这些努力都被证明是无关紧要的,或者更糟。 同样重要的是使用自我对弈学习来学习价值函数(就像在许多其他游戏中甚至在国际象棋中一样,尽管学习在 1997 年首次击败世界冠军的程序中并没有发挥重要作用)。 自我对弈学习以及一般的学习,就像搜索一样,使大规模计算得以应用。 搜索和学习是在人工智能研究中利用大量计算力的两种最重要的技术类别。 在计算机围棋中,就像在计算机国际象棋中一样,研究人员最初的努力方向是利用人类的理解(以便减少搜索需求),而只是在很久之后,通过拥抱搜索和学习才取得了更大的成功。

在语音识别领域,20 世纪 70 年代 DARPA 赞助了一场早期的竞赛。 参赛者包括许多利用人类知识的特殊方法——单词知识、音素知识、人类声道知识等等。 另一方面,是更新的方法,这些方法本质上更具统计性,并且基于隐马尔可夫模型 (HMM),进行了更多的计算。 同样,统计方法胜过了基于人类知识的方法。 这导致了所有自然语言处理领域发生重大转变,在几十年中逐渐演变,统计和计算开始主导该领域。 近年来深度学习在语音识别领域的兴起,是朝着这个一致方向迈出的最新一步。 深度学习方法对人类知识的依赖性甚至更低,并且使用更多的计算,以及在庞大的训练集上进行学习,从而产生了显著更好的语音识别系统。 就像在游戏中一样,研究人员总是试图使系统以研究人员认为自己大脑工作的方式工作——他们试图将这种知识放入他们的系统中——但事实证明,当通过摩尔定律,大量的计算变得可用,并且找到了一种充分利用它的方法时,这最终适得其反,并且是对研究人员时间的巨大浪费。

在计算机视觉领域,也出现了类似的模式。 早期的想法是将视觉概念化为搜索边缘、广义圆柱体,或用 SIFT 特征来表示。 但是今天,所有这些都被抛弃了。 现代深度学习神经网络仅使用卷积和某些类型不变性的概念,并且表现得更好。

这是一个重要的教训。 作为一个领域,我们仍然没有彻底吸取这个教训,因为我们仍在继续犯同样的错误。 为了看到这一点,并有效地抵制它,我们必须理解这些错误的吸引力。 我们必须吸取这个痛苦的教训,即构建我们认为我们如何思考的方式,从长远来看是行不通的。 这个痛苦的教训是基于历史观察,即 1) 人工智能研究人员经常试图将知识构建到他们的代理中,2) 这总是在短期内有所帮助,并且在个人层面让研究人员感到满意,但是 3) 从长远来看,它会停滞不前,甚至阻碍进一步的进步,并且 4) 突破性的进展最终是通过一种相反的方法实现的,这种方法基于通过搜索和学习来扩展计算。 最终的成功带有苦涩,并且常常没有被完全消化,因为它是在一种受青睐的、以人类为中心的方法上的成功。

应该从这个痛苦的教训中学到的一件事是通用方法的强大力量,即随着可用计算变得非常庞大,仍然可以随着计算的增加而扩展的方法。 似乎可以以这种方式任意扩展的两种方法是搜索和学习。

从这个痛苦的教训中应该学到的第二个普遍观点是,思想的实际内容是极其、无可救药地复杂的; 我们应该停止尝试寻找思考思想内容的简单方法,例如思考空间、物体、多智能体或对称性的简单方法。 所有这些都是任意的、内在复杂的外部世界的一部分。 它们不应该被构建到系统中,因为它们的复杂性是无穷无尽的; 相反,我们应该构建的只是可以找到并捕获这种任意复杂性的元方法。 这些方法的关键在于它们可以找到好的近似值,但寻找它们应该由我们的方法来完成,而不是由我们来完成。 我们想要的是可以像我们一样发现的 AI 智能体,而不是包含我们已经发现的东西的智能体。 构建我们已经发现的东西只会使我们更难看到发现过程是如何完成的。