天天看点

NO.73——《人工智能·一种现代方法》Agent学习笔记

参考链接: 人工智能Agent

Agent 

首先,何为Agent?通过传感器感知环境,并通过执行器对所处环境产生影响。 

Agent的感知序列:是该Agent存储的所有输入历史的完整数据。 

Agent函数 

Agent函数是抽象的数学描述,Agent程序是具体实现。 

两者区别: 

每个Agent函数都可以由机器/程序组合呈现。False。受机器的运算能力和存储能力限制。一个Agent函数可能对应多个Agent程序。True。Agent程序与运行平台关联。

例题: 

实现给定Agent函数的Agent程序是否可以有多个?True。比如添加一些代理程序,只输入不会影响输出的空值。有些Agent函数不能被任何agent程序构成?True。比如图灵机。给定一个固定的机器结构,任意agent程序都会精确执行一个agent函数吗?True。agent的行为被结构和程序固定。给一个能存储n位的机器,问有多少不同的agent程序在那?有2**n个不同的程序,但是大部分都不会执行。因为每个程序占用n个内存明显机器内存不足。设想我们现在保持agent程序固定,但是我们加快机器运行速度为两倍,会影响agent函数吗?这取决于程序和环境。 如果环境是动态的,则加快机器速度可能意味着选择不同(也许更好)的动作。 如果环境是静态的,并且程序不在意运行时间,agent函数保持不变。

理性Agent 

定义:基于已知信息追求最大化目标收益。 

一个理性的打牌Agent不可能输。False。应该是在已知牌面的情况下输的最少。一个Agent只能感知状态的部分信息,呢么不可能是理性的。False。理性不等于全知。

理性与全知的区别: 

一个全知的Agent能明确的知道他的行动带来的实际后果。全知在现实中不存在。理性是使期望的性能最大化,而完美是使实际最大化,对Agent而言,完美是不太合理的要求。理性并不要求全知。理性的选择只依赖于到当前为止的感知序列。

任务环境(PEAS) 

Performance 性能Environment 环境Actutor 执行器Sensor 感知器

自动驾驶出租车的PEAS: Performance measure: 遵守交通规则,安全驾驶 Environment:有车的公路 Actuator: 停车、加速、减速、转弯 Sensors: 摄像头、红外、车轮解码器等 

      任务环境的性质: 

1、fully observable vs. partially observable 

如果Agent传感器在每个时间点上都可以获取环境的完整状态,这个任务环境就是完全可观察的。否则,是部分可观察的。 

如果传感器能够检测所有与行动决策有关的信息,该任务环境就是完全有效可观察的。 

如果Agent压根没有传感器,环境是无法观察的。 

2、singel agent vs. multiagent 

区分两者的关键在于Agent B 行为的性能度量最大化是否需要依赖于Agent A的行为。 竞争性的多Agent环境: Agent B想要最大化自己的性能度量,就需要最小化Agent A的性能度量。(国际象棋) 合作性的多Agent环境: Agent B想要最大化自己的性能度量,就需要最大化Agent A的性能度量。(车辆驾驶) 部分合作部分竞争的多Agent环境 (随机行为是理性的,这样可以避免预测中的缺陷) 

3、deterministic vs. stotastic 

如果环境的下一状态完全取决于当前状态和Agent执行的动作,该环境是确定的;否则是随机的。 

不确定与随机的区别: 环境不确定是指环境不是完全可观察的或不确定的,行动后果可能有多种,但与概率无关。 环境随机是指后果是不确定的并且可以用概率来量化。 

4、episodic(片段) vs. sequential(延续) 

在sequential中,当前动作会对未来产生深远影响,比如国际象棋和自动驾驶。episodic要比sequential简单的多,因为它不需要提前考虑什么东西。 

5、static vs. dynamic 

如果环境在Agent计算的时候会变化,该环境是动态的,否则是静态的。 

如果环境本身不随时间变化而变化,但Agent的性能评价随时间变化,则环境是半动态的。 

6、discreate vs. continuous 

国际象棋是离散的,因为它有有限个离散的状态。自动驾驶室连续的,它包括不间断的摄像头和语音输入。 

7、known vs. unknown 

如果环境是未知的,Agent需要学习环境是如何工作的,以便做出好的决策。 

最难处理的情况 

部分可观察的、多Agent的、随机的、延续的、动态的、连续的和未知的环境。

例题: 

体操艺术表演:Partially observable, stochastic, sequential, dynamic, continuous, multi-agent. 

探索太平洋海底:Partially observable, stochastic, sequential, dynamic, continuous, single agent (unless  

 there are alien life forms that are usefully modeled as agents). 

玩橄榄球:Partially observable, stochastic, sequential, dynamic, continuous, multi-agent. 

购买用于AI的书籍:Partially observable, deterministic, sequential, static, discrete, single agent. This can be  

 multi-agent and dynamic if we buy books via auction, or dynamic if we purchase on a 

 long enough scale that book offers change.

A simple Reflex agnet: 

它的行为只取决于当前状态和感知。 

基于当前的感知选择行动,不关注感知历史。 针对完全可观察的环境。无法处理动态的、随机的、延续的、部分可观察的任务环境

方法 Step 1:首先构建一个通用的条件-行为规则解释器。 Step 2:根据特定任务环境创建相应的规则集合。 

简单反射Agent中的问题 

规则构建与存储困难 规则冲突 不能存储历史信息(无限循环) 不能处理世界的随机性、变化性 缺点 :在部分可观察环境中运转的简单反射Agent经常不可避免地陷入无限循环中。 解决办法:行动随机化 

Model-based reflex agents: 

它的行为由内部模型状态决定。 

Agent应该根据感知历史维持内部状态,从而至少反映出当前状态看不到的信息。部分可观察、动态的、片段式的。 

随时更新内部状态信息要求在Agent程序中加入两种类型的知识: 知识一:世界是如何独立于Agent而发展的信息 知识二:Agent自身的行动如何影响世界 

缺点 :部分可观察环境中的Agent不能精准确定当前状态 

Goal-based Agent: 

根据目标最大化做出相应行动。 

既跟踪记录世界的状态,也记录它要达到的目标集合,并选择能(最终)导致目标达成的行动 

特点 : 

主要用在搜索和规划问题中:Agent 需要一个目标来了解期望达到什么状况 随着达到目标所需要的动作数目的增多,问题越来越难求解 

虽然显得效率较低,但更灵活。因为支持它决策的知识被显示表现出来,且可以修改。 

部分可观察、动态的、连续式的 

不适用的情况: 多个目标互相冲突 有几个目标,但没有一个有把握达到 这两种情况,通过效用Agent可以解决 

Utility-based agents: 

基于预期实用性最大化。 

 理性的基于效用的Agent:选择期望效用最大化的行动,Agent在给定每个结果的概率和效用下,期望得到的平均效用。  Agent的效用函数是性能度量的内在化。实际实现时因为计算复杂性而不可能完美达成。  方法 Step 1:使用关于世界的模型,以及对各个世界状态的偏好程度进行度量的效用函数。 Step 2:选择可以取得最佳期望效用的行动。 Step 3:通过结果的概率来确定权值,最佳期望效用是通过计算所有可能结果状态的加权平均值得到的。 适用情况 1、当多个目标互相冲突时,只有其中一些目标可以达到时,效用函数可以在它们之间适当的折中。 2、当Agent有几个目标,但没有一个有把握达到时,效用函数可以在它们之间适当的折中。