Reading

RL基础概念

基础概念

Grid-Word Example

image
  • 环境描述:网格世界是一个直观的二维环境,包含:
    • 白色格子:可通行区域。
    • 橙色格子:禁止进入的区域(禁区)。
    • 目标格子:代理需要到达的目标位置。
  • 任务目标
    • 找到一条“好的”策略,使代理从任意初始位置到达目标格子。
    • 策略应避免进入禁区、碰撞边界或走不必要的弯路。

什么是强化学习:依据策略执行动作-感知状态-得到奖励

所谓强化学习(Reinforcement Learning,简称RL),是指基于智能体在复杂、不确定的环境中最大化它能获得的奖励,从而达到自主决策的目的。

a computational approach to learning whereby an agent tries to maximize the total amount of reward it receives while interacting with a complex and uncertain environment

经典的强化学习模型可以总结为下图的形式(你可以理解为任何强化学习都包含这几个基本部分:智能体、行为、环境、状态、奖励):

image

一般的文章在介绍这些概念时很容易一带而过,这里我把每个概念都逐一解释下

  • Agent:一般译为智能体,就是我们要训练的模型,比如在Grid-World的小机器人就是Agent
  • 状态(State):状态描述了Agent 在环境中的位置。Grid-World示例:
    • 网格中共有9个状态,分别为 \(s_1, s_2, ..., s_9\)
    • 状态空间(State Space):\(S = \{s_1, s_2, ..., s_9\}\)
  • 动作(Action)
    • 定义:动作是Agent在某一状态下可执行的行为。
    • 网格世界示例:5种动作, 向上(a1)、向右(a2)、向下(a3)、向左(a4)、保持静止(a5)。
    • 动作空间(Action Space):\(A = \{a_1, a_2, a_3, a_4, a_5\}\)
    • 不同状态的动作空间可能不同。例如,在边界状态,某些动作(如越界)是无效的。
  • 环境(Environment):是提供reward的某个对象,它可以是Grid-world中的网格,也可以是自动驾驶中的人类驾驶员,甚至可以是某些游戏AI里的游戏规则
  • 奖励(reward):简记为\(r\),这个奖励可以类比为在明确目标的情况下,接近目标意味着做得好则奖励,远离目标意味着做的不好则惩,最终达到收益/奖励最大化,奖励是强化学习的核心
image

总的而言,Agent依据策略决策从而执行动作action,然后通过感知环境Environment从而获取环境的状态state,进而,最后得到奖励reward(以便下次再到相同状态时能采取更优的动作),然后再继续按此流程“依据策略执行动作-感知状态--得到奖励”循环进行。

状态转移

状态转移是Agent 执行某个动作后,从一个状态转移到另一个状态的过程。

状态转移可以是确定性的,也可以是随机性的。

网格世界示例

  • 确定性转移:代理在状态 \(s_1\) 执行动作 \(a_2\)(向右移动),则状态转移为:
    \(s_1 \xrightarrow{a_2} s_2\)
  • 随机性转移:如果环境中存在随机因素(如风力),代理可能偏离预期路径。例如:
    在状态 \(s_1\) 执行动作 \(a_2\) 时,有一定概率被吹到 \(s_5\) .

数学描述

状态转移通过条件概率表示:

\[p(s'|s, a)\]

表示Agent在状态 \(s\) 执行动作 \(a\) 后转移到状态 \(s'\) 的概率。

策略(Policy)

策略是代理在每个状态下选择动作的规则,描述为条件概率:

\[\pi(a|s)\]

表示代理在状态 \(s\) 下选择动作 \(a\) 的概率。

类型

  • 确定性策略

每个状态下只有一个确定的动作。例如:在状态 \(s_1\),策略为:

\[\pi(a_2|s_1) = 1, \quad \pi(a_i|s_1) = 0 \; (i \neq 2)\]

表示代理在 \(s_1\) 总是选择动作 \(a_2\)

  • 随机性策略

每个状态下可能选择多个动作,并为每个动作分配概率。例如: 在状态 \(s_1\),策略为:

\[\pi(a_2|s_1) = 0.5, \quad \pi(a_3|s_1) = 0.5\]

表示代理在 \(s_1\) 以相等概率选择 \(a_2\)\(a_3\)

image.png

表示方法:策略可以用表格表示,每个单元格表示在某状态下选择某动作的概率, 如下表所示

image

奖励(Reward)

奖励是Agent执行动作后从环境获得的反馈,用于引导代理的行为。并且奖励是状态和动作的函数:\(r(s, a)\)

网格世界示例中奖励设计如下:

  • 出界:\(r_{\text{boundary}} = -1\)
  • 进入禁区:\(r_{\text{forbidden}} = -1\)
  • 到达目标:\(r_{\text{target}} = +1\)
  • 其他情况:\(r_{\text{other}} = 0\)

奖励的重要性

  • 奖励不仅影响即时决策,还决定Agent的长期策略。
  • 奖励设计需谨慎,特别是复杂任务中,需要深刻理解问题。

同样, 奖励也可以表示成表格的形式:

image

轨迹、回报与折扣因子

轨迹(Trajectory)

轨迹是状态-动作-奖励的序列,例如:

\[s_1 \xrightarrow{a_2, r=0} s_2 \xrightarrow{a_3, r=0} s_5 \xrightarrow{a_3, r=0} s_8 \xrightarrow{a_2, r=+1} s_9\]

回报(Return)

回报是轨迹中所有奖励的总和,用于评估策略优劣:

\[G = \sum_{t=0}^{T} r_t\]

对于无限长的轨迹,引入折扣因子 \(\gamma \in (0, 1)\) 计算折扣回报:

\[G = \sum_{t=0}^{\infty} \gamma^t r_t\]

折扣因子的作用

\(\gamma\) 越接近0,Agent越关注近期奖励;\(\gamma\) 越接近1,代理越关注长期奖励。

在具体介绍折扣因子作用前,首先介绍一下Episode的概念:

当遵循策略与环境交互时,Agent可能会在某些终止状态状态停止。由此产生的轨迹称为 episode (或者叫 trial)。

通常假设 episode 是个有限的轨迹。包含episode的任务称为 epsodic task。但是,某些任务可能没有终止状态,这意味着与环境交互的过程永远不会结束。此类任务称为 continuing tasks

对于终止状态可以有两种处理方式:

  • 第一种方法:将终止状态视为特殊状态(吸收状态)

First, if we treat the terminal state as a special state, we can specifically design its action space or state transition so that the agent stays in this state forever.

如果将终止状态(例如目标状态)设计为一个特殊状态,可以通过限制它的动作空间或状态转移规则,让代理一旦到达该状态就无法离开。

设计方式

限制动作空间:例如,目标状态\(s_9\) 的动作空间仅允许保持静止(\(A(s_9) = \{a_5\}\)),代理只能停留在该状态。

状态转移规则:即使允许所有动作(\(A(s_9) = \{a_1, ..., a_5\}\)),所有动作都会导致代理仍然停留在 \(s_9\)\(p(s_9|s_9, a_i) = 1\),其中 \(i = 1, ..., 5\))。

吸收状态(Absorbing State)

这种设计方式下,终止状态被称为吸收状态,表示代理一旦进入该状态就无法离开。

  • 第二种方法:将终止状态视为普通状态

Second, if we treat the terminal state as a normal state, we can simply set its action space to the same as the other states, and the agent may leave the state and come back again.

如果将终止状态设计为一个普通状态,其动作空间与其他状态一致,代理可以离开该状态并重新返回。

奖励机制的影响

每次代理到达目标状态(如 \(s_9\)),都会获得一个正奖励(\(r = 1\))。

这种设计会引导代理学习到一种策略,使其尽可能频繁地返回目标状态以获取更多奖励。

第二种方法带来一个问题:如果代理在目标状态 \(s_9\) 停留时持续获得正奖励(例如 \(r = 1\)),且轨迹是无限长的,那么总回报(Return)会趋于无穷大,因为奖励会不断累积。

解决方法:为了避免这种发散问题,需要引入折扣因子(Discount Rate,\(\gamma\)。折扣因子满足 \(0 < \gamma < 1\),用来逐步减少远期奖励的权重,使得总回报收敛到一个有限值。折扣回报公式为:

\(\gamma\) 较小时,Agent更关注短期奖励;当 \(\gamma\) 接近1时,Agent更关注长期奖励。

马尔可夫决策过程(MDP)

MDP(Markov decision processes)是用于描述随机动态系统的通用框架,广泛应用于强化学习。它提供了一种形式化的方法来定义状态、动作、奖励和状态转移等核心概念。

MDP的关键组成部分

集合(Sets)

MDP由以下三个基本集合构成:

  1. 状态空间(State Space, \(S\)):所有可能状态的集合,表示为 \(S\)
  2. 动作空间(Action Space, \(A(s)\)):每个状态下可执行动作的集合,表示为 \(A(s)\),其中 \(s \in S\)
  3. 奖励集合(Reward Set, \(R(s, a)\)):每个状态-动作对(\(s, a\))对应的奖励集合,表示为 \(R(s, a)\)

模型(Model)

MDP通过以下两个概率分布描述状态转移和奖励生成的动态过程:

  1. 状态转移概率(State Transition Probability):在状态 \(s\) 执行动作 \(a\) 后转移到下一状态 \(s'\) 的概率,表示为 \(p(s'|s, a)\), 其中
\[ \sum_{s' \in S} p(s'|s, a) = 1 \quad \text{(所有可能转移状态的概率之和为1)}\]
  1. 奖励概率(Reward Probability):在状态 \(s\) 执行动作 \(a\) 后获得奖励 \(r\) 的概率,表示为 \(p(r|s, a)\)
\[\sum_{r \in R(s, a)} p(r|s, a) = 1 \quad \text{(所有可能奖励的概率之和为1)} \]

示例:在网格世界中,代理在 \(s_1\) 执行动作 \(a_1\),可能获得奖励 \(r = -1\),即 \(p(-1|s_1, a_1) = 1\)

策略(Policy)

  • 定义:策略定义了代理在每个状态下选择动作的概率分布,表示为 \(\pi(a|s)\)
  • 性质
\[\sum_{a \in A(s)} \pi(a|s) = 1 \quad \text{(所有可能动作的概率之和为1)} \]
  • 示例:在网格世界中,代理在 \(s_1\) 的策略可能是:

马尔可夫性质(Markov Property)

  • 定义:马尔可夫性质指的是随机过程的“无记忆性”,即下一状态或奖励仅依赖当前状态和动作,与过去的状态和动作无关。
  • 数学描述
\[p(s_{t+1}|s_t, a_t, s_{t-1}, a_{t-1}, ..., s_0, a_0) = p(s_{t+1}|s_t, a_t)\\ p(r_{t+1}|s_t, a_t, s_{t-1}, a_{t-1}, ..., s_0, a_0) = p(r_{t+1}|s_t, a_t)\]

其中,\(t\) 表示当前时间步,\(t+1\) 表示下一时间步。

  • 意义
    • 马尔可夫性质确保了状态转移和奖励生成过程的简化,使得我们可以基于当前状态和动作推导未来动态。
    • 它是推导MDP中贝尔曼方程的基础

MDP与MP的关系

什么是马尔可夫过程(Markov Process, MP)?

  • 定义:马尔可夫过程是一个满足马尔可夫性质的随机过程。它描述了一个系统从一个状态转移到另一个状态的过程,其每一步的转移仅依赖于当前状态,而与过去的状态无关。
  • 特性
    • 没有动作(Action)的概念。
    • 仅包含状态转移概率 \(p(s'|s)\)
    • 常用于建模纯粹的状态变化过程。
  • 离散时间马尔可夫链(Markov Chain):如果马尔可夫过程是离散时间的,且状态空间是有限或可数的,则称为马尔可夫链。在强化学习中,马尔可夫链是一个重要的基础模型。

MDP与MP的区别

  • 区别
    MDP是在马尔可夫过程的基础上,增加了动作(Action)和奖励(Reward)的概念,用于描述代理与环境的交互过程。
    一旦在MDP中固定了策略(Policy),MDP就退化为一个马尔可夫过程(Markov Process, MP)。
  • 示例
    在网格世界中,如果我们为代理固定一个策略(如总是向右移动),那么整个系统的状态转移过程就不再依赖于动作,而仅依赖于当前状态,形成一个马尔可夫过程。

强化学习的本质

强化学习是代理通过与环境交互学习最优策略的过程:

  1. 感知状态:代理通过传感器感知当前状态。
  2. 选择动作:根据策略选择动作。
  3. 执行动作:动作改变状态,并获得奖励。
  4. 更新策略:根据奖励优化策略,形成闭环。

RL与监督学习的区别

强化学习与监督学习的区别在于:

  • 监督学习有标签告诉算法什么样的输入对应着什么样的输出(譬如分类、回归等问题)所以对于监督学习,目标是找到一个最优的模型函数,使其在训练数据集上最小化一个给定的损失函数,相当于最小化预测误差最优模型 = arg minE { [损失函数(标签,模型(特征)] }
    RL没有标签告诉它在某种情况下应该做出什么样的行为,只有一个做出一系列行为后最终反馈回来的reward,然后判断当前选择的行为是好是坏相当于RL的目标是最大化智能体策略在和动态环境交互过程中的价值,而策略的价值可以等价转换成奖励函数的期望,即最大化累计下来的奖励期望最优策略 = arg maxE { [奖励函数(状态,动作)] }
  • 监督学习如果做了比较坏的选择则会立刻反馈给算法RL的结果反馈有延时,有时候可能需要走了很多步以后才知道之前某步的选择是好还是坏
  • 监督学习中输入是独立分布的,即各项数据之间没有关联RL面对的输入总是在变化,每当算法做出一个行为,它就影响了下一次决策的输入

Reference

Book-Mathematical-Foundation-of-Reinforcement-Learning/1 - Table of contents.pdf at main · MathFoundationRL/Book-Mathematical-Foundation-of-Reinforcement-Learning