- Python强化学习:算法、核心技术与行业应用
- (美)埃内斯·比尔金
- 2209字
- 2024-04-15 11:57:26
1.4 强化学习问题的元素
到目前为止,我们介绍了可以使用强化学习建模的问题类型。在接下来的章节中,我们将深入研究可以解决这些问题的最先进的算法。然而,现在我们先要形式化定义强化学习问题中的元素。通过建立我们的词汇表,这将为更多技术内容奠定基础。在给出这些定义之后,我们将在井字棋游戏(tic-tac-toe)示例中研究这些概念对应的内容。
1.4.1 强化学习概念
我们从定义强化学习问题中的最基本组件开始:
❑ 在强化学习问题的中心,存在学习器,用强化学习术语可以称之为智能体(agent)。我们处理的大多数问题类中都会有一个单智能体。如果有多个智能体,则该问题类称为多智能体强化学习(Multi-Agent Reinforcement Learning, MARL)。在多智能体强化学习中,智能体之间的关系可以是合作的、竞争的或者两者兼有。
❑ 强化学习问题的本质是智能体学习在其所处世界的不同情况下该做什么,即采取何种行动(action)。我们称这个世界为环境(environment),它指的是智能体之外的一切。
❑ 准确而充分地描述环境状况的所有信息的集合称为状态(state)。所以,如果环境在不同的时间点处于相同的状态,这意味着关于环境的一切都是完全一样的,就像“复制-粘贴”一样。
❑ 在某些问题中,状态的知识对智能体而言是完全可获取的。而在许多其他问题,尤其是更现实的问题中,智能体无法完全地观测状态,而只能观测到状态的一部分(或状态的某一部分的派生)。在这种情况下,智能体使用其观测(observation)来采取行动。针对这种情况,我们说问题是部分可观测的(partially observable)。除非另有说明,否则我们假设智能体能够充分观测环境所处的状态,并根据该状态采取行动。
信息
状态这个术语及其符号S在抽象的讨论中更常用,尤其是在假设环境完全可观测时,尽管观测是一个更通用的术语。智能体接收到的始终是观测,有时只是状态本身,有时则是状态的某一部分或状态的派生,具体取决于环境。如果你看到它们在某些情况下可以互换使用,请不要感到困惑。
到目前为止,我们还没有真正定义一个行动是好还是坏。在强化学习中,每次智能体采取行动时,它都会从环境中获得奖励(reward)(尽管有时为零)。奖励通常可以表示很多东西,但在强化学习术语中,它的含义非常具体:它是一个标量。数越大,奖励也越高。在强化学习问题的迭代中,智能体观测环境所处的(全部或部分)状态,并根据其观测采取行动。结果,智能体收到奖励,环境转变到新状态。关于该过程的描述如图1-2所示,你可能很熟悉。
图1-2 强化学习流程图
请记住,在强化学习中,智能体对长期有益的操作感兴趣。这意味着智能体必须考虑其行动的长期后果。一些行动可能会导致智能体立即获得高回报,但随后会获得非常低的回报。相反也可能成立。因此,智能体的目标是最大化其获得的累积奖励。自然的后续问题是在什么时间范围内?这个问题的答案取决于我们感兴趣的问题是定义在有限范围内还是无限范围内:
❑ 如果是有限范围,则将问题描述为一个回合任务(episodic task),其中回合(episode)定义为从初始状态到终态(terminal state)的交互序列。在回合任务中,智能体的目标是最大化在一个回合中收集的期望总累积奖励。
❑ 如果问题是在无限范围内定义的,则称为持续任务(continuing task)。在这种情况下,智能体将尝试最大化平均奖励,因为总奖励将上升到无穷大。
❑ 那么,一个智能体要如何实现这一目标呢?该智能体根据对环境的观测确定要采取的最优行动。换句话说,强化学习问题就是关于找出一个策略(policy)将给定的观测映射到一个(或多个)行动,继而最大化期望累积奖励。
所有这些概念都有具体的数学定义,我们将在后面的章节中详细介绍。但是现在,让我们试着在一个具体的例子中理解这些概念对应的内容。
1.4.2 将井字棋游戏建模为强化学习问题
井字棋是一个简单的游戏,其中两个玩家轮流在一个3×3网格中标记空白区域。我们现在将其转换为强化学习问题,以将之前提供的定义映射到游戏中的概念。玩家的目标是将他的三个标记放在垂直、水平或对角的一条线的空白处,成为获胜者。如果在用完网格上的空白区域之前没有玩家能够做到这一点,则游戏以平局结束。井字棋游戏的中局棋盘可能如图1-3所示。
图1-3 井字棋游戏中的棋盘配置示例
现在,假设我们有一个强化学习智能体与人类玩家对战:
❑ 当轮到智能体放置标记时,智能体采取的行动是放置标记(比如,画一个叉)在棋盘的一个空白处。
❑ 这里,棋盘是整个环境,棋盘上标记的位置就是状态,对智能体来说,这是完全可观测的。
❑ 在3×3井字棋游戏中,有765个状态(唯一的棋盘位置,不包括旋转和反射),并且智能体的目标是学习一个策略,该策略将为这些状态中的每一个状态建议一个行动,以便最大化获胜的机会。
❑ 游戏可以定义为一个回合式强化学习任务。为什么?因为游戏最多持续9回合,环境便会达到终态。终态是三个X或O连成一条线,或者没有一个标记连成一条线并且棋盘上没有剩余空间(即平局)。
❑ 请注意,当玩家在游戏过程中“落子”时,不会得到任何奖励,除非最后玩家获胜。因此,如果智能体获胜,则获得奖励为1;如果智能体失败,则获得奖励为-1;如果游戏是平局,则获得奖励0。在结束前的所有迭代中,智能体获得奖励均为0。
❑ 我们可以通过用另一个强化学习智能体替换人类玩家来与第一个智能体竞争,从而将其变成一个多智能体强化学习问题。
希望这部分的介绍能让你对智能体、状态、行动、观测、策略和奖励的含义有所了解。这只是一个简单示例,请放心,以后它会变得更加高阶。有了上面的基础知识背景,接下来需要做的是设置我们的计算机环境,以便能够运行将在接下来的章节中介绍的强化学习算法。