第二章 智能体
2.1 智能体和环境
智能体,任何通过传感器(sensor)感知环境(environment)并通过执行器(actuator)作用于该环境的事物都可以被视为智能体(agen).
使用术语感知(percept)来表示智能体的传感器正在感知的内容。智能体的感知序列
(percept sequence)是智能体所感知的一切的完整历史。
数学上讲,智能体的行为由智能体函数(agent function)描述,该函数将任意给定的感知序列映射到一个动作。
智能体这一概念旨在成为分析系统的工具,而不是将世界划分为智能体和非智能体的绝对表征
2.2 良好行为:理性的概念
理性智能体(rational agent)是做正确事情的事物。
但人工智能通常坚持一种称为结果主义
(consequentialism)的概念:我们通过结果来评估智能体的行为。当智能体进入环境时,它会根据接受的感知产生一个动作序列。这一动作序列会导致环境经历一系列的状态。如果序列是理想的,则智能体表现良好。这种可取性的概念由性能度量(performance measure)描述,该度量评估任何给定环境状态的序列
2.2.2 理性
在任何时候,理性取决于以下 4 方面:
定义成功标准的性能度量;
智能体对环境的先验知识;
智能体可以执行的动作;
智能体到目前为止的感知序列
理性智能体概念:对于每个可能的感知序列,给定感知序列提供的证据和智能体所拥有的任何先验知识,理性智能体应该选择一个期望最大化其性能度量的动作
2.2.3 全知、学习和自主
我们需要区分理性和全知(omniscience)。全知的智能体能预知其行动的实际结果,并能据此采取行动,但在现实中,全知是不可能的。
理性不等同于完美。理性使期望性能最大化,而完美使实际性能最大化。
我们的定义要求理性智能体不仅要收集信息,还要尽可能多地从它所感知到的东西中学习(learn)。智能体的初始配置可以反映对环境的一些先验知识,但随着智能体获得经验,这可能会被修改和增强采取行动来改变未来的感知,被称为信息搜集(information
gathering),这是理性的一个重要组成部分
智能体依赖于其设计者的先验知识,而不是其自身的感知和学习过程,我们就说该智能体缺乏自主性(autonomy)。一个理性的智能体应该是自主的,它应该学习如何弥补部分或不正确的先验知识。
有了信息收集及学习能力,理性体在得到关于环境的充足经验后,就能独立于它的先验知识而有效行动。
理性体= 体系结构(包含传感器+执行器)+智能体程序;
AI 的任务是设计智能体程序;
智能体程序是智能体函数的实现;把智能体的当前感知信息映射到行动;
智能体程序的输入是智能体的当前感知;输出是行动序列;
体系结构的任务是为智能体程序提供来自传感器的感知信息,运行程序,把程序计算出的行动决策送达执行器。
网上找到的这一段笔记进行对比
有了信息收集及学习能力,理性智能体在得到关于环境的充足经验后,就能独立于它的先验知识而有效行动。
理性体= 体系结构(包含传感器+执行器)+智能体程序;
AI 的任务是设计智能体程序;
智能体程序是智能体函数的实现;把智能体的当前感知信息映射到行动;
智能体程序的输入是智能体的当前感知;输出是行动序列;
体系结构的任务是为智能体程序提供来自传感器的感知信息,运行程序,把程序计算出的行动决策送达执行器。
2.3 环境的本质
任务环境(task environment),它本质上是“问题”,理性智能体是“解决方案”。
2.3.1 指定任务环境
要指定性能度量、环境以及智能体的执行器和传感器。这些都归在任务环境的范畴下,基于首字母缩写规则,我们称其为PEAS
(Performance,Environment,Actuator,Sensor)描述。在设计智能体时,第一步必须始是尽可能完整地指定任务环境
2.3.2 任务环境的属性
完全可观测的(fully observable)与部分可观测的(partially observable)
单智能体的(single-agent)与多智能体的(multiagent)
确定性的(deterministic)与非确定性的(nondeterministic)随机的(stochastic)
回合式的(episodic)与序贯(sequential):
静态的(static)与动态的(dynamic)
离散的(discrete)与连续的(continuous)
已知的(known)与未知的(unknown)
AI的任务是设计能使agent理性行动的程序,前面讲过理性决策的4个依赖因素,这4个因素可归结为agent的任务环境,agent的任务环境描述了agent要解决的实际问题,直接决定了agent程序的设计。
网上摘取笔记:
设计agent的第一步是尽可能详细的描述任务环境
现实环境绝大多数是部分可观察的,随机的,延续式的,动态的,连续的,未知的。为了应对复杂的现实环境,智能agent需要推理能力和学习能力。
2.4 智能体的结构
人工智能的工作是设计一个智能体程序
(agent program)实现智能体函数,即从感知到动作的映射。假设该程序将运行在某种
具有物理传感器和执行器的计算设备上,称为智能体架构(agent architecture):
智能体 = 架构 + 程序
2.4.1 智能体程序
人工智能面临的关键挑战是找出编写程序的方法,尽可能从一个小程序而不是从一个大表中产生理性行为
4 种基本的智能体程序,它们体现了几乎所有智能系统的基本原理:
简单反射型智能体;
基于模型的反射型智能体;
基于目标的智能体;
基于效用的智能体。
每种智能体程序以特定的方式组合特定的组件来产生动作。
2.4.2 简单反射型智能体
条件-动作规则
如果前面的车正在刹车,则启动刹车。
人类也有许多这样的联结,其中一些是习得反应(如驾驶),而另一些则是先天反射(如
在有东西接近眼睛时眨眼)。
2.4.3 基于模型的反射型智能体
处理部分可观测性的最有效方法是让智能体追踪它现在观测不到的部分世界。也就是说,智能体应该维护某种依赖于感知历史的内部状态(internal state),从而至少反映当前状态的一些未观测到的方面。
首先,需要一些关于世界如何随时间变化的信息,这些信息大致可以分为两部分:智能体行为的影响和世界如何独立于智能体而发展。例如,当智能体顺时针转动方向盘时,汽车就会向右转;而下雨时,汽车的摄像头就会被淋湿。这种关于“世界如何运转”的知识(无论是在简单的布尔电路中还是在完整的科学理论中实现)被称为世界的转移模型
2.4.4 基于目标的智能体
为了到达目标,既要记录世界的状态,也要记录要达到的目标集合(可能需要同时达到多个目标,如不违章,准时到达目的地)
搜索和规划是寻找达成智能体目标的行动序列的AI领域。
基于目标的智能体的行动是为了达到目标
2.4.5 基于效用的智能体
仅依靠目标,有时不足以生成高品质的行为。
智能体的效用函数是性能度量的内在化,内在的效用函数应该和外在的性能度量一致。
基于效用的智能体在灵活性和可学习性上有更多优势。
如当多个目标互相冲突,只有一些目标可以达到时,效用函数可以在目标之间折中;
如当有多个目标,但每一个都没把握达到时,效用函数可以根据目标的重要性加权;
基于效用的agent追求使期望效用最大化的行动;
记录世界的状态,同时提供一个度量对各个可能结果的偏好程度的效用函数;根据最佳期望效用选择行动;
2.4.6 学习型智能体
创造会学习的机器,然后教育它们。
学习可以使智能在初始未知的环境中运转,并逐渐变得比只具有初始知识的时候更具有竞争力。
性能元件:负责选择外部行动;
学习元件:负责改进提高;
评判元件:根据固定的性能标准告诉学习元件,智能体的运转情况。
问题产生器:建议性能元件采取探索性行动,探索性行动可能当前看不是最优的,但长期看可能是更好的行动。
所有agent都可以通过学习来改进性能,都可以改造成学习agent。
2.4.7 智能体程序的组件如何工作
智能体是在环境中感知和行动的事物。智能体的智能体函数指定智能体在响应任意感知
序列时所采取的动作。
性能度量评估智能体在环境中的行为。给定到目前为止所看到的感知序列,理性智能体
的动作是为了最大化性能度量的期望值。
任务环境规范包括性能度量、外部环境、执行器和传感器。在设计智能体时,第一步必
须始终是尽可能完整地指定任务环境。
任务环境在几个重要维度上有所不同。它们可以是完全可观测的或部分可观测的、单智
能体的或多智能体的、确定性的或非确定性的、回合式的或序贯的、静态的或动态的、
离散的或连续的、已知的或未知的。
在性能度量未知或难以正确指定的情况下,智能体优化错误目标的风险很大。在这种情
况下,智能体设计应该反映真实目标的不确定性。
智能体程序实现智能体函数。存在各种基本的智能体编程,反映了决策过程中明确使用
的信息类型。这些设计在效率、紧凑性和灵活性方面各不相同。智能体程序的适当设计
取决于环境的性质。
简单反射型智能体直接响应感知,而基于模型的反射型智能体保持内部状态以跟踪当前
感知中不明晰的世界状态。基于目标的智能体采取行动来实现目标,而基于效用的智能
体试图最大化自己期望的“快乐”。
所有智能体都可以通过学习提升性能。