麦卡锡问答:什么是人工智能?
一、 基本问题
问:什么是人工智能?
答:人工智能是研制智能机器尤其是智能计算机程序的科学与工程。它与使用计算机理解人类智能类似,但人工智能并不将它自己局限于生物意义上的方法。
问:是的,那么什么是智能呢?
答:智能是指现实世界中达到目标所需能力中的计算能力。不同种类、不同程度的智能表现在人、许多动物和一些机器身上。
问:智能难道还没有公认的、不依赖于人类智能的独立定义吗?
答:还没有。问题是,我们还不能一般性地刻画哪一类计算过程我们想称之为智能。我们懂得某些智能机制,但对其他的并不了解。
问:人工智能是让人们可以对“这台机器有还是没有智能?”这类问题作出肯定或者否定回答的那种单一行为或心理特征吗?
答:不是。智能涉及机制。人工智能研究已经指出如何让计算机施用其中的某些(但非所有)机制。如果完成一项任务只需要已被充分理解的机制,那么计算机程序能有令人印象深刻的表现。这样的程序应该被视为“有点儿智能”。
问:人工智能不就是模拟人类智能吗?
答:有时是,但不总是,也并非通常是。一方面,我们可以通过观察别人或者直接观察我们自己的行为方式来学习如何让机器解决问题。另一方面,人工智能领域的大部分工作都涉及研究现实世界给智能带来的问题和挑战,而并非研究人或动物本身。人工智能研究者可以自由使用尚未被人使用过的方法,或者所涉及的计算是人力无法完成的方法。
问:计算机程序有智商(IQ)吗?
答:没有。智商是基于儿童智力的发展速度,它是指儿童在正常情况下获得一定分数时的年龄与其实际年龄的比值。这种测试也可以通过适当方式扩展到成人。智商与生活中各种衡量标准下成功或失败的程度密切相关,而让计算机在智商测试中能获得高分与计算机的有用性却关联微弱。譬如,孩童复述长串数字的能力与其其他方面的智力有着良好的相关性,这或许是因为前者能够衡量孩童单次可处理信息的多少。然而,这种“数字广度”测试对计算机(即使是性能很低的计算机)而言也是微不足道的。
尽管如此,关于智商测试的一些问题是对人工智能的有益挑战。
问:有关人类与计算机智能之间的其他对比呢?
答:人类智能研究领域的领军人物亚瑟·罗伯特·詹森(Arthur R. Jensen)[Jen98] 提出“作为启发式假设”的猜想:正常的人类具有相同的智能机制,而智能的差异与“定量的生物化学和生理学条件”有关。我将它们视为速度、短期记忆以及构成精确且可提取的长期记忆的能力。无论詹森有关人类智能的看法正确与否,目前人工智能的状况却与其相反。
计算机有很快的计算速度和充足的存储空间。计算机程序的能力与智能机制相对应,而智能机制则由设计者在对其充分理解的基础上编入程序。计算机具备的某些能力,孩童可能要到少年时才能发展起来,而两岁幼儿具备的某些能力,计算机目前都还不具备。目前认知科学尚不能准确定义什么是能力,这一事实让问题变得更为复杂。就人工智能而言,智能机制的组织在使用时很有可能与其在人身上不一样。
无论什么时候,只要某些工作人比计算机做得更好,或者计算机要花费大量的计算才能和人做得一样好,那就说明程序设计者缺少对有效完成任务所需智能机制的理解。
问:人工智能研究是从什么时候开始的?
答:二战后,许多人开始独立地从事智能机器的研究工作。英国数学家艾伦·图灵(Alan Turing)可能是其中的第一位。他在1947年作了一个有关智能机器的演讲。他或许就是认定人工智能的研究最好是通过编制计算机程序而非制造机器的第一人。到了20世纪50年代后期,已有很多人在研究人工智能,他们的工作大都基于计算机程序设计。
问:人工智能的目的是要将人脑植入计算机吗?
答:一些研究者宣称他们以此为目标,不过他们借用这一说法或许只是作个比喻。人脑非常奇特,我不确定是否真有人想完完全全地模拟它们。
问:什么是图灵测试?
答:艾伦·图灵在1950年发表的题为Computing Machinery and Intelligence的文章[TUR50]中讨论了机器可以视为具有智能的条件。他认为,如果机器在拥有知识的观察者面前能够成功地伪装成人类,那么你就应该认为它具有智能。这个测试会令大多数人(但非所有哲学家)感到满意。观察者可以通过电传打字机(以避免要机器模仿人的外表或声音)与机器和人互动:人试图说服观察者他自己是人,而机器则尝试愚弄观察者。
图灵测试是一种单边测试。一台通过了测试的机器当然应该被视为具有智能,而没有充分了解人类就能模仿人的机器自然也可以被视为具有智能。
丹尼尔·丹尼特(Daniel Dennett)的著作《BrainChildren》[Den98]中对图灵测试和已经实现的各种部分(即观察者的人工智能知识和提问的题材有局限性的)图灵测试有精彩的讨论。结果是,有些人很容易被误导以至相信相当愚笨的程序具有智能。
问:人工智能是以达到人类的智力水平为目标吗?
答:是的。努力至极是为了让计算机程序和人类一样,能够解决实际问题、达到预定目标。然而,许多在特定领域从事研究的人远远没有那么雄心勃勃。
问:人工智能离达到人类智能的水平还有多远?到什么时候才会达到?
答:有些人认为,通过编写大量人们现在在编写的那种程序、构建由目前用来表示知识的语言所表达的各种事实组成的海量知识库,人类智能的水平终究是可以达到的。
然而,大多数人工智能研究人员相信,人工智能要达到人类智能的水平,根本性的原创思想是必不可少的,因而现在还很难预测何时人工智能才会达到人类智能的水平。
问:计算机是适合智能化的那种机器吗?
答:可以通过编程让计算机模拟任何类型的机器。
许多研究人员发明了其他非计算机类型的机器,他们希望这种机器与计算机程序具有不同形式的智能。这些研究人员通常在计算机上模拟他们所发现的机器,因而他们最终变得怀疑新机器是否值得制造。由于数十亿美元已被用于提升计算机的运算速度,因此要改用另一种机器,该机器就必须很快,快到能让其表现比计算上模拟它的程序更加出色。
问:计算机已快到足以被智能化了吗?
答:有些人认为,更快的计算机和全新的想法都是必需的。我个人的观点是,30年前的计算机就已经足够快了,要是我们知道如何为其装配好软件程序。当然,抛开人工智能研究者的雄心,计算机也会越来越快。
问:并行机如何?
答:带有多个处理器的机器要比只带单个处理器的机器快很多。并行本身并没有展现出优势,而且并行机器对于程序设计来说又有点让人尴尬。然而,需要极速时,我们则必须面对这种尴尬。
问:可否研制一台能够通过阅读和经验学习而不断获得改进的“童子机”?
答:这个想法从20世纪40年代开始就被多次提出,它最终也会变成现实。然而人工智能程序尚未达到能学习很多孩童从物理经验中所学的这一水平。当前程序对语言的理解能力也未高到能通过阅读学习的水平。
问:通过思考人工智能,人工智能系统能否将自身引导至越来越高的智能水平?
答:我想是,但我们还不在开启这个过程的人工智能层面上。
问:国际象棋如何?
答:俄罗斯人工智能研究者亚历山大·克朗罗德(Alexander Kronrod)说,“国际象棋是人工智能的果蝇”。他曾以遗传学家使用果蝇研究遗传作类比,使用国际象棋研究人工智能。下棋需要某些但并非所有智能机制。现在的国际象棋程序是大师级的,但与人类棋手相比,这些程序仅使用了有限的智能机制,并且用大量的计算来替代理解。等我们更好地理解了下棋的智能机制,我们就能编制计算量比现有程序少得多的、人类水平的象棋程序。
不幸的是,让计算机下棋的竞争和商业趋向已经比将象棋智能作为一个科研方向更为优先。这就好比1910年之后,基因学家组织果蝇竞赛,而将精力集中在培育能够赢得竞赛的果蝇上。
问:围棋呢?
答:中国和日本的围棋是棋手轮流下子的棋盘类游戏,它揭示了我们目前对人类游戏中智能机制理解的不足。尽管做了相当多的努力(但不像国际象棋那么多),围棋程序仍然非常糟糕。其中的问题似乎是,人们在下棋时会将当前棋盘状态在头脑中划分为一系列子状态,先分析每个子状态,然后再分析子状态的交互作用。人类在下象棋时也会使用这种方法,但象棋程序将每一状态作为一个整体。象棋程序通过上千次——在使用超级计算机深蓝的情形,上百万次——的计算来弥补这种智能机制的缺失。
不过,人工智能研究迟早会补足这类难堪的缺陷。
问:不是有人说人工智能是坏主意吗?
答:哲学家约翰·塞尔(John Searle)说,非生物智能机器的想法言之不清、述之无理。他提出了“中文房间”这一思维实验www-formal.stanford.edu/jmc/chinese.html。哲学家休伯特·德莱弗斯(Hubert Dreyfus)说,人工智能是不可能的。计算机科学家约瑟夫·维森鲍姆(Joseph Weizenbaum)说,人工智能的想法令人生厌,是反人类的、不道德的。各种各样的人都说过,由于人工智能到目前为止还达不到人类水平的智能,它一定是不可能的。还有一些人,他们对其投资的(人工智能)公司的破产感到失望。
问:可计算性理论和计算复杂性不是人工智能的重点和关键所在吗?[非计算机科学领域的读者和初学者需要注意:可计算性理论和计算复杂性是数理逻辑和计算机科学的两个非常技术性的分支,因此该问题的回答不得不涉及一些技术性的细节。]
答:不是。这些理论与人工智能相关,但它们并未论及也未破解人工智能的基本问题。
20世纪30年代,数理逻辑学家,特别是库尔特·哥德尔(Kurt Gödel)和艾伦·图灵(Alan Turing),建立的可计算性理论表明,在某些重要的数学领域,不存在能够解决所有问题的算法。判定一阶逻辑语句是否为定理、多元多项式方程是否有整数解都是这类不可解问题的例子。人类一直在解决这些领域中的问题,这已经被当作“计算机本质上做不了人所做的事情”这一(通常带有修饰的)论据。这是罗杰•彭罗斯(Roger Penrose)作出的论断。其实,人也无法保证自己能解决这些领域中的任意问题。参见我的书评Review of The Emperor’s New Mind(罗杰•彭罗斯著)。更多捍卫人工智能研究的论文和评述见诸于[McC96a]。
20世纪60年代,计算机科学家,特别是史蒂夫· 库克(Steve Cook)和理查德·卡普(Richard Karp),建立了NP完全问题类理论。NP完全问题类中的问题都是可解的,但求解问题所需的时间可能会随问题规模变大而呈指数级增长。命题演算中哪些语句是可满足的就是一个NP完全问题类中的一个基本实例。人类解决NP完全问题类中的问题所花的时间常常会比通用算法所需要的时间短很多,但一般来说人类却不能很快解决这类问题。
对人工智能来说,重要的是有算法,它们能像人一样解决问题。确定存在良好算法求解其中问题的问题子类非常重要,但许多人工智能问题求解器都没有与容易确定的问题子类相关联。
计算复杂性是用于描述通类问题求解困难程度的理论。到目前为止,这一理论与人工智能的互动还没有人们所希望的那么多。人类和人工智能程序能否成功解决问题似乎取决于问题的特性和问题求解的方法,这两者计算复杂性研究者和人工智能界都还不能确定。
所罗门诺夫(Solomonoff)、柯尔莫果洛夫(Kolmogorov)和蔡廷(Chaitin)(彼此独立)建立的算法复杂性理论也与人工智能相关。该理论将符号对象的复杂性定义为生成它的最短程序的长度。证明候选程序最短或者接近最短是一个不可解问题,但用最短生成程序表示对象的想法应该常给我们启发,即便我们无法证明候选程序最短。
二、 人工智能的分支
问:人工智能有哪些分支?
答:这里有份清单,但肯定不完整,因为还没有人确定到底有哪些分支。清单中有些条目可以看作是概念和主题,而不是完整的分支。
逻辑人工智能(logical AI):程序所认知的世界,一般来说是其作用于特定状态的事实,和程序的目标都是用某种数理逻辑语言的语句来表示。程序先推断确定适合达到目标的操作再决定去做什么。该想法在文章[McC59]中首次提出。文献[McC89]是一个近期的总结,[McC96b]列出了一些逻辑人工智能所涉及的概念,而[Sha97 ]是一本重要的教材。
搜索(search):人工智能程序经常需要检验大量的可能性,譬如,国际象棋棋子可能的移动或定理证明程序中可能的推理。在不同领域,人们都不断有如何进行更有效检验的发现。
模式识别(pattern recognition):当进行某种观测时,程序经常被设计得将其所观测到的与某个模式相比较。比如,视觉程序可以尝试匹配场景中眼睛和鼻子的模式来找到面部。已被研究的更复杂的模式还包括出现在自然语言文本、国际象棋的棋盘状态或某些历史事件中的种种模式。与已经广泛研究的简单模式相比,这些复杂模式的研究更需要颇为不同的方法。
表示(representation):有关现实世界的事实必须以某种方式表示。数理逻辑语言通常被用于此类表示。
推断(inference):从某些事实可以推断出另外一些事实。数理逻辑的演绎推理在某些情形是合适的,但自1970年以来,非单调推理的新方法也逐步发展起来。最简单的一类非单调推理是默认推理,其中结论是要通过默认推出,而结论可以撤回如果存在相反证据。譬如,当我们听到鸟叫时,我们可以推断它会飞。这一结论在我们听出它是一只企鹅后可以被推翻。有可能,推理的结论也必须撤回,这就形成了推理的非单调特征。通常的逻辑推理,在能从一组假设得出的结论组是这些假设的单调递增函数这个意义下,都是单调的。限定推理是非单调推理的另一种形式。
常识知识与推理(common sense knowledge and reasoning):尽管常识知识与推理自20世纪50年代以来一直是一个活跃的研究领域,但它仍是人工智能与人类智能水平相差最远的领域。尽管在非单调推理系统研发和行为理论研究等方面已有相当多的进展,但更多新思想仍然是迫切需要的。Cyc系统收集了为数众多但良莠不齐的常识事实。
经验学习(learning from experience):程序自己学习。基于连接主义和神经网络的人工智能方法擅长于此。也有由逻辑表达的规律学习。[Mit97]是一本关于机器学习的综合性本科教材。程序只能学习其形式体系能表示的事实或行为,但不幸的是,学习系统几乎都是基于表示信息能力非常有限的形式体系。
规划(planing):从有关现实世界的一般事实(特别是有关行为效果的事实)、有关特定场景的事实以及目标陈述开始,规划程序生成一个达到目标的策略。在最常见的情形,策略就是一系列的动作。
认识论(epistemology):认识论研究解决现实问题所需的那种知识。
本体论(ontology):本体论研究存在的那种事物。在人工智能中,程序和语句处理各种对象,而我们研究的是,这种对象是什么,它们的基本特性是什么。本体论在20世纪90年代开始受到重视。
启发式策略(heuristics):启发式策略是一种尝试发现事物的方式或者嵌入到程序中的想法。该术语在人工智能领域被广泛使用。在某些搜索方法中,启发式函数被用于度量搜索树中的节点与搜索目标大致相差有多远。用于比较搜索树两个节点以确定一个是否比另外一个更好(也即确定前者是否朝着目标更进一步)的启发式谓词或许更有用。 [我的观点]
遗传程序设计(genetic programming):遗传程序设计是一种让程序通过配对随机Lisp程序和选取数百万后代中的最优者来完成任务的技术。该技术由约翰·科扎(John Koza)的研究小组开发,这里有一个教程。
http://www.geneticprogramming.com/gpanimatedtutorial.html
三、 人工智能的应用
问:人工智能的应用有哪些?
答:部分应用罗列如下。
博弈(game playing):你花几百美元就能买到具有大师级水平的下棋机器。它们有一些人工智能,但主要还是通过蛮力计算(每秒查看成千上万种可能状态)与人对弈。要用已有可靠的启发式方法和蛮力计算战胜世界冠军,程序每秒至少需要查看两亿个状态。
语音识别(speech recognition):20世纪90年代,局限在某些情形,计算机语音识别达到了实用水平。美国联合航空公司用一个通过语音识别航班号和城市名的系统替换了它关于航班信息的键盘树。它用起来相当方便。另一方面,用语音控制计算机是可能的,然而大多数用户还是回到了键盘和鼠标,因为它们还是更为方便。
自然语言理解(understanding natural language):仅将单词序列输入到计算机是不够的,只解析语句也是不够的。要实现自然语言理解,还必须让计算机能够理解文本的领域。目前,这只对很有限的领域才可能做到。
计算机视觉(computer vision):现实世界是由三维物体组成的,而人眼、计算机的电视摄像机接收的输入却是二维的。一些有用的程序只能处理二维信息,但完整的计算机视觉则需要部分不就是一组二维视图的三维信息。目前,直接表示三维信息的方式非常有限,这些方式也不如人类平常所用的方式那样好。
专家系统(expert systems):一个“知识工程师”访谈某个领域的专家们,试图将他们的知识嵌入到计算机程序中以自动完成某种任务。这项工作的效果取决于完成任务所需的智能机制是否超出了人工智能的现状。如果确实如此,结果大都令人失望。最早的一个专家系统是1974年完成的MYCIN,它被用于诊断血液细菌感染、提供治疗建议。它比医科学生和实习医生做得都好,其前提是它的局限性已观察清楚。也就是说,它的本体知识包括细菌、症状和治疗方案,但不包括病人、医生、医院、死亡、康复以及突发事件等信息。其互动依赖于单个被诊治的病人。由于被咨询的专家们了解病人、医生、死亡、康复等信息,知识工程师只需将专家告知的信息塞入预先设定的框架即可。这就是当前人工智能发展的现状。目前专家系统有用与否取决于其用户是否具备常识。
启发式分类(heuristic classification):鉴于人工智能的现有知识,最可行的一种专家系统是使用多信息源将信息进行分组归类。一个具体的例子是建议是否接受提议的信用卡购物。已知的信息包括信用卡持有人,他的付款记录,他正在购买的商品以及他购买商品的商家(如该商家以前是否有过信用卡欺诈行为)等。
四、 其他问题
问:人工智能研究做得如何?
答:人工智能研究有理论和实验两个方面。实验又有基础和应用两个方面。
人工智能研究有两条主线。一条是生物学的,它基于“由于人类具有智能,所以人工智能应该研究人类并且模仿人类的心理和生理”这一想法。另一条是现象性的,基于研究、形式化有关现实世界的和为达到目标现实世界呈现的问题的常识事实。这两种途径在一定程度上会相互作用,二者最终都应该成功。这是一场赛跑,但两名跑步选手似乎都还在行走。
问:人工智能与哲学有什么关系?
答:人工智能与哲学尤其是现代分析哲学之间有很多关系。两者都研究人脑和思想,也研究常识。这方面最好的参考文献是[Tho03]。
问:人工智能和逻辑程序设计是如何关联的?
答:最最起码,逻辑程序设计提供了有用的程序设计语言(主要是Prolog)。
除此之外,有时候,人工智能中有用的理论T可以表示为霍恩(Horn)子句集H,而要达到的目标G则可以表示为寻找变量x1,x2,···,xn的值使其满足表达式g(x1,x2,···,xn)。该问题有时可以通过运行由G和H组成的Prolog程序来解决。
将AI当作逻辑程序设计会有两种可能的障碍。首先,霍恩理论对一阶逻辑的研究并不彻底。其次,用于表达理论的Prolog程序可能效率极低。比执行表达理论的程序更多、更精细的控制是经常需要的。地图着色提供了这类问题的示例。
问:准备或者正在学习人工智能时,我还应该学习什么?
学习数学,尤其是数理逻辑。科学如物理学或者生物学,你学得越多越好。对于人工智能生物学方法,去学习心理学和神经系统的生理学。还应该学习一些程序设计语言——至少应该学习C语言、LISP语言和Prolog语言。再学一种基础的机器语言也是一个好主意。就业可能会取决于你是否熟悉或者通晓当前流行的程序设计语言。在20世纪90年代后期,这类语言包括C++和Java。
问:人工智能的好教材是哪一本?
答:由普伦蒂斯·霍尔出版社出版的、斯图尔特·拉塞尔(Stuart Russell)和彼得·诺维格(Peter Norvig)编著的《人工智能》是1997年最通用的教科书。该书中表示的一般观点与本文中的观点并不完全一致。尼尔斯·尼尔森(Nils Nilsson)和摩根·考夫曼(Morgan Kaufman)编著的《Artificial Intelligence: A New Synthesis》可能更容易阅读。还有一些人更喜欢1998年牛津大学出版社出版的,大卫·普尔(David Poole)、艾伦·麦克沃思(Alan Mackworth)和兰迪·戈贝尔(Randy Goebel)编著的《Computational Intelligence》一书。
问:哪些组织和出版物关注人工智能?
答:美国人工智能协会(AAAI)、欧洲人工智能会议(ECCAI)和人工智能与行为模拟协会(AISB)都是有关人工智能研究的学会。计算机协会(ACM)有一个人工智能的专业分会(SIGART)。
国际人工智能联合会议(IJCAI)是主要国际会议。 美国人工智能协会组织一个关于人工智能的国内会议。《Electronic Transactions on Artificial Intelligence》、《Artificial Intelligence》、《Journal of Artificial Intelligence Research》、《IEEE Transactions on Pattern Analysis and Machine Intelligence》是发表人工智能研究论文的四个主要期刊。我还没有找到所有应该出现在这一段的内容。
Page of Positive Reviews列出了专家们认为重要的论文。
美国国家研究委员会所编的《Funding a Revolution: Government Support for Computing 》一书中的第九章表述了对人工智能研究的支持。
--end--
声明:本文章由网友投稿作为教育分享用途,如有侵权原作者可通过邮件及时和我们联系删除:freemanzk@qq.com