第2章 智能 Agent
Agent通过传感器感知环境并通过执行器执行动作反馈到环境。
??????
AI的任务是设计Agent程序,实现把感知信息映射到行动的Agent函数。
Agent就是能够行动的某种东西,具备自主的操作、感知环境、长期持续、适应变化并能创建与追求目标。
Agent的感知序列:是该Agent所受到的所有输入数据的完整历史。
Agent函数:描述了Agent的行动,它将任意给定感知序列映射为行动。
Agent函数是抽象的数学描述, Agent程序是具体实现,程序对每个调用都有一个新的感知,并返回一个动作。 Agent函数与Agent程序的区别(判断题)
-
每个Agent函数都可以程序/机器组合实现 错。受机器的运行速度和存储能力所限。 -
一个Agent函数可能对应多个Agent程序 对。Agent程序与运行平台关联。
理性Agent的定义
理性Agent:基于已知信息以追求最大化目标收益
对每一个可能的感知序列,根据已知的感知序列提供的证据和Agent具有的先验知识,理性Agent应该选择能使其性能度量最大化的行动。
理性的判断依赖
- 定义成功标准的性能度量
- Agent对环境的先验知识
- Agent可以完成的行动
- Agent截止到此时的感知序列
练习:什么是理性 一个理性的打牌Agent不可能输 错。理性的打牌Agent是在已知牌面的情况下输得最少 一个Agent只能感知状态的部分信息,那么不可能是理性的 错。理性不等于全知。
理性与全知的区别
一个全知的Agent明确的知道它的行动产生的实际结果并且做出相应的动作。全知者在现实中是不可能的。 理性是使期望的性能最大化,而完美是使实际的性能最大化。对Agent而言,完美是不太合理的要求。 理性并不要求全知。理性的选择只依赖于到当时为止的感知序列。
理性Agent的两大特点
- 信息收集 ,观察有助于期望性能的最大化。
- 自主学习 ,从所感知的信息中尽可能多的学习,以弥补不完整的或者不正确的先验知识。
理性Agent 理性不等于成功 理性不等于全知,更不等于可以不知, 理性意味着探索、学习、自主 理性Agent应该 ? 收集信息:真空吸尘器清洁Agent在初始未知的环境中必须探查 ? 学习:Agent的初始设定是环境的先验知识,通过学习,知识会被改变或者增加。 不收集信息和学习的Agent是缺乏自主性的Agent 通过收集信息和学习以增加知识
任务环境(PEAS描述)
Performance性能 Environment环境 Actuators执行器 Sensors传感器
Specifying an automated taxi driver ? Performance measure性能 ? safe, fast, legal, comfortable, maximize profits ? Environment环境 ? roads, other traffic, pedestrians(行人), customers ? Actuators执行器 ? Steering(方向盘), accelerator(加速器), brake(刹车), signal, horn(喇叭) ? Sensors传感器 ? cameras, sonar(声纳), speedometer(速度计), GPS
世界是如何独立于Agent而发展的信息:周围车辆在减速、加速、转弯、超车;移动的行人。
设计Agent的第一步:尽可能完整地详细说明任务环境。
任务环境的性质
完全可观察的 vs 部分可观察的
- 如果Agent的传感器在每个时间节点上都能获取环境的完整状态,这个任务环境就是完全可观察的。否则,则是部分可观察的。
- 如果传感器能够检测所有与行动决策相关的信息,该任务环境就是有效完全可观察的。
- 如果Agent根本没有传感器,环境则是无法观察的。
单Agent vs 多Agent
- 区分两者的关键在于Agent B 行为的性能度量最大化是否需要依赖于Agent A的行为。
- 竞争性的多Agent环境
Agent B想要最大化自己的性能度量,就需要最小化Agent A的性能度量。(国际象棋) - 合作性的多Agent环境
Agent B想要最大化自己的性能度量,就需要最大化Agent A的性能度量。(车辆驾驶) - 部分合作部分竞争的多Agent环境 (随机行为是理性的,这样可以避免预测中的缺陷)
确定的 vs 随机的
- 如果环境的下一个状态完全取决于当前状态和Agent执行的动作,则该环境是确定的;否则,是随机的。
- 不确定与随机的区别
环境不确定是指环境不是完全可观察的或不确定的,行动后果可能有多种,但与概率无关。 环境随机是指后果是不确定的并且可以用概率来量化。
片段式 vs 延续式
- 片段式是指当前决策不会影响到未来的决策。
- 延续式是指当前决策会影响到所有未来的决策。
静态 vs 动态
- 如果环境在Agent计算的时候会变化,该环境是动态的,否则是静态的。
- 如果环境本身不随时间变化而变化,但Agent的性能评价随时间变化,则环境是半动态的。
离散 vs 连续 考虑到:
- 环境的状态
- 时间的处理方式
- Agent的感知信息和行动
摄像头输入信号是离散的,但处理时它表示的是连续变化的亮度和位置
已知 vs 未知
- 指的是Agent的知识状态。
如果环境是未知的,Agent需要学习环境是如何工作的,以便做出好的决策。(联机搜索)
最难处理的情况
- 部分可观察的、多Agent的、随机的、延续的、动态的、连续的和未知的环境。
Agent的结构
Agent = 体系结构 (某个具备物理传感器和执行器的计算装置)+ 程序。
基本的Agent程序
简单反射Agent
- 基于当前的感知选择行动,不关注感知历史。 针对完全可观察的环境。
- 无法处理动态的、随机的、延续的、部分可观察的任务环境
方法 Step 1:首先构建一个通用的条件-行为规则解释器。 Step 2:根据特定任务环境创建相应的规则集合。
简单反射Agent中的问题
- 规则构建与存储困难
- 规则冲突
- 不能存储历史信息(无限循环)
- 不能处理世界的随机性、变化性
缺点 :在部分可观察环境中运转的简单反射Agent经常不可避免地陷入无限循环中。 解决办法:行动随机化
基于模型的反射Agent
-
使用世界模型的Agent称为基于模型的Agent -
Agent应该根据感知历史维持内部状态,从而至少反映出当前状态看不到的信息。部分可观察、动态的、片段式的。 -
随时更新内部状态信息要求在Agent程序中加入两种类型的知识: 世界模型: 知识一:世界是如何独立于Agent而发展的信息 知识二:Agent自身的行动如何影响世界 -
缺点 :部分可观察环境中的Agent不能精准确定当前状态
基于目标的Agent
-
既跟踪记录世界的状态,也记录它要达到的目标集合,并选择能(最终)导致目标达成的行动 -
特点 : -
主要用在搜索和规划问题中:Agent 需要一个目标来了解期望达到什么状况 随着达到目标所需要的动作数目的增多,问题越来越难求解 -
虽然显得效率较低,但更灵活。因为支持它决策的知识被显示表现出来,且可以修改。 -
部分可观察、动态的、连续式的
- 不适用的情况
多个目标互相冲突 有几个目标,但没有一个有把握达到 这两种情况,通过效用Agent可以解决
自动驾驶出租车的PEAS P: 遵守交通规则,安全驾驶,能够到达指定地点 E: 有车的公路 A: 停车、加速、减速、转弯 S: 摄像头、红外、车轮解码器等
基于效用的Agent
-
理性的基于效用的Agent:选择期望效用最大化的行动,Agent在给定每个结果的概率和效用下,期望得到的平均效用。 -
Agent的效用函数是性能度量的内在化。实际实现时因为计算复杂性而不可能完美达成。 -
方法 Step 1:使用关于世界的模型,以及对各个世界状态的偏好程度进行度量的效用函数。 Step 2:选择可以取得最佳期望效用的行动。 Step 3:通过结果的概率来确定权值,最佳期望效用是通过计算所有可能结果状态的加权平均值得到的。 -
适用情况 1、当多个目标互相冲突时,只有其中一些目标可以达到时,效用函数可以在它们之间适当的折中。 2、当Agent有几个目标,但没有一个有把握达到时,效用函数可以在它们之间适当的折中。
学习Agent(4个组件)
- 学习元件
负责改进提高,利用来自评判元件的反馈评价Agent做得如何,并确定应该如何修改性能元件以便将来做得更好。
- 性能元件
接受感知信息并决策。
- 评判元件
根据固定的性能标准告诉学习元件Agent的运转情况。
- 问题产生器
建议探索性行动,负责可以得到新的和有信息的经验的行动建议。
Agent的工作逻辑
-
原子表示 没有内部结构的表示。 相关内容:搜索、博弈论、隐马尔可夫模型、马尔可夫决策过程。 -
要素化表示 一个状态中包含多个要素(原子),即多个变量和特征的集合。 相关内容:约束满足算法、命题逻辑、规划、Bayesian网、机器学习算法。 -
结构化表示 一个状态包含对象、每个对象可能有自身的特征值,以及与其他对象的关系。 相关内容:关系数据库、一阶逻辑、一阶概率模型、基于知识的学习、自然语言理解。
课后习题
2.1
假设性能度量只关注环境的前 T个时间步,忽略其他所有。请说明理性 Agent 的行动可能不仅依赖于环境状态,还取决于它达到的时间点。
- 理性 Agent总是选择使其性能度量最大化的行动,当环境状态随着时间变化时,不同的到达时间点意味着不同的总代价,即当前时刻暂时的低分也可能成就最终的高分,这取决于性能度量的时间维度不同。这时问题具有后效性。
2.2
- a. 要说明Agent是理性的,就需要证明Agent总能选择使其性能度量最大化的行动
- b. 对应的 Agent程序是否需要内部状态取决于:内部状态是否是选择行动的前提与条件
- c. 讨论在干净的方格可能变脏和环境地理不明的情况下可能的Agent设计。在这种情况下Agent从经验中学习有意义吗?若果有,该学习什么?如果没有意义,为什么?
答:在干净的方格可能变脏的情况下,可采用不定期检查并清理变脏的地方;在环境地理不明的情况下,通过学习地理信息,可以优化Agent的路径,Agent可通过学习掌握某地方变脏的分布情况。
2.3
A. 只感知有关状态的部分信息的Agent不能是完美理性的。
- False。完美理性是指考虑到传感器信息而做出正确决策的能力,而不是取决于感知情况。
B. 存在无法理性行为(能合理反应)的纯反射agent的任务环境。
- True。纯反射agent忽略了以前的感知,因此不能在部分可观测的环境中获得最优状态估计。例如,对应象棋是通过发送动作来进行的;如果另一个玩家的动作是当前的知觉,则反射agent无法跟踪棋盘状态,因此无论它在哪个位置进行,都必须以相同的方式对“A4”做出响应。
C. 存在任务环境使得每个Agent都是理性的。
- True。在一个具有单一状态的环境中,这样所有的行动都有相同的奖励,那么采取哪个行动并不重要。更一般地说,任何奖励不变的环境都是在动作的排列将满足这个性质。
D. 对agent程序的输入与对agent函数的输入相同。
- False。从概念上讲,Agent函数是抽象的数学描述,将在此之前的整个感知量作为输入; Agent程序是具体实现agent函数,只接受当前的感知量。
E. 每个Agent函数都可以程序/机器组合实现
F. 假设 Agent 从一组可能行动中随机选择行动。存在确定的任务环境使得此Agent 是理性的。
- True。这是?的一个特殊情况;如果你采取什么行动并不重要,那么随机选择是合理的。
G. 一个给定的 Agent 在两个不同的任务环境中可能都是完美理性的。
- True。例如,我们可以任意地修改环境中任何最优策略都无法到达的部分,只要它们在修改后仍然无法到达。
H. 在不可观察环境中每个 Agent 都是理性的。
- False。理性 Agent总是选择使其性能度量最大化的行动。理性是指考虑到传感器信息而做出正确决策的能力,而不是取决于环境感知情况。
I.一个完美的打牌Agent都是不可能输的。
- False。假设双方都是完美的打牌Agent,那么在一场牌局总有一方会输,因此不成立。不过,完美的打牌Agent胜利的期望值是非负的,
2.4
对于下列活动,分别给出任务环境的PEAS描述,并按2.3.2节列出的性质进行分析
- 足球运动
部分可观察,人的视野是有限的。 随机,足球运动中行为后果是不确定的并且可以用概率来量化,这个概率取决于球员位置和技术水平等。 延续,当前决策会影响到所有未来的决策,比如球员的配合是环环相扣的。 动态,环境在Agent计算的时候会变化,球场上大家的走位等会变。 连续,踢球是个连续动作,时间也是连续变化。 多智能体,团体运动。
2.5
Agent:对环境中的感知作出反应而采取行动的实体。 Agent函数:描述了Agent的行动,它将任意给定感知序列映射为行动。 Agent程序是具体实现,程序对每个调用都有一个新的感知,并返回一个动作。 理性是使期望的性能最大化。选择能够最大化其预期效用的行动。 自主性:Agent的一种属性,其行为由他们自己的经验决定,而不仅仅由他们的初始编程决定。 反射Agent:其动作仅取决于当前感知的Agent。 基于模型的Agent:保持内部状态,追踪记录当前感知信息中反映不出来的世界各方面。 基于目标的Agent:选择它认为将实现明确表示目标行动的Agent。 基于效用的Agent:选择它认为将最大化结果状态的预期效用的操作的Agent。 学习Agent:根据其经验,行为随时间而改变的Agent。
2.11
a: 不是完美理性: 简单反射agent不能记录历史状态信息,只能根据当前感知信息作出决策,这样就容易陷入一种无限循环中,除非我们可以将agent的行动随机化,可以避免无限循环。而完美是指实际的性能最大化,理性是指期望的性能最大化,由于可能会出现无限循环的情况,因此就不能使得性能最大化,所以就不是完美理性的。
d. 有内部状态的Agent会优于简单反射Agent。简单反射Agent具有极好的简洁性,但是它们的智能也有限,由于只根据当前的感知信息作出决策,很有可能作出错误的决策。而具有内部状态的Agent,可以根据感知历史维持内部状态。这样有利于作出更理性的决策。
2.13
前面习题中的真空吸尘器环境都是确定的。讨论下列随机版本下的 Agent 程序∶
a.Murphy 法则∶在 25%的时间里,Suck(吸尘)行动在地面干净的情况下不能清洁地面,在原来地面干净的情况下还会弄脏地面。如果灰尘传感器有10%的错误率,你的 Agent 程序会受到怎样的影响? 每次行动之前都需要使用灰尘传感器检测环境状态,产生的后果是不确定的,如果只有一个Agent灰尘传感器会导致环境总是不确定的。另外添加灰尘传感器会使得环境确定性改变。 因为只要当前的位置仍然很脏,Agent就会继续吸尘。对于构建Agent的动作序列,每个吸动作需要用“吸到干净”代替。如果污垢传感器在每一步上都有错误,那么Agent可能需要等待几个步骤来得到更可靠的测量决定是吸尘还是去一个新的方格。显然这是一种权衡,因为等待太久意味着泥土会留在地板上(会招致罚款),但立即行动会有风险弄脏一个干净的方格或忽略一个脏的方格(如果传感器错误)。一个理性的Agent也必须继续访问和检查方格,以防它在之前的路径中错过了一个方格(传感器读数错误)。这个问题是一个部分可观察的马尔可夫决策过程。
b.小孩∶在每个时间步,干净的方格有10%的机会被弄脏。在这种情况下能设计出理性 Agent 吗? 可以,理性是指考虑到传感器信息而做出正确决策的能力,此时Agent在做决策之前需要对所有方格做检测。 在这种情况下,Agent 必须无限期地继续访问方块。一个方格脏的概率随着最后一次清洗的时间单调增加,因此理性策略是重复执行所有方格中尽可能最短的行程。这个问题也是一个部分可观测的马尔可夫决策过程。
|