No.432 第6届图灵奖得主、人工智能创始人、Lisp语言发明者、分时系统开创者:约翰麦卡锡

1971年的图灵奖授予提出”人工智能”这一术语并使之成为一个重要的学科领域的斯坦福大学教授约翰. 麦卡锡( John McCar- thy)。

麦卡锡于1927年9月4日出生在波士顿。他的父亲是一位爱尔兰移民,曾从事木匠和渔夫的工作,同时也是一个发明家和工会积极分子,他还拥有两项专利,分别是捻船缝机和桔汁冷冻机。麦卡锡的母亲是来自立陶宛的犹太人,对女权运动充满热情,并曾从事记者的工作。夫妻俩在20世纪30年代都曾加入美国共产党。受到父母的影响,麦卡锡对社会问题也非常关注。他曾参与在加州帕洛阿尔托创办自由大学的活动,并倡议修改《人权法案》(即美国宪法的第一修正案,也被称为《权利法案》)。

名人传记往往展现了截然不同的两个方面,这是因为一个人的生活和个性往往是复杂多样的,涵盖了各种不同的经历、角色和特质。每个人所看到的,往往只是那一瞬间,然后再去推测这个人是什么样子。这种情况在麦卡锡身上也很明显,比如著名的投资人格雷厄姆认为麦卡锡比较安静,我认为这些人说的都对,毕竟人是多变的。等闲变却故人心,却道故人心易变。可能麦卡锡年老之后,确实变的安静了,而格雷厄姆在那个时期认识的他,就误以为他一直这么安静。实际上,年轻时候的他还是比较疯狂的。

麦卡锡主要是一位科学家,而不是社会活动家,他在计算机科学领域做出了重要的工作和贡献。除此之外,麦卡锡还热衷于冒险和具有危险性的活动,例如攀登、跳伞和驾驶滑翔机等。他曾与他的第二任妻子维拉·沃特森(Vera Watson)一起攀登世界上许多高峰。沃特森是一位程序员,也是一位世界知名的女性登山运动员。她是第一位独自攀登西半球最高峰、位于阿根廷和智利边界的安第斯山脉的阿空加瓜山(海拔6960米)的女性。然而,她在一次登山活动中,攀登尼泊尔中部的阿那波尔那峰(海拔8075米)时不幸遇难牺牲。

有人看到过我的照片,跟我说,栋哥你看起来是个老实人啊。我说,那你是没看过我年轻时,我年轻时候更老实!

麦卡锡展现出了非凡的天赋。在他上初中时,他就取得了加州理工大学的课程目录,并自学了大学低年级的高等数学教材,完成了教材上的所有练习题。这使得他在1944年进入加州理工学院时能够免修头两年的数学课程。尽管当时正值第二次世界大战期间,美国参战后,麦卡锡也在军队中担任一名小职员,这占用了他的一部分时间,但他仍然于1948年按时完成了学业。

之后,他进入普林斯顿大学研究生院进一步深造,并于1951年获得了数学博士学位。麦卡锡在普林斯顿工作了两年后,转到斯坦福大学任教。然而,他只在斯坦福大学呆了两年就转去了达特茅斯学院(位于新罕布什尔州汉诺威)担任教职。

在达特茅斯学院,他发起并成功举办了具有历史意义的”达特茅斯会议”,这次会议成为了人工智能领域的起点。1958年,麦卡锡加入了麻省理工学院(MIT),与1969年图灵奖得主明斯基(L. Minsky)合作,建立了世界上第一个人工智能实验室,并提出了将计算机的批处理方式改进为能够实现分时共享(time-sharing)的建议。他推动了MIT成立组织并进行相关研究。这一成果就是世界上最早的分时系统,基于IBM 7094的CTSS以及随后的MULTICS。

尽管麦卡锡在1962年因与主持该项目的负责人产生分歧而离开了MIT,回到斯坦福大学,未能将该项目坚持下去,但学术界普遍认可他是分时概念的创始人。在返回斯坦福后,他参与开发了基于DEC PDP-1的分时系统,并在那里建立了第二个人工智能实验室。

麦卡锡对人工智能的兴趣最早可以追溯到他作为研究生的时候。在1948年的一个名为”脑行为机制”的专题讨论会上,他听到了冯·诺伊曼发表的一篇关于自复制自动机制的论文。这篇论文提出了一种机器能够复制自身的设想,激发了麦卡锡的浓厚兴趣和好奇心,从那时起,他开始尝试在计算机上模拟人类的智能。

1949年,麦卡锡向冯·诺伊曼分享了自己的想法,后者非常赞同并支持他的研究,并鼓励他继续深入探索。在达特茅斯会议前后,麦卡锡的主要研究方向是计算机下棋。下棋程序的一个关键是如何减少计算机需要考虑的棋步。经过艰苦的探索,麦卡锡最终发明了著名的α-β搜索算法。

在α-β搜索算法中,麦卡锡巧妙地结合了剪枝和评估函数值的产生。通过将最大值级别的节点的候选返回值(PBV,Provisional Back-up Value)称为α值,将最小值级别的节点的候选返回值或返回值称为β值。在计算某节点以下的α值时,可以与其祖先节点的α值进行比较。如果α≥β,就可以终止该节点以下的搜索,即对该节点进行剪枝操作,这被称为β剪枝。同样,在计算某节点以下的β值时,可以与其祖先节点的α值进行比较。如果β≤α,就可以终止该节点以下的搜索,即对该节点进行剪枝操作,这被称为α剪枝。

为了说明α-β剪枝,我们可以举一个简单的例子。假设在一个取火柴棍的游戏中,A和B两人轮流从N根火柴中取1根或2根,不能多取,也不能不取。最后取走最后一根火柴的人获胜。用A(n)和B(n)表示当A或B轮到时,还剩下n根火柴的状态。当n = 5时,轮到A取火柴,A有两种可能:一种是取2根火柴进入状态B(3),另一种是取1根火柴进入状态B(4)。显然,进入状态B(3)后,无论B取多少根火柴,A都能获胜。因此,A必然会选择走进状态B(3),而不再搜索其他可能的分支。这种α-β搜索方法至今仍然是解决人工智能问题中常用且高效的方法之一。

关于达特茅斯会议,麦卡锡作为东道主是主要的发起人之一。另外三位发起人是当时在哈佛大学的明斯基(1969年图灵奖获得者)、IBM公司的罗杰斯特(N. Rochester)以及信息论的创造者香农。麦卡锡召开这个会议的目标非常宏大,他希望通过10多个人的共同努力设计出一台真正具有智能的机器。

达特茅斯会议的经费由洛克菲勒基金会资助,每位代表获得了1,200美元的津贴以及往返交通费。

洛克菲勒基金会是一个慈善组织,致力于支持各种学术研究和社会项目。在麦卡锡发起达特茅斯会议时,他向洛克菲勒基金会提出了资金申请,说明了会议的目标和意义。洛克菲勒基金会对人工智能这一新兴领域的发展抱有浓厚的兴趣,因此决定资助该会议。

具体资助方式可能是提供会议的经费预算,用于支付与会代表的津贴、交通费用以及会议所需的一切费用。每位代表获得了1,200美元的津贴,外地代表的往返车票费用也由洛克菲勒基金会承担。这个资助帮助确保了会议的顺利进行,为参与者提供了合适的资源支持和经济保障。

尽管会议最初设定的目标因为不切实际而无法实现,但麦卡锡在下棋程序,特别是α-β搜索算法方面的成功,以及卡内基-梅隆大学的西蒙(H. A. Simon)和纽厄尔(A. Newell,这两位于1975年获得了图灵奖)带来的启发式程序”逻辑理论家”(LT,Logic Theorist),该程序能够证明数学名著《数学原理》第二章的52个定理中的38个定理,还有明斯基带来的名为Snarc的学习机的雏形(主要用于学习迷宫问题),这些都让与会者对宣布”人工智能”这一全新学科的诞生充满了信心。

1959年,约翰·麦卡锡基于数理逻辑学家阿隆佐·邱奇(Alonzo Church)的λ-演算和卡内基-梅隆大学的西蒙(Herbert A. Simon)和纽厄尔(Allen Newell)首创的”表结构”(Table-lookup structure),发明了LISP(LISt Processing language)语言。

LISP是一种基于符号处理的编程语言,其设计初衷是为了进行符号处理和人工智能研究。LISP语言的核心特点是使用列表(list)数据结构和基于λ-演算的函数定义和操作。它提供了强大的符号处理能力和递归编程的支持,使其成为人工智能领域最早、也是最广泛流行的编程语言之一。

LISP语言的设计使得它非常适合处理符号和符号操作,这对于人工智能的研究和实现非常关键。LISP语言也在人工智能领域的早期发展中发挥了重要作用,它成为了许多人工智能算法和技术的实现工具,如符号推理、专家系统和自然语言处理等。

LISP的影响一直延续至今,它不仅在人工智能领域有广泛应用,也对编程语言的发展产生了深远影响。许多现代编程语言中的概念和特性,如动态类型、垃圾回收和闭包等,都可以追溯到LISP语言的设计。

我以前在机缘巧合的情况下,写了很多LISP程序。我在读书的时候,我的导师搞了一个项目,要用到一个叫GIMP的软件。GIMP(GNU Image Manipulation Program)支持使用Lisp语言进行编程和扩展。GIMP是一款开源的图像处理软件,它提供了丰富的功能和工具,用于编辑和处理图像,当时这个软件被称为开源界的Photoshop。因为我要帮导师干活,所以只能学习Lisp,刚开始的时候觉得比较难,但是用起来以后,就会发现,Lisp是真的简单。

LISP是一种函数式的符号处理语言,其程序由一些函数子程序组成。在函数的构造上,和数学上递归函数的构造方法十分类似,即从几个基本函数出发,通过一定的手段构成新的函数。LISP语言还具有自编译能力。具体说来,LISP有以下几个主要特点:

1. 计算用的符号表达式而不是数;

2. 具有表处理能力,即用链表形式表示所有的数据;

3. 控制结构基于函数的复合,以形成更复杂的函数;

4. 用递归作为描述问题和过程的方法;

5. 用LISP语言书写的EVAL函数既可作为LISP语言的解释程序,又可以作为语言本身的形式定义;

6. 程序本身也同所有其他数据一样用表结构形式表示。

LISP的这些特点被证明是解决人工智能核心问题的关键。同时,LISP的精巧表结构机制也成为进一步简化LISP程序设计的方便而有力的工具。因此,自从LISP的发明以来,它已被广泛用于数学中的符号微积分计算、定理证明、谓词演算、博弈论等领域。

LISP和PROLOG(PROgramming in LOGic)是人工智能领域的两个重要语言。PROLOG是由英国伦敦大学的年轻学生柯瓦连斯基(R. Kowalski)提出,并由法国马赛大学的考尔麦劳厄(A. Colmerauer)领导的研究小组于1973年首次实现的逻辑式语言。这两个语言对人工智能的发展起到了非常深远的影响。

LISP和PROLOG的出现引起了国际Algol语言委员会的关注,麦卡锡也因此被吸收为该委员会的成员。Algol语言后来采纳了LISP关于递归和条件表达式的思想,这进一步促进了人工智能领域的发展。

LISP和PROLOG的关键特性,如符号处理、递归和逻辑推理,为人工智能的算法和应用提供了强大的工具和框架。它们对人工智能的发展产生了深远影响,并在该领域的研究和实践中扮演了重要角色。

还有一点我要强调,我这个电台讲的是以前的故事,你不要听了我的电台,去找Lisp或者Prolog语言来学习。这是以前的事情,现在你应该学习Python。就好像我讲时期微软的时候,你用不着去学习一下DOS。故事是故事,而且,Lisp和Prolog语言,其中的特征都已经融入到现代的编程语言中了,比如λ-演算就是一个例子。在Java中,Python中,都有相应的支持。

麦卡锡在20世纪50年代末进行了关于程序如何接受劝告以改善其性能的研究。在这个研究过程中,他提出了一个名为”Advice Taker”的系统的设想。根据资料,这个系统被认为是世界上第一个体现知识获取工具思想的系统,并于1968年部分建成。尽管该系统并未最终完成,只完成了部分工作,它使用LISP语言构建了一个具有常识(common sense)的软件,能够理解提供给它的信息,并评估其行动的后果。

在Advice Taker的开发过程中,麦卡锡受到启发,提出了用”分时系统”替代”批处理系统”的建议,从而引发了计算机使用方式的一场革命。这个建议的核心思想是让多个用户能够同时使用计算机,而不是像传统的批处理系统那样按顺序执行任务。分时系统的引入使得计算机的使用更加交互式和实时,为后来的计算机操作系统和用户界面设计奠定了基础。

因此,麦卡锡的研究和Advice Taker项目不仅对人工智能领域具有重要意义,而且对计算机科学的发展和计算机使用方式的革新也起到了关键作用。

除了在人工智能领域的研究和贡献之外,麦卡锡还是早期对程序逻辑进行研究并取得成果的学者之一。在1963年,他发表了一篇重要论文《计算的数学理论的一个基础》。这篇论文详细阐述了程序设计语言形式化的重要性,以及它与程序正确性和语言正确实现等问题的关系。麦卡锡提出了使用抽象语法和状态向量等方法在形式语义研究中,开创了程序逻辑研究的先河。

程序逻辑是一种”语言”,通过这种语言可以无歧义地表达程序的各种性质。其语义规定了该语言中各种表达式的意义,而一组规则则以同意义相关的方式操作这些表达式,以计算该语言中各种断言的真值。研究程序逻辑对于帮助人们了解软件是否合理非常重要,它可以用于程序验证(program verification)、

程序逻辑的研究为软件工程和程序验证领域奠定了基础。通过使用形式化的规约和推理方法,程序逻辑可以帮助开发人员验证程序的正确性,并发现潜在的错误和漏洞。这对于构建可靠、安全和高效的软件系统至关重要。

麦卡锡的论文为程序逻辑的研究和应用提供了理论基础,并对计算机科学的发展起到了重要的推动作用。

麦卡锡进一步证明了通过一系列递归定义的函数,完全有可能构建大型的软件系统,并使用归纳法证明这些系统具有的性质。他提出的方法是关于程序逻辑研究中第一个相对系统且成熟的方法,一度被广泛采用。

这种基于递归函数和形式化证明的方法为软件系统的设计、分析和验证提供了重要的工具和方法。通过递归定义和归纳法,开发人员能够建立复杂软件系统的模型,并证明系统在各种情况下的正确性和一致性。这种方法不仅提高了软件的可靠性,还为程序分析、优化和审计等任务提供了理论基础和实践指导。

麦卡锡在这方面的贡献为程序逻辑研究奠定了坚实的基础,并在计算机科学领域产生了深远的影响。他的方法为后续的研究和发展提供了启示,也为现代软件工程的发展和实践做出了重要贡献。

麦卡锡的主要著作有:

《自动机研究》(Automata Studies, Princeton Uni. Pr.,1956,与香农合编)

《信息学:科学美国人之书》(Information:A Scientific American Book, Freeman, 1966)

《形式化的常识:麦卡锡论文选集》(Formalizing Common Sense:Papers by John McCarthy , Ablex Pub. Co., 1990)

除了获得图灵奖以外,麦卡锡在1988年获得由日本INAMORI基金会所设立的KYOTO奖,这个奖主要奖励在高科技方面作出杰出贡献的科学家,麦卡锡是这个奖的第5位获得者。

1990年麦卡锡获得美国全国科学奖章 (National Medal of Scien- -ce)。

麦卡锡的图灵奖演说题为”人工智能研究的现状”(The Present State of Research on Artificial Intelligence)。但不知什么原因,这篇演说没有发表。在《前20年的图灵奖演说集》(ACM Turing Award Lectures–The First 20 Years:1966-1985 )中,则以”附录”(postscript)的形式约请麦卡锡另写了一篇”人工智能的一般原理”(Generality in Artificial Intelligence),刊于该书257-268页。

5 3 投票数
文章评分
订阅评论
提醒

0 评论
内联反馈
查看所有评论
0
希望看到您的想法,请您发表评论x
滚动至顶部