Home / 机器人学习 / MBPO:什么时候该相信模型生成的经验

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 的联系则是:模型的用途可以是补充局部转移,而非建立一整套无误差的虚拟世界。

这里有两个经常被混为一谈的长度:任务可能持续很多步,模型分支却只持续 kk 步。缩短后者不等于把任务本身截短。这个区分是整篇论文的思想中心。

二、从真实状态生成短分支并交给SAC

MBPO 的回答很克制:从真实经验中的状态出发,只让模型向前走很短一段,把这些局部想象作为额外训练数据。长远后果仍由价值函数通过反复更新传播,不要求模型完整模拟整段任务。

1. 学习概率模型集成

模型接收状态与动作,预测下一状态及奖励的分布。用 BB 个概率网络表示:

p^i(s′,r∣s,a)=N(μi(s,a),Σi(s,a)),i=1,…,B.\hat p_i(s',r\mid s,a) =\mathcal N(\mu_i(s,a),\Sigma_i(s,a)),\quad i=1,\ldots,B.

每个网络的输出方差表达结果本身的不确定性,不同网络间的差异提供参数不确定性的近似。它们不是完全准确的贝叶斯后验;把集成称作“知道自己不知道什么”需要保留这一限制。

训练目标是环境记录的负对数似然。只有可信环境经验参与更新动力学模型,避免模型长期把自己生成的错误反过来当成事实。策略训练则可以大量利用合成转移,这两种数据流承担不同责任。

2. 从经验池中的状态分叉

设环境池为 DenvD_{\mathrm{env}}。先采样 s0∼Denvs_0\sim D_{\mathrm{env}},然后重复:

aj∼π(⋅∣sj),(sj+1,rj)∼p^ij(⋅∣sj,aj).a_j\sim\pi(\cdot\mid s_j),\qquad (s_{j+1},r_j)\sim\hat p_{i_j}(\cdot\mid s_j,a_j).

达到 kk 步便停止,另取一个环境状态重新开始。集成成员可以在不同转移时重新采样,因此这里不能直接照搬 PETS 中“一条粒子始终固定一个模型”的设定。

为什么从经验池出发?它相当于不断把想象拉回已经到过的区域。相比从最初站立姿态一直想象到任务结束,出错后的状态较少有机会继续成为下一次错误的输入。

但真实状态只保证起点可信,不保证当前策略提出的动作在数据中出现过。所以短分支缓解的是错误累积与分布偏移,不能完全消除分布外预测。

3. 用 SAC 消化合成转移

以下用常见 SAC 记法解释更新,而不是声称原文所有实现细节均由此式穷尽:

y=r+γ(1−d)[min⁡iQitarget(s′,a′)−αlog⁡π(a′∣s′)].y=r+\gamma(1-d) \left[\min_i Q_i^{\mathrm{target}}(s',a') -\alpha\log\pi(a'\mid s')\right].

QiQ_i 学习长远软价值;dd 表示环境真正终止;α\alpha 控制熵奖励。策略倾向选择价值高又保有一定随机性的动作。

一步模型rollout仍能学习长程行为。教学链为 s0→s1→s2s_0\to s_1\to s_2,只在 s2s_2 得奖;先更新 Q(s1,a1)Q(s_1,a_1),再通过自举更新 Q(s0,a0)Q(s_0,a_0),不必一次想象完整链。短rollout限制的是模型递推长度,并没有把价值函数时域截短。

模型分支到达长度上限,不应自动当作任务终止。它只是停止合成数据,任务的未来仍要通过价值自举保留。否则算法会无意中优化短视目标。

4. 理论告诉了我们什么

原文先用模型误差与策略变化构造真实回报下界。可把核心权衡抽象为:

Jreal(π)≥Jbranch(π)−C(k,ϵm,ϵπ).J_{\mathrm{real}}(\pi) \ge J_{\mathrm{branch}}(\pi)-C(k,\epsilon_m,\epsilon_\pi).

ϵm\epsilon_m 表示模型误差,ϵπ\epsilon_\pi 表示策略相对数据收集策略的变化;kk 越长,模型误差累积的部分通常越大,但减少对旧策略状态分布依赖的部分可能变小。

这只是结构解释,不是替代原文定理的精确系数。尤其要看到作者自己指出:过于保守的误差界会建议干脆不用模型。后来引入经验性的模型泛化估计,才得到使用短分支的合理动机。因此不能把实际深度网络训练描述成“每一步都经过可计算定理证明必然提高”。

工程中应核实真实与合成数据的混合比例和缓存保留方式;它们会影响旧模型偏差残留多久。上面展示论文的核心数据流,不把某一代码版本的缓存细节冒充算法定义。

更新比还决定计算成本:原文用模型数据支持每个环境样本更多策略梯度步,应同时记录真实转移、模型转移、模型拟合与策略更新时间。原文算法2与实验说明

帮助建立理解

自构例子,未运行:环境池里记录了机械臂靠近抽屉、刚接触把手和已拉开一半的状态。模型无需从桌边一路预测到抽屉完全打开;它可以分别从这些可信状态预测附近的一小步。价值函数把“拉开一半很有希望”的信息传给刚接触把手的动作。

如果把手接触动力学恰好建模错误,一步想象仍可能不可信。因此合理的扩展实验是固定环境数据,分别按接触与非接触状态统计模型误差,再比较不同分支长度。预期结果不能先写成已经观察到的规律。

三、从真实状态短程分支并混合两类回放

作者解读把问题拆成旧策略分布误差与模型误差。一个确定性局部教学模型能说明后者为何随长度增长:若闭环一步映射的敏感度至多为LL、每步新增预测误差至多为ε\varepsilon,从同一个真实状态出发有e0=0e_0=0、ej+1≤Lej+εe_{j+1}\le Le_j+\varepsilon,于是ek≤ε∑i=0k−1Lie_k\le\varepsilon\sum_{i=0}^{k-1}L^i。L=1L=1时为kεk\varepsilon,L>1L>1时放大更快;缩短分支限制递推次数,却不能消掉第一步的ε\varepsilon。这不是原文回报下界的系数或深度网络的保证,而是解释短分支设计的局部算例。

初始化策略、价值网络、模型集成
维护环境经验池 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”指被建模的基准环境,不是宣称做了真实机器人实验。

When to Trust Your Model: Model-Based Policy Optimization,图4:同一动作序列分别在环境与模型里展开,阴影显示模型预测逐渐发散。这里的“real environment”指被建模的基准环境,不是宣称做了真实机器人实验。
实验图原图摘引:Michael Janner 等,首次公开于2019,HTML S6.F4,图4。原图面板重新排版,数据未改。核对原文。原版权保留。
项目 原文设置与读法
环境 MuJoCo 连续控制;采用标准长任务版本
对照 SAC、PPO、PETS、STEVE、SLBO
主要指标 环境交互步数对应的任务回报
重复与不确定性 图2为五次试验均值与标准差
额外计算 每份环境经验可支持更多模型采样与梯度更新
关键消融 无模型但增加更新次数;改变分支长度;价值扩展
模型利用检查 比较同一策略在环境与学习模型中的回报

When to Trust Your Model: Model-Based Policy Optimization,图2:各任务横轴为环境交互步数,纵轴为回报;实线是5次试验均值,阴影是标准差。比较MBPO与模型无关、模型式基线的学习速度和终点回报时,不把阴影当置信区间。
原图摘引:Michael Janner 等,首次公开于2019,HTML S5.F2,图2。核对原文。各任务横轴为环境交互步数,纵轴为回报;实线是5次试验均值,阴影是标准差。比较MBPO与模型无关、模型式基线的学习速度和终点回报时,不把阴影当置信区间。

这里的公平性应分两层看:同等环境交互量比较回答“昂贵数据能否省下来”;同等墙钟与算力比较回答“最后多久能得到策略”。MBPO 强调前一个问题,并不能仅凭横轴读出后一个答案。

多个方法使用相同基准,也不等于共享相同优化器、模型容量和调参预算。特别是 PETS 执行时要规划,而 MBPO 把模型计算用于训练,成本分布不同,机器人部署者应分别计量。

结果:证据到底有多强

以下定位对应原文第4—6节与附录。

  1. 图1,模型泛化实验:策略偏离数据收集分布时,观察模型误差变化,支持更丰富数据可能改善附近分布泛化;不能保证任意远的新状态都可靠。
  2. 图2,方法比较:Ant 中 MBPO 在约三十万步达到 SAC 约三百万步的回报水平,交互量比为 3000000/300000=103000000/300000=10。这不是计算速度快十倍,也不是每个任务均有同样收益。
  3. 图3,无模型与长度消融:单纯增加 SAC 更新次数未复现全部收益,短分支很有竞争力;说明数据来源有贡献,而非只因多做优化。
  4. 图4,预测轨迹与回报比较:长预测出现累积不确定性,同时所测策略的模型与环境回报具有相关性;支持该实验没有明显利用模型漏洞,不能证明所有未来策略都不会利用漏洞。
  5. 定理4.1—4.3:给出带假设的误差—回报关系;它们为算法设计提供解释,不是实际训练曲线的逐点证书。

When to Trust Your Model: Model-Based Policy Optimization,图1:策略偏离数据收集分布时,观察模型误差变化,支持更丰富数据可能改善附近分布泛化;不能保证任意远的新状态都可靠。
原图摘引:Michael Janner 等,首次公开于2019,HTML S4.F1,图1。核对原文。策略偏离数据收集分布时,观察模型误差变化,支持更丰富数据可能改善附近分布泛化;不能保证任意远的新状态都可靠。
When to Trust Your Model: Model-Based Policy Optimization,图3:单纯增加 SAC 更新次数未复现全部收益,短分支很有竞争力;说明数据来源有贡献,而非只因多做优化。
原图摘引:Michael Janner 等,首次公开于2019,HTML S6.F3,图3。核对原文。单纯增加 SAC 更新次数未复现全部收益,短分支很有竞争力;说明数据来源有贡献,而非只因多做优化。

特别要注意图3的含义:某个模型能够生成看起来尚可的长轨迹,并不代表用它生成长轨迹训练策略最好。模型可预测性、合成样本质量和优化效果之间还有分布与自举的作用。

五、局部想象仍可能被策略利用

代价包括模型拟合、合成数据存储和大量梯度更新。模型还要估计奖励,若奖励预测与真实成功条件错位,策略可能被局部高估引导。短分支对此有帮助,但没有自动修正奖励定义。

本文分析还有一个边界:机器人早期数据若只包含站立,短分支很难凭空提供完整复杂接触技能。经验池的覆盖范围决定分叉从哪里发生,仍需要有效探索。MBPO 的成功不意味着探索和稀疏奖励已经解决。

六、沿机制关系继续读

MBPO把SAC作为策略学习模块;与PETS构成平行模型用法,共享概率集成思路但改换用途:本篇合成短经验训练actor,PETS执行时用模型规划。后续WorldSample值得沿“哪些合成经验可信”继续读。

七、自测三题与参考答案

问题1:只生成一步模型转移,为什么还能学长任务?

答:模型长度控制的是合成误差链,价值函数的折扣回报仍覆盖长期。通过 Bellman 自举反复传播,后面的收益能影响前面的动作。把模型截断误当成环境终止才会真正削掉未来价值。

问题2:模型数据很多,是否就等价于获得了很多真实数据?

答:不等价。合成数据共享训练模型的系统误差,相互并不独立。数量增加可以改善某些优化问题,也可能反复放大同一偏差。MBPO 通过真实起点和短分支控制偏差,而不是宣称能无限制造独立证据。

问题3:论文有单调改进定理,为什么还需要实验检查模型利用?

答:定理依赖误差界、策略差异和理想优化等条件,实践中很难精确满足。深度网络版本采用有限更新和经验长度安排,因此理论提供设计依据,模型与环境回报的比较仍承担实际核验职责。