第 39 天|MBPO:不要在错误模型里想象太久
原论文与版本:When to Trust Your Model: Model-Based Policy Optimization,2019。原论文。
先接住前作的问题
Dyna让模型经验与真实经验共用学习器,却留下模型误差反复传播的问题。PETS用集成和重规划管理这种误差,执行时仍需搜索。MBPO直接承接Dyna式训练数据生成,并组合概率模型与SAC,把关键决策放在真实状态起点、短展开和混合比例上。
五个前置概念
- 分支rollout:从真实样本状态开始想象。
- 模型偏差:预测规律偏离环境。
- 合成replay:保存模型生成转移。
- 数据混合比例:真实与合成样本的训练权重。
- 分布漂移:新策略访问不同区域。
一、问题设定:模型能预测很远,为什么训练策略只想象很短
模型连续展开会把自己的预测当作下一步输入,局部误差随之改变后续分布。MBPO不要求想象贯穿整项任务,而从真实回放状态分叉短轨迹,将更长收益交给价值自举。这样仍需决定模型经验占多少梯度,不能只把展开步数调小就宣布模型可信。
| 要素 | 本文设定 |
|---|---|
| 研究场景 | 在线模型驱动数据增强,通常搭配SAC |
| 状态/观测 | 真实状态与短期模拟状态 |
| 动作 | 随机连续策略动作 |
| 奖励或学习信号 | 环境/模型预测奖励 |
| 终止/边界 | 真实终止与模型rollout截断不同 |
二、从真实状态分叉短轨迹并交给离策略学习
长模型rollout既偏离真实状态分布,又把每一步预测误差传给下一步。MBPO从真实回放中的状态分叉,只做短想象,生成合成经验供off-policy策略学习。于是想象长度不再等于整项任务长度,长程收益可交给价值bootstrap处理。
与PETS不同,模型主要用于训练数据增强,执行时直接用Actor;与只提高每样本梯度次数不同,它生成新的预测转移。真实数据训练模型、模型数据训练策略的比例与更新频率,决定模型误差进入价值学习的强度。
原文理论有一个值得保留的转折:朴素最坏情形下界按字面最优可能是k=0,即完全不用模型。作者随后利用经验泛化分析讨论为何实际短rollout仍有益。不能把标题“When to Trust”解读为存在一个可精确判定模型绝对可信的通用阈值。
把混合池期望拆成真实与模型权重
教学目标 。模型训练最小化真实转移预测损失,策略训练使用soft Bellman目标。rollout长度k与真实环境交互预算是不同参数。
混合数据不是把两个集合无权相加: 来自环境, 来自模型;期望由实际采样比例决定。若真实样本概率为 ,上式可教学地展开为 。两类样本使用同一个SAC学习器,但模型样本中的后继状态(及采用模型预测的奖励)也含模型误差。短 限制每条分支连续积累多少误差, 则决定这些误差在梯度里占多大权重;二者不能互相替代。软目标中的下一动作来自策略,并带熵项,沿用原文Algorithm 1的SAC更新接口。
从真实状态分叉只重置了哪部分误差
每条短分支的起点来自真实数据,因此不会继承前一条想象末端的状态漂移;分支内每一步仍用模型。短分叉切断跨分支的连续累积,并不让这几步预测成为无误差真样本。
验算局部误差怎样在长展开中放大
以下是可手算的教学构造,不是论文实验。
一条真实状态s已有准确局部模型。用模型产生1步后继并bootstrap价值,只经过一次动力学误差;若连续想象100步,每次状态误差都可能改变后续输入,不能简单当成100个独立、均值为零的小噪声。
教学地假设每步误差满足,则。k=1为0.01,k=10约0.159,说明局部小误差可能被不稳定动力学放大。
三、分别维护真实池、模型池与采样比例
收集真实转移到D_real
定期用D_real训练概率模型集成
反复:
从D_real抽起始状态
用当前策略在模型里生成k步短轨迹
将合成转移写入D_model
按设定比例混合真实/合成数据
对SAC执行若干梯度更新
继续收集真实经验修正模型
输出:直接执行的策略
实现要点:模型误差、合成比例和模型训练成本仍需计量。
四、用无模型多更新对照检验收益来源
| 实验要素 | 原文设定与证据范围 |
|---|---|
| 环境与任务 | MuJoCo连续控制 |
| 数据来源与规模 | 真实在线经验+模型短rollout |
| 对比基线 | SAC、其他模型驱动方法 |
| 训练预算与资源 | 图2 Ant约300k真实步达到所比SAC约3M步表现 |
| 指标及其含义 | 回报与真实交互量;另计训练时间 |
| 随机性与不确定性 | 5次试验均值,阴影为标准差 |
| 实际验证的假设 | 短分支是否比长模型模拟更可靠 |
实验解读(本文分析):图3的no-model消融把SAC每真实步的更新次数调到类似范围,帮助区分模型数据与单纯多训练的作用。Hopper上rollout从1增到15最好,但固定1仍很强;200步可预测不代表最适合策略优化,500步已太不准。图4长轨迹是误差诊断,不是训练必须用450步想象。
区分训练消融与长轨迹误差诊断
原引用定位:原文。

图3三面板都在Hopper上,以真实环境步为横轴、平均回报为纵轴,蓝色MBPO和绿色SAC是共同参照。左面板改每环境步梯度次数 ,检验“只多训练”;中面板改模型展开长度 ,检验误差累积;右面板改价值展开长度 ,比较把模型放进价值目标的另一种用法。、、 的曲线标签属于不同干预,不能把三张图统一读成“模型越短越好”。
图1在固定模型训练分布下改变策略KL,说明模型误差依赖当前策略偏离,而不只依赖训练误差。图2比较回报对真实环境步的曲线,均值来自五次试验、阴影为标准差,不能读成墙钟加速。图3固定更新比检验“只多做梯度更新”与短rollout的解释;图4将同一动作序列的真实与模型轨迹及累计回报对照,展示长时误差累积和该例中未明显利用模型,并非所有未来策略的保证。 查看原文。

读图提示:六项任务均保留环境步横轴和算法图例。蓝色MBPO应与同任务、同预算的基线比较;虚线的渐近参照不能被当作同预算采样曲线。

读图提示:(a)真实运动、(b)同一动作序列的模型展开、(c)累积回报都在图中。姿态不确定性随展开积累,但回报趋势仍可能近似;两者不能相互替代。

读图提示:上排横轴为策略偏移、纵轴为模型误差,颜色是训练集规模;下排检查误差对偏移的敏感程度。更多数据降低误差与扩大可相信的策略范围,是相关但不同的判断。
五、短展开与低模型权重不能互相替代
图2等结果支持所测短展开的样本效率,仍需计入模型拟合成本与合成比例。多次合成更新会反复学习同一模型偏差,合成样本数量不能当作新增真实信息量。
六、继续追问:误差放大、比例与适用预算
1. 同样GPU时间下MBPO是否仍占优?
不能由环境步数曲线确定。MBPO增加模型训练、合成 rollout 和策略更新,真实交互昂贵时可能节省总时间,环境便宜时也可能更慢。应测同硬件端到端时间、模型/策略开销、并行程度以及达到同回报的成本,并保留同交互预算结果。论文样本效率结论不能直接改写成同GPU时间排名。
2. 模型长度与合成比例如何联合调节?
更长 rollout 累积模型误差,更高合成比例则放大模型数据对训练分布的支配;两者需一起调。可先保持短分支并随真实验证误差和覆盖改善逐渐加长,同时限制合成占比,比较固定真实预算下的二维消融。模型一步误差小不保证长时误差小,也不保证在Actor挑中的动作上准确。
3. 如何发现Actor正在利用模型漏洞?
观察模型预测回报提升但真实回报停滞或下降,尤其新策略访问区域的保留真实预测误差、约束违规和不确定性上升。用真实环境检验同一候选动作序列的短期后果,比较不同模型种子的策略表现,能更直接发现漏洞。训练集拟合误差下降不能排除此问题,因为策略主动改变了被查询的数据分布。
七、比较显式合成数据与潜在想象学习
平行模型策略路线:Dreamer。同样利用模型训练策略,Dreamer改在潜空间通过动态导数优化行为,模型误差进入梯度的方式随之变化。
控制用途对照:PETS。短训练分支与行动时MPC各有计算位置,比较样本收益时还需计入执行成本。
教学阅读:Model-Based Reinforcement Learning: Theory and Practice。仅借用本节的解释顺序与接口视角;具体算法、版本和实验以本篇原论文为准。
自测两题
第一题考查核心机制,第二题考查边界与辨析。建议先自行作答,再对照参考答案。以下数值小例子均为教学构造。
问题 1:为什么从真实状态出发做短模型 rollout?
参考答案:真实状态提供较可靠的起点,短分支限制连续模型预测的误差累积。同时可以生成更多局部转移,交给无模型学习器提高数据利用率。它把模型用于有限扩充,而不是完全替代环境。
问题 2:短 rollout 为什么仍然会带偏策略?
参考答案:一步预测也可能有系统偏差,奖励模型也可能错误;大量合成数据还可能压过真实数据。缩短长度只控制一类误差累积,不能替代模型质量、合成比例和总计算成本的检查。