027|动态环境元强化学习:从短历史识别新动力学
原论文:Learning to Adapt in Dynamic, Real-World Environments through Meta-Reinforcement Learning,Anusha Nagabandi、Ignasi Clavera 等,2018 年首次公开,ICLR 2019。论文。
先接住前作的问题
动力学随机化让循环策略隐式适应物理变化,但不显式修正一个可用于规划的预测器。本篇把学习目标放在短历史更新后的模型表现上:最近经验怎样让下一段预测更准?模型适应与策略隐藏状态变化不能混写。
五个前置概念
五个前置概念:前向模型预测动作的运动结果;元学习优化快速学习的起点或规则;支持与查询数据分别用于局部适应和检验适应;MPC每次规划但只执行一步;局部平稳性是假设短时间内动力学近似不变。
一、问题设定:几步新经验怎样修正下一段动力学预测
一只机器人在地毯上走得很好,换到斜坡、拖上负载或损坏一条腿后,原来的动作与运动关系会变。可以从头训练新策略,但数据和时间都不允许;也可以微调环境模型,但普通神经网络未必能靠最近几步就学好。
传统元强化学习常把一个完整回合视为一个任务,先收集几条轨迹,再调整策略。现实故障不会等到回合结束。本文把每个短时间片看作一个局部任务:最近 步提供上下文,后续 步用于检验预测。
它属于模型驱动的单智能体学习,既有仿真比较,也有真实硬件。模型输入状态与动作,输出下一状态分布。仿真中比较关节失效的 HalfCheetah、斜坡、浮动踏板和缺腿 Ant;真实机器人的目标是跟踪直线、左转、之字形及八字形等路径。
真机状态为 24 维,包括位置、速度、姿态、角速度、电机反电动势、编码器和电池电压。它虽然有六条腿,但同侧三条腿共享一个电机,所以动作只有左右两侧两个速度设定值。位姿来自动作捕捉室,外部计算机以 10 Hz 无线发送命令,板载 PID 执行。
核心假设是短片段内动力学近似一致。若过去几步在地毯、未来几步突然进入冰面,过去数据对未来可能失效。模型可以在观察到变化后恢复,却不能保证在第一个变化瞬间提前知道发生了什么。
二、优化适应后的未来误差并重新规划
这篇论文把训练目标改成“用过去一小段经验更新后,能否预测接下来的一小段运动”。模型学到的不是一个永远正确的世界,而是一个能够迅速根据现场数据调整的起点。控制器拿调整后的模型做短时规划,每执行一步就重新适应、重新规划。
1. 内层更新与外层评价
令 为共享模型初始参数, 为适应规则。将一段轨迹分成过去数据 和未来数据 :
普通监督学习直接要求 对全部数据预测准确;元学习要求 经少量局部数据更新后准确。后者允许初始模型没有拟合每个场景,却具有快速调整的结构。
GrBAL 使用一次梯度更新:
外层损失通过这次更新反传,因此训练的是“怎样设置初始参数,能让一次梯度有用”。论文用固定方差高斯预测模型,其负对数似然等价于适当缩放的均方误差。这里的模型损失与任务回报不是同一个量。
ReBAL 用循环网络的隐状态吸收近期转移,学习一个更新规则。它不必显式修改所有网络权重,却同样让预测依赖历史。梯度式与循环式是同一适应目标的两种实现,不是一个必然比另一个更高级。
2. 每一步从共享先验重新适应
算法 2 有一个容易漏掉的细节:每执行一步后,模型回到共享初始参数 ,再用滚动窗口里的近期数据适应。不是永远沿着前一次局部微调权重累积下去。这样避免很久以前的局部环境持续污染现在的模型,但也让窗口长度决定了可使用的记忆范围。
3. 用适应模型规划,而不是拿模型直接输出动作
控制器对候选动作序列预测未来状态,以已知任务奖励评价,选择当前动作。仿真采用 MPPI,真机比较使用随机射击规划。规划只执行第一步,然后获取真实状态、更新模型并重规划。
用概括式表达:
为规划长度。方括号下标零表示只执行序列第一项。短时闭环减轻模型误差积累,却不使误差消失。模型更新误差可能改变候选动作的排序,因此预测质量最终仍要通过任务表现验证。
过去窗口和未来窗口必须保持因果顺序。若把待预测转移也放进内层适应集,模型当然可能预测得更好,却不再检验部署时的快速适应。外层正确问题是:只看到故障后的少数过去转移,一次更新能否改善尚未发生的后果预测?原文元训练与算法2
教学设定:窗口10步,地面在第8步由硬变软,当前适应集含7步旧地面、3步新地面。长窗口降低统计噪声,却稀释变化;短窗口响应快,却可能把一次传感器异常当新动力学。每步回到共享先验避免永久遗忘,不会自动解决窗口选择。应在实验中分开报告变化后恢复时间与稳定环境最终回报。
一个具体例子与概念表
自构例子,未运行:左右相同速度设定本应直行,现在右侧因负载变慢,机器人开始偏转。过去几步的“设定值—位姿变化”使适应模型预测右侧响应减弱,规划器于是增加右侧指令或减小左侧指令。它无需收到“右侧负载为多少克”的标签,也无需等完整回合失败后再更新。
三、用过去窗口适应模型,再规划下一步
内层更新用最近过去,元目标评价随后未来;若两段混用,便看不到适应能否推广。部署时按原设定从共享参数重新适应,而非无限累积一次临时修正。
元训练:
在多种环境采集轨迹并汇入数据集
抽取连续片段,划分过去 M 步和未来 K 步
从共享参数出发,用过去片段做一次适应
在未来片段计算模型预测损失
反传经过适应过程,更新共享参数及适应规则
在线控制:
保存最近转移窗口
每一步从共享模型参数重新开始
用近期窗口快速适应模型
在适应后的模型中采样并评价候选动作序列
只执行第一步,记录真实结果,再次适应与规划
四、将预测改善与实际控制改善分开核对
作者提出梯度式 GrBAL 与循环式 ReBAL。实验支持它们在动力学变化下的适应价值,并用真实六足微型机器人展示 GrBAL。最重要的理解是:这里快速适应的是前向动力学模型,而不是直接通过回报更新一个 Actor。
原图怎么读: 图3,原论文图注与图像。横向比较更新前后K步预测误差的直方图,检验的是一次适应是否改善模型预测;后续控制回报另看图5,不能由误差分布直接推出任务必然成功。


样本倍率和窗口参数应按各实验的明确配置分别解释,不能用概括性倍率反推所有图的统一交互预算。
| 实验维度 | 设置与目的 |
|---|---|
| 仿真变化 | 未见过的失效关节、回合中故障切换、更陡坡和动态踏板 |
| 无适应基线 | MB 学单一模型,TRPO 学跨环境策略 |
| 普通适应基线 | MB+DE 在测试时对普通模型做梯度更新,检验元训练是否必要 |
| 元学习基线 | MAML-RL 为无模型元强化学习;ReBAL 与 GrBAL 比较更新形式 |
| 模型与规划 | 模型驱动方法共享相应架构与规划器,减少结构混杂 |
| 真机训练数据 | 地毯、泡沫塑料、人造草地各约 30 分钟,共约 90 分钟 |
| 真机采集方式 | 随机策略配合避免离开指定区域的安全策略,不是专家动作示范 |
| 真机测试变化 | 缺腿、未见地形与坡度、位姿误差、拖拽新负载 |
| 指标 | 仿真回报、模型预测误差;真机轨迹跟踪成本,越低越好 |
| 不确定性 | 各图完整随机种子及误差条定义未逐项确认,表1 本身列成本均值 |
第 6.2 节比较随训练数据增长的性能,并允许无模型方法训练至收敛;第 6.3 节则把各方法限制在相同低数据预算,专门检查在线变化与泛化。前者考察效率和最终性能,后者考察有限数据下适应效果,不能把两套预算混成一组公平性判断。正文的“等效真实交互小时”描述模拟数据的物理时长,不是 GPU 训练耗时。真机的 90 分钟是实际采集规模,但外部计算、元训练和规划成本仍需另计。
附录列 HalfCheetah 的 GrBAL 使用 、每次内层一步更新,训练规划长度 10、测试 15。参数不能机械推广:Ant 表格的 与正文概述不同,详见下文范围说明。
证据:适应后更准,还要看是否走得更好
| 原文位置 | 观察 | 支持什么,不能证明什么 |
|---|---|---|
| 图3、附录 A 图8、图9 | 适应后未来片段预测误差下降 | 更新提取了局部信息,但误差降低不自动保证回报单调提升 |
| 图4 | 有模型方法在较少训练数据下表现较强 | 支持样本效率趋势;不能忽略原文倍数口径疑点 |
| 图5 | 快速变化和未见失效条件下,GrBAL 整体表现较好 | 说明局部适应有用;“oracle”只是特定全局模型基线,不是最优控制上界 |
| 表1 | 训练内地形中 GrBAL 与 MB 成本接近,互有高低 | 常规场景不一定需要适应,不支持处处优胜 |
| 图6、图7 | 真机新地形、缺腿和负载等测试中轨迹改善 | 支持若干硬件变化下可行性,不证明任意损坏都可恢复 |





表1 的地毯直线任务两者成本同为 3.26;地毯之字形 GrBAL 为 7.08、MB 为 6.56,前者反而较差;泡沫塑料直线分别为 3.75 和 4.06,前者较好。因为是成本,不能把更大的数字读成更强。作者“训练内相当”的判断比“元学习全面提升”准确。
两处口径值得保留。第 6.2 节同时写无模型约两天、模型驱动约 1.5–3 小时,又使用“1000 倍”数据差异;直接按小时相除只能得到约 16–32 倍,无法由这些文字独立重建 1000 倍。附录 C 说所有实验 ,但附录 E 的 Ant 表为 GrBAL ,机械臂表也不同。PDF 中同样存在这些信息,因此本文不自行统一成一个确定倍率或一组通用参数。
这些疑点不抹去图中适应改善的证据,但限制了精确复现口径。要引用“几倍效率”,还需结合作者代码、实际采样次数与物理时间换算继续确认。
五、历史窗口需要对应局部一致的动力学
贡献是把元训练任务从整回合转为连续时间片,并将快速适应前向模型接入 MPC。与只在部署时临时微调相比,训练本身已经为少量数据更新做准备;与直接元训练策略相比,监督信号每一步都能从状态转移获得。
作者承认模型驱动方法的最终性能可能低于数据充足的无模型方法。本文的分析还包括三个边界。第一,固定方差模型不能完整描述复杂不确定性;第二,短窗口中若动作不足以辨识故障,适应可能根据噪声过度调整;第三,真机依赖动作捕捉和外部计算,不能直接推导出完全机载自主适应。
训练分布也很重要。附录 B 的外力实验显示更丰富扰动往往有益,但这不是“只要元学习,就能外推任何新物理机制”。从平面行走到腾空跳跃,或从完整执行器到完全失去一侧驱动,可能需要不同动作能力与模型结构。
追问:近期数据窗口跨过动力学突变时,适应会学到什么?
参考答案:窗口同时包含旧机制和新机制,更新可能折中两者,未必准确表示当前环境。可固定总数据量,改变窗口是否跨过变化点,分别测适应后的预测误差和控制恢复。更短窗口响应快但信息少,更长窗口方差小却可能混入过时数据;这来自本篇局部适应设定,不构成通用最佳窗口结论。
六、沿机制关系继续读
与动力学随机化是平行适应路线:前者训练能快速更新的前向模型并规划,后者用循环策略隐式适应;与PETS共享模型规划接口,但本篇的核心变量是更新后的局部模型。
七、自测三题与参考答案
问题1:为什么过去数据和未来数据必须分开?
答案:若适应和评价都用同一批数据,外层可能只奖励快速记住噪声。用未来片段检验,才鼓励更新捕捉能延续到接下来运动的规律。它是在线时间结构下的泛化检验。
问题2:为什么每步恢复共享参数,不永远累积微调?
答案:共享参数保留跨环境先验,近期窗口描述现在。重新开始使当前更新不会无限积累旧地形的影响;代价是窗口之外的信息被弱化。持续微调也可能有效,但那是不同记忆与遗忘机制,需要另做实验。
问题3:超过 MB oracle,为什么不是超过物理最优策略?
答案:该 oracle 是在测试环境获得更多数据的特定全局预测模型,仍有模型结构和规划限制。快速变化时,局部适应模型可能比一个全局模型更准。超过这个基线只说明其建模方式受限,不意味着打破最优控制上界。