第二章:智能Agent
2.1 Agent和环境
1:Agent通过传感器感知环境并通过执行器对所处环境产生影响。
2:Agent的感知序列是该Agent所收到的所有输入数据的完整历史。
3:人造Agent的Agent函数通过Agent程序实现,区分这两个概念十分重要。Agent函数是抽象的数学描述;Agent程序则是具体实现,它在一些物理系统内部运行。
2.2 好的行为:理性的概念
1:理性Agent是做正确的Agent。
2:对所有的任务和Agent,没有一成不变的固定的性能度量。
3:作为一般原则,最好根据在环境中希望得到的结果来设计性能度量,而不是根据Agent表现出的行为。
2.2.1 理性
什么是理性的判断依赖于以下4个方面:
A:定义成功标准的性能度量。
B:对环境的先验知识。
C:Agent可以完成的行动。
D:Agent截止到此的感激序列。
对每一个可能的感知序列,根据已知的感知序列提供的证据和Agent具有的先验知识,理性Agent应该选择能使其性能度量最大化的行动。
2.2.2 全知者,学习和自主性
1:必须区别理性和全知的概念,一个全知的Agent明确地知道它的行动产生的实际结果并且做出相应的动作,但全知者在现实中是不可能的。
2:理性是使期望的性能最大化,而完美是使实际的性能最大化。
3:对理性的定义并不要求全知,因为理性的选择只依赖于到当时为止的感知序列。
4:为了修改未来的感知信息而采取的行动有时称为信息收集,它是理性的重要部分。
5:我们的定义不仅要求理性Agent收集信息,而且要求Agent从它感知的信息中尽可能多的学习。
2.3 环境的性质
2.3.1 任务环境的规范描述
我们必须规定性能度量,环境以及Agent的执行器和传感器,把所有的这些归在一起,都属于任务环境。根据首字母缩写,我们称之为PEAS描述。设计Agent时,第一步就是尽可能完整地详细说明任务环境。
2.3.2 任务环境的性质
1:完全可观察的与部分可观察的
2:单Agent与多Agent
3:确定的与随机的
4:片段式的与延续式的
5:静态的与动态的
6:离散的与连续的
7:已知的与未知的
2.4 Agent的结构
AI的任务是设计Agent程序,它实现的是把感知信息映射到行动的与多Agent函数。假设该程序要在某个具备物理传感器和执行器的计算装置上运行-我们称之为体系结构
Agent=体系结构+程序
2.4.1 Agent程序
1:本书中Agent程序都具有同样的框架:输入为从传感器得到的当前感知信息,返回的是执行器的行动抉择。
2:AI的关键挑战是搞清如何编写程序,在可能的范围内用少量代码而不是庞大的表来生成理性行为。
四种基本的Agent
2.4.2 简单反射Agent
简单Agent基于当前的感知选择行动,不关注感知历史。简单反射型Agent具有极好的简洁性,但是它们的智能也很有限。
2.4.3 基于模型的反射Agent
1:处理部分可观察环境的最有效途径是让Agent跟踪记录现在看不到的那部分世界,即Agent应该根据感知历史维持内部状态,从而至少反映出当前状态看不到的信息。
2:随时更新内部状态信息要求在Agent程序 中加入两种类型的知识,首先,我们需要知道世界是如何独立于Agent而发展的信息。其次,我们需要Agent自身的行动如何影响世界的信息。
3:关于"世界如何运转"的知识--无论是用简单的布尔电路还是用完备的 科学理论实现--都被称为世界模型,使用这种模型的Agentb被称为基于模型的Agent。
2.4.4 基于目标的Agent
搜索和规划是寻找达成Agent目标的行动序列的人工智能领域。尽管基于目标的Agent显得效率较低,但是它更灵活,因为支持它决策的知识被显式表示出来,并且可以修改。
2.4.5 基于效用的Agent
仅靠目标在很多环境中不足以生成高品质的行为。Agent的效用函数是性能度量的内在化,如果内在的效用函数和外在的性能度量是和谐的,那么选择最大效用行动的Agent根据外在的性能度量也是理性的。
2.4.6 学习Agent
学习Agent可以被划分为四个概念上的组件,最重要的区别体现在学习元件和性能元件之间,学习元件负责提高,而性能元件负责选择外部行动。学习元件利用来自评判元件的反馈评价Agent做的如何,并确定应该如何修改性能元件以便将来做的更好。
2.4.7 Agent程序的各组件是如何工作的
我们将表示放置在不断增长的复杂度和表达能力的轴线上----原子,要素和结构。
1:在原子表示中,世界的每个状态是不可见的--,它没有内部结构。搜索和博弈论,隐马尔可夫模型,马尔可夫决策过程中的算法都用的是原子表示--或者,至少把表示当做是原子的。
2:要素化表示将状态表示为变量或特征的集合,每个变量或特征都有可能有值。