← 上级:RL-03.算法分类与选型 · 前置:RL-03-02-算法-Q-Learning · 前置:RL-03-01-算法-动态规划 · 后续:RL-03-14-算法-Model-Based简介
Dyna-Q(Sutton, 1990)将 Model-Free 学习(Q-Learning)与 Model-Based 规划(用学到的模型做模拟更新)合在同一架构中:每步真实交互后,用虚构经验额外训练 Q 表,提高样本效率——是理解 Model-Based RL 的表格入门。
段末注释:Dyna 架构(Dyna Architecture)指真实经验更新模型与 Q 函数、再用模型生成模拟经验继续 Q 更新的循环;Dyna-Q 为其 Q-Learning 实例;后文沿用 Dyna-Q。
一、动机:真实交互太贵
纯 Q-Learning 每步只用 1 条真实 $(s,a,r,s’)$ 更新 Q。若环境模型可学,为何不用模型想象更多转移来加速学习?
| 纯 Model-Free | Dyna-Q |
|---|---|
| 1 真实步 → 1 次 Q 更新 | 1 真实步 → 1 次 Q 更新 + $n$ 次模拟 Q 更新 |
| 样本效率低 | 同量交互下 Q 收敛更快 |
二、Dyna-Q 三组件
1 | ┌─────────────┐ 真实 (s,a,r,s') ┌──────────────┐ |
- Q-Learning:与 RL-03-02 相同
- Model $M$:表格记录 $\hat{R}(s,a)$、$\hat{s}’ = f(s,a)$(确定性)或计数估计 $P(s’|s,a)$
- Planning:从已访问 $(s,a)$ 采样,用模型生成 $(s,a,\hat{r},\hat{s}’)$,对 Q 做更新
三、单步算法流程
Direct RL(真实步):
- 在 $s$ 选 $a$(如 $\varepsilon$-greedy),环境返回 $r, s’$
- Q-Learning 更新:$Q(s,a) \leftarrow Q + \alpha[r + \gamma \max_{a’} Q(s’,a’) - Q(s,a)]$
- 模型学习:$M(s,a) \leftarrow (r, s’)$
Planning(模拟 $n$ 步):
- 从历史访问过的 $(s,a)$ 中均匀随机选一对
- 从 $M$ 读出 $(\hat{r}, \hat{s}’)$
- 对 Q 做同样的 Q-Learning 更新
重复步骤 4–6 共 $n$ 次($n$ 为 planning steps,如 $n=50$)。
四、伪代码
1 | def dyna_q_step(s, a, r, s_next, Q, Model, visited_sa, n_plan=50, alpha=0.1, gamma=0.99): |
五、Dyna-Q+
环境非平稳时,旧模型可能误导规划。Dyna-Q+ 对长期未访问的 $(s,a)$ 在模拟奖励上加探索 bonus(与访问时间相关),鼓励重新检验可能已变化的转移。
六、与动态规划、Model-Based 的关系
| 方法 | 模型 | 规划方式 |
|---|---|---|
| 动态规划 | 已知 $P,R$ | 全状态 Bellman 迭代 |
| Dyna-Q | 在线学习表格模型 | 随机采样 $(s,a)$ 模拟 Q 更新 |
| MCTS | 可模拟环境 / 规则 | 树搜索 |
| Dreamer / MBPO | 神经网络动力学 | 隐空间 / ensemble rollout |
Dyna-Q 是 「学模型 + 用模型生成数据训 Q」 的最简原型;深度时代同一思想扩展为 World Models、MBPO 等,见 Model-Based 简介。
七、优缺点
| 优点 | 缺点 |
|---|---|
| 同量真实交互下收敛更快 | 模型误差会污染 Q(仿真过拟合) |
| 概念清晰,易与 Q-Learning 对照 | 表格模型仅适合小离散 MDP |
| 衔接 DP 与深度 Model-Based | 高维连续需神经网络模型 |
实践:教学与小迷宫首选 Dyna-Q;工程大规模问题用 PPO/SAC 或深度 Model-Based。
八、超参
| 参数 | 典型 | 说明 |
|---|---|---|
| $n$(planning steps) | 5 ~ 200 | 每真实步的模拟更新次数 |
| $\alpha$ | 0.1 ~ 0.5 | Q 学习率 |
| $\varepsilon$ | 0.1 → 衰减 | 探索 |
| 模型 | 确定性查表 | 随机环境用计数 $P(s’ |
$n$ 过大:规划耗时增,且模型偏差放大;$n$ 过小:接近纯 Q-Learning。
九、小结
- Dyna-Q = Q-Learning + 表格模型 + 每步 $n$ 次模拟 Q 更新。
- 体现 Model-Free 与 Model-Based 的统一架构(Sutton Dyna 框架)。
- 上一篇:DDPG / TD3 / SAC · 下一篇:Model-Based 简介(MCTS、Dreamer、MuZero)