购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.3 环境的本质

既然已经有了理性的定义,考虑构建理性智能体的准备几乎已经完成。然而,还必须考虑 任务环境 (task environment),它本质上是“问题”,理性智能体是“解决方案”。我们首先展示如何指定任务环境,并用一些示例说明该过程。然后,展示任务环境的多种形式。任务环境的性质直接影响智能体程序的恰当设计。

2.3.1 指定任务环境

在讨论简单的真空吸尘器智能体的理性时,我们必须指定性能度量、环境以及智能体的执行器和传感器。我们将所有这些都归在任务环境的范畴下,基于首字母缩写规则,我们称其为 PEAS (Performance,Environment,Actuator,Sensor)描述。在设计智能体时,第一步必须始终是尽可能完整地指定任务环境。

真空吸尘器世界是一个简单的例子,让我们考虑一个更复杂的问题:自动驾驶出租车司机。图2-4总结了出租车任务环境的PEAS描述。我们将在以下段落中更详细地讨论每个元素。

图2-4 自动驾驶出租车司机任务环境的PEAS描述

首先,我们希望自动驾驶追求的 性能度量 (performance measure)是什么?理想的标准包括到达正确的目的地,尽量减少油耗和磨损,尽量减少行程时间或成本,尽量减少违反交通法规和对其他驾驶员的干扰,最大限度地提高安全性和乘客舒适度,最大化利润。显然,其中一些目标是相互冲突的,因此需要权衡。

接下来,出租车将面临什么样的驾驶 环境 (environment)?任何出租车司机都必须能够在各种道路上行驶,如乡村车道、城市小巷以及12车道的高速公路。道路上有其他交通工具、行人、流浪动物、道路工程、警车、水坑和坑洼。出租车还必须与潜在以及实际的乘客互动。另外,还有一些可选项。出租车可以选择在很少下雪的南加利福尼亚州或者经常下雪的阿拉斯加运营。它可能总是靠右行驶,或者我们可能希望它足够灵活,在英国或日本时可以靠左行驶。显然,环境越受限,设计问题就越容易解决。

自动驾驶出租车的 执行器 (actuator)包括可供人类驾驶员使用的器件,例如通过加速器控制发动机以及控制转向和制动。此外,它还需要输出到显示屏或语音合成器,以便与乘客进行对话,或许还需要某种方式与其他车辆进行礼貌的或其他方式的沟通。

出租车的基本 传感器 (sensor)将包括一个或多个摄像头以便观察,以及激光雷达和超声波传感器以便检测其他车辆和障碍物的距离。为了避免超速罚单,出租车应该有一个速度表,而为了正确控制车辆(特别是在弯道上),它应该有一个加速度表。要确定车辆的机械状态,需要发动机、燃油和电气系统的传感器常规阵列。像许多人类驾驶者一样,它可能需要获取GPS信号,这样就不会迷路。最后,乘客需要触摸屏或语音输入才能说明目的地。

图2-5中简要列举了一些其他智能体类型的基本PEAS元素。更多示例参见习题2.PEAS。这些示例包括物理环境和虚拟环境。注意,虚拟任务环境可能与“真实”世界一样复杂。例如,在拍卖和转售网站上进行交易的 软件智能体 (software agent),或称软件机器人或 软机器人 (softbot),为数百万其他用户和数十亿对象提供交易,其中许多对象具有真实的图片。

图2-5 智能体类型及其PEAS描述的示例

2.3.2 任务环境的属性

人工智能中可能出现的任务环境范围显然非常广泛。然而,我们可以确定相当少的维度,并根据这些维度对任务环境进行分类。这些维度在很大程度上决定了恰当的智能体设计以及智能体实现的主要技术系列的适用性。首先我们列出维度,然后分析几个任务环境,阐明思路。这里的定义是非形式化的,后面的章节提供了每种环境的更精确的陈述和示例。

完全可观测的 (fully observable)与 部分可观测的 (partially observable):如果智能体的传感器能让它在每个时间点都能访问环境的完整状态,那么我们说任务环境是完全可观测的。如果传感器检测到与动作选择相关的所有方面,那么任务环境就是有效的完全可观测的,而所谓的相关又取决于性能度量标准。完全可观测的环境很容易处理,因为智能体不需要维护任何内部状态来追踪世界。由于传感器噪声大且不准确,或者由于传感器数据中缺少部分状态,环境可能部分可观测。例如,只有一个局部灰尘传感器的真空吸尘器无法判断其他方格是否有灰尘,自动驾驶出租车无法感知其他司机的想法。如果智能体根本没有传感器,那么环境是 不可观测的 (unobservable)。在这种情况下,有人可能会认为智能体的困境是无解的,但是正如我们在第4章中讨论的那样,智能体的目标可能仍然可以实现,有时甚至是确定可以实现的。

单智能体的 (single-agent)与 多智能体的 (multiagent):单智能体和多智能体环境之间的区别似乎足够简单。例如,独自解决纵横字谜的智能体显然处于单智能体环境中,而下国际象棋的智能体则处于二智能体环境中。然而,这里也有一些微妙的问题。首先,我们已经描述了如何将一个实体视为智能体,但没有解释哪些实体必须视为智能体。智能体A(例如出租车司机)是否必须将对象B(另一辆车)视为智能体,还是可以仅将其视为根据物理定律运行的对象,类似于海滩上的波浪或随风飘动的树叶?关键的区别在于B的行为是否被最佳地描述为一个性能度量的最大化,而这一性能度量的值取决于智能体A的行为。

例如,国际象棋中的对手实体B正试图最大化其性能度量,根据国际象棋规则,这将最小化智能体A的性能度量。因此,国际象棋是一个 竞争性 (competitive)的多智能体环境。但是,在出租车驾驶环境中,避免碰撞使所有智能体的性能度量最大化,因此它是一个部分 合作的 (cooperative)多智能体环境。它还具有部分竞争性,例如,一个停车位只能停一辆车。

多智能体环境中的智能体设计问题通常与单智能体环境下有较大差异。例如,在多智能体环境中,通信通常作为一种理性行为出现;在某些竞争环境中,随机行为是理性的,因为它避免了一些可预测性的陷阱。

确定性的 (deterministic)与 非确定性的 (nondeterministic):如果环境的下一个状态完全由当前状态和智能体执行的动作决定,那么我们说环境是确定性的,否则是非确定性的。原则上,在完全可观测的确定性环境中,智能体不需要担心不确定性。然而,如果环境是部分可观测的,那么它可能是非确定性的。

大多数真实情况非常复杂,以至于不可能追踪所有未观测到的方面;出于实际目的,必须将其视为非确定性的。从这个意义上讲,出租车驾驶显然是非确定性的,因为人们永远无法准确地预测交通行为。此外,轮胎可能会意外爆胎,发动机可能会在没有警告的情况下失灵。我们描述的真空吸尘器世界是确定性的,但变化可能包括非确定性因素,如随机出现的灰尘和不可靠的吸力机制(参考习题2.VFIN)。

最后注意一点, 随机的 (stochastic)一词被一些人用作“非确定性”的同义词,但我们会区分这两个术语。如果环境模型显式地处理概率(例如,“明天的降雨可能性为25%”),那么它是随机的;如果可能性没有被量化,那么它是“非确定性的”(例如,“明天有可能下雨”)。

回合式的 (episodic)与 序贯的 (sequential):在回合式任务环境中,智能体的经验被划分为原子式的回合。在每一回合中,智能体接收一个感知,然后执行单个动作。至关重要的是,下一回合并不依赖于前几回合采取的动作。许多分类任务是回合式的。例如,在装配流水线上检测缺陷零件的智能体需要根据当前零件做出每个决策,而无须考虑以前的决策;而且,当前的决策并不影响下一个零件是否有缺陷。但是,在序贯环境中,当前决策可能会影响未来所有决策。 国际象棋和出租车驾驶是序贯的:在这两种情况下,短期行为可能会产生长期影响。因为在回合式环境下智能体不需要提前思考,所以要比序贯环境简单很多。

静态的 (static)与 动态的 (dynamic):如果环境在智能体思考时发生了变化,我们就说该智能体的环境是动态的,否则是静态的。静态环境很容易处理,因为智能体在决定某个操作时不需要一直关注世界,也不需要担心时间的流逝。但是,动态环境会不断地询问智能体想要采取什么行动,如果它还没有决定,那就等同于什么都不做。如果环境本身不会随着时间的推移而改变,但智能体的性能分数会改变,我们就说环境是 半动态的 (semidynamic)。驾驶出租车显然是动态的,因为驾驶算法在计划下一步该做什么时,其他车辆和出租车本身在不断移动。在用时钟计时的情况下国际象棋是半动态的。填字游戏是静态的。

离散的 (discrete)与 连续的 (continuous):离散/连续的区别适用于环境的 状态 、处理 时间 的方式以及智能体的 感知 动作 。例如,国际象棋环境具有有限数量的不同状态(不包括时钟)。国际象棋也有一组离散的感知和动作。驾驶出租车是一个连续状态和连续时间的问题,出租车和其他车辆的速度和位置是一系列连续的值,并随着时间平稳地变化。出租车的驾驶动作也是连续的(转向角等)。严格来说,来自数字照相机的输入是离散的,但通常被视为表示连续变化的强度和位置。

已知的 (known)与 未知的 (unknown):严格来说,这种区别不是指环境本身,而是指智能体(或设计者)对环境“物理定律”的认知状态。在已知环境中,所有行动的结果(如果环境是非确定性的,则对应结果的概率)都是既定的。显然,如果环境未知,智能体将不得不了解它是如何工作的,才能做出正确的决策。

已知和未知环境之间的区别与完全可观测和部分可观测环境之间的区别不同。一个 已知 的环境很可能是 部分 可观测的,例如,在纸牌游戏中,知道规则但仍然无法看到尚未翻转的牌。相反,一个 未知 环境可以是 完全 可观测的,如一个全新的电子游戏,屏幕可能会显示整个游戏状态,但在尝试之前并不知道各个按钮的作用。

如2.2.1节所述,性能度量本身可能是未知的,这可能是因为设计者不确定如何正确地描述,也可能是因为最终用户(其偏好很重要)是未知的。例如,出租车司机通常不知道新乘客是喜欢悠闲还是快速的旅程,是喜欢谨慎还是激进的驾驶风格。虚拟个人助理一开始对新主人的个人喜好一无所知。在这种情况下,智能体可以基于与设计者或用户的进一步交互来了解更多关于性能度量的信息。继而,这表明,任务环境必须被视为一个多智能体环境。

最困难的情况是 部分可观测的 多智能体的 非确定性的 序贯的 动态的 连续的 未知的 。驾驶出租车除了驾驶员的环境大多是已知的,在所有其他方面都很难。在一个陌生的国家驾驶租来的汽车,那里有不熟悉的地理环境、不同的交通法规以及焦虑的乘客,这令人更加紧张。

图2-6列出了许多熟悉环境的属性。注意,这些属性并不总是一成不变的。例如,因为将患者的患病过程作为智能体建模并不适合,所以我们将医疗诊断任务列为单智能体,但是医疗诊断系统还可能必须应对顽固的病人和多疑的工作人员,因此环境还具有多智能体的方面。此外,如果我们将任务设想为根据症状列表进行诊断,那么医疗诊断是回合式的;如果任务包括提出一系列测试、评估治疗过程中的进展、处理多个患者等,那么则是序贯的。

图2-6 任务环境的例子及其特征

因为如前所述,“已知的/未知的”不是严格意义上的环境属性,所以图2-6中没有包含此列。对于某些环境,例如国际象棋和扑克,很容易为智能体提供完整的规则知识,但考虑智能体如何在没有这些知识的情况下学会玩这些游戏仍然是有趣的。

与本书相关的代码库包括多个环境实现以及用于评估智能体性能的通用环境模拟器。实验通常不是针对单个环境进行的,而是针对从 环境类 (environment class)中抽象的许多环境进行的。例如,要在模拟交通中评估出租车司机,我们需要运行具有不同的交通状况、照明和天气条件的多次模拟。我们关注智能体在环境类上的平均性能。 4/W9n9UZSxU+MfdO93h6KuQOWUAwhHnLmyAisgLW+wSpQWm0C/Wo3BOIhOtYmP1d

点击中间区域
呼出菜单
上一章
目录
下一章
×