Artificial Intelligence A Modern Approach 第二版笔记(二)

2.1 Agent And Environments

  • Agent是可以被视为通过传感器感知其环境并通过执行器在该环境上作用的任何事物。我们使用术语“percept”来指代理在任何给定时刻的感知输入。从数学上讲,我们说Agent的行为由Agent的功能描述,该Agent功能可将任何给定的感知序列映射到一个动作。
    在这里插入图片描述
  • 如果说每个感知序列都对应着一个Agent的动作,那么我们是否可以将Agent功能列表化。
  • 需要注意的是Agent的“percept”行为一种抽象的数学描述,但Agent功能是程序的具体实现
  • Agent在本节当中只是把它作为分析系统的工具,现实世界并不能简单划分为Agents和non-Agents,例如计算器,当计算器接收“2+2=”这一信息序列时,它会显示结果为“4”的动作,看起来这符合我们所看到的现象。但是我们知道计算器的工作原理是运算器、控制器由数字逻辑电路实现的简单的串行运算,并不是简单的查表得结果。
  • 总的来说,Agent就是通过Sensors接收信息,然后经过一系列操作,从信息中得出结果,再由Actuators来实现结果。我们把Agent作为分析智能系统的工具,就像数据库设计时候E-R图一样,E-R图作为一种分析数据对象关系的工具。

2.2 Good Behavior : The Concept Of Rationality

在第一章就分析了四种AI概念,分析了理性思考和理性的行事之间关系,认为理性思考只是行事的一个前提。那么“理性”该如何去衡量?我们都知道做正确的事肯定要比做错误的事好,理性行事就是要得到一个对于Agent来说最好的结果,显然每个Agent的衡量标准都一样。我们从以下几个方面来衡量“理性”程度

  • Performance measures
    性能(performance)是对Agent行为效益的一种描述,Agent通过接收周围环境信息,产生一系列动作序列,如果序列是理想的,则Agent最后表现的很好。那么如何去评判一个动作序列是否理想成了最大问题,我们选择将问题转移,不再考虑序列是否理想,而是评判动作序列最后结果是否最好。
    在这里插入图片描述

在上一节例举的真空吸成器的案例,我们只评判吸尘器在做完所有动作后地板的干净程度,以此来评判Agent的理性程度。
但是性能指标的选定并不是那么容易,为了将问题简单化,将地板洁净程度作为性能指标。但实际情况下,我们需要考虑吸尘器的耗电、耗时、噪声等一系列复杂因素,有时候性能指标的选择更像是一个哲学问题。

  • Rationality
    在任何给定时间,什么是合理的取决于四件事:定义成功标准的性能指标;Agent对环境的先验知识;代理可以执行的操作;到目前为止,代理的感知顺序;
    我们可以这么给理性定义:对于每个可能的感知序列,考虑到感知序列提供的信息以及Agent具有的先验知识,理性的Agent应选择一种预期性能指标最大化的动作。
  • Omniscience, learning, and autonomy
    理性不等于全知,需要知道我们构造的Agent并不是全知全能的。我们需要小心区分理性与全知。 无所不知的行动者知道其行动的实际结果并可以采取相应行动;全知是不可能实现的,但理性却是可以实现的。
    理性的选择仅取决于在行动前接收到的感知序列,从感知序列中得出最有效的选择。但某些时候仅凭感知序列得到的信息并不足以支持Agent作出理性的行动,所以我们定义Agent不仅要从所在环境中获取信息,还要凭借已知的知识从信息中学习。我们给了Agent关于环境的先验知识,但是Agent可以随着经验增加,对已学知识补充和拓展
    因此,就像动物本身具有一些生理本能,但也需要后天学习,为AI Agent提供一些初始知识和学习能力也是合理的。在对其环境有足够的经验之后,理性主体的行为可以变得有效地独立于其先验知识。因此,学习的结合使人们可以设计一种可以在各种环境中成功的理性主体。

2.3 The Nature Of Environments

在定义了什么是理性之后,还需要考虑环境的本质是什么?(从数学角度讲,环境是解决问题的条件约束)

  • Specifying the task environment
    前面在讨论真空吸尘器的时候,讲到了几个关键因素:性能、环境、执行器、传感器(performance、environment、actuator、sensor),简称为PEAS。我们已经知道性能对于Agent设计很重要,但在设计Agent时,第一步必须尽可能的充分指定任务环境。
    以自动驾驶为例,自动驾驶的性能指标有:正确达到目的地、燃油消耗、轮胎磨损、驾驶时间、安全性和舒适度、利润。自动驾驶面对的环境时什么?不同的道路,不同的交通法规,不同的国家,不同的天气环境等;Agent程序在面对不同的环境时采取的策略不同,但有一点可以肯定,环境越受限制,问题处理就越容易
    这里要区别“真实”环境与“人造”环境之间的区别,就自动驾驶案例而言“人造”环境就是汽车上的各种接收外界信息的硬件环境。比如摄像头、麦克风、卫星定位系统、测速仪、红外线系统等等,这些硬件构成了Agent程序的运行环境。很多时候“真实”环境很简单,但想要让Agent接收到环境产生的有用的感知序列需要大费周折
  • Properties of task environments
    环境是一个很宽泛的概念,现实世界的复杂性导致我们从不同观察环境维度不同,这很大程度上决定了Agent的行动选择,可以从下面几个维度划分我们观察到的环境
    1.Fully observable vs. partially observable——完全可观察与部分可观察
    很容易理解,任务环境被完全观察到与只有部分被观察到,Agent作出的反应是不同的,就前面真空吸尘器举例,尚若真空吸尘器的感知器无法准确感知地板的洁净程度甚至错误感知,那么吸尘器采取的策略就不同了。
    2.Deterministic vs. stochastic——确定性与随机性
    当一个环境中包含随机因素时,在设计Agent程序应该考虑该因素。例如自动驾驶汽车,需要考虑轮胎爆胎事件发生的可能性。
    3.Episodic vs. sequential——情景与顺序
    从字面有点难理解,一个识别不良零件的Agent,那么它每次判断都取决当前零件好坏,与之前零件无关,一个国际象棋Agent,它的每次决策与之前已经执行的策略是息息相关的。这里我们把前者案例称为情景环境,后者称为顺序环境,显然情景比顺序环境简单的多。
    4.Static vs, dynamic——静态与动态
    如果Agent在执行动作的时候周围环境是变化的,那么我们说该环境是动态的,否则是静态的。静态环境比较容易处理,动态环境需要考虑Agent执行动作后环境会产生什么样的变化,并且需要考虑时间对环境的影响。自动驾驶是处于动态环境的,填字游戏、拼图游戏是静态的(在没有时间限制的条件下)
    5.Discrete vs. continuous——离散与连续
    离散/连续分别可以应用于环境状态,时间处理方式以及代理的感知和动作。例如,国际象棋是一系列离散的感知和动作,自动驾驶是一个连续的状态与连续时间的问题。
    6.Single agent vs. multiagent——单Agent与多Agent
    在国际象棋里,我们可以把下棋的两个对象看作是两个Agent,在自动驾驶汽车问题中,是应该把路上行驶汽车当作Agent对象还是当作环境因素来处理,这些都是在设计Agent程序之前是必须要考虑的。

2.4 The Structure Of Agents

到目前为止,我们对代理的印象是,在任何给定的感知序列下执行特定动作的一个智能体。 AI要做的事情是将Agent功能映射到动作,而这些“动作”需要特定的程序来完成。我们假设该程序将在带有物理传感器和执行器的某种计算设备上运行,我们将其称为架构,那么我们可以这样来定义Agent:
Agent = 架构 + 程序
这有点类似于我们对程序的定义,程序 = 数据结构 + 算法。显然我们设计的程序必须符合该结构,比如,我们不能在一个计算器上设计一个走路功能的程序(或许将来某天会有,但就目前来看,这是不合理的)。
Agent程序将感知序列作为输入,然后Agent程序再完成相应动作。前面我们设想将感知序列与其对应动作构建成一张表,程序接收感知序列后,通过查表即可知道执行动作。但是这种表驱动方式注定是失败的,现实世界是复杂多样的,人们没有那么大的存储空间和时间去构建表。AI要挑战的是如何从少量的先验知识中产生合理的行为,表驱动的方式显然不符合我们的初衷,在本节的其余部分,我们概述了四种基本的Agent程序类型,它们体现了几乎所有智能系统所基于的原理

  • Simple reflex agents
    最简单的是简单反射模式,这种模式下Agent仅仅根据当前感知而选择动作,忽略其感知历史。例如,真空吸尘器的感知器感知到地板有污渍时,执行清洁动作;自动驾驶汽车感知器感知到前方车辆刹车灯亮起,则执行刹车动作;简单反射具有令人倾佩的特性,但它的智能却及其有限,无法通过历史经验学习,智能对特定动作产生反应。
  • Model-based reflex agents
    在这里插入图片描述
    简单反射模式是:感知器感受到感知序列A(感知序列代表着一种环境状态),就执行动作B。基于模式反射模式,感受接收外界环境信息,然后分析环境状态,预测环境会如何演变,给出要执行动作。与简单反射不同之处在于,基于模式反射认为外部环境是会受当前动作影响的,每次分析应该考虑当前动作对后续环境的影响,最为关键的在于UPDATE—STATE这一步,不断更新环境状态。
  • Goal-based agents
    在这里插入图片描述
    很多时候当前环境状态并不足以决定要做什么,例如,自动驾驶汽车在检测到路口时,它会选择左转或右转,那么它应该是左转还是右转呢?正确的决定取决于它的目的地,假若左转会使它越来越偏离目的地,那么右转才是正确选择。Agent需要某种目标信息,这些目标信息描述了理想的情况,例如,在乘客的目的地。Agent程序可以将此与有关可能的操作结果的信息(与用于更新反射代理中的内部状态的信息相同)组合在一起,以选择实现目标的操作。
  • Utility-based agent
    在大多数环境中,仅靠目标信息不足以产生高效行为,还是自动驾驶汽车为例,在给定一个目的地之后,汽车有很多条道路可以选择,那条路线是最理想的,需要有一个选择标准。在2.2节中我们谈到Performance measures ,基于实用程序模式就是这种思想。应该设计一个效用函数,函数将Agent当前状态映射到一个实数,该实数反应了当前动作的有效程度,效用函数可以指导程序作出有效决策。
  • Learning agents

在前面介绍几种Agent程序,但还没有解释Agent程序是怎么提出来的。早期图灵提出手动编写智能机器的想法,经过研究发现似乎需要某种更便捷的办法,他提出了建立学习机器的想法。学习机器最初在未知的环境中运行,凭借最初知识不断学习获得更强大的能力。
学习机器可分为四个概念组成,最重要就是学习元素(负责改进)和性能元素(负责选择外部动作),绩效要素是我们以前认为是整个主体的要素:它接受感知并决定行动。学习元素接收评价函数的反馈,以了解Agent的工作方式,并确定应如何修改性能元素以在将来做得更好。
学习元素设计很大程度取决于性能元素的设计,性能标准决定了Agent的学习方向。机器无法知道它当前动作是否有效,性能元素提供了一个比较标准。评价函数将整个Agent性能表现反馈给学习元素,使其不断调整接近性能标准。

2.5 SUMMARY

  • Agent是在环境中感知环境并采取相应措施的事物,Agent的每个功能都对应着一个感知序列
  • 性能衡量指标来评估Agent在环境中行为,理性智能体的目标就是使性能指标的预期值最大化
  • 任务环境包括性能指标、外部环境、执行器、感知器。设计Agent程序第一步就是指定任务环境。
  • 任务环境在几个重要方面有所不同。它们可以是完全或部分可观察的,确定性的或随机的,情节性的或顺序的,静态或动态的,离散的或连续的以及单主体或多主体的。
  • Agent程序实现Agent功能。存在多种Agent程序设计方法,简单的反射直接对感知做出反应,而基于模型的反射会考虑外部环境变化。基于目标的代理采取行动以实现其目标,而基于效用的代理则尝试使自己的预期性能指标最大化。
  • 所有Agent都可以通过学习来提高自己的性能。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值