033|MBPO:什么时候该相信模型生成的经验
原论文:When to Trust Your Model: Model-Based Policy Optimization,Michael Janner 等,首次公开于2019;本文核对 arXiv v3。论文。
先接住前作的问题
PETS每次执行都在模型中搜索动作,部署计算较重且预测误差会沿轨迹累积。MBPO将模型改作训练数据源,从真实状态短程分支,再交给SAC学习;它改变模型用途与计算分配,未照搬PETS的在线规划器。
五个前置概念
五个前置概念:
- Dyna:把学习模型生成的经验加入价值或策略训练。
- 自举:用下一状态的已有价值估计更新当前价值。
- 模型偏差:学习转移规律与环境真实规律的系统差异。
- 分布偏移:策略变化使模型遇到不同于训练数据的输入。
- 集成模型:训练多个预测器,用差异近似表达不确定性。
进阶追问与参考答案(3题)
进阶问题1:分支长度是否应依状态决定?
参考答案:原则上可以,但必须以可校准的误差或风险信号决定长度,不能只让模型自评高置信度。接触切换附近宜短、模型覆盖充分的平滑区域可尝试更长。固定真实数据和总合成转移数,对比固定长度与按留出预测误差校准的自适应长度,再看真实环境回报;否则更长分支带来的计算量变化会混淆判断。
进阶问题2:模型分歧能否作为可靠的停止信号?
参考答案:它只能是候选信号:同一数据与模型偏置可能让所有成员一起预测错,低分歧并不推出低误差。先在独立真实转移上画分歧与多步预测误差的校准关系,并按状态区域分层检查。阈值应在留出数据确定,再用闭环回报验证;若低分歧区仍集中出现系统误差,需要额外的覆盖或残差指标。
进阶问题3:合成经验老化后多久该丢弃?
参考答案:没有只按日历或更新次数就普遍正确的期限。关键是旧模型、当前模型和实际转移在这些样本上的偏差,以及当前策略是否仍访问它们。可为样本记录模型版本,在固定回放大小下比较每轮刷新、滑动窗口和按误差淘汰;同时记录生成成本和真实回报。模型更新较剧烈时应更快刷新,变化小时保留可能更经济。
这些回答给出机制分析与待检验设计,不是已经运行的新实验结果。
一、问题设定:怎样利用模型经验而不依赖长程预测
有了环境模型,就能在电脑中制造大量训练经验。但是,模型越往未来预测,错误越容易累积;策略还可能专门找到模型“以为有高回报”、现实却没有的动作。于是模型强化学习经常早期学习快,后期表现反而落后。
这是在线、基于模型的强化学习。真实环境在算法含义上是提供可信转移的环境;论文实验主要使用 MuJoCo,因此“真实环境数据”不能误读为真实机器人硬件记录。
状态是基准提供的连续观察,动作是连续控制量,奖励和终止遵循任务设定。算法学习转移与奖励,而不是预先调用任务奖励函数给任意想象状态打分。它并非像素世界模型,也不是机械臂视觉操作演示。
与 PETS 相比,MBPO 不在执行每个动作时反复搜索长动作序列,而是用模型训练一个策略。与 SAC 相比,它给原本只从环境经验学习的 actor–critic 增加了合成经验来源。与早期 Dyna 的联系则是:模型的用途可以是补充局部转移,而非建立一整套无误差的虚拟世界。
这里有两个经常被混为一谈的长度:任务可能持续很多步,模型分支却只持续 步。缩短后者不等于把任务本身截短。这个区分是整篇论文的思想中心。
二、从真实状态生成短分支并交给SAC
MBPO 的回答很克制:从真实经验中的状态出发,只让模型向前走很短一段,把这些局部想象作为额外训练数据。长远后果仍由价值函数通过反复更新传播,不要求模型完整模拟整段任务。
1. 学习概率模型集成
模型接收状态与动作,预测下一状态及奖励的分布。用 个概率网络表示:
每个网络的输出方差表达结果本身的不确定性,不同网络间的差异提供参数不确定性的近似。它们不是完全准确的贝叶斯后验;把集成称作“知道自己不知道什么”需要保留这一限制。
训练目标是环境记录的负对数似然。只有可信环境经验参与更新动力学模型,避免模型长期把自己生成的错误反过来当成事实。策略训练则可以大量利用合成转移,这两种数据流承担不同责任。
2. 从经验池中的状态分叉
设环境池为 。先采样 ,然后重复:
达到 步便停止,另取一个环境状态重新开始。集成成员可以在不同转移时重新采样,因此这里不能直接照搬 PETS 中“一条粒子始终固定一个模型”的设定。
为什么从经验池出发?它相当于不断把想象拉回已经到过的区域。相比从最初站立姿态一直想象到任务结束,出错后的状态较少有机会继续成为下一次错误的输入。
但真实状态只保证起点可信,不保证当前策略提出的动作在数据中出现过。所以短分支缓解的是错误累积与分布偏移,不能完全消除分布外预测。
3. 用 SAC 消化合成转移
以下用常见 SAC 记法解释更新,而不是声称原文所有实现细节均由此式穷尽:
学习长远软价值; 表示环境真正终止; 控制熵奖励。策略倾向选择价值高又保有一定随机性的动作。
一步模型rollout仍能学习长程行为。教学链为 ,只在 得奖;先更新 ,再通过自举更新 ,不必一次想象完整链。短rollout限制的是模型递推长度,并没有把价值函数时域截短。
模型分支到达长度上限,不应自动当作任务终止。它只是停止合成数据,任务的未来仍要通过价值自举保留。否则算法会无意中优化短视目标。
4. 理论告诉了我们什么
原文先用模型误差与策略变化构造真实回报下界。可把核心权衡抽象为:
表示模型误差, 表示策略相对数据收集策略的变化; 越长,模型误差累积的部分通常越大,但减少对旧策略状态分布依赖的部分可能变小。
这只是结构解释,不是替代原文定理的精确系数。尤其要看到作者自己指出:过于保守的误差界会建议干脆不用模型。后来引入经验性的模型泛化估计,才得到使用短分支的合理动机。因此不能把实际深度网络训练描述成“每一步都经过可计算定理证明必然提高”。
工程中应核实真实与合成数据的混合比例和缓存保留方式;它们会影响旧模型偏差残留多久。上面展示论文的核心数据流,不把某一代码版本的缓存细节冒充算法定义。
更新比还决定计算成本:原文用模型数据支持每个环境样本更多策略梯度步,应同时记录真实转移、模型转移、模型拟合与策略更新时间。原文算法2与实验说明
帮助建立理解
自构例子,未运行:环境池里记录了机械臂靠近抽屉、刚接触把手和已拉开一半的状态。模型无需从桌边一路预测到抽屉完全打开;它可以分别从这些可信状态预测附近的一小步。价值函数把“拉开一半很有希望”的信息传给刚接触把手的动作。
如果把手接触动力学恰好建模错误,一步想象仍可能不可信。因此合理的扩展实验是固定环境数据,分别按接触与非接触状态统计模型误差,再比较不同分支长度。预期结果不能先写成已经观察到的规律。
三、从真实状态短程分支并混合两类回放
作者解读把问题拆成旧策略分布误差与模型误差。一个确定性局部教学模型能说明后者为何随长度增长:若闭环一步映射的敏感度至多为、每步新增预测误差至多为,从同一个真实状态出发有、,于是。时为,时放大更快;缩短分支限制递推次数,却不能消掉第一步的。这不是原文回报下界的系数或深度网络的保证,而是解释短分支设计的局部算例。
初始化策略、价值网络、模型集成
维护环境经验池 D_env 和合成经验池 D_model
重复:
在环境中执行当前策略,把转移加入 D_env
定期仅用 D_env 拟合概率动力学与奖励模型
选择当前模型分支长度 k
多次:
从 D_env 抽一个真实经历的状态 s
最多执行 k 次:
从当前策略采样动作 a
抽一个模型成员,预测 s_next 与奖励
把合成转移加入 D_model
遇到任务终止则停止,否则令 s = s_next
用合成转移进行多次 SAC 价值与策略更新
用环境运行评估策略,继续收集新数据
四、核对展开长度、真实样本与更新预算
原图怎么读: 图4,原论文图注与图像。同一动作序列分别在环境与模型里展开,阴影显示模型预测逐渐发散。这里的“real environment”指被建模的基准环境,不是宣称做了真实机器人实验。

| 项目 | 原文设置与读法 |
|---|---|
| 环境 | MuJoCo 连续控制;采用标准长任务版本 |
| 对照 | SAC、PPO、PETS、STEVE、SLBO |
| 主要指标 | 环境交互步数对应的任务回报 |
| 重复与不确定性 | 图2为五次试验均值与标准差 |
| 额外计算 | 每份环境经验可支持更多模型采样与梯度更新 |
| 关键消融 | 无模型但增加更新次数;改变分支长度;价值扩展 |
| 模型利用检查 | 比较同一策略在环境与学习模型中的回报 |

这里的公平性应分两层看:同等环境交互量比较回答“昂贵数据能否省下来”;同等墙钟与算力比较回答“最后多久能得到策略”。MBPO 强调前一个问题,并不能仅凭横轴读出后一个答案。
多个方法使用相同基准,也不等于共享相同优化器、模型容量和调参预算。特别是 PETS 执行时要规划,而 MBPO 把模型计算用于训练,成本分布不同,机器人部署者应分别计量。
结果:证据到底有多强
以下定位对应原文第4—6节与附录。
- 图1,模型泛化实验:策略偏离数据收集分布时,观察模型误差变化,支持更丰富数据可能改善附近分布泛化;不能保证任意远的新状态都可靠。
- 图2,方法比较:Ant 中 MBPO 在约三十万步达到 SAC 约三百万步的回报水平,交互量比为 。这不是计算速度快十倍,也不是每个任务均有同样收益。
- 图3,无模型与长度消融:单纯增加 SAC 更新次数未复现全部收益,短分支很有竞争力;说明数据来源有贡献,而非只因多做优化。
- 图4,预测轨迹与回报比较:长预测出现累积不确定性,同时所测策略的模型与环境回报具有相关性;支持该实验没有明显利用模型漏洞,不能证明所有未来策略都不会利用漏洞。
- 定理4.1—4.3:给出带假设的误差—回报关系;它们为算法设计提供解释,不是实际训练曲线的逐点证书。


特别要注意图3的含义:某个模型能够生成看起来尚可的长轨迹,并不代表用它生成长轨迹训练策略最好。模型可预测性、合成样本质量和优化效果之间还有分布与自举的作用。
五、局部想象仍可能被策略利用
代价包括模型拟合、合成数据存储和大量梯度更新。模型还要估计奖励,若奖励预测与真实成功条件错位,策略可能被局部高估引导。短分支对此有帮助,但没有自动修正奖励定义。
本文分析还有一个边界:机器人早期数据若只包含站立,短分支很难凭空提供完整复杂接触技能。经验池的覆盖范围决定分叉从哪里发生,仍需要有效探索。MBPO 的成功不意味着探索和稀疏奖励已经解决。
六、沿机制关系继续读
MBPO把SAC作为策略学习模块;与PETS构成平行模型用法,共享概率集成思路但改换用途:本篇合成短经验训练actor,PETS执行时用模型规划。后续WorldSample值得沿“哪些合成经验可信”继续读。
七、自测三题与参考答案
问题1:只生成一步模型转移,为什么还能学长任务?
答:模型长度控制的是合成误差链,价值函数的折扣回报仍覆盖长期。通过 Bellman 自举反复传播,后面的收益能影响前面的动作。把模型截断误当成环境终止才会真正削掉未来价值。
问题2:模型数据很多,是否就等价于获得了很多真实数据?
答:不等价。合成数据共享训练模型的系统误差,相互并不独立。数量增加可以改善某些优化问题,也可能反复放大同一偏差。MBPO 通过真实起点和短分支控制偏差,而不是宣称能无限制造独立证据。
问题3:论文有单调改进定理,为什么还需要实验检查模型利用?
答:定理依赖误差界、策略差异和理想优化等条件,实践中很难精确满足。深度网络版本采用有限更新和经验长度安排,因此理论提供设计依据,模型与环境回报的比较仍承担实际核验职责。