基于逻辑的人工智能
虽然规则成为专家系统获取人类知识的主要方法,但也有大量其他方案存在。例如,图6就展示了一种名为脚本 的知识展示方案(简化)版本,由心理学家罗杰·尚克(Roger Schank)和罗伯特·亚伯森(Robert P. Abelson)开发。该方案基于一种关于人类理解能力的心理学理论建立,理论指出,我们的行为部分受刻板印象模式(即“脚本”)支配,我们也用这些模式来理解世界。他们认为同样的模式可以应用在人工智能中。以图6所示脚本为例:这是一个典型的餐厅场景,脚本(用自然语言)描述了参与者的各种角色(顾客、服务员、厨师、收银员)、启动脚本所需要的条件(客户饿了)、脚本需要操作的各种物理项(食物、桌子、钱、菜单、小费),并且,最重要的是与脚本相关的常规事件序列,在图6中,这些事项的编号为1—10。尚克和亚伯森推测这样的脚本可以用在人工智能程序中,用于理解故事。他们认为,当故事中的事件与常规剧本不同的时候,故事就会变得有意思(有趣、可怕、令人惊讶)。例如,一个有意思的故事可能包含这样的情况:在第4步以后脚本就停止运行了,即顾客点了餐,但是没有上菜。一个违法故事可能省略第9步:顾客点餐并吃东西,但没有付钱就离开了餐馆。他们尝试了几次以脚本为基础构建能够理解故事的系统,但成功率有限[33] 。
另一个引起广泛关注的方案是语义网[34] ,它非常直观、自然,在当今社会,也经常被重新定义——事实上,如果让你去发明一个知识表述方案,我认为你很有可能做出类似的产品。图7展示了一个简单的语义网,它代表了有关我的一些知识(我的出生日期、居住地、性别和下一代)以及一些世界性常识(比如:女人首先是人,大教堂既是一座建筑又是一个礼拜场所等)。
在以知识为基础的人工智能兴起时,似乎每一个人都有自己的知识表述方案,而且跟其他人的不兼容。
虽然专家系统事实上的知识表述方式是基于规则的,但在知识表述方面,研究人员仍然有不少困扰。其中之一就是规则太简单,无法获取复杂环境下的相关知识。比如MYCIN系统的规则就不适用于会随时间变化的环境,也不适用于多个用户(不管是人类还是人工智能)的环境,或者实际状态存在各种不确定性的环境。另一个问题是,用于专家系统获取知识的各种方案似乎都有些武断,研究人员希望能了解专家系统中的知识实际上意味着什么,并确保系统进行的推理是可靠的。简而言之,他们想为基于知识的专家系统提供合适的数学基础。人工智能研究人员德鲁·麦克德莫特(Drew McDermott)在1978年撰写的一篇文章中总结了这些问题,并称之为“无意指不表达”[35] ,“对一个系统而言,正确性固然是重中之重,”他写道,“让人能理解它,也是十分关键的。”
20世纪70年代末就开始出现相关的解决方案,即使用逻辑作为知识表述的统一方案。为了理解逻辑在基于知识的系统中所扮演的角色,我们有必要了解一些逻辑的知识,以及它如何作用于系统。逻辑学的发展是为了理解推理,特别是区分好的(完备的)推理 和坏的(不完备的)推理 。让我们看一些推理方面的例子,包括完备和不完备的。
凡人终有一死;
艾玛是凡人;
所以,艾玛终有一死。
这就是典型的三段论逻辑推理的模式,我想你会同意这里的逻辑推理是完全合乎情理的:如果所有的人类都是凡人,终有一死,而艾玛是人类之一,所以她也是凡人,也终有一死。
我们继续看下一个例子:
所有的教授颜值都高;
迈克尔是一名教授;
所以迈克尔是位帅哥。
很显然,教授们倒是很乐意相信这个结论。然而,从逻辑的角度来看,这个推论也是没有什么错误的:事实上,从推论本身来看,它完全正确。如果真的所有教授颜值都很高的话,迈克尔是一名教授,那么得出他是帅哥的结论就完全合乎情理。逻辑并不关心你一开始的陈述是否真实(即前提 是否真实),只关心你使用的模式和得出的结论是否合理。当然,那是在承认这个前提的基础上。
接下来我们看一个不完备的推理:
所有学生都努力学习;
索菲是一名学生;
所以索菲很有钱。
这个推理就是错误的,因为仅仅依靠前两个前提就得出索菲有钱的结论是不合理的。索菲有可能很富有,但这不是重点,重点在于你不能从给定的前提得出这个结论。
所以,逻辑是有关推理模式的,上述的例子所示的三段论也许是最简单有用的逻辑推理案例。逻辑告诉我们怎样正确地从前提中得出结论,这个过程被称为演绎 。
三段论是古希腊哲学家亚里士多德(Aristotle)提出的,1000多年以来,三段论为逻辑分析提供了主要框架。然而,它能展示的逻辑推理形式十分有限,不适合许多复杂形式的论证。从很早开始,数学家就对理解推理的通用原理有着浓厚兴趣,因为数学的根本性问题都是有关推理的:数学家的工作就是从现有的知识中获取新的知识,换句话说,就是进行推理和演绎。到了19世纪,数学家们普遍对他们的工作原理感到困惑。他们想知道,到底什么是真实的?我们怎样证明数学论证是合理的推论呢?我们怎么确定1 + 1 = 2是正确的?
大约始于19世纪中叶,数学家们开始认真研究这些问题。
德国的戈特洛布·弗雷格(Gottlob Frege)发展了普通的逻辑演算,为世人第一次展现了类似现代数理逻辑框架的东西。伦敦的奥古斯都·德·摩根(Augustus de Morgan)和来自爱尔兰科克城市的乔治·布尔(George Boole)展示了如何将应用于代数问题的相同计算方式应用于逻辑推理(1854年,布尔发表了相关论文,并起了个傲慢的题名:思想法则)。
到了20世纪初,现代逻辑的基本框架已经大致建立起来,当时确立的逻辑运算系统,直至如今仍然能够支撑数学家几乎所有的逻辑推理工作。这个系统被称为一阶逻辑 ,一阶逻辑是数学和推理的通用语言。这个框架涵盖了亚里士多德、弗雷格、德·摩根、布尔和其他人的所有类型的推理。在人工智能领域,一阶逻辑似乎以同样的方式提供了统一框架,为当时世界各地各式各样、不成体系的知识表述方案提供了统一框架。
基于逻辑的人工智能 范式由此诞生,其最早和最具影响力的倡导者之一,就是约翰·麦卡锡——正是那位在1956年主持了达特茅斯暑期学校,并为人工智能命名的麦卡锡。他描述了自己对基于逻辑的人工智能系统的构想[36] :
我的观点是,智能体能够使用逻辑语句来表达其对世界、目标和当前状况的了解,并通过(推断)某个行为或者行动过程是否符合它的目标,来决定它自己的行为。
这里的“智能体”指的就是人工智能,麦卡锡提出的“逻辑语句”正是我们前文所述的类似“凡人皆有一死”或者“所有教授颜值都高”等陈述。一阶逻辑提供了丰富的、数学上能够精准表达的语言,可以用来表述逻辑语句。
麦卡锡设想的基于逻辑的人工智能,一个基于逻辑的人工智能系统能通过逻辑语句明确地表示其对环境的信念,智能决策则被分解为逻辑推理的过程。
图8展示了麦卡锡对逻辑人工智能的构想(相当程序化)。我们看到一个机器人在类似积木世界的环境中工作,它配有机械臂和用于获取环境信息的感应系统。在机器人内部,有关于环境的逻辑描述,包括On(A, Table), On(C, A)等语句。这些语句实际上是一阶逻辑的表达式。对于图8所示场景,它们的含义非常明显:
· On(x, y)表示对象x位于对象y的上方· Clear(x)表示对象x上没有对象· Empty(x)表示x是空的
在基于逻辑的人工智能系统中,关键任务之一是定义表达式词汇表。比如On(x, y)、Clear(x)等等,用来表示所处的场景。
机器人内部的逻辑推理系统用于判断它从所处环境中获取的所有信息,这种认知通常被称为信念。机器人的信念系统包含了“On(A, Table)”就意味着“机器人相信对象A在桌面上”。不过,我们需要谨慎地对待这些术语。虽然使用我们熟悉的词汇来做术语有助于我们理解机器人的“信念”〔对人类而言,“On(A,Table)”是一种非常容易理解的表述〕,但对机器人而言,只有它的知识库里存储了这个表达式的意义,才能和机器人本身的行为产生关联。只有机器人的知识库中有了这一条认知以后,才真正算作一项“信念”。另外,选择“On”作为术语也没什么神奇之处,其实设计者完全可以使用诸如“Qwerty(x, y)”之类的语言来表述物体x位于物体y之上,对机器人而言,其执行结果并没有什么不同。人工智能开发中一个常见的误区,就在于开发者为系统所选择的术语对人类而言太容易理解了,反而增加了许多不必要的误解,这让我们以为机器人也能轻而易举读懂语言本身,而事实并非如此。
机器人的感应系统负责将感应器所提供的原始信息转化成机器人能使用的内部逻辑形式,如图8所示。正如前面我们提到过的,这不是一件容易的事情,我们稍后会详细讨论。
最后,通过机器人的逻辑推理系统(推理机)来决定机器人的实际行为。逻辑人工智能的核心思想就在于机器人的行为是基于逻辑推理的结果:它必须推断出自己接下来应该做什么。
总的来说,我们可以设想机器人的行为模式:在一个周期内不断地通过传感器观察周围环境,更新对环境的认知,推断出下一步该做什么,执行这个动作,然后重新开始整个过程。
基于逻辑的人工智能为什么会有相当的影响力?我想我们有必要理解这一点。或许最重要的原因是它让一切变得单纯:
构建智能系统的整体问题被简化成对机器人应该做什么的逻辑描述。而这样一个系统是透明的:要理解机器人为什么这么做,只需要看到它的信念和推理过程就行了。
当然,我认为还有一些不那么明显的原因。首先,想象一下,我们做决定的依据来源于推理,这个想法本身就很吸引人。当我们思考的时候,似乎也是这么做的:我们考虑各种行动方案的优劣,可能会和自己来一场心灵对话,厘清每种方案的利弊。而基于逻辑的人工智能似乎遵循了这一过程。
本书评论