基于智能体的人工智能
20世纪90年代初,我遇见了一位人工智能革命中的主角,他是我心目中的英雄人物。我很好奇他究竟如何看待那些他极力反对的人工智能技术——知识表述与推理、问题解决还有计划等。他真的相信这些技术在未来的人工智能中毫无作用吗?
“当然不是,”他回答,“但是我不能赌上我的名声赞同它们的现状啊。”真是一个令人沮丧的回答,尽管事后看来,他也许只是想给一位天真的年轻研究生留下深刻印象。但不管这位教授所说的是否是肺腑之言,其他人肯定会认为,基于行为的人工智能也无法逃脱被寄予过高期望的泥潭。不久后,人们开始清晰地意识到,虽然基于行为的人工智能对人工智能领域的基础假设提出了重要更新,但它仍然有非常严重的局限性。
问题就在于它无法扩展规模。如果我们只是想做个扫地机器人,那么基于行为的人工智能就能满足需求。扫地机器人无须推理,也不需要用自然语言跟人交互,或者解决复杂的问题。因为不需要考虑这些问题,所以它能够使用包容式体系结构(或者其他类似结构——当年有不少与之相类似的方式)来获取有效的解决方案。不过,虽然基于行为的人工智能在某些问题上(主要是机器人技术)取得了极大成功,但它并没有为人工智能提供灵丹妙药。一旦基础行为数量太多,就很难设计出行为系统,因为理解各个行为之间可能存在的相互作用会变得非常困难。使用基于行为的方法构建系统是一门类似于黑魔法的艺术——真想知道这个系统是否实用,唯一的方式是构建出来并使用它,这种实践方式不仅昂贵、耗时,而且不可预测。另外,使用基于行为的方法构建的解决方案,虽然能够针对某个非常具体的问题提出精准有效的方法,但从中所积累的经验,很难应用到新问题上。
布鲁克斯表示知识基础和推理等能力并不是构建智能行为必需的基础,这无疑是正确的,他的机器人也向我们展示了纯行为模式可以达到的高度。但我认为,若是因此机械地认为推理和知识表述在人工智能领域毫无用处,那就错了。有些情况下,推理是无法避开的(不管是逻辑推理还是其他形式的推理),试图否认这一点,就像试图用逻辑推理来构造一个扫地机器人一样荒谬。
虽然新型人工智能的某些支持者态度强硬——严禁在人工智能中加入任何类似逻辑表达和推理的东西,但大多数人则采取了一种更温和的方式,这种温和路线似乎一直盛行至今。温和派吸取了基于行为的人工智能的主要优点,但他们认为正确的解决方式是将行为和推理的方法相结合。一个新的人工智能发展方向开始出现,它吸收了布鲁克斯学说的精华,同时也接受此前被证明在人工智能推理和知识表述方面取得成功的因素。
人工智能研究的焦点再一次转移,从专家系统、逻辑推理机等脱离实体的系统转向构建智能体 (Agent)。智能体指的是一个完整的人工智能系统,它是一个独立的、自主的实体,嵌入 某个环境之中,代表用户执行特定的任务。一个智能体应该能提供一套完整的、集成的能力,而不仅仅是类似逻辑推理那样孤立的、脱离实体的能力。重点在于,将开发目标专注于构建完整的智能体,而不仅仅是智能的组成部分。人们希望这样的人工智能可以避开那个激怒过布鲁克斯的谬论——人工智能可以通过分离智能行为的组成部分(如推理、学习等),彼此孤立地开发,然后组合在一起,取得成功。
基于智能体的人工智能观点直接受到行为人工智能的影响,但又弱化了它的主旨。这一风潮在20世纪90年代初开始初现端倪,当时的人工智能界花费了不少工夫明确当我们提到“智能体”这个词的时候,确切的意指是什么。而一直到90年代中期,人们才达成共识,所谓的智能体应该具备以下三种特性:首先,它们必须反应灵敏,必须迅速适应自己的环境,并且能够在环境变化中适时地调整自己的行为;第二,它们必须积极主动,能够系统地完成用户赋予它们的任务;最后,智能体需要有协作性,即在需要的时候能够和其他智能体合作。人工智能的黄金年代强调的是积极主动,即计划和解决问题;而基于行为的人工智能则强调反应灵敏的重要性,体现在适应所处环境并与之协调。基于智能体的人工智能要求两者兼而有之,此外,还向混合体中注入了一些新的东西:智能体必须和其他智能体合作。为此,它们需要社交技能——不仅是沟通技能,还有和其他智能体的协作、协调、谈判以推进任务完成的能力。
正是出于这种考虑——人工智能体需要社交化,使得基于智能体的人工智能范式从所有人工智能模式中脱颖而出。事后看来,人工智能界花费了这么多年才开始认真思考人工智能系统如何相互协作,以及当它们彼此协作时会出现什么问题,这似乎太奇怪了。虽然研究人员从图灵测试就开始强调社交能力,但它只是指代人工智能通过自然语言与人进行互动和日常对话的能力。在基于智能体的人工智能中,最受关注的并不是如何与人交流,而是如何跟其他的智能体一起协同工作。
图11为我们展示了一个典型的智能体设计。这个智能体被称为“旅行机”[48],它的总体控制分为三个子系统:快速反应子系统的运行方式类似于布鲁克斯的包容式体系结构,它负责处理需要迅速响应并且无须推理的情况,例如避开障碍物;规划子系统负责规划如何实现智能体的目标;另外,建模子系统负责处理与其他智能体的交互。控制系统会听取三个子系统的建议,并决定遵循哪一个的。通常是非常直接的决定:如果快速反应子系统说“停止!”那么控制系统会迅速停止智能体的运动。在20世纪90年代初,人们开发了不少类似这样的智能体系统。
本书评论