本书链接:人工智能:一种现代的方法(第3版)
本人人工智能小白,为了恶补知识,所以买了一本综述型的入门教材。终于看完了第一部分,人工智能概述~~做一下笔记,便于后续记忆。
一、前提
AI的任务是设计Agent程序,实现的是把感知信息映射到行动的Agent函数。
二、什么是Agent
Agent就是能够行动的某种东西,具备自主的操作、感知环境、长期持续、适应变化并能创建与追求目标。
三、什么是合理Agent
合理Agent是一个为了实现最佳结果,或者,当存在不确定性时,为了实现最佳期望结果而行动的Agent。
- 正确的推理
合理行动的一种方法是逻辑地推理出给定行动将实现其目标的结论,然后遵照那个结论行动,但是正确的推理并不是合理性的全部。 - 有限合理性
当没有足够的时间来完成所有你想要做的计算时仍能恰当的行动。
四、什么是智能Agent
智能Agent要采取一个环境中最好的可能行为。
智能主要与理性行为相关。
五、Agent和环境的关系
Agent通过传感器感知环境并通过执行器对所处环境产生影响。
- 感知是用来表示任何给定时刻Agent的感知输入。
- Agent的感知序列是该Agent所受到的所有输入数据的完整历史。Agent在任何给定时刻的行动选择依赖于到那个时刻为止该Agent的整个感知序列。
- Agent函数描述了Agent的行动,它将任意给定感知序列映射为行动。
- Agent函数是抽象的数学描述
- Agent程序是具体实现
六、理性-好的行为
6.1 什么是理性Agent
理性Agent是做事正确的Agent。
6.2 理性的判断依赖
- 定义成功标准的性能度量
- Agent对环境的先验知识
- Agent可以完成的行动
- Agent截止到此时的感知序列
6.3 理性Agent的定义
对每一个可能的感知序列,根据已知的感知序列提供的证据和Agent具有的先验知识,理性Agent应该选择能使其性能度量最大化的行动。
6.4 理性与全知的区别
- 一个全知的Agent明确的知道它的行动产生的实际结果并且做出相应的动作。全知者在现实中是不可能的。
- 理性是使期望的性能最大化,而完美是使实际的性能最大化。对Agent而言,完美是不太合理的要求。
- 理性并不要求全知。理性的选择只依赖于到当时为止的感知序列。
6.5 理性Agent的两大特点
- 信息收集
观察有助于期望性能的最大化。 - 自主学习
从所感知的信息中尽可能多的学习,以弥补不完整的或者不正确的先验知识。
七、任务环境
7.1 定义:PEAS描述
- Performance性能
- Environment环境
- Actuators执行器
- Sensors传感器
7.2 设计Agent的第一步
尽可能完整地详细说明任务环境。
7.3 性质
7.3.1 完全可观察的vs部分可观察的
- 如果Agent的传感器在每个时间节点上都能获取环境的完整状态,这个任务环境就是完全可观察的。否则,则是部分可观察的。
- 如果传感器能够检测所有与行动决策相关的信息,该任务环境就是有效完全可观察的。
- 如果Agent根本没有传感器,环境则是无法观察的。
7.3.2 单Agent vs 多Agent
区分两者的关键在于Agent B 行为的性能度量最大化是否需要依赖于Agent A的行为。
竞争性的多Agent环境
Agent B想要最大化自己的性能度量,就需要最小化Agent A的性能度量。合作性的多Agent环境
Agent B想要最大化自己的性能度量,就需要最大化Agent A的性能度量。部分合作部分竞争的多Agent环境
上述两种情况都会发生。
7.3.3 确定的 vs 随机的
如果环境的下一个状态完全取决于当前状态和Agent执行的动作,则该环境是确定的;否则,是随机的。
-
不确定与随机的区别
- 环境不确定是指 环境不是完全可观察的或不确定的,行动后果可能有多种,但与概率无关。
- 环境随机是指后果是不确定的并且可以用概率来量化。
7.3.4 片段式 vs 延续式
片段式是指 当前决策不会影响到未来的决策。
延续式是指 当前决策会影响到所有未来的决策。
7.3.5 静态 vs 动态
如果环境在Agent计算的时候会变化,该环境是动态的,否则是静态的。
如果环境本身不随时间变化而变化,但Agent的性能评价随时间变化,则环境是半动态的。
7.3.6 离线 vs 连续
离线和连续的使用场景有:
- 环境的状态
- 时间的处理方式
- Agent的感知信息和行动
7.3.7 已知 vs 未知
Agent的知识状态。
如果环境是未知的,Agent需要学习环境是如何工作的,以便做出好的决策。
7.4 最难处理的情况
部分可观察的、多Agent的、随机的、延续的、动态的、连续的和未知的环境。
8 Agent的结构
Agent = 体系结构 + 程序。
8.1 体系结构
体系结构:某个具备物理传感器和执行器的计算装置。
体系结构为程序提供来自传感器的感知信息,运行程序,并把程序计算出的行动决策送达执行器。
8.2 Agent程序的框架
8.2.1 输入
从传感器得到的当前感知信息
8.2.2 输出
执行器的行动抉择
8.2.3 基本的Agent程序
8.2.3.1 简单反射Agent
定义
基于当前的感知选择行动,不关注感知历史。
最简单的Agent类型。
针对完全可观察的环境。方法
Step 1:首先构建一个通用的条件-行为规则解释器。
Step 2:根据特定任务环境创建相应的规则集合。缺点
在部分可观察环境中运转的简单反射Agent经常不可避免地陷入无限循环中。示意图和伪代码见书P44
8.2.3.2 基于模型的反射Agent
-
定义
-
世界模型:
- 知识一:世界是如何独立于Agent而发展的信息
- 知识二:Agent自身的行动如何影响世界
使用世界模型的Agent称为基于模型的Agent
- 通过将当前的感知信息与过去的内部状态结合来更新当前状态
- 针对部分可观测环境
-
缺点
部分可观察环境中的Agent不能精准确定当前状态示意图和伪代码见书P46
8.2.3.3 基于目标的Agent
- 定义
既跟踪记录世界的状态,也记录它要达到的目标集合,并选择能(最终)导致目标达成的行动 - 特点
效率低、灵活、可学习。 - 不适用的情况
- 多个目标互相冲突
- 有几个目标,但没有一个有把握达到
这两种情况,通过效用Agent可以解决
- 示意图见P47
8.2.3.4 基于效用的Agent
- 定义
理性的基于效用的Agent 选择 期望效用最大化的行动,Agent在给定每个结果的概率和效用下,期望得到的平均效用。 - 方法
Step 1:使用关于世界的模型,以及对各个世界状态的偏好程度进行度量的效用函数。
Step 2:选择可以取得最佳期望效用的行动。
Step 3:通过结果的概率来确定权值,最佳期望效用是通过计算所有可能结果状态的加权平均值得到的。 - 适用情况
1、当多个目标互相冲突时,只有其中一些目标可以达到时,效用函数可以在它们之间适当的折中。
2、当Agent有几个目标,但没有一个有把握达到时,效用函数可以在它们之间适当的折中。 - 示意图见书P48
8.2.4 学习Agent的通用模型
8.2.4.1 学习元件
负责改进提高
8.2.4.2 性能元件
负责选择外部行动,接受感知信息并决策
8.2.4.3 评判元件
根据固定的性能指标告诉学习元件Agent的运转情况
8.2.4.4 问题产生器
负责可以得到新的和有信息的经验的行动提议,建议探索性行动
8.2.5 Agent程序的组件表示形式
8.2.5.1 原子表示
每个状态是不可见的,没有内部结构
8.2.5.2 要素化表示
将状态表示为变量或者特征的集合,每个变量或特征都可能有值。
两个不同的要素化表示可以共享一些特征。
8.2.5.3 结构化表示
描述对象之间的关系
8.3 Agent函数
输入:整个感知历史