本文系统总结强化学习中 On-policy 与 Off-policy 的核心区别、典型算法、底层原理以及现代 RL 中的发展趋势。
1. 什么是 On-policy 与 Off-policy
强化学习中:
text
Policy(策略)
表示:
text
状态 → 动作
即:
text
π(a|s)
而:
text
On-policy vs Off-policy
最核心的问题是:
text
采样数据的策略
和
被优化的策略
是不是同一个
2. On-policy 的定义
On-policy:
text
用当前策略采样的数据
训练当前策略自己
即:
text
behavior policy == target policy
直观理解
类似:
text
边走边学
Agent:
- 用当前 policy 行动
- 收集 trajectory
- 用这些 trajectory 更新 policy
- 更新后重新采样
特点
| 特点 | 说明 |
|---|---|
| 数据必须最新 | 旧数据很快失效 |
| 通常更稳定 | 分布一致 |
| sample efficiency 较低 | 数据利用率低 |
| 不适合昂贵采样 | 真实机器人成本高 |
3. Off-policy 的定义
Off-policy:
text
可以使用其它策略采样的数据
训练目标策略
即:
text
behavior policy != target policy
直观理解
类似:
text
反复复盘历史经验
Agent:
- 可以学习旧数据
- 可以学习别人数据
- 可以离线训练
特点
| 特点 | 说明 |
|---|---|
| 可复用历史数据 | replay buffer |
| sample efficiency 高 | 数据利用率高 |
| 更复杂 | 容易不稳定 |
| 更适合高成本环境 | robotics / autonomous driving |
4. 最核心区别:Replay Buffer
这是理解两者最简单的方法。
4.1 On-policy
通常:
text
不能长期使用旧数据
原因:
text
旧数据来自旧 policy
会导致:
text
distribution mismatch
即:
text
数据分布不一致
4.2 Off-policy
核心能力:
text
Replay Buffer
即:
text
历史数据可以反复训练
例如:
text
(s,a,r,s')
可存储数百万条经验。
5. 为什么 On-policy 更稳定?
因为:
text
训练数据
和
当前 policy 分布一致
即:
text
No Distribution Shift
例如 PPO:
当前 policy:
text
πθ
采样:
text
trajectory ~ πθ
训练:
text
仍然优化 πθ
所以训练更稳定。
6. 为什么 Off-policy 更高效?
因为:
text
一份数据可以反复学习
例如:
- DQN
- SAC
一条 transition:
text
(s,a,r,s')
可能被训练:
text
上百次
所以:
text
sample efficiency 极高
7. 典型 On-policy 算法
7.1 REINFORCE
最早的 Policy Gradient。
特点:
- Monte Carlo
- 无 critic
- episode 结束后更新
更新:
text
∇θ log π(a|s) * G_t
缺点
- variance 大
- sample efficiency 低
7.2 A2C(Advantage Actor-Critic)
经典 Actor-Critic。
结构:
text
Actor + Critic
Actor
学习:
text
policy
Critic
学习:
text
V(s)
特点
- synchronous
- on-policy
- advantage based
7.3 A3C(Asynchronous Advantage Actor-Critic)
A2C 异步版。
特点:
- 多线程采样
- CPU 时代经典算法
曾是 DeepMind 代表工作。
7.4 TRPO(Trust Region Policy Optimization)
核心:
text
限制 policy update 不要变化太大
使用:
text
KL divergence constraint
优点
- 理论稳定
缺点
- 二阶优化复杂
- 工程实现困难
7.5 PPO(Proximal Policy Optimization)
当前最经典 On-policy RL 算法。
本质:
text
TRPO 的简化版
核心思想
限制:
text
policy ratio
不要偏移太大。
PPO 的 clipped objective
text
clip(r_t(θ),1-ε,1+ε)
避免:
text
policy collapse
PPO 优点
| 优点 | 说明 |
|---|---|
| 简单 | 易实现 |
| 稳定 | 不易崩 |
| 强大 | 泛化好 |
PPO 应用
广泛用于:
- RLHF
- Robotics
- 游戏AI
- 自动驾驶
8. 典型 Off-policy 算法
8.1 Q-Learning
经典 Off-policy TD Learning。
更新:
text
Q(s,a) ← r + γ max Q(s',a')
为什么是 Off-policy?
因为:
behavior policy:
text
ε-greedy
target policy:
text
greedy max Q
不是同一个。
8.2 DQN(Deep Q-Network)
本质:
text
Q-learning + Deep Neural Network
两大核心创新
Replay Buffer
作用:
text
打破数据相关性
Target Network
作用:
text
稳定训练
8.3 Double DQN
解决:
text
Q overestimation
问题。
8.4 Dueling DQN
拆分:
text
V(s)
和
A(s,a)
分别建模。
8.5 DDPG(Deep Deterministic Policy Gradient)
连续动作经典算法。
特点:
- deterministic policy
- actor-critic
- replay buffer
可以理解为:
text
连续动作版 DQN
8.6 TD3(Twin Delayed DDPG)
DDPG 改进版。
解决:
- Q overestimation
- unstable training
核心技巧
| 技术 | 作用 |
|---|---|
| twin critics | 降低 overestimate |
| delayed update | 稳定训练 |
| target smoothing | 降低误差 |
8.7 SAC(Soft Actor-Critic)
当前最主流 Off-policy 算法之一。
核心目标:
text
reward + entropy maximization
SAC 特点
| 特点 | 说明 |
|---|---|
| exploration 强 | entropy regularization |
| 稳定 | actor-critic |
| sample efficient | replay buffer |
SAC 广泛应用于
- robotics
- manipulation
- locomotion
8.8 CQL(Conservative Q-Learning)
Offline RL 经典算法。
核心:
text
保守估计 Q value
避免:
text
OOD action overestimation
9. Actor-Critic 不等于 On-policy
很多人误解:
text
Actor-Critic = On-policy
实际上:
Actor-Critic 只是:
text
policy + value
结构。
On-policy Actor-Critic
- A2C
- PPO
Off-policy Actor-Critic
- DDPG
- TD3
- SAC
10. PPO 为什么是 On-policy?
虽然 PPO:
text
会重复使用 trajectory 多个 epoch
但:
text
这些 trajectory 必须来自当前 policy
不能长期 replay。
所以:
text
PPO 仍然是 On-policy
11. DQN 为什么是 Off-policy?
因为:
行为策略:
text
ε-greedy
学习目标:
text
max_a Q(s,a)
并不是同一个策略。
因此:
text
DQN 是 Off-policy
12. 从数据利用率理解
On-policy
类似:
text
现学现卖
采一次学一次。
Off-policy
类似:
text
刷题复盘
历史经验反复利用。
13. 为什么现代 RL 越来越偏向 Off-policy?
因为:
text
真实世界采样成本太贵
尤其:
- 机器人
- 自动驾驶
- 大模型 RL
例如机器人
真实机器人采样:
text
1小时 = 数百美元
不能像 Atari 那样无限采样。
因此:
text
sample efficiency 极其重要
14. 为什么 RLHF 仍大量使用 PPO?
因为:
text
稳定性 > sample efficiency
大模型训练中:
- 数据不是最大问题
- 稳定训练最重要
因此 PPO 成为:
text
RLHF 默认方案
15. 现代趋势:On-policy 与 Off-policy 融合
当前很多研究:
text
希望同时获得:
稳定性 + 高 sample efficiency
典型方向
- Offline RL
- Importance Sampling
- Hybrid RL
- Model-based RL
16. 最常见算法分类总表
| 算法 | On/Off Policy | 类型 | 动作空间 |
|---|---|---|---|
| SARSA | On | Value-based | 离散 |
| Q-Learning | Off | Value-based | 离散 |
| DQN | Off | Value-based | 离散 |
| REINFORCE | On | Policy Gradient | 任意 |
| A2C | On | Actor-Critic | 任意 |
| PPO | On | Actor-Critic | 连续常见 |
| DDPG | Off | Actor-Critic | 连续 |
| TD3 | Off | Actor-Critic | 连续 |
| SAC | Off | Actor-Critic | 连续 |
| CQL | Off | Offline RL | 连续 |
17. 一句话总结
On-policy
text
现采现学
稳定但数据利用率低。
Off-policy
text
历史经验反复学习
数据效率高但更复杂。
18. 最终总结
强化学习中:
text
On-policy 与 Off-policy
本质区别是:
text
采样策略
和
优化策略
是否一致
On-policy
强调:
text
稳定
典型:
- PPO
- A2C
Off-policy
强调:
text
数据效率
典型:
- DQN
- SAC
现代强化学习的发展方向:
正在不断尝试融合:
text
On-policy 的稳定性
+
Off-policy 的高效率
References
-
Sutton & Barto --- Reinforcement Learning: An Introduction
-
OpenAI Spinning Up
-
Lilian Weng RL Overview
-
PPO Paper
-
SAC Paper