【人工智能:现代方法】第2章:智能体
2023-12-13 08:53:52
1 智能体和环境
- 智能体(agent):通过传感器(sensor)感知环境(environment)并通过执行器(actuator)作用于该环境的事物
- 感知(percept):表示智能体的传感器正在感知的内容
- 感知序列(percept sequence):智能体所感知的一切的完整历史
- 一般而言,一个智能体在任何给定时刻的动作选择可能取决于其内置知识和迄今为止观察到的整个感知序列,而不是它未感知到的任何事物
- 从数学上讲,智能体的行为由智能体函数(agent function)描述,该函数将任意给定的感知序列映射到一个动作
- 智能体函数由智能体程序(agent program)实现
2 良好行为:理性的概念
理性智能体(rational agent):做正确事情的事物
2.1 性能度量
- 当智能体进入环境时,它会根据接受的感知产生一个动作序列
- 这一动作序列会导致环境经历一系列的状态
- 人工智能通常坚持结果主义(consequentialism):通过结果即给定环境状态的序列来评估智能体的行为 —— 性能度量(performance measure)
- 性能度量设计:根据一个人在环境中真正想要实现的目标,而不是根据一个人认为智能体应该如何表现来设计 —— 结果导向?
2.2 理性
理性的4个方面:
- 定义成功标准的性能度量;
- 智能体对环境的先验知识;
- 智能体可以执行的动作;
- 智能体到目前为止的感知序列
理性智能体: 对于每个可能的感知序列,给定感知序列提供的证据和智能体所拥有的任何先验知识,理性智能体应该选择一个期望最大化其性能度量的动作
2.3 全知、学习和自主
- 理性不等同于完美
- 理性使期望性能最大化,而完美使实际性能最大化
- 全知 (omniscience):智能体能预知其行动的实际结果,并能据此采取行动—— 在现实中,全知是不可能的
- 学习(learn): 理性智能体不仅要收集信息,还要尽可能多地从它所感知到的东西中学习
- 自主性(autonomy):理性智能体应该学习如何弥补部分或不正确的先验知识【但很少从一开始就要求智能体完全自主】
3 环境的本质
- 任务环境(task environment): “问题”
- 理性智能体 : “解决方案”
3.1 指定任务环境
任务环境: PEAS( Performance 性能度量,Environment 环境 ,Actuator 执行器,Sensor 传感器 )
3.2 任务环境的属性
- 完全可观测的(fully observable): 智能体的传感器能让它在每个时间点都能访问环境的完整状态 —— 很容易处理,智能体不需要维护任何内部状态来追踪世界
- 有效的完全可观测的:传感器检测到与动作选择相关的所有方面,而"相关"取决于性能度量标准
- 部分可观测的(partially observable):传感器噪声大且不准确,或者由于传感器数据中缺少部分状态
- 不可观测的(unobservable):智能体根本没有传感器
- 单智能体的(single-agent)
- 多智能体的(multiagent):
- 竞争性(competitive)的多智能体环境
- 合作的(cooperative)多智能体环境
- 确定性的(deterministic):环境的下一个状态完全由当前状态和智能体执行的动作决定
- 非确定性的(nondeterministic)
在完全可观测的确定性环境中,智能体不需要担心不确定性
- 随机的(stochastic): 环境模型显式地处理概率 , 而可能性没有被量化则是 “非确定性的”
- 回合式的(episodic):智能体的经验被划分为原子式的回合。在每一回合中,智能体接收一个感知,然后执行单个动作。至关重要的是,下一回合并不依赖于前几回合采取的动作
- 序贯的(sequential):当前决策可能会影响未来所有决策
- 静态的(static)
- 动态的(dynamic):环境在智能体思考时发生了变化
- 半动态的(semidynamic):环境本身不会随着时间的推移而改变,但智能体的性能分数会改变
- 离散的(discrete)
- 连续的(continuous)
离散/连续的区别适用于环境的状态、处理时间的方式以及智能体的感知和动作
- 已知的(known): 所有行动的结果(如果环境是非确定性的,则对应结果的概率)都是既定的
- 未知的(unknown):智能体需要了解环境是如何工作的,才能做出正确的决策
最困难的情况:部分可观测的、多智能体的、非确定性的、序贯的、动态的、连续的且未知的
4 智能体的结构
人工智能的工作 :设计一个智能体程序(agent program)实现智能体函数,即从感知到动作的映射
智能体架构(agent architecture): 程序运行在某种具有物理传感器和执行器的计算设备上
4.1 智能体程序
智能体程序 :
- 将当前感知作为传感器的输入,并将动作返回给执行器 【智能体函数可能依赖整个感知历史】
- 如果智能体的动作需要依赖于整个感知序列,那么智能体必须记住历史感知
4.2 简单反射型智能体 simple reflex agent
特点:
- 根据当前感知选择动作,忽略感知历史的其余部分
- 只有在当前感知的基础上才能做出正确的决策,也就是说,只有在环境完全可观测的情况下才可行
- 条件-动作规则(condition-action rule):if-then规则 , 例子 如果前面的车正在刹车,则启动刹车
- 随机化 (randomize)的简单反射型智能体可能优于确定性的简单反射型智能体
4.3 基于模型的反射型智能体
- 处理部分可观测性的最有效方法是让智能体追踪它现在观测不到的部分世界—— 智能体应该维护某种依赖于感知历史的内部状态(internal state),从而至少反映当前状态的一些未观测到的方面
- 内部状态的更新依赖两种知识:
+世界如何随时间变化的信息:包括 智能体行为的影响 和 世界如何独立于智能体而发展 —— 世界的转移模型(transition model)- 世界状态如何反映在智能体感知中的信息 :传感器模型(sensor model)
转移模型和传感器模型结合在一起让智能体能够在传感器受限的情况下尽可能地跟踪世界的状态
4.4 基于目标的智能体
除了当前状态的描述之外,智能体还需要某种描述理想情况的目标信息 :
- 智能体程序可以将其与模型(与基于模型的反射型智能体中使用的信息相同)相结合,并选择实现目标的动作
- 目标选择决策不同于条件-动作规则,涉及对未来的考虑,包括“如果我这样做会发生什么?”和“这会让我快乐吗?
- 基于模型、基于目标的智能体:追踪世界状态以及它试图实现的一系列目标,并选择一项最终能够实现目标的动作
特点: 看起来效率较低,但更灵活,因为支持其决策的知识是显式表示的,并且可以修改
4.5 基于效用的智能体
智能体的效用函数(utility function):性能度量的内部化
- 与基于目标的智能体一样,基于效用的智能体在灵活性和学习方面有很多优势
- 在两种情况下,仅靠目标是不充分的,但基于效用的智能体仍然可以做出理性的决策:
- 当存在相互冲突的目标时,只能实现其中的一部分(例如速度和安全),效用函数会进行适当的权衡
- 当智能体有多个目标实现,但没有一个目标可以确定地实现时,效用提供了一种方法,可以权衡目标的重要性和成功的可能性
特点:
- 从技术上,基于效用的理性智能体会选择能够最大化其动作结果期望效用(expected utility)的动作—— 在给定每个结果的概率和效用的情况下,智能体期望得到的平均效用
4.6 学习型智能体
- 评估者(critic):告诉学习元素智能体在固定性能标准方面的表现如何—— 感知本身并不会指示智能体是否成功
- 学习元素(learning element):使用来自评估者对智能体表现的反馈,并以此确定应该如何修改性能元素以在未来做得更好
- 性能元素(performance element): 接受感知并决定动作 —— 之前认为的整个智能体
- 问题生成器(problem generator):负责建议动作,这些动作将获得全新和信息丰富的经验
- 如果性能元素完全根据自己的方式,它会继续选择已知最好的动作
- 但如果智能体愿意进行一些探索,并在短期内做一些可能不太理想的动作,那么从长远来看,它可能会发现更好的动作
- 从某种意义上说,性能标准将传入感知的一部分区分为奖励(reward)或惩罚(penalty),以提供对智能体行为质量的直接反馈
4.7 智能体程序的组件如何工作
组件表示智能体所处环境的各种方式之间的区别:
- 原子表示(atomic representation):世界的每一个状态都是不可分割的,它没有内部结构——黑盒
- 因子化表示(factored representation):状态由属性值向量组成,值可以是布尔值、实值或一组固定符号中的一个
- 结构化表示(structured representation):状态由属性值向量组成,值可以是布尔值、实值或一组固定符号中的一个
- 表达性(expressiveness)增强:
- 原子表示、因子化表示和结构化表示所在的轴
- 粗略地说,可以通过简洁的描述捕捉到更具表达性的表示,表达性差的表示也可以捕捉到一切,但需要更多描述
- 表达性更强的语言更简洁
- 局部表示(localist representation):从概念到物理记忆中位置的映射,包括计算机的内存和大脑的记忆,且概念和记忆位置之间存在一对一的映射
- 分布式表示(distributed representation):从概念到物理记忆中位置的映射,一个概念的表示分布在多个记忆位置,并且每个记忆位置被用作多个不同概念表示的一部分
文章来源:https://blog.csdn.net/qq_45022770/article/details/134872979
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!