跳转到内容
← 返回先驱
理论奠基1927–201118 分钟阅读

约翰·麦卡锡

John McCarthy

1955 年夏天,一个年仅 27 岁的数学家在一份提案里写下了两个词:"artificial intelligence"。那个夏天,这两个词还不存在于任何技术词汇表里。写下它们的人是约翰·麦卡锡(John McCarthy),他正在筹备一场将在达特茅斯学院举行的暑期研讨会,并需要给这场会议的研究主题起一个名字。 这个名…

人工智能LISP达特茅斯会议时间共享符号计算

1955 年夏天,一个年仅 27 岁的数学家在一份提案里写下了两个词:"artificial intelligence"。那个夏天,这两个词还不存在于任何技术词汇表里。写下它们的人是约翰·麦卡锡(John McCarthy),他正在筹备一场将在达特茅斯学院举行的暑期研讨会,并需要给这场会议的研究主题起一个名字。

这个名字后来改变了整个世界对"机器能做什么"的想象。

破除误解:AI 的父亲不是制造"聪明机器"的人

流行叙事常把麦卡锡说成"让机器变聪明的人",但这并不准确。他实际做的事要更底层、更哲学——他给"机器智能"这个概念划定了边界,创造了研究它的工具,并奠定了整个领域的词汇体系。

麦卡锡的核心贡献有三个维度:一是命名了人工智能这个领域(1955),把原本散落在各个学科的研究聚拢到一面旗帜下;二是发明了 LISP(List Processor,1958),这是世界上第二古老的、至今仍在使用的高级编程语言(只比 FORTRAN 晚一年),也是符号 AI 研究近半个世纪的标准工具;三是提出了时间共享(time-sharing)计算的概念,为今天的云计算、多用户系统奠定了思想基础。

早年:从波士顿到普林斯顿

麦卡锡 1927 年 9 月 4 日生于波士顿,父母都是移民:父亲约翰·帕特里克·麦卡锡是爱尔兰裔天主教徒,做过木匠、渔民,后来成为服装工人工会的组织者,并担任过美国共产党机关报《工人日报》的业务经理;母亲艾达·格拉特是立陶宛犹太移民。大萧条中全家辗转波士顿、纽约,最后定居洛杉矶。

他少年体弱,却靠二手的加州理工教材自学完了大学数学。1944 年进入加州理工,又因拒绝上体育课被开除,短暂服役后复学,1948 年拿到数学学士学位。改变他一生方向的是 1948 年 9 月在加州理工举办的希克森研讨会(Hixon Symposium on Cerebral Mechanisms in Behavior):冯·诺伊曼在会上讲"自动机的一般逻辑理论",麦卡锡当场产生了一个疑问——如果自动机可以描述神经系统,那么一台机器能否表现出真正的智能?他后来回忆,正是这场研讨会让"能思考的机器"从一个科幻念头变成了他觉得可以用数学严肃对待的问题。1951 年,他在普林斯顿大学获得数学博士学位,导师是拓扑学家所罗门·莱夫谢茨(Solomon Lefschetz),论文研究偏微分方程——与计算机毫无关系。

现场:达特茅斯,1956 年的夏天

1956 年 6 月至 8 月,麦卡锡在新罕布什尔州汉诺威市的达特茅斯学院组织了一场"人工智能夏季研究计划"(Dartmouth Summer Research Project on Artificial Intelligence)。提案写于 1955 年 8 月 31 日,署名者除麦卡锡外还有马文·明斯基(Marvin Minsky)、克劳德·香农(Claude Shannon,信息论奠基人)和 IBM 的纳撒尼尔·罗切斯特(Nathaniel Rochester);洛克菲勒基金会为这场"暑期学校"资助了 7,500 美元。

提案中那句话颇为大胆:

"我们建议,在 1956 年夏天,10 位科学家进行为期两个月的人工智能研究……这项研究将基于如下猜想:学习的每个方面、以及智能的所有其他特征,都可以被如此精确地描述,以至于可以用机器来模拟它。"

会议并没有实现那些雄心勃勃的目标——两个月的时间当然不够。但它完成了一件更重要的事:把一群原本分散在控制论、数学、心理学、逻辑学各个领域的研究者,凝聚成一个新学科的共同体。会上也有具体的成果展示:艾伦·纽厄尔(Allen Newell)与赫伯特·西蒙(Herbert Simon)带来了他们刚写成的"逻辑理论家"(Logic Theorist)程序,它能独立证明《数学原理》中的若干定理,其中一条证明甚至比罗素与怀特海的原证更简洁——这大概是历史上第一次,一台机器的输出让在场的数学家感到"这东西不只是在做算术"。

麦卡锡后来坦承,使用"人工智能"这个词,部分原因是为了区别于维纳(Norbert Wiener)的"控制论"(Cybernetics)——他不想让这个新领域与维纳的框架混在一起。一个词的选择,塑造了一个学科的独立身份。

核心发明:LISP——为思维建模的语言

1958 年,麦卡锡在 MIT 设计了 LISP(LISt Processor)。这不是偶然——LISP 的诞生直接来自他试图为符号推理建模的需求。他当时正在构思一个假想的程序"建议采纳者"(Advice Taker):一个把世界知识写成逻辑语句、靠推理规则而不是硬编码步骤来行动的系统。要让这样的系统跑得起来,首先需要一门能方便地书写和处理逻辑表达式的语言。

当时的计算机语言(如 FORTRAN)是为数值计算设计的:处理数字、执行公式。但麦卡锡想要的是能操纵符号的语言——能处理逻辑表达式、进行自动推理、表示知识的工具。他从阿隆佐·邱奇的 λ 演算中借来了函数记法(LISP 的 lambda 一词由此而来),又借鉴了 IPL 语言处理列表的思路,把它们熔成一个极简的整体。

LISP 的几个关键设计决定在今天看来仍然超前:

一切皆列表(S 表达式):程序和数据使用同一种表示——括号嵌套的列表结构。这意味着程序可以操纵其他程序,代码本身就是数据。

lisp
; LISP 中的函数定义和调用,都是同一种括号结构
(defun square (x) (* x x))
(square 5)  ; => 25
```

递归作为基本控制结构:LISP 是第一种将递归(函数调用自身)作为核心控制流机制的实用语言。此前,循环是标准;递归在数学上优雅,但在计算机语言中很罕见。

垃圾回收(Garbage Collection):麦卡锡在 LISP 中发明了自动内存管理的概念。程序员不需要手动释放不再使用的内存,运行时系统自动回收——这个概念在 60 年后成为 Java、Python、Go 等几乎所有现代语言的标配(详见 垃圾回收)。

函数作为一等公民(First-Class Functions):函数可以作为参数传递,也可以作为返回值——这是 函数式编程 的基础。Haskell、Clojure、以及 Python 的 lambda 表达式,都继承了这一思想。

还有一个常被讲成轶事的关键时刻。1960 年,麦卡锡在《ACM 通讯》上发表 LISP 的奠基论文《符号表达式的递归函数及其机器计算,第一部分》(顺带一提,"第二部分"永远没有出现)。论文里他用 LISP 自身定义了一个函数 eval——一个能解释执行任何 LISP 表达式的通用函数。这原本是理论构造:用来说明这门语言在表达力上等价于图灵机。他的学生史蒂夫·拉塞尔(Steve Russell)读完后指出,这个 eval 可以直接翻译成 IBM 704 的机器码,并真的手工编译了出来——世界上第一个 LISP 解释器就这样意外地诞生了。麦卡锡后来半开玩笑地说,拉塞尔把理论变成了实践,他只好承认解释器比编译器先来了一步。

LISP 的语法对初学者来说令人望而生畏——密密麻麻的括号被程序员戏称为"Lots of Irritating Superfluous Parentheses"(大量令人烦恼的多余括号)。但正是这种极简的同质结构,赋予了它无与伦比的灵活性。

时间共享:计算机属于所有人

1959 年元旦前后,麦卡锡给 MIT 教务长写了一份备忘录,第一次完整陈述了时间共享(time-sharing)的设想:多个用户同时通过终端共享一台计算机,计算机在用户之间以毫秒级速度切换,让每个人都感觉计算机是自己专用的。这与他做 AI 的需求直接相关——交互式的符号推理实验需要即时反馈,批处理系统给不了。

在此之前,计算机一次只运行一个任务,由操作员批量处理任务(批处理系统)。用户提交穿孔卡片,等几个小时甚至几天才能看到结果。

麦卡锡的备忘录促成了 MIT 的实际行动:1961 年 11 月,费尔南多·科尔巴托(Fernando Corbató)领导的兼容分时系统(CTSS)在一台改装的 IBM 709 上首次演示成功;1963 年,MIT 又启动了大型分时项目 MAC(Project MAC,麦卡锡是主要推动者之一),它日后孵化了 Multics 系统,而 Multics 的失败教训直接催生了 UNIX。

时间共享把计算机从"批处理机器"变成了"交互工具"——用户可以立刻得到反馈,实时调试程序。这个概念直接导致了: - 现代分时 操作系统(UNIX 就是分时系统的产物) - 网络终端和远程计算 - 最终——互联网上的 云计算

麦卡锡在 1961 年一次麻省理工的百周年纪念演讲中提出,计算机有一天可能成为"公用事业"(utility),像电力和水一样按需计费、按量供应——这个预言在今天的云服务中字面上实现了。

形式化 AI:情境演算与常识推理

除了 LISP,麦卡锡在 AI 理论上的另一个重大贡献是情境演算(Situation Calculus,1969)。这是第一个试图用形式逻辑系统地表示行动、状态和时间的框架——"机器人如何表示'我拿起杯子之后,杯子在我手上'这个事实?"

他还提出了"框架问题"(Frame Problem):一个行动改变了世界的某些方面,但哪些方面没有改变?对人类来说这是常识,但对形式推理系统来说极难表示。半个世纪后,这个问题仍然是 AI 研究的核心挑战之一。

为这类常识推理寻找逻辑基础,麦卡锡在 1980 年提出了限定(circumscription)——第一种系统的非单调逻辑。经典逻辑是"单调"的:前提集合扩大,已有结论永不被推翻;但常识推理恰恰不是:你知道"鸟会飞"就推断"这只鸟会飞",一旦得知它是企鹅,结论就得撤回。限定的思想是把"没有异常"本身写成一条公理——在所知范围内,假设对象不具任何未声明的异常性质;新证据出现时,旧的推断自然失效。这个 1980 年发表于《Artificial Intelligence》期刊的框架开启了非单调推理的整个研究方向,也成为后来逻辑编程与知识表示的标准工具之一。

麦卡锡一生坚信 AI 应该基于逻辑和符号推理——这让他成为后来神经网络浪潮(他称之为"统计方法")的著名批评者。他认为,仅凭统计学习无法实现真正的机器智能,因为机器需要能够推理、解释自身行为。

这场"符号 AI vs 统计 AI"的争论,在今天的大型语言模型时代以新的面貌重演。

荣誉与晚年

麦卡锡 1962 年加入斯坦福大学,在那里建立了斯坦福人工智能实验室(SAIL),直到退休。1989 年当选美国国家科学院院士。主要荣誉:

年份荣誉
1971ACM 图灵奖("人工智能的卓越贡献")
1985IEEE 计算机先驱奖
1988京都奖(信息科学)
1990美国国家科学奖章
2003富兰克林奖章

2011 年 10 月 24 日,麦卡锡在加利福尼亚州斯坦福家中去世,享年 84 岁。

代价与争议

麦卡锡晚年对 AI 领域的主流方向颇为不满。他对纯统计方法(神经网络、机器学习)持保留态度,认为这类方法缺乏可解释性,无法支撑真正的常识推理——在他看来,人类水平的智能必须建立在用数理逻辑表示知识、并对知识进行形式化推理之上(见他 2007 年的演讲《What is Artificial Intelligence?》及论文《人工智能、逻辑与形式化常识》)。这个"逻辑派"立场在深度学习主导的今天仍有支持者。

另一个争议:麦卡锡在 1950 年代的"AI 乐观主义"——相信机器在二十年内就能实现人类水平的智能——推动了大量研究资金的涌入,但也在目标未能实现后导致了 1970 年代的"AI 寒冬"。1973 年,英国科学研究委员会委托数学家詹姆斯·莱特希尔(James Lighthill)提交的评估报告直言 AI 未能兑现承诺、组合爆炸问题无解,直接导致英国大幅削减 AI 经费,美国国防部的资助也同步收紧。麦卡锡本人后来承认,早期的预测过于乐观。

LISP 本身也有代价:它的语法让许多实际工程师望而却步,导致 LISP 机器(Lisp Machine,专门运行 LISP 的硬件)在 1980 年代被通用工作站淘汰。一段被称为"AI 寒冬"的低谷(见 专家系统与第二次 AI 寒冬),部分来自于 LISP 机器商业化的失败。

跨域连接

  • 科学哲学:那份提案的核心猜想——智能的每个方面都可以被精确到能用机器模拟——并不可证伪:任何失败都能归因于"描述得还不够精确"。它的作用不是预测,而是划定研究纲领的硬核,把反例转化成待解问题。判断这类纲领是否健康,要看它能否持续产出新的可检验预测,而不是看硬核本身对不对。
  • 认识论:框架问题暴露的是,人类推理默认"没被提到的都没变",而形式系统必须把这条默认写成数不清的公理。任何形式化都要为沉默的背景付账,这不是逻辑不够强,而是背景知识本身没有边界。判断一个知识表示方案是否可用,看它怎么处理没写出来的部分,而非它能表达多少。
  • 计算语言学:他要的是能被推理、能被解释的表示;语言处理界后来发现,从语料里估出来的表示在覆盖面上远胜手写规则,代价是既无法解释也难以局部修改。这条对照可以直接检验:规则系统改一条规则,效果可预期;统计系统改一批数据,效果不可预期,只能事后测。
  • 数字平台社会:分时把计算从"拥有一台机器"变成"购买一段使用权"。这一步之后,调度、配额与可见性都由运营方决定,控制权从用户转到了平台。他预言计算会像电力那样成为公用事业,这一半应验了;另一半是同一结构带来的争议——谁有权终止你的访问,今天仍在原地。
  • 递归:把递归当作基本控制结构,前提是有一套机制自动管理调用栈并回收不再可达的存储。垃圾回收因此不是附加特性,而是"递归加符号结构"的必要配套——手工释放在树形数据反复共享的场景里根本算不清。语言层面的一个决定,逼出了运行时层面的另一个。

参考文献

  • McCarthy, J. et al. A Proposal for the Dartmouth Summer Research Project on Artificial Intelligence. 1955.(达特茅斯提案原文)
  • McCarthy, J. Programs with Common Sense. Proceedings of the Teddington Conference on the Mechanization of Thought Processes, 1958.("建议采纳者"设想出处)
  • McCarthy, J. Recursive Functions of Symbolic Expressions and Their Computation by Machine, Part I. Communications of the ACM 3(4): 184–195, 1960. DOI: 10.1145/367177.367199.(LISP 奠基论文)
  • McCarthy, J. & Hayes, P. J. Some Philosophical Problems from the Standpoint of Artificial Intelligence. Machine Intelligence 4 (1969).(情境演算与框架问题)
  • McCarthy, J. Circumscription—A Form of Non-Monotonic Reasoning. Artificial Intelligence 13(1–2): 27–39, 1980.(非单调逻辑开山之作)
  • Nilsson, N. J. John McCarthy, 1927–2011. Biographical Memoirs of the National Academy of Sciences (2013).(生平细节的权威来源)

延伸阅读

  • Nilsson, N. J. The Quest for Artificial Intelligence: A History of Ideas and Achievements. Cambridge University Press, 2010.