《人工智能:一种现代的方法》读书笔记之 智能Agent

时间:2024-03-25 15:41:14

本书链接:人工智能:一种现代的方法(第3版)

本人人工智能小白,为了恶补知识,所以买了一本综述型的入门教材。终于看完了第一部分,人工智能概述~~做一下笔记,便于后续记忆。

一、前提

AI的任务是设计Agent程序,实现的是把感知信息映射到行动的Agent函数。

二、什么是Agent

Agent就是能够行动的某种东西,具备自主的操作、感知环境、长期持续、适应变化并能创建与追求目标。

三、什么是合理Agent

合理Agent是一个为了实现最佳结果,或者,当存在不确定性时,为了实现最佳期望结果而行动的Agent。

  • 正确的推理
    合理行动的一种方法是逻辑地推理出给定行动将实现其目标的结论,然后遵照那个结论行动,但是正确的推理并不是合理性的全部。
  • 有限合理性
    当没有足够的时间来完成所有你想要做的计算时仍能恰当的行动。

四、什么是智能Agent

智能Agent要采取一个环境中最好的可能行为。
智能主要与理性行为相关。

五、Agent和环境的关系

Agent通过传感器感知环境并通过执行器对所处环境产生影响。

  • 感知是用来表示任何给定时刻Agent的感知输入。
  • Agent的感知序列是该Agent所受到的所有输入数据的完整历史。Agent在任何给定时刻的行动选择依赖于到那个时刻为止该Agent的整个感知序列。
  • Agent函数描述了Agent的行动,它将任意给定感知序列映射为行动。
    • Agent函数是抽象的数学描述
    • Agent程序是具体实现

六、理性-好的行为

6.1 什么是理性Agent

理性Agent是做事正确的Agent。

6.2 理性的判断依赖

  • 定义成功标准的性能度量
  • Agent对环境的先验知识
  • Agent可以完成的行动
  • Agent截止到此时的感知序列

6.3 理性Agent的定义

对每一个可能的感知序列,根据已知的感知序列提供的证据和Agent具有的先验知识,理性Agent应该选择能使其性能度量最大化的行动。

6.4 理性与全知的区别

  • 一个全知的Agent明确的知道它的行动产生的实际结果并且做出相应的动作。全知者在现实中是不可能的。
  • 理性是使期望的性能最大化,而完美是使实际的性能最大化。对Agent而言,完美是不太合理的要求。
  • 理性并不要求全知。理性的选择只依赖于到当时为止的感知序列。

6.5 理性Agent的两大特点

  1. 信息收集
    观察有助于期望性能的最大化。
  2. 自主学习
    从所感知的信息中尽可能多的学习,以弥补不完整的或者不正确的先验知识。

七、任务环境

7.1 定义:PEAS描述

  • Performance性能
  • Environment环境
  • Actuators执行器
  • Sensors传感器

7.2 设计Agent的第一步

尽可能完整地详细说明任务环境。

7.3 性质

7.3.1 完全可观察的vs部分可观察的

  • 如果Agent的传感器在每个时间节点上都能获取环境的完整状态,这个任务环境就是完全可观察的。否则,则是部分可观察的。
  • 如果传感器能够检测所有与行动决策相关的信息,该任务环境就是有效完全可观察的。
  • 如果Agent根本没有传感器,环境则是无法观察的。

7.3.2 单Agent vs 多Agent

区分两者的关键在于Agent B 行为的性能度量最大化是否需要依赖于Agent A的行为。

  • 竞争性的多Agent环境
    Agent B想要最大化自己的性能度量,就需要最小化Agent A的性能度量。

  • 合作性的多Agent环境
    Agent B想要最大化自己的性能度量,就需要最大化Agent A的性能度量。

  • 部分合作部分竞争的多Agent环境
    上述两种情况都会发生。

7.3.3 确定的 vs 随机的

如果环境的下一个状态完全取决于当前状态和Agent执行的动作,则该环境是确定的;否则,是随机的。

  • 不确定与随机的区别

    • 环境不确定是指 环境不是完全可观察的或不确定的,行动后果可能有多种,但与概率无关。
    • 环境随机是指后果是不确定的并且可以用概率来量化。

7.3.4 片段式 vs 延续式

片段式是指 当前决策不会影响到未来的决策。
延续式是指 当前决策会影响到所有未来的决策。

7.3.5 静态 vs 动态

如果环境在Agent计算的时候会变化,该环境是动态的,否则是静态的。
如果环境本身不随时间变化而变化,但Agent的性能评价随时间变化,则环境是半动态的。

7.3.6 离线 vs 连续

离线和连续的使用场景有:

  • 环境的状态
  • 时间的处理方式
  • Agent的感知信息和行动

7.3.7 已知 vs 未知

Agent的知识状态。
如果环境是未知的,Agent需要学习环境是如何工作的,以便做出好的决策。

7.4 最难处理的情况

部分可观察的、多Agent的、随机的、延续的、动态的、连续的和未知的环境。

8 Agent的结构

Agent = 体系结构 + 程序。

8.1 体系结构

体系结构:某个具备物理传感器和执行器的计算装置。

体系结构为程序提供来自传感器的感知信息,运行程序,并把程序计算出的行动决策送达执行器。

8.2 Agent程序的框架

8.2.1 输入

从传感器得到的当前感知信息

8.2.2 输出

执行器的行动抉择

8.2.3 基本的Agent程序

8.2.3.1 简单反射Agent
  • 定义
    基于当前的感知选择行动,不关注感知历史。
    最简单的Agent类型。
    针对完全可观察的环境。

  • 方法
    Step 1:首先构建一个通用的条件-行为规则解释器。
    Step 2:根据特定任务环境创建相应的规则集合。

  • 缺点
    在部分可观察环境中运转的简单反射Agent经常不可避免地陷入无限循环中。

  • 示意图和伪代码见书P44
    《人工智能:一种现代的方法》读书笔记之 智能Agent

8.2.3.2 基于模型的反射Agent
  • 定义

    • 世界模型:

      • 知识一:世界是如何独立于Agent而发展的信息
      • 知识二:Agent自身的行动如何影响世界
    • 使用世界模型的Agent称为基于模型的Agent

    • 通过将当前的感知信息与过去的内部状态结合来更新当前状态
    • 针对部分可观测环境
  • 缺点
    部分可观察环境中的Agent不能精准确定当前状态

  • 示意图和伪代码见书P46
    《人工智能:一种现代的方法》读书笔记之 智能Agent

8.2.3.3 基于目标的Agent
  • 定义
    既跟踪记录世界的状态,也记录它要达到的目标集合,并选择能(最终)导致目标达成的行动
  • 特点
    效率低、灵活、可学习。
  • 不适用的情况
    1. 多个目标互相冲突
    2. 有几个目标,但没有一个有把握达到

这两种情况,通过效用Agent可以解决

  • 示意图见P47
    《人工智能:一种现代的方法》读书笔记之 智能Agent
8.2.3.4 基于效用的Agent
  • 定义
    理性的基于效用的Agent 选择 期望效用最大化的行动,Agent在给定每个结果的概率和效用下,期望得到的平均效用。
  • 方法
    Step 1:使用关于世界的模型,以及对各个世界状态的偏好程度进行度量的效用函数。
    Step 2:选择可以取得最佳期望效用的行动。
    Step 3:通过结果的概率来确定权值,最佳期望效用是通过计算所有可能结果状态的加权平均值得到的。
  • 适用情况
    1、当多个目标互相冲突时,只有其中一些目标可以达到时,效用函数可以在它们之间适当的折中。
    2、当Agent有几个目标,但没有一个有把握达到时,效用函数可以在它们之间适当的折中。
  • 示意图见书P48
    《人工智能:一种现代的方法》读书笔记之 智能Agent

8.2.4 学习Agent的通用模型

8.2.4.1 学习元件

负责改进提高

8.2.4.2 性能元件

负责选择外部行动,接受感知信息并决策

8.2.4.3 评判元件

根据固定的性能指标告诉学习元件Agent的运转情况

8.2.4.4 问题产生器

负责可以得到新的和有信息的经验的行动提议,建议探索性行动

《人工智能:一种现代的方法》读书笔记之 智能Agent

8.2.5 Agent程序的组件表示形式

8.2.5.1 原子表示

每个状态是不可见的,没有内部结构

8.2.5.2 要素化表示

将状态表示为变量或者特征的集合,每个变量或特征都可能有值。
两个不同的要素化表示可以共享一些特征。

8.2.5.3 结构化表示

描述对象之间的关系

《人工智能:一种现代的方法》读书笔记之 智能Agent

8.3 Agent函数

输入:整个感知历史