RL-03-13-算法-Dyna-Q

← 上级: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
2
3
4
5
6
7
8
9
┌─────────────┐     真实 (s,a,r,s')     ┌──────────────┐
│ Environment│ ──────────────────────→ │ Model M │
└─────────────┘ │ 存 (s,a)→r,s'│
↑ └──────┬───────┘
│ │ 采样虚构转移
│ 执行 a ↓
┌──────┴──────┐ ┌──────────────┐
│ Agent │ ←── Q 更新(真实+模拟)──│ Q-Learning │
└─────────────┘ └──────────────┘
  1. Q-Learning:与 RL-03-02 相同
  2. Model $M$:表格记录 $\hat{R}(s,a)$、$\hat{s}’ = f(s,a)$(确定性)或计数估计 $P(s’|s,a)$
  3. Planning:从已访问 $(s,a)$ 采样,用模型生成 $(s,a,\hat{r},\hat{s}’)$,对 Q 做更新

三、单步算法流程

Direct RL(真实步)

  1. 在 $s$ 选 $a$(如 $\varepsilon$-greedy),环境返回 $r, s’$
  2. Q-Learning 更新:$Q(s,a) \leftarrow Q + \alpha[r + \gamma \max_{a’} Q(s’,a’) - Q(s,a)]$
  3. 模型学习:$M(s,a) \leftarrow (r, s’)$

Planning(模拟 $n$ 步)

  1. 历史访问过的 $(s,a)$ 中均匀随机选一对
  2. 从 $M$ 读出 $(\hat{r}, \hat{s}’)$
  3. 对 Q 做同样的 Q-Learning 更新

重复步骤 4–6 共 $n$ 次($n$ 为 planning steps,如 $n=50$)。


四、伪代码

1
2
3
4
5
6
7
8
9
10
11
def dyna_q_step(s, a, r, s_next, Q, Model, visited_sa, n_plan=50, alpha=0.1, gamma=0.99):
# Direct RL
Q[s, a] += alpha * (r + gamma * Q[s_next].max() - Q[s, a])
Model[(s, a)] = (r, s_next)
visited_sa.add((s, a))

# Planning
for _ in range(n_plan):
s_p, a_p = random.choice(list(visited_sa))
r_p, sp_p = Model[(s_p, a_p)]
Q[s_p, a_p] += alpha * (r_p + gamma * Q[sp_p].max() - Q[s_p, a_p])

五、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)
-------------本文结束感谢您的阅读-------------