@vourdalak
2018-10-11T06:31:44.000000Z
字数 3639
阅读 1167
CS171智能主要与理性行为相关。理想状态下,只能Agent要采取一个环境中最好的可能行为。追求尽可能好的行为表现是智能Agent的目标。
Agent通过传感器感知外部环境,并通过执行器影响外部环境。
感知(Percept)表示任何给定时刻Agent的感知输入。这个感知输入的完整历史数据称为这个Agent到此时刻为止的感知序列(Percept Sequence)。
Agent的行动依赖于到这个时刻为止的感知序列。感知序列->行动的关系被定义为这个Agent的Agent函数。
Agent的感知序列是无穷的。因此,Agent函数只能通过Agent程序实现。
Agent函数是抽象的数学描述,Agent程序是具体实现Agent函数的方法。
行为的好坏需要一个具体的,量化的评价,才能达成理性的目标。我们渴望Agent的行动可以导致环境向一个渴望的方向变化。这个“渴望“需要通过性能度量(Performance measure)表述以来评估行为。为了达到客观理性,性能度量基于对环境状态的变化而不是对Agent自身的状态变化。合适的性能度量应该基于想要达成的环境状态目标制定。
性能度量只是理性判断的一个方面。理性的判断基于4个方面:
综上我们得出理性Agent的定义:
全知(Omniscience)和理性(Raitionality)的区别在于:全知是实际效能的最大化,理性是期望效能的最大化。理性的选择只依赖到当前的感知序列,所以理性不等于全知。
但是最大化期望性能的行为是合理的,这种为了修改为来感知信息而采取的行动称为信息收集。
信息收集后,要求Agent能从信息中尽可能多地学习以来提高自己行为的效率。
Agent过度依赖设计时输入的先验知识而不是自身的感知信息的情况称为Agent缺乏自主性(Autonomous)。理性Agent应该是自主的,即具有学习和更新知识的能力。给Agent提供初始知识是合理的,关于环境的经验积累足后Agent可以独立于先验知识而有效地行动。
任务环境是理性Agent要求解的基本问题,所以任务环境需要规范化描述。
对任务环境的基本描述包括4个部分:性能度量(Performance measure),环境(Environment),执行器(Actuators),传感器(Sensors)。
首字母缩写为PEAS。
任务环境范围很大,为了方便经常被根据较少的(7个)维度对任务环境进行分类。
如果Agent的传感器在每个时间点都能获得完整的环境状态,即任务环境是完全可观察的。
如果Agent的传感器在每个时间点都能获得所有与行动决策相关的环境状态,即任务环境是有效完全可观察的。
完全可观察的环境很方便,因为Agent不需要维护内部状态来记录外部世界,它随时都能全局考虑并做出决策。
先要确定的问题是,怎样算是一个Agent?
B的行为是否寻求于改变A的行为的性能度量值?
是,A处于多Agent环境中。
否,B不算Agent。
B的行为是否寻求于最大化A的行为的性能度量值?
是,合作的多Agent环境。
否,竞争的多Agent环境,
也可以是又合作又竞争的。
如果环境的下一个状态完全取决于当前状态和Agent执行的动作,没有突发事件,那么该环境是确定的。
即使环境完全可观察也可以是随机的,需要与"观察"维度区别开。
如果Agent的经历被分成一个个原子(不可分的单位)片段,在每个片段中感知信息并完成单个行动,下个片段不依赖于前一个片段中采取的行动,那么这个Agent的环境是片段性的。片段性环境中无需记忆。
在延续环境中,当前决策会影响所有未来的决策。
如果环境在Agent计算时会发生变化,那么该Agent的环境是动态的。否则是静态的。静态更好处理。
如果Agent的性能评价随时间变化,那么这样环境称为半动态的。
状态如果能够有限地形容出来即称为离散的。
指Agent对环境的知识状态,如果所有行动的后果是给定的已知环境。如果Agent需要学习环境是如何工作的以来做出更好决策,那么环境是未知的。
Agent=Architecture+程序
Architecture即为物理的,具有传感器和执行器的装置。
Agent程序负责实现Agent函数。
输入:当前感知
输出:行动
然而Agent函数的参数为感知序列,所以Agent必须记住感知信息。感知存储在一个序列的数据结构中形成感知序列,根据Agent函数映射表寻找对应的行动。
事实上,Agent函数的映射表是极为庞大的,所以这只停留在理论层面,现实中Agent程序要设计寻找答案的算法来生成输出行动。
以下4种几乎涵盖了全部的智能系统的基础原则。
最简单的Agent类型。只基于当前的感知来选择行动,不关注感知历史。
简单反射型Agent具有极好的简洁性,智能也很有限。逻辑可以概括成“如果XXX,那么XXXXX”。类似动物的条件反射。这个简单的“感知->行动”联接称为条件-行为规则。
简单反射行为可以在复杂环境中作为辅助,比如自动驾驶过程中“如果看到前车后灯亮就刹车”的功能部分。
因为过度简单,必须存在于完全可观察状态中以来规定所有行动的对应策略。如果处于部分可观察环境中,经常不可避免陷入死循环。
需要记录历史感知序列,根据感知历史维持内部状态。并且Agent需要预设知道:1.世界是如何运行的,2.自己的行动会如何影响外界环境。这些知识被称为模型。
仅仅知道当前环境状态不足以选择正确的决策,正确的决策取决于Agent的目标信息。目标信息描述想要达到的状况。基于目标的Agent会考虑未来做什么会使自己接近预期目标。一般需要搜索和规划的算法支持。
效率较低,但是很灵活,因为决策的制定方针被函数逻辑显式表达,很好修改。
性能度量量化了环境状态,所以一个行动是好还是坏可以用函数表示。效用函数是性能度量的内在化。
基于效用的Agent不止要完成目标,还尽力选择期望效用最大化的行动。它的行动取决于效用函数的定义。
学习Agent是图灵提出“建造会学习的机器,然后教育他们”。学习保证设计者不需要面面俱到,而且使得Agent可以在初始未知的环境中运转且进化的更优秀。
学习Agent可以被划分为4个概念组件: