IBM 信息研究主管罗切斯特、贝尔实验室克劳德香农联名向洛克菲勒基金会(Rockefeller Foundation)递交了一份会议提案:希望在 1956 年夏天,召集十位左右研究者,到达特茅斯学院待两个月,集中讨论"如何让机器使用语言、形成抽象概念、解决目前只有人类能解决的问题"。
提案需要一个名字,McCarthy后来回忆,他特意避开了"控制论"。
那是Norbert Wiener的领地,而Wiener本人脾气古怪,在1946年至1953年间于美国纽约举行的非正式跨学科交流的梅西会议上与Warren McCulloch和Walter Pitts决裂,现在一般认定人工智能的最早工作是 Warren McCulloch和 Walter Pitts在1943年完成的。
他也避开了"自动机理论",那个词太狭隘。
他想要一个崭新的、不带既有学术派系包袱的名字。
他写下了一个组合:Artificial Intelligence。
1956 年 6 月到 8 月,达特茅斯人工智能夏季研究计划(Dartmouth Summer Research Project on Artificial Intelligence)举行。来去人员二十余位,远比McCarthy预想的零散。
包括来自普林斯顿大学的 Trenchard More、来自IBM公司的 Arthur Samuel。
Minsky那年二十九岁,他在两个月会议上没有提交什么石破天惊的论文,但他是房间里那个最相信"心智可以被造出来"的人,他的乐观近乎宗教式的。
Allen Newell与Herbert A. Simon(诺贝尔经济学奖得主)从兰德公司带来了"逻辑理论家"(Logic Theorist)程序,已经能证明罗素和怀特海德的《数学原理》中的若干定理,是会议上唯一一件能跑的成果。事实上他俩一起工作了整整四十年,几乎从未公开争吵过,这在学术界是罕见的。
McCarthy本人在那个夏天没拿出什么具体作品,但他给整个领域取了那个从此再没换过的名字。
那张提案纸今天藏在达特茅斯,被视作 AI 元年的诞生证书。
达特茅斯研讨会并未导致任何新突破,但它确实互相介绍了所有主要的人物。对随后的20年,人工智能领域就被这些人以及他们在兰德公司、卡内基梅隆大学、斯坦福、MIT和IBM的学生和同事们支配了。
从1952年开始,Arthur Samuel编写了一系列西洋跳棋程序,该程序最终学到能以业余高手的水准来玩。
在这个过程中,他驳斥了计算机只能做被告知的事的思想:他的程序迅速学到比其创造者玩得更好。
1956年2月这个程序在电视上进行了演示,给人留下很深的印象。
像图灵一样,Samuel也难于找到时间。他只好在夜晚工作,使用的机器是仍在BM制造厂的测试层上的计算机。
1958 年, McCarthy转入 MIT,与Minsky共同创立 MIT 人工智能项目(MIT AI Project),1963 年扩展为 MIT AI Lab。
同一年,他在 MIT 开始设计一种新的编程语言。
他的动机是:要让计算机做出像人一样的推理,就必须能在程序里表达和操纵符号表达式——而不只是数字。
当时主流的 FORTRAN 是为科学计算而生,对符号束手无策。
McCarthy的解决方案极其简洁:把数学家Alonzo Church的 lambda 演算(λ-calculus)变成一种实际可执行的语言。代码与数据使用同一种结构——括号里的列表(list)。一切是表,函数也是表,程序操作表的方式与操作数据完全一样。这种"代码即数据"的同构(homoiconicity),后来被称作 LISP 最深的美。
1958 年,他写下《具有常识的程序》("Programs with Common Sense"),提出一个名为"建议接受者"(Advice Taker)的设想:一个用形式逻辑表达世界知识的系统,可以听人类输入新信息("我现在在家""车在车库里""我想去机场"),自动推导出该做什么("先走到车库,开车出去……")。这是符号主义 AI 的灵魂宣言。
当时的计算机是一台主机,一群程序员排队提交穿孔卡片,等几个小时才能拿回结果。McCarthy说:这不行。
他在 MIT 大力推动时分系统(time-sharing):让多个用户同时通过终端共享一台主机的计算资源。
1959 年McCarthy起草的备忘录《为我们将到的 IBM 709 设计的时分操作程序》("A Time Sharing Operator Program for Our Projected IBM 709")在技术细节上推进了这一构想。该思想催生了 MIT 的 CTSS(兼容时分系统)、Multics,并最终通过 Unix 与互联网,成为现代计算的底层范式。
1960 年,McCarthy发表了那篇被无数计算机科学家奉为经典的论文——《符号表达式的递归函数及其机器计算(一)》("Recursive Functions of Symbolic Expressions and Their Computation by Machine, Part I",Communications of the ACM)。
论文用 LISP 自己定义了 LISP——eval 函数仅有半页代码,却完整描述了这门语言的语义。
当Alan Kay多年后第一次读到那半页时,他说:"那是我读过的、最接近软件领域的麦克斯韦方程组的东西。"
LISP 还顺手发明了若干今天习以为常的概念:垃圾回收(garbage collection)、条件表达式、递归作为主要控制流、高阶函数。半个多世纪过去,从 Common Lisp、Scheme,到 Clojure、Racket,再到 Emacs Lisp——LISP 谱系仍是活的。
MIT、CMU、斯坦福一代代 AI 研究者,最初的"AI"二字几乎都是用 LISP 写出来的。
1961 年更激进的他在 MIT 百年校庆演讲中说的一句话:"如果计算机将来变得我现在所设想的那种,那么计算机有可能像电话和电力一样,作为一种公共事业(public utility)来组织。"
这是云计算(cloud computing)思想的最早公开表述,比"云"这个词的流行早了将近半个世纪。
今天 AWS、Azure、阿里云的每一台机器,都在不知不觉中替McCarthy兑现这句预言。
1962 年,McCarthyld 与Minsky在 MIT AI 实验室方向上的分歧,离开剑桥,前往斯坦福,创立斯坦福人工智能实验室(SAIL,Stanford AI Lab)。
SAIL 在他主持下成长为西海岸 AI 研究的圣地:早期机械、计算机视觉、Shakey 机器人项目(合作单位 SRI)、最早的电子棋类对弈系统、远程登录系统的实验,都从这里出来。Patrick Winston、Raj Reddy、Randall Davis、Victor Scheinman等,无一不与他这一脉有关。