返回 G01~G90 教材库
G24 · 总 Day 204教材已备 ≠ 学习已完成

G24:Dyna-Q 与学习模型上的 Planning

Dyna-Q 将真实环境中的 Q-learning 更新与学习模型生成的模拟更新交替进行,用计算换取样本效率,同时暴露模型错误会怎样通过 planning 被重复传播。

2027-03-17realexperience、learnedtransition、simulatedupdatemodel

内容类型:预习教材(不代表已完成)
日期:2027-03-17
阶段:P3 · AGI Foundations 90
总路线:Day 204 / 360
周次 / 节奏:W4 · 周三引导实验
状态:教材已备;学习未完成
主题:real experience、learned transition、simulated update 与 model bias

一句话定义

Dyna-Q 将真实环境中的 Q-learning 更新与学习模型生成的模拟更新交替进行,用计算换取样本效率,同时暴露模型错误会怎样通过 planning 被重复传播。

学习目标

  1. 能解释 model-free update、model learning 与 planning update 三条数据流。
  2. 能实现最小确定性 transition/reward table,并从已见状态—动作采样模拟经验。
  3. 能在相同真实环境步数下比较 Q-learning 与 Dyna-Q 的学习曲线。
  4. 能区分样本效率提升与总计算增加,不把 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') 执行:

  1. 用 Q-learning 更新 Q
  2. 更新模型 M
  3. 重复 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。

最小练习或观察步骤

  1. 复用 G23 Gridworld,定义 model[(s,a)] -> observed outcomes 的数据结构。
  2. 手推一个真实 update 加两个 planning updates,标出哪些信息来自真实环境。
  3. 设置 n_plan=0/5/20 三个配置,统一真实 step 预算;不要求全部运行。
  4. 加入 oracle model 对照,预先定义 model accuracy 或 transition error 字段。
  5. 故意将一个转移记错,沿 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 不是绕过真实控制的理由。

自检问题

  1. Dyna-Q 的三条更新数据流分别是什么?
  2. 为什么 sample efficiency 和 compute efficiency 可能方向相反?
  3. Oracle-model baseline 提供什么解释?
  4. 环境改变后旧 replay 怎样伤害策略?
  5. 一步模型误差如何传播到前序价值?

专业课程对齐

  • 参考 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 两种效率:
本页是未来 P3 的预习教材。等 P1、P2 完成并正式进入 P3 后,再填写真实理解、实验现象与不确定项;现在阅读不会改变P1 唯一进度账本