Javatpoint标志
Javatpoint标志

人工智能中基于知识的Agent

  • 智能代理需要知识如何在现实世界中做决定推理有效率地行动
  • 知识型代理人是指那些具有以下能力的代理人保持一种内在的知识状态,对这些知识进行推理,在观察后更新自己的知识并采取行动。这些智能体可以用一些正式的表示来表示世界,并智能地行动
  • 基于知识的代理主要由两部分组成:
    • 以知识为基础,
    • 推理系统

一个基于知识的代理必须能够做到以下几点:

  • 代理应该能够表示状态、动作等。
  • 智能体应该能够整合新的感知
  • 代理可以更新世界的内部表示
  • 智能体可以推断出世界的内部表征
  • 代理可以推断出适当的动作。

基于知识的agent体系结构:

人工智能中基于知识的Agent

上图代表了一个基于知识的代理的通用架构。基于知识的智能体(KBA)通过感知环境从环境中获取输入。输入由智能体的推理引擎获取,并与知识库进行通信,根据知识库中的知识存储进行决策。KBA的学习元素通过学习新知识来定期更新知识库。

知识库:知识库是基于知识的agent的核心组成部分,也称为知识库。它是句子的集合(这里的“句子”是一个专业术语,与英语中的句子并不相同)。这些句子用一种叫做知识表示语言的语言来表达。KBA的知识库存储了关于世界的事实。

为什么要使用知识库?

智能体需要知识库来更新知识,以便从经验中学习并根据知识采取行动。

推理系统

推理意味着从旧的句子中推导出新的句子。推理系统允许我们在知识库中添加新句子。句子是一个关于世界的命题。推理系统将逻辑规则应用于知识库来推断新的信息。

推理系统生成新的事实,以便智能体更新知识库。一个推理系统主要在两个规则下工作,这两个规则如下:

  • 正向链接
  • 反向链接

KBA执行的操作

以下是KBA为显示智能行为而执行的三个操作:

  1. 告诉:这个操作告诉知识库它从环境中感知到什么。
  2. 问:该操作询问知识库应该执行什么操作。
  3. 执行:它执行选定的操作。

一个通用的基于知识的代理:

下面是一个通用的基于知识的代理程序的结构大纲:

基于知识的代理将感知作为输入,并返回一个动作作为输出。代理维护知识库KB,并且它最初具有现实世界的一些背景知识。它还有一个计数器来指示整个进程的时间,该计数器初始化为零。

每次调用函数时,它执行三个操作:

  • 首先,它告诉知识库它感知到什么。
  • 其次,它询问KB应该采取什么行动
  • 第三个代理程序告诉知识库选择了哪个操作。

make - perception - sentence生成一个句子作为设置,表示智能体在给定时间感知到给定的感知。

MAKE-ACTION-QUERY生成一个句子,询问当前应该执行哪个操作。

MAKE-ACTION-SENTENCE生成一个句子,断言所选的动作已被执行。

不同层次的基于知识的代理:

以知识为基础的智能体可以从以下不同的层次来看待:

1.知识水平

知识层是基于知识的agent的第一层,在这一层中,我们需要指定agent知道什么,agent的目标是什么。有了这些规范,我们就可以修复它的行为。例如,假设一个自动出租车代理需要从a站到B站,他知道从a站到B站的路,所以这是在知识层面。

2.逻辑层:

在这个层次上,我们理解了知识的知识表示是如何存储的。在这个层次上,句子被编码成不同的逻辑。在逻辑层面,将知识编码为逻辑句子。在逻辑层面上,我们可以期望自动出租车代理到达目的地B。

3.实现级别:

这是逻辑和知识的物理表示。在实现级别,代理按照逻辑和知识级别执行操作。在这个层次上,自动出租车代理实际上实现了他的知识和逻辑,使他能够到达目的地。

设计基于知识的代理的方法:

构建基于知识的代理主要有两种方法:

  1. 1.声明方法:我们可以创建一个基于知识的代理,通过初始化一个空的知识库,并告诉代理我们想要开始的所有句子。这种方法称为声明式方法。
  2. 2.过程方法:在过程方法中,我们直接将期望的行为编码为程序代码。这意味着我们只需要编写一个程序,它已经编码了期望的行为或代理。

然而,在现实世界中,一个成功的代理可以通过结合声明性和过程性方法来构建,并且声明性知识通常可以编译成更有效的过程性代码。


下一个话题 AI中的知识表示





Youtube 视频加入我们的Youtube频道:现在加入

反馈


帮助别人,请分享

脸谱网 推特 pinterest

学习最新教程


准备


热门的技术


b .技术/马华






Baidu
map