Extinguished philosophies lie about the cradle of every science as the
strangled snakes beside that of Hercules. - adapted from T. H. Huxley
WHAT IS ARTIFICIAL INTELLIGENCE?
John McCarthy
Computer Science Department
Stanford University
Stanford, CA 94305
http://www-formal.stanford.edu/jmc/
1999 Nov 23, 8:39 p.m.
Revised November 23, 1999:
1.基本问题
问:什么是人工智能?
答:人工智能是实现具有智能的机器,尤其是具有智能的计算机程序的科学和工程
技术。人工智能与用计算机理解人的智力的目标有一些关系,但它并不一定要使用
生物学上的方法。
问:哦,那什么是智能呢?
答:智能是指达到目标的能力中的计算部分。人、许多动物和一些机器具有不同类
别不同程度的智能。
问:是否存在一种一般意义上的"智能",它不取决于人的智能
答:没有。我们现在还不能确定在一般意义上怎样的计算过程可以被称为"智能"。
我们知道智能的某些机制,而对其他的并不了解。
问:智能是否是孤立的?比如,是否可以简单地判断"某台机器是否有智能"?
答:不。智能包含很多机制,人工智能研究者已经深入了解了其中的某些部分,并
且能够用计算机实现这些机制,而对另一些部分则不行。如果某个任务只需要现在
已经理解得非常好的那些机制,则计算机程序能够相当出色地完成。这样的程序就
算有"一些智能"了。
问:人工智能就是模拟人类的智能么?
答:有时是,但并不总是,或者说,往往不是。一方面,我们可以通过观察人类在
解决问题时的方式来对智能有所了解;另一方面,人工智能中的大量的成果不是通
过研究人或动物的活动,而是通过直接研究需要智能解决的各种问题得到的。人工
智能研究者可以自由的采用人类所没有使用的方法和超出人类的计算能力。
问:那么IQ呢?计算机程序会有么?
答:没有。IQ是以孩子们的智力发展速度为基础的。它是被测人得到的分数所对应
的年龄与他的实际年龄之比。这种衡量方法以相对合适的方式推广到成年人。IQ的
高低和在实际生活中的成功失败有着良好的关联,但是对于计算机则不然,在IQ测
试中得到的高分和他们在实际中用处的大小没什么关系。比如说,一个小孩反向复
述一长串有序数字的能力可以反映他在其他方面的能力,这可能是因为这可以衡量
这个小孩的实时计算能力。然而,一个功能非常有限的计算机都可以完成其"数字
范围"的序列长度。
当然,IQ测试中的一些问题也还是对人工智能的有益的挑战。
问:人类与计算机之间有关智能的其他比较如何呢?
答:人类智能研究的最主要一位研究者Arthur R. Jensen [Jen98]提出一个"启发
假说":所有的正常人都具有相同的智能机制,智力上的差别是由于"生物化学及生
理学上的数量条件"不同。我把这些条件看作为速度、短时程记忆以及形成准确并
可恢复的长时程记忆的能力。
Jensen关于人类智能的假说正确与否,尚无定论;不过,现在人工智能中的情况
却相反。
计算机有极高的速度和巨大的容量,但它的能力取决于程序设计者充分理解的并
在程序中实现了的智能机制。有些一般要到十几岁的时候人才可能具有的能力现在计
算机已经具备了,而另一些两岁大的小孩就有的能力计算机却没有。由于认识科学还
不能够精确的定义人具有的能力是什么,我们对它的理解就更加困难。一般来说,人
工智能的智能机制的构成与人的智能机制的构成常常是不同的。
只要人在某些问题上表现得比计算机好,或者计算机通过使用大量的计算也只能
做出和人一样的表现,就说明程序的设计者对于高效解决这个问题所需要的智能机制
的理解还不够充分。
问:人工智能的研究是什么时候开始的?
答:二战后,许多人开始各自独立的进行智能机器的研究。英国数学家Alan Turing或
许是第一个。他在1947年就这个问题做了一个讲演。他还首次确认利用可编程计算机
研究人工智能的方法要比直接制造机器进行研究要好得多。到五十年代末,已经有许
多人工智能的研究者,他们中的大部分都是在可编程计算机上进行工作的。
问:人工智能打算将人的"思想"植入计算机中么?
答:一些研究者表示他们有这样的打算,但可能他们只是用这个词打个比方。人的
"思想"具有非常多的特性,而我不认为会有人真的要模仿实现所有的特性。
问:什么是图灵测试?
答:Alan Turing 1950的文章《计算机器和智能》[Tur50]讨论了在什么条件下机器
可以被认为是具有智能的。他认为如果一台机器可以成功地使一个具有一定知识的
观察者认为他是人,那么就当然可以认为这台机器是具有智能的。这个测试标准对
除了哲学家外的大多数人来说都是可以接受的。测试中的那个观察者可以通过一个
电传打字机与被测机器和一个人进行交互,这样做是为了避免让机器模仿人的外表
和声音。那个人试图说服观察者他是个人;那台机器则试图欺骗观察者它是人。
图灵测试只是一种测试。一台通过了图灵测试的机器当然可以被认为是具有智
能的,但是一台对人类了解不多而不能很好的模仿人的机器也可以被认为是具有智
能的。Daniel Dennett写的《脑力劳动的产物》(Brainchildren [Den98])一书对
于图灵测试及各种部分图灵测试(对测试中的观察者在人工智能方面的知识及询问
的内容有所限制)做了很精彩的讨论。结果表明一些功能很差的程序也会被一些人
轻易的认为是具有智能的。
问:人工智能的目标是达到人类水平的智能么?
答:是的。最终的努力就是要使计算机程序可以和人一样在世界上解决问题并达到
目标。然而,在特殊的研究领域上的工作很多人并没有这样的雄心。
问:人工智能距离达到人类水平的智能还有多远?什么时候它将成为现实呢?
答:有少数人认为人类水平的智能可以通过这样的方式得到:即基于现在人们用来
编写并积累为大量的知识的语言可以表示知识这一事实,使用它来写大量的程序,
以达到人类水平的智能。
但是,绝大多数人工智能的研究者认为还需要一些新的基本的思想。因此,现
在还不能预测人类水平的智能何时才能实现。
问:计算机是用来产生智能的合适的机器么?
答:计算机可以通过编程模拟任何一种机器。许多研究者发明了一些非计算机的机
器,希望它们在某些方面可以比计算机具有更多的智能。然而,他们通常在计算机
上模拟他们发明的机器后就怀疑这种新的机器是否值得在实际中实现。因为不计其
数的资金投入已经使得计算机的速度越来越快,另一种机器实际实现的性能必须要
比它在计算机上的模拟实现的性能要好的多才行。
问:对于获得智能,现在的计算机的速度足够快么?
答:一些人认为在需要新思想的同时也需要更快的计算机。我个人的观点是,只要
我们知道如何编程实现智能,三十年前计算机的速度就已经是足够的了。当然,除
了人工智能研究者的远大目标外,计算机还会保持越来越快。
问:并行计算机怎么样呢?
答:具有多个处理器的计算机的速度比单处理机计算机的速度要快得多。并行本身
并没有提供任何优势,而且并行机比较难以使用。只有当需要很高的速度时,使用
这种难以使用的机器才是必须的。
问:制造可以通过阅读和从经历中学习而自我提高的"孩子似的机器"如何呢?
答:这个想法从20世纪40年代以来,已经被多次提出了。最终,它将会被制造出来。
然而,目前人工智能程序还不能象孩子那样有效地从自然经验中学习。现在的程序
还不能很好的理解语言,更不要说从阅读中学习了。
问:一个人工智能系统能够通过思考人工智能而靠它本身的努力不断提高自己的智
能水平?
答:我想是可以的。但是人工智能现在还没有达到可以实现这样的过程的水平。
问:可以谈谈国际象棋么?
答:一位俄罗斯的人工智能研究者Alexander Kronrod认为"国际象棋是人工智能研
究中的果蝇"。他在这里打了个比方,果蝇常被遗传学家用来对遗传进行研究。下棋
需要某种智能机制,但对其他的一些机制则不需要。国际象棋的程序现在可以达到
大师级的水平,但和人类棋手比较起来,它只使用了很简单的智能机制,即用大量
的计算来代替理解。一旦我们对于下棋的智能机制有了更好的了解,我们就可以做
出一个比现在需要的计算少很多,但同样有着人类下棋水平的象棋程序。
不幸的是,制造下棋程序现在更多的是用来作为商业方面的竞争手段,而不是
作为一种科学领域的研究方法。这就如同1910年开始组织果蝇比赛以后,遗传学家
们就集中力量为赢得比赛而饲养果蝇一样。
问:再谈谈围棋好么?
答:中国和日本的围棋也是用两个棋手依次在一个棋盘下子。围棋暴露了当前我们
对人类下棋的智能机制理解的不足。尽管也做了相当多的研究(没有在国际象棋上
的研究多),但围棋程序的棋艺还是很差。这个问题可能是由于在围棋中的一个棋
局可以被自然的分成一些子棋局,然后先独立的分析每个子棋局再分析各子棋局之
间的联系。人可以在下棋时使用这样的方法,但是围棋程序就不可以,它只能把整
个棋盘作为一个整体考虑。下棋程序只能利用大量的计算来弥补这种智能机制的缺
失。这种计算通常是比人要多上千倍,而对于深蓝而言则是数以百万倍。
总会有一天,人工智能的研究者可以克服这种令人反感的缺点。
问:不是有些人认为人工智能是有害的想法么?
答:哲学家John Searle认为非生物的机器会拥有智能的想法是不合逻辑的。哲学
家Hubert Dreyfus认为人工智能是不可能实现的。计算机科学家Joseph Weizenbaum
认为人工智能是反人类不道德的猥亵想法。各种各样的人坚持既然现在人工智能还
没达到人类水平的智能,那它一定是不可能达到的了。还有一些人则对他们投资的
公司破产感到失望。
问:计算理论和计算复杂性理论对于人工智能有没有关键性的作用?[注:计算理论
和计算复杂性理论是数理逻辑和计算机科学的相当有技巧的分支,并且解决其中的
问题也需要相当的技巧。]
答:不。那些理论和人工智能相关,但并不能解决人工智能的基本问题。
20世纪三十年代,以Kurt Godel和Alan Turing为代表的数理逻辑学家们确
定不存在算法可以判定某些重要的数学领域中的所有问题。一阶逻辑中命题真假的
判定是一个例子;一个多变量的多项式等式是否有整数解是另一个例子。但人类一
直在解决这些领域中的问题。这个结果给出了这样的一种观点(通常还有所夸大),
即计算机在本质上是不能够做一些人类可以完成的事情的。可是,人们也不能保证
人类可以解决这些领域中的任何一个问题。
20世纪六十年代,以Steve Cook和Richard Karp为代表的计算机科学家们
建立了NP完全性的理论。一个NP完全的问题是可解的,但极可能是需要和问题规模
成指数式的时间。命题演算中命题的可满足问题是一个NP完全问题的基本例子。人
类常常可以用比一般算法短很多的时间来解决某些特殊问题,但对于一般的问题还
是不能很快地解决。
人工智能中重要的是得到能够和人一样解决问题的算法。确认好的算法是
否存在的领域是重要的,但众多人工智能问题的求解并不和这一领域相关。
关于一般各类问题的难度的理论称为计算复杂性理论。到目前为止,这个
理论还没有像曾经期望的那样与人工智能产生相互影响。人和人工智能程序在问题
求解中的成功所依赖的问题的属性和问题求解的方式,好像是复杂性的研究者和人
工智能的研究者都不能完全确定的。
由Solomonoff,Kolmogorov和Chaitin各自独立发展起来的算法复杂性理
论也是一样的。它定义一个符号对象的复杂性为可以生成它的最短程序的长度。已
经证明了寻找一个最短的或者接近最短的程序的问题是不可解的,但是用短的可以
生成这些符号的程序来表示它们常常是很有启发性的,当然你并不能证明这个程序
是最短的。
2 人工智能的分支
问:人工智能的分支有那些?
答:这里列出了一些,但是有些分支在这里没有出现,因为没有人能够确认
它们,这其中的有些被认为是概念或主题,而不是完整的分支。
逻辑人工智能
一般来说,一个程序所知道的关于这个世界的知识是在特定的情形下的事实,
在这个情形中程序必须有所动作,并且它的目标是把所有这些用数理逻辑的语
句表示出来。程序通过推理达到目标的适当的行为来决定该怎么做。处理这个
问题最早的文章是[McC59],而[McC89]是近期的总结,[McC96]列出了一些包含
在逻辑人工智能中的概念,[Sha97]则是一份重要的文件。
搜索
人工智能程序经常要搜索大量的可能性,例如,在棋类游戏中的移动或通过定理
证明程序来推理。在很多不同的领域,人们正在继续发现各种方法来提高程序的
效率。
模式识别
当一个程序观察某类事物的时候,它通常被设计成所见事物与模式的比较。例如,
一个视觉为了找到一张脸,它会试图去匹配一个场景中的眼睛和鼻子的模式。更
复杂的模式,例如一个自然语言的文本,棋类游戏中的一个位置,或被研究的事
件的历史。这些更复杂的模式比绝大多数已经被研究过的简单模式需要更不同的
方法。
表示
关于世界的知识必须以某种方式表示出来。通常使用的是数理逻辑的语言。
推理
从一些事实可以推出另一些事实。对某些目的来讲,数理逻辑演绎已经够用了,
但是自从70年代以来,已经发展了一种叫做非单调推理的方法。
常识知识和常识推理
这个领域是人工智能距离人的水平最远的,尽管自从50年代以来这一直是一个非
常活跃的研究领域。虽然取得了一些相当大的进展,比如非单调推理系统和行为
理论的发展,但是我们需要更多的新思想。Cyc系统包含了大量的但并不可靠的常
识事实的集合。
从经验中学习
程序必须做到这个。对人工智能的基于连接和神经网络处理就是专门做这个的。还
有包括对用逻辑表达的法则的学习。[Mit97]是一本关于机器学习的本科教材。程序
只能学习那些能够被他们的形式所表示的事实和行为,但是不幸的是,学习系统都
是基于非常有限的表示信息的能力的。
规划
规划程序以关于世界(特别是关于行为的结果的事实)或关于特殊情形和目标表述
的一般事实开始。然后,它们生成一个达到这个目标的策略。在很多共同的情况下,
这个策略就是一系列的行为。
认知论
这是对我们需要用来解决世界中的问题的知识的种类的研究。
存在论
存在论研究存在的事物的种类。在人工智能中,程序和语句要处理大量的对象,而我
们要研究的是这些对象的种类和它们的基本性质。对存在论的重点研究开始于90年代。
启发式
启发式是一种试图在程序中发现思想和其他一些东西的方法。在人工智能里,这个术
语用得很广泛。启发式函数用在对搜索的处理上,它衡量在一棵搜索树中的节点离目
标节点还有多远。启发式谓词用来比较一棵搜索树中的两个节点是否其中的一个比另
一个好,也就是取得通向目标的进展。按照我的观点,启发式谓词更有用。
遗传程序设计
遗传程序设计是一项技术,它通过杂交随机化的Lisp程序和从成千上万代中选择最合
适的程序来完成任务。John Koza领导的小组发展了遗传程序设计,这里附带了一份
指南。 (http://www.genetic-programming.com/gpanimatedtutorial.html).
问:人工智能的应用在哪里?
答:这里列出了一些
游戏
你可以花上很少的几百美元买一个具有大师级水平的棋类游戏的机器。其中就有
人工智能,但是它们主要通过盲目计算--看成千上万个位置来与人对弈。通过盲
目计算要打败一个世界冠军,则启发式需要每秒观察2亿个位置。
语音识别
90年代,为了某些特定目的,计算机语音识别已经达到了实用水平。虽然有可能
指导某些计算机使用语音,但是为了方便,人们还将继续使用键盘和鼠标。
自然语言理解
仅仅输入一个字符序列到计算机中是不够的。句子解析也是不够的。计算机必须
能理解文本有关的领域,而这目前只对非常有限的领域有可能。
计算机视觉
世界是由三维对象组成的,但是输入到人的眼睛和计算机电视照相机中的影像是
二维的。一些有用的程序在二维中能独立地工作,但是完整的计算机视觉需要部
分三维的信息而不止是一些二维图像。目前只有有限的方法来直接表示三维的信
息,而这也还没有人类所使用的好。
专家系统
一个"知识工程师"通过采访某个领域中的专家,试图把它们的知识在计算机程序
中体现出来以完成某项任务。这工作得如何依赖于完成任务所需要的智力机制是
否包含在人工智能的当前状态中。如果这被证明不是这样的,那么会出现许多令
人失望的结果。最早的专家系统之一是1974年出现的MYCIN,它用来诊断血液是否
被细菌感染,并且建议如何治疗。它比医学院的学生和已经工作的医生工作得都
要好,尽管人们也发现了它的缺陷。顾名思义,它的存在性包括细菌、症状和治
疗,二不包括病人、医生、医院、死亡、康复和实时发生的事件。它的交流依赖
于一个被考虑的简单的病人。因为被知识工程师采访的专家熟悉病人、医生、死
亡、康复等等的情况,所以必须有知识工程师把专家告诉他们的情况输入到一个
预先决定的框架里。从目前人工智能的状况来看,确实是这样的。目前通行的专
家系统的有用性依赖于具有常识的使用者。
启发式分类
利用目前人工智能的知识,最可行的专家系统之一是把信息输入到一个固定的使
用一些原始信息的类型集合中。例如建议是否接受所提议的信用卡交易。关于信
用卡的主人、付款纪录、购买的物品以及购买物品的公司等信息应该是可以得到
的(例如,关于这个公司以前是否有过信用卡诈骗的信息)。
:人工智能的研究是如何进行的。
答:人工智能的研究包括理论和实验两方面,而实验方面还有基础和理论之分。
人工智能的研究主要有两条线索。一条是生物学的,基于这样的思想:既
然人类有智能,那么人工智能就应该学习人类,模拟它们的心理和生理。另一
条是现象学的,基于对关于世界的常识事实和为了达到目标而提出来的问题的
研究和形式化。这两个方面在某种程度上是互相作用的,并且最终两者都会取
得成功。这是一场赛跑,但是两个参赛者好像却在走。
问:在学习人工智能前必须先学习什么?
答:学习数学,特别是数理逻辑。一般来讲,有关的科学知识学得越多越好。
用生物学处理人工智能,必须学习心理学和神经系统的生理学。学会几种程序
设计语言,至少是C,Lisp和Prolog。学习一门基本的机器语言也是一个好主意。
进一步的工作可能要依靠熟知目前流行的语言。90年代末,包括C++和Java。
问:关于人工智能有那些好的教材?
答:Stuart Russell和Peter Norvig写的,Prentice Hall出版社出版的《人工
智能》是1997最通用的教材,那里表述的一些一般观点和本文并不一致。Nils
Nilsson写的,Morgan Kaufman出版社出版的《人工智能:一个新的综合》可能
更容易读。
问:与人工智能有关的组织和出版物有哪些?
答:美国人工智能协会(AAAI) (http://www.aaai.org),欧洲人工智能合作委员
会(ECCAI)(http://www.eccai.org/)和人工智能和行为模拟协会(AISB)
(http://www.cogs.susx.ac.uk/aisb)是跟人工智能研究有关的科学协会。计算机
协会(ACM)有个特别有趣的小组跟人工智能有关,叫做SIGART
国际人工智能联合会(IJCAI)(http://www.ijcai.org)是最主要的国际会议。
《人工智能的电子学报》Electronic Transactions on Artificial Intelligence
(http://www.ida.liu.se/ext/etai/)、《人工智能》Artificial Intelligence
(http://www.elsevier.nl/locate/artint/)、《人工智能研究杂志》Journal of
Artificial Intelligence Research (http://www.jair.org/)和《IEEE模式分析
和机器智能学报》IEEE Transactions on Pattern Analysis and Machine
Intelligence(http://computer.org/tpami/)是四个发表人工智能研究论文的最主
要的杂志。我能够找到的所有信息都已经包含在这里了。
主页Positive Reviews(http://www.cs.utexas.edu/users/vl/ppr/)列出了一
些专家们认为重要的论文。.