首页 理论教育 基于知识的智能体

基于知识的智能体

时间:2022-02-11 理论教育 版权反馈
【摘要】:基于知识的智能体的核心构件是其知识库,或称KB。图 7.1 显示了基于知识的智能体程序的轮廓。与我们所有的智能体一样,基于知识的智能体用感知信息作为输入,并返回一个行动。图7.1中基于知识的智能体与第二章中描述的具有内部状态的智能体非常类似。然而,由于TELL和ASK的定义,基于知识的智能体不是用于计算行动的随意程序。除了 TELL 智能体它需要知道的内容,我们还可以为基于知识的智能体提供某些机制,使得它可以自我学习。

7.1 基于知识的智能体

基于知识的智能体的核心构件是其知识库,或称KB。非形式化地表示,知识库是一个语句集合。(在此,“语句”作为一个技术术语使用。它与英语及其它自然语言中的语句相关,却不相同。)这些语句在被称为知识表示语言的语言中表达,表示了关于世界的某些断言。

必须有将新语句添加到知识库以及查询目前所知内容的途径。这些任务的标准名称分别是 TELL (告诉)和ASK(询问)。两种任务都可能涉及推理——即,从旧有的语句中推导出新语句。在本章主要的学习主题——逻辑智能体中,推理必须遵循基本要求,即当ASK知识库一个问题时,答案应该遵从事先告诉(或说TELL)知识库的内容。本章后续部分,我们将对这个至关重要的词“遵循(follow)”进行更精确的描述。目前,它意味着推理过程不应该虚构事实。

图 7.1 显示了基于知识的智能体程序的轮廓。与我们所有的智能体一样,基于知识的智能体用感知信息作为输入,并返回一个行动。智能体维护一个知识库,KB。该知识库在初始化时包括了一些背景知识。每次调用智能体程序,它做两件事情。首先,智能体TELL(告诉)知识库它感知的内容;其次它ASK(询问)知识库应该执行什么行动。在回复该查询的过程中,可能要对关于世界的当前状态、可能行动序列的结果等等进行大量推理。一旦选择了某个行动,智能体用 TELL 记录它的选择并执行该行动。为了让知识库了解到该假定行动确实已经被执行,第二个TELL必不可少。


图7.1 通用的基于知识的智能体

表示语言的细节隐含于两个函数中,这两个函数分别实现智能体程序的传感器与执行器之间以及核心表示法与推理系统之间的接口。MAKE-PERCEPT-SENTENCE 接受一个感知信息和一个时刻,返回一个声明智能体在该给定时刻接收到了该感知信息的语句;MAKE-ACTION-QUERY 接受一个时刻作为输入,返回一个询问在该时刻应该执行什么行动的语句。有关推理机制的细节隐藏于TELL和ASK中。后续章节将揭示这些细节。

图7.1中基于知识的智能体与第二章中描述的具有内部状态的智能体非常类似。然而,由于TELL和ASK的定义,基于知识的智能体不是用于计算行动的随意程序。知识层的描述必须能经受检验,在这里我们只需指定智能体知道的内容和它的目标,以便修正它的行为。例如,一辆自动出租车可能有一个目标是将乘客送到Marin郡,它可能知道自己目前在旧金山,而金门大桥是这两个地点的唯一联系。那么我们可以期望它穿过金门大桥,因为它知道这可以实现它的目标。需要注意的是,这一分析过程独立于该出租车在实现层的工作方式。它的地理知识是以连接列表还是像素地图的形式实现的,或者它是通过处理储存在寄存器中的符号串还是通过在神经元网络中传递有噪音的信号进行推理的,这些都无关紧要。

如我们在本章的引言部分提到的,仅仅通过TELL智能体什么是它需要知道的便可以构建一个基于知识的智能体。在智能体开始接收感知信息之前,它的初始程序是通过逐个添加表示设计者关于环境知识的语句来搭建的。设计表示语言以便于用语句的形式表达这种知识,大大简化了构造问题。这被称为构建系统的陈述性方法。相对地,过程性方法把需要的行为直接编码为程序代码;使得显式的表示和推理的作用最小化,可以形成一个更有效率的系统。我们可以在第7.7节同时见到这两种智能体。20世纪70年代和80年代,这两种方法的支持者展开了激烈的争论。我们现在明白了,一个成功的智能体在其设计中必须将陈述性和过程性的成分相结合。

除了 TELL 智能体它需要知道的内容,我们还可以为基于知识的智能体提供某些机制,使得它可以自我学习。这些机制(我们将在第十八章讨论)根据一系列感知信息创建关于环境的常识。这些知识可以并入智能体的知识库而且用于决策。这样,智能体可以完全自治。

所有的这些能力——表示、推理和学习——依赖于逻辑理论和技术的悠久发展。然而,在解释逻辑的理论和技术之前,我们将先创建一个简单的世界,以便用实例进行阐述。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈