1. 引言

在本教程中,我们将探讨两种训练强化学习(Reinforcement Learning, RL)智能体的方法:On-policy(同策略)学习Off-policy(异策略)学习

我们会先回顾它们各自解决的问题,分析其优缺点,并通过具体算法如 SARSA 和 Q-learning 来说明两者的区别。

2. 强化学习基础

当我们面对一个复杂的环境时,强化学习是一个非常有效的工具。这个环境可以是游戏、导航路径,甚至是任何可以被建模为一系列状态 s \in S 的系统。

我们的目标是找到一个最优策略  \pi^* ,使得智能体在每个状态  s \in S 下都能选择最优动作  a 。当找到这样一个策略时,我们通常说“解决了”这个环境。

示例:虫子找苹果

考虑一个虫子在网格中寻找苹果的例子。虫子是智能体,网格中的每个格子代表一个状态。每个状态都有一个奖励值:

  • 普通格子奖励为 -1
  • 苹果所在格子奖励为 +5

Capture 1

这是一个最简化的 RL 问题。但在实际中,环境通常非常复杂,因此我们使用蒙特卡洛方法采样环境,逐步学习其规律。

我们让智能体根据策略  \pi 与环境交互,直到达到终止状态(时间步为 T),这一过程称为一个 episode(回合)。一个 episode 包含一系列状态、动作和奖励:

Capture23

我们通过收集多个 episode 来估计状态价值函数  v_\pi(s) 或状态-动作价值函数  q_\pi(s, a)

状态价值函数:表示从状态 s 出发,按策略 π 行动所能获得的期望累计奖励。 ✅ 状态-动作价值函数:表示在状态 s 下采取动作 a 后,按策略 π 行动能获得的期望累计奖励。

这两个函数用于评估和改进策略。一旦我们准确估计了它们,就可以构建出最优策略。

3. 探索 vs 利用

收集的 episode 越多,对函数的估计就越准确。但这里存在一个关键问题:如果策略改进算法总是贪心更新策略,那么它只会选择当前已知最优动作,忽略其他可能带来更高奖励的动作。

这就引出了强化学习中的经典问题:探索 vs 利用(Exploration vs. Exploitation)。

  • Exploitation(利用):选择当前已知最优动作
  • Exploration(探索):尝试未知动作,发现更高奖励

我们通常在这两者之间寻求平衡。完全探索会耗费大量时间;完全利用则容易陷入局部最优。

为了解决这个问题,有两种主流方法:On-policyOff-policy

4. On-policy 方法

On-policy 方法通过在策略中引入随机性来解决探索与利用的矛盾。也就是说,它以一定概率选择非最优动作。这类策略通常称为  \epsilon -greedy 策略。

具体来说,它以  \epsilon 的概率随机选择动作,以  1 - \epsilon 的概率选择当前最优动作。

Capture111

其中,非最优动作的概率为  \epsilon / |\mathcal{A}(s)| ,最优动作的总概率为:

$$ P(a_t^{*}) = 1 - \epsilon + \epsilon / |\mathcal{A}(s)| $$

优点:收敛速度快,因为最优动作被采样得更频繁
缺点:容易陷入局部最优,探索能力有限

4.1 SARSA

SARSA 是一种典型的 On-policy 算法,使用  \epsilon -greedy 策略。它的名字来源于其更新方式:

$$ Q^{new}(S_t, A_t) \leftarrow Q(S_t, A_t) + \alpha (R_{t+1} + \gamma Q(S_{t+1}, A_{t+1}) - Q(S_t, A_t)) $$

其中:

  •  Q^{new}(S_t, A_t) :新的 Q 值
  •  S_t, A_t :当前状态与动作
  •  R_{t+1} :下一状态的奖励
  •  S_{t+1}, A_{t+1} :下一状态与动作
  •  \alpha :学习率
  •  \gamma :折扣因子

⚠️ 注意:SARSA 的更新依赖于当前策略选择的下一个动作  A_{t+1} ,因此它是 On-policy 的。

5. Off-policy 方法

Off-policy 方法提供了一种不同的探索与利用平衡机制。与 On-policy 不同,它使用两个策略

  • Behavior Policy(行为策略):用于探索和生成 episode
  • Target Policy(目标策略):用于估计和改进函数

行为策略  b 通常是  \epsilon -greedy,用于探索;目标策略  \pi 通常是贪心策略,用于学习。

优点:可以从其他策略的数据中学习,灵活性强
缺点:存在分布不匹配问题,需要使用重要性采样(Importance Sampling)来解决

5.1 Q-learning

Q-learning 是一种非常流行的 Off-policy 方法,也被称为 SARSA Max。它的更新公式如下:

$$ Q^{new}(S_t, A_t) \leftarrow (1 - \alpha) Q(S_t, A_t) + \alpha \left( R_{t+1} + \gamma \max_a Q(S_{t+1}, a) \right) $$

其中:

  •  A_t :由行为策略 b 选择
  •  \max_a Q(S_{t+1}, a) :由目标策略选择

⚠️ 关键区别:Q-learning 的更新总是选择下一个状态中 Q 值最大的动作,而不是根据当前策略选择。因此它是 Off-policy 的。

6. 总结

在本文中,我们回顾了强化学习的基本概念,并比较了两种主要策略:

类型 策略数量 是否使用当前策略生成数据 是否使用贪心更新 代表算法
On-policy 1 SARSA
Off-policy 2 Q-learning

On-policy 更适合需要策略本身探索的场景,收敛快但易陷入局部最优
Off-policy 更灵活,可以从其他策略的数据中学习,适合大规模或复杂环境

两种方法各有优劣,选择时应根据具体任务需求权衡。


原始标题:Off-policy vs. On-policy Reinforcement Learning