精读笔记
Problem Setting
论文标题:Active Learning of Discrete-Time Dynamics for Uncertainty-Aware Model Predictive Control(IEEE Transactions on Robotics / 2024)。
这篇论文不是在一般意义上“学习 quadrotor dynamics”,而是在解决真实部署中的一个更尖锐问题:离线学到的动力学模型一旦遇到工况变化,MPC 的预测约束会系统性失真,导致控制器虽然优化得很认真,但优化的是错误动力学。问题的关键矛盾是:模型需要在线数据来适配当前环境,但在线数据由当前控制器产生;如果控制器在模型不准时过于自信,数据收集和控制都会同时变坏。
真正困难点有三个。第一,quadrotor 是高速、欠驱动、强非线性系统,试错式在线学习没有安全余量。第二,工况变化既有静态 mismatch,如质量、惯量、桨叶效率变化,也有随机或部分可观测扰动,如风和吊载摆动。第三,控制频率和算力约束使得很多漂亮的 Bayesian dynamics、ensemble MPC 或全模型在线更新并不现实。
以前方法的瓶颈很清楚:离线 NN dynamics 在分布外工况失效;传统 adaptive control 往往在控制输入层面补偿扰动,但 MPC 内部仍沿着错误模型预测;GP/ensemble 类方法有不确定性但实时性和扩展性差;经典 active learning 追求全局探索,而飞行机器人实际只需要当前局部闭环可控区域足够准。
Motivation
作者的动机可以概括为:不要试图在部署前覆盖所有动力学,也不要在部署中追求全局模型;应该把离线模型作为一个粗先验,然后在闭环中快速把它拉向当前 operating regime。这个观察是合理的,尤其对 aerial robot:真实世界变化太多,完整建模几乎不可能,但当前任务通常只访问状态-动作空间的一小块局部区域。
已有路线缺的是三件东西的同时成立:可用的离线先验、稳定的在线适配、以及能影响数据分布的控制器。纯 online learning 没有先验会危险;纯 MPC 没有模型更新会保守或失败;纯 uncertainty estimation 如果不反馈到动作选择,也只是诊断工具。论文的关键缺口判断是:active learning 不应被理解为先探索再利用,而应被嵌入 MPC,使控制器在执行任务时自动选择更有利于稳定学习的动作。
另一个重要动机是标签噪声。连续时间 dynamics 学习通常需要从速度中差分出加速度,这在真实飞行数据里会放大噪声。作者选择直接学习 discrete-time transition,本质上是把系统辨识问题从“学习瞬时物理量”改成“学习采样周期下的状态推进算子”,这是一个面向控制部署的建模取舍,而不是单纯架构变化。
Core Idea
核心思想是把模型学习和 MPC 控制变成一个在线自校正闭环:离线阶段学一个可泛化但不必完美的离散时间动力学模型;在线阶段用最近的 forward prediction error 微调模型最后一层;控制阶段用模型预测不确定性改变 MPC 的状态误差权重,避免控制器在高不确定区域过度自信。这样,控制器不是被动使用模型,而是在不确定性感知下选择动作,从而间接塑造后续训练样本。
它引入的 inductive bias 很明确:当前工况变化主要可以通过固定特征表示上的低维输出重映射来吸收。也就是说,NN backbone 学的是通用飞行动力学特征,最后一层负责快速适配质量、推力映射、气动扰动等局部变化。这不是最强表达的假设,但非常适合实时闭环控制,因为它把在线学习限制在一个相对稳定、可控的参数子空间。
和 prior 的本质区别不在“用了 NN + MPC + online update”这些组件,而在信息流重组:状态转移误差直接更新 dynamics;dynamics uncertainty 直接调 MPC cost;MPC 产生的数据又决定下一步模型更新。它把 active learning 从显式探索目标改写成一种 uncertainty-conditioned exploitation。这个选择对高速机器人更现实,因为系统没有足够安全预算去做大范围主动探索。
Method
1. 离散时间 dynamics:解决的是连续时间监督标签噪声问题。模型直接预测下一步速度、姿态和角速度,位置通过积分恢复。核心变化是避开加速度差分和额外数值积分,使训练目标更贴近 MPC 实际使用的离散预测约束。这里的贡献不是网络结构,而是监督对象选得更符合真实数据质量。
2. 在线最后层更新:解决的是非平稳工况下离线模型失配。forward error 是模型一步预测与实际状态估计的差,和具体控制器无关,因此可作为自监督信号。只更新最后一层的必要性在于闭环安全和算力:全模型更新表达力更强,但更容易产生不可预期预测;最后层更新相当于在线线性校准,稳定性更好。
3. mini-batch online adaptation:解决单步噪声梯度导致的模型抖动。它把最近一段状态-动作转移聚合起来更新,使梯度更像当前工况的平滑方向,而不是某个噪声状态估计的反应。这个机制很可能是避免真机学习瞬态发散的关键工程选择。
4. UT-based uncertainty propagation:解决的是在不使用 ensemble/Bayesian NN 的情况下给 MPC 一个预测不确定性信号。UT 通过 sigma points 传播状态分布,并处理 quaternion manifold 上的加减。它的角色不是提供严格 epistemic uncertainty,而是提供一个低成本的 aleatoric uncertainty proxy。
5. uncertainty-aware MPC cost:解决模型不确定时 MPC 过度追踪的问题。用预测协方差的对角线反向缩放状态权重,高不确定维度的 tracking penalty 被降低,低不确定维度被更强约束。这个机制是启发式的,但直觉清楚:让控制器在模型可信的维度上用力,在模型不可信的维度上少做激进优化,从而减少坏动作和坏数据。
Key Insight / Why It Works
最可能真正有效的部分有两个:离散时间监督目标降低标签噪声,以及最后层在线更新提供了低维、稳定、快速的 test-time adaptation。相比之下,UT uncertainty-aware MPC 更像一个有效的稳定化 heuristic,而不是严格的概率控制框架。
离散时间建模的优势很实在。连续时间模型看起来更物理,但真实数据中的加速度标签通常是差分和滤波产物,包含强噪声和延迟;而 MPC 最终需要的也是采样周期下的状态推进。直接学离散映射减少了 representation-target mismatch。这部分不是 scaling,而是 better supervision / representation alignment。
在线更新最后一层本质上是把 dynamics adaptation 转化为固定特征空间上的局部线性回归问题。这个假设在 quadrotor 上可能很强,因为质量变化、推力系数变化、部分气动项变化确实可以被看作输出映射的重标定。它不是学会了任意新物理,而是利用离线数据学到的动力学特征,再在测试时做低维校准。这里的能力更像 memory reuse + test-time adaptation,而不是从零在线学习。
所谓 active learning 的“主动性”需要谨慎理解。它没有显式最大化信息增益,也没有主动探索未知区域;它通过不确定性调权让 MPC 选择更保守、更可学习的动作。严格说这更接近 uncertainty-conditioned safe exploitation。论文把它称为 active learning 可以接受,但和传统 epistemic exploration 不是同一种东西。
不确定性部分的增益来源不完全清楚。UT 传播的是输入状态分布经过 NN 的输出协方差,主要是 aleatoric / state noise propagation;它不刻画模型结构不知道什么,也不刻画离线数据覆盖缺口。因此它能否在真正 OOD 区域表示模型风险是有限的。实验中它提升收敛和稳定性,可能因为它起到了自适应 cost shaping / gain scheduling 的作用,而不是因为 uncertainty calibration 特别准确。
另一个关键 insight 是:对真实飞行控制,局部准确性比全局准确性更重要。论文没有试图学习全状态-动作空间的完美模型,而是让当前闭环轨迹附近的 forward error 下降。这与很多 offline dynamics paper 的评价范式不同,也更接近 deployment reality。
Relation To Prior Work
这篇属于 learning-based MPC、online system identification、adaptive control 和 active learning 的交叉谱系。最接近的是 offline learned dynamics + MPC + online adaptation 的路线,而不是纯 RL 或纯 adaptive control。
相对离线 NN dynamics 工作,真正新增的是部署时持续修正模型,而不是假设训练分布覆盖所有未来工况。相对 meta-learning,它没有预先构造任务分布,也不学习快速适配初始化;它用更朴素的 offline prior + online SGD 替代任务级先验。因此它更 task-agnostic,但样本效率是否优于精心设计的 meta-learning 仍取决于工况相似性。
相对 GP/ensemble uncertainty MPC,它牺牲了更完整的不确定性建模,换取单模型实时性和嵌入式可部署性。这里的创新不是概率建模更严谨,而是把一个足够便宜的不确定性 proxy 接入 MPC cost,使真机系统能跑起来。
相对 L1 adaptive control 等传统自适应控制,它的本质差异在于更新 MPC 内部 dynamics,而不是只在控制输出上补偿扰动。这个差异很重要:如果 MPC 的预测约束仍错,输入补偿只能修正执行层,不能让规划层理解新动力学。论文实验中对吊载和混合桨的优势主要来自这一点。
也要指出,很多思想并非全新:forward prediction error 做在线模型更新、只更新最后层、UT 传播协方差、uncertainty-weighted cost 都有先例或相近形式。论文的实质贡献在于把这些机制组合到高速真机 MPC 闭环里,并证明在资源受限系统上可用。
Dataset / Evaluation
评估的强项是真机实验扎实。数据包含真实 quadrotor 轨迹,测试覆盖 aggressive trajectories、吊载、混合桨、风扰等明显超出常规训练分布的条件。尤其混合桨和吊载不是普通轨迹外推,而是系统配置变化,能较好检验 online adaptation 的必要性。
消融设计基本能支持核心 claim:静态 NN-MPC vs 在线更新能说明 OL 的贡献;有无 uncertainty-aware cost 能说明 UA 对收敛和稳定性的影响;与 nominal MPC 和 L1 adaptive 比较能说明“更新内部 dynamics”相对“外部补偿”的优势。论文没有只靠仿真,这是重要加分。
但 evaluation 仍有明显边界。所有实验围绕一个小型 quadrotor 平台,且定位使用 Vicon,排除了 onboard state estimation drift 这一部署中很关键的误差源。吊载摆动被故意不输入模型,导致部分不可观测,这是好的压力测试,但也说明方法上限取决于状态可观测性。
benchmark 是否完全验证“generalization”要谨慎。更准确地说,它验证了对若干相近物理系统变化的在线适配能力,而不是广义泛化。离线数据中已经包含大量 aggressive flight,模型 backbone 的数据覆盖可能是关键基础;如果离线数据显著更窄,在线最后层能否救回来文中未充分说明。
离散 vs 连续时间 baseline 的比较有说服力,但也可能部分受实现选择影响,例如连续时间模型的加速度标签处理、滤波策略和积分误差。结论“离散监督更适合真实数据”可信,但不是证明所有连续时间方法都劣。
Limitation
1. 不确定性不是完整模型不确定性。UT 估计主要来自状态分布传播,不能识别 NN 在 OOD 区域的 epistemic uncertainty。把它用于 MPC 权重调节是 heuristic,不是严格风险约束。若模型在某区域自信但错误,这套机制不一定能防止失败。
2. 在线适配能力依赖冻结 backbone 的覆盖。只更新最后层意味着工况变化必须能在已有特征空间中线性或近线性表达。对接触、强滞后、结构模式切换、复杂载荷摆动、气动遮挡等需要新 latent state 的系统,这个假设可能不成立。
3. 部分可观测性是硬上限。吊载实验已经暴露:如果 payload state 不输入,模型无法知道绳子松紧、摆角和相位,只能把其影响当噪声拟合。此时 online learning 不是缺数据,而是缺状态。方法把问题从建模转移到了“状态表示是否足够”的前提上。
4. 经验收敛不等于闭环稳定保证。论文承认没有理论收敛。对于真机控制,这不是小问题:在线更新模型会改变 MPC dynamics constraint,可能引入非平稳闭环。mini-batch 缓解了风险,但没有给出失效边界。
5. 增益归因仍不完全干净。最终性能提升来自离散时间模型、真实数据覆盖、MPC 权重调节、在线最后层更新、mini-batch 平滑、以及调参共同作用。论文消融说明方向,但没有完全分解这些因素。部分提升可能主要来自 data coverage + test-time calibration,而不是 active learning 本身。
6. 实时性仍是瓶颈。MPC 没能在 Snapdragon 上实时运行,需要 laptop 或 Jetson 级硬件。虽然 NN 更新很快,但整体方法的可部署性仍由 MPC 求解复杂度主导。更大状态、更长 horizon、更深模型都会迅速碰到上限。
7. Vicon 环境降低了问题难度。状态估计准确时 forward error 更像 dynamics error;若换成 onboard estimator,forward error 会混合估计漂移、延迟和传感器偏置,在线更新可能学到错误补偿。文中未充分说明这种情况下的鲁棒性。
Takeaway
- 1. 对真实机器人 dynamics learning,直接学习离散时间 transition 往往比学习连续时间微分量更务实,尤其当连续标签需要差分 noisy measurements 时。
- 这是一个可迁移 insight。
- 2. 在线学习不一定要全模型更新。
- 冻结 backbone、只更新最后层,是一种在闭环控制中非常有价值的稳定性-适应性折中;它适合工况变化可被看作局部重标定的系统。
一句话总结
这篇论文是 learning-based MPC 从“离线学模型再控制”走向“真机闭环中用不确定性感知 MPC 主动塑造数据并在线校准动力学”的工程化关键一步,核心贡献在于可部署的 test-time dynamics adaptation,而不是更复杂的模型本身。
