G24:Dyna-Q 与学习模型上的 Planning
Dyna-Q 将真实环境中的 Q-learning 更新与学习模型生成的模拟更新交替进行,用计算换取样本效率,同时暴露模型错误会怎样通过 planning 被重复传播。
内容类型:预习教材(不代表已完成)
日期:2027-03-17
阶段:P3 · AGI Foundations 90
总路线:Day 204 / 360
周次 / 节奏:W4 · 周三引导实验
状态:教材已备;学习未完成
主题:real experience、learned transition、simulated update 与 model bias
一句话定义
Dyna-Q 将真实环境中的 Q-learning 更新与学习模型生成的模拟更新交替进行,用计算换取样本效率,同时暴露模型错误会怎样通过 planning 被重复传播。
学习目标
- 能解释 model-free update、model learning 与 planning update 三条数据流。
- 能实现最小确定性 transition/reward table,并从已见状态—动作采样模拟经验。
- 能在相同真实环境步数下比较 Q-learning 与 Dyna-Q 的学习曲线。
- 能区分样本效率提升与总计算增加,不把 simulated step 当作真实新证据。
核心知识
Q-learning 每次真实交互只更新一次。Dyna-Q 还保存模型 M(s,a)=(r,s');每次真实 step 后,从模型已见过的 (s,a) 中采样若干对,生成模拟 transition,再执行同样的 Q update。环境样本数不增加,但每个样本被模型重用。
确定性模型可以记最后一次结果,随机环境则需估计转移分布与期望奖励。若只记最后一次,模型会忽略随机性。Planning step 数 n_plan 控制计算预算;较大值可能更快利用正确模型,也可能更快放大错误或过时模型。
Oracle-model baseline 直接使用真实环境转移,用来估计“若模型完美,planning 可提供什么”;learned-model 与 oracle 的差距体现 model estimation 与覆盖问题;model-free 提供无模型参照。三者必须使用同一奖励与真实交互预算。
机制与推导
每次真实 transition (s,a,r,s') 执行:
- 用 Q-learning 更新
Q; - 更新模型
M; - 重复
n_plan次:从历史(ŝ,â)采样,取(r̂,ŝ')~M,用相同 TD rule 更新。
若真实步数为 T,Q-learning 约有 T 次 update,Dyna-Q 有 T(1+n_plan) 次。比较 sample efficiency 时横轴用 real env steps;比较 compute efficiency 时还要报告 total updates 和 wall time。
模型误差可写为 ε_M(s,a)=distance(M(s,a),P,R)。一次错误 rollout 改变 target,planning 又将错误价值传播到前序状态。粗略地,多步误差可能随 horizon 累积;若 value backup 取 max,局部乐观误差还可能被选择偏差放大。
环境突然改变时,旧模型会继续重放已过时 transition。可通过 recent-data update、model uncertainty 或清空受影响项缓解,但每种方案都有遗忘和样本成本。G25 将专门观察 shift。
最小练习或观察步骤
- 复用 G23 Gridworld,定义
model[(s,a)] -> observed outcomes的数据结构。 - 手推一个真实 update 加两个 planning updates,标出哪些信息来自真实环境。
- 设置
n_plan=0/5/20三个配置,统一真实 step 预算;不要求全部运行。 - 加入 oracle model 对照,预先定义 model accuracy 或 transition error 字段。
- 故意将一个转移记错,沿 Bellman backup 推演哪些前序状态会被影响。
常见误区与边界
- 把 simulated transition 数计作新环境样本,夸大数据效率。
- Dyna-Q 多做了大量 update,却只按真实步数宣称全面更高效。
- 随机环境用单次结果覆盖模型,不报告不确定性。
- Learned-model 与 oracle-model 混为一类,隐藏 model bias。
- 环境改变后继续无限 replay 旧经验。
- 从小型确定性 Gridworld 推出 learned world model 在现实中必然有优势。
研究/系统场景连接
金融策略可以用历史模型模拟客户响应,但模拟器本身来自旧策略与有偏数据。Planning 在模拟器中找到的高回报路径,可能利用模型盲区而非真实规律。Oracle 不存在,因此必须保留真实数据锚点、模型不确定性与权限限制。toy Dyna-Q 的价值是清楚展示“计算重用经验”和“模型误差传播”两面。
Agent 可在工具 stub 上进行 plan rollout,减少真实调用;但 timeout、权限和外部状态会让 stub 与真实工具不一致。模拟成功只支持计划候选生成,执行前仍需重新验证。模型上的 planning 不是绕过真实控制的理由。
自检问题
- Dyna-Q 的三条更新数据流分别是什么?
- 为什么 sample efficiency 和 compute efficiency 可能方向相反?
- Oracle-model baseline 提供什么解释?
- 环境改变后旧 replay 怎样伤害策略?
- 一步模型误差如何传播到前序价值?
专业课程对齐
- 参考 Stanford CS234 的 model-based RL 与 planning 主题,连接 tabular update 和 learned model。
- 参考 Berkeley CS285 的 model-based reinforcement learning 讲次,理解模型学习、rollout 与 policy improvement 的循环。
- 阅读 MuZero,观察更复杂系统如何学习与规划相关的表示,同时保留与 tabular Dyna 的尺度边界。
深入学习提示
先实现确定性 table model,再讨论神经 world model。打印模拟 transition 的来源和年龄,能直观看见 replay 不是新证据。若继续探索,可加入 prioritized sweeping 或 uncertainty-aware planning,但不要覆盖最简单 baseline。下一步最有信息量的实验是改变环境,观察 model-free、learned model 与 oracle model 的响应差异。
学后填写区
- 我的模型数据结构:
- 真实与模拟 update 数:
- Oracle 对照定义:
- 一个模型错误传播路径:
- Sample/compute 两种效率: