基于模型的强化学习¶
基于模型的 RL 学习环境的动力学模型,并利用它进行规划、生成合成数据,或两者兼用。借助学习到的模型,这类方法的样本效率可以比无模型方法高出 10-100 倍。
为什么需要模型?¶
| 方面 | 无模型方法 | 基于模型的方法 |
|---|---|---|
| 样本效率 | 低(10⁶+ 步) | 高(10³-10⁵ 步) |
| 渐近性能 | 通常更好 | 受模型精度限制 |
| 每步计算量 | 低 | 较高(需要规划) |
| 泛化能力 | 有限 | 可通过模型泛化 |
核心权衡:基于模型的方法样本效率更高,但引入了模型偏差 (Model Bias)——学习模型中的误差在规划过程中会不断累积。
Dyna 架构¶
Dyna (Sutton, 1991) 是基于模型 RL 的奠基性框架。核心思想:用学习模型生成的模拟经验来补充真实经验。
graph LR
E[真实环境] -->|真实经验| A[智能体/策略]
A -->|动作| E
E -->|转移数据| M[学习模型]
M -->|模拟经验| A
Dyna 循环:
- 在真实环境中行动,收集 \((s, a, r, s')\)
- 用真实数据更新模型 \(\hat{P}(s'|s,a)\)、\(\hat{R}(s,a)\)
- 用模型生成模拟转移
- 同时使用真实和模拟数据更新策略/值函数
Dyna-Q¶
最简单的 Dyna 变体,对真实和模拟转移都应用 Q-learning:
伪代码:Dyna-Q
初始化 Q(s,a)、Model(s,a)
for each step do
s ← 当前状态
a ← 从 Q(s,·) ε-贪心选择
执行 a,观测 r, s'
Q(s,a) ← Q(s,a) + α[r + γ max_a' Q(s',a') - Q(s,a)]
Model(s,a) ← (r, s') // 更新模型
for k = 1, ..., K do // K 步规划
s̃, ã ← 随机选取之前访问过的 (s,a)
r̃, s̃' ← Model(s̃, ã) // 模拟
Q(s̃,ã) ← Q(s̃,ã) + α[r̃ + γ max_a' Q(s̃',a') - Q(s̃,ã)]
end for
end for
MBPO(基于模型的策略优化)¶
MBPO (Janner et al., 2019) 为"何时以及如何使用学习模型进行策略优化"提供了理论依据。
核心洞察¶
MBPO 证明了:只要将模型生成的轨迹保持足够短(以限制模型误差的累积),就能在学习模型下实现策略的单调改进:
其中 \(k\) 是展开步数,\(\epsilon_m\) 是模型误差,\(\epsilon_\pi\) 是策略偏移量。
算法流程¶
- 在真实数据上训练一个动力学模型集成 \(\{f_{\theta_i}\}_{i=1}^{N}\)
- 用模型从真实状态开始生成短轨迹(分支展开)
- 将合成数据加入模型回放缓冲区
- 同时使用真实和模型数据,用 SAC 训练策略
模型集成的优势:
- 捕捉认知不确定性——集成成员之间的分歧指示预测的不确定区域
- 减少对模型误差的过拟合
- 典型集成规模:5--7 个模型
自适应展开步长¶
MBPO 根据模型精度动态调整展开长度:
- 模型准确 → 更长展开(更多合成数据)
- 模型不准确 → 更短展开(贴近真实数据)
Dreamer(梦境控制)¶
Dreamer 系列 (Hafner et al., 2020, 2021, 2023) 学习一个世界模型,并完全在"想象"中训练策略——在学习模型的潜在空间中进行轨迹展开。
世界模型架构¶
Dreamer 使用循环状态空间模型 (RSSM):
- 表示模型 (Representation model):\(q(z_t | z_{t-1}, a_{t-1}, o_t)\) — 将观测编码为潜在状态
- 转移模型 (Transition model):\(p(z_t | z_{t-1}, a_{t-1})\) — 预测下一个潜在状态(不依赖观测)
- 观测模型 (Observation model):\(p(o_t | z_t)\) — 将潜在状态解码回观测
- 奖励模型 (Reward model):\(p(r_t | z_t)\) — 从潜在状态预测奖励
想象式训练¶
一旦世界模型学好:
- 想象——在潜在空间中展开转移模型,生成想象轨迹
- 预测——沿想象轨迹预测奖励和价值
- 反向传播——通过整条想象轨迹反向传播梯度来更新 Actor
这种方式非常高效,因为潜在空间中的展开比真实环境交互开销小得多。
Dreamer 版本演进¶
| 版本 | 关键改进 |
|---|---|
| Dreamer (v1) | RSSM + 想象式 Actor-Critic |
| DreamerV2 | 离散潜在表示(类别分布) |
| DreamerV3 | Symlog 预测,无需调参即可跨域泛化 |
DreamerV3 的突出之处在于:用同一组超参数在差异极大的领域上都取得了优秀表现:Atari、DMControl、Minecraft 等。
MuZero¶
MuZero (Schrittwieser et al., 2020) 将学习模型与蒙特卡洛树搜索 (MCTS) 相结合。与 Dreamer 不同,MuZero 学习的模型只预测规划所需的信息:奖励、价值和策略——而非观测。
三个学习函数¶
- 表示函数 (Representation):\(h(o_1, \ldots, o_t) \to s^0\) — 将观测映射为潜在状态
- 动力学函数 (Dynamics):\(g(s^k, a^{k+1}) \to s^{k+1}, r^{k+1}\) — 预测下一潜在状态和奖励
- 预测函数 (Prediction):\(f(s^k) \to p^k, v^k\) — 从潜在状态预测策略和价值
用 MCTS 进行规划¶
在每个真实时间步,MuZero 使用学习模型执行 MCTS:
- 从当前潜在状态 \(s^0 = h(o_t)\) 出发
- 用动力学函数 \(g\) 向前模拟,通过 PUCT(类似 AlphaZero)选择动作
- 以搜索得到的策略进行动作选择
MuZero 在 Atari、围棋、国际象棋和将棋上均达到了超人水平——全部使用同一个算法。
何时使用基于模型的方法¶
适合使用基于模型方法的场景:
- 样本效率至关重要(真实机器人、昂贵的仿真)
- 环境动力学可学习(平滑、近似确定性)
- 需要规划或前瞻能力
优先选择无模型方法的场景:
- 可以获得无限量的环境交互
- 动力学过于复杂难以准确建模
- 追求极致的渐近性能
与世界模型的关联¶
基于模型的 RL 与世界模型(第二部分)密切相关。两者的区别在于:
- 基于模型的 RL:模型是策略优化的工具
- 世界模型:模型是一种核心的认知能力(表示、预测、想象)
Dreamer 系列工作恰好处于两者的交汇处,而基础世界模型进一步模糊了这一界限。
关键参考文献¶
- Sutton, R.S. (1991). "Dyna, an Integrated Architecture for Learning, Planning, and Reacting." SIGART Bulletin.
- Janner, M., Fu, J., Zhang, M., Levine, S. (2019). "When to Trust Your Model: Model-Based Policy Optimization." NeurIPS.
- Hafner, D., Lillicrap, T., Ba, J., Norouzi, M. (2020). "Dream to Control: Learning Behaviors by Latent Imagination." ICLR.
- Hafner, D., Lillicrap, T., Norouzi, M., Ba, J. (2021). "Mastering Atari with Discrete World Models." ICLR.
- Hafner, D., et al. (2023). "Mastering Diverse Domains through World Models." arXiv:2301.04104.
- Schrittwieser, J., et al. (2020). "Mastering Atari, Go, Chess and Shogi by Planning with a Learned Model." Nature.