MBRL

image

这是一份笔记,也是千字长文

模型学习的目标是未知函数 f(u,v),该函数描述了在状态 x 下采取动作 u 后的下一个状态。

MBRL 中的模型学习可以看作是一个监督回归问题,优化的是下一个状态 f_{\theta}(x_t,u_t) 与真实观测到的下一个状态 x_{t+1} 之间的期望误差,即

min_{\theta}E_{(x_t,u_t,x_{t+1})~~D}||x_{t+1}-f_{\theta}(x_t,u_t)||^2

  1. 其中,\theta 是模型参数,模型 f_{\theta} 接受状态 x_t 和动作 u_t 作为输入,输出预测的 x_{t+1}
  2. D 是经验数据,数据应该有形如 (x_t,u_t,x_{t+1}) 的三元组
  3. 希望得到最小化的是每个 t 的均方误差 E

"好"模型可能是坏模型

  • 回归误差并非最终目标,我们同时也要考虑最小化累积成本和稳定性

    • 局部 ”陡峭度“ 可能破坏稳定性
    • 模型的不稳定可能使得基于这个模型的最优规划问题病态,难以求解(比如 MPC)

问题:

  1. 域偏移

    f_{\theta} 是在特定的动作-状态对上学习的,如果控制策略把系统引导到没有覆盖动作-状态区域,预测效果会不好

  2. 过拟合

    训练数据有限,模型可能学到的不是普遍适用的系统动力学

  3. 泛化性

    难以泛化到训练数据边缘或者以外的区域

解决方案:

  1. 正则化模型学习 + 控制

    。方案 正则化项 J(\theta) 硬约束
    效果 有平滑性 lipschitz 连续性

    具体措施:谱范数归一化

    • ||f_{\theta}||_{Lip}\le\gamma

      • Lipschitz 常数是描述函数“变化速率”上界的概念。

      • 如果 \exists L , \forall x_1,x_2 \in X 都满足

        d_Y(f(x_1),f(x_2)) \le L \cdot d_X(x_1,x_2),

        那么 f 是 lipschitz 连续的

    • 通过 \gamma 来限制,为稳定性提供保证

  2. 学习模型的不确定性

    f_{\theta} 不但预测下一个状态的均值,还要预测其不确定性

    核心思想:把 f_{\theta} 视为一个概率模型, 通过联合学习不确定性,模型识别它对哪些方面缺乏信心。

    • 高斯过程 GP:一种非参数学习方法,可以为测试点提供均值 \mu 和协方差 \Sigma 的表达
    • 集成方法 Ensemble-based method:训练多个动力学模型 f_{\theta}^{(1)},...,f_{\theta}^{(N)},并使用它们预测结果之间的分歧。

    例子:PETS

    Probabilistic Ensembles with Trajectory Sampling

    基于概率集成和轨迹采样的规划

    PETS 是一种使用了 CEM 的更高级的 MBRL

    CEM
    • Cross-Entropy Method

    • 交叉熵

    • CEM 用于寻找最优的动作序列 a_{t:t+T}

    • 优化一个参数分布,而不是直接优化动作序列本身

    unnamed

    原理
    1. 初始分布:从初始的动作分布(如高斯分布)中采样出动作序列
    2. 评估:使用世界模型模拟每个序列的轨迹,评估累积奖励或代价
    3. 选择精英:选出表现最好的少数动作序列,称为“精英样本”
    4. 更新分布:根据精英样本的统计数据,更新动作分布的参数。
    5. 迭代

    例子:MPPI

    是一种采样式规划(Sampling-based MPC)

    利用学习到的动力学模型,模拟可能的动作轨迹,找一个成本最小或奖励最大的序列

    例子:COVO-MPC(协方差最优模型预测控制)

    通过最优协方差设计,高效优化动作序列

考虑非时变性

  1. 鲁棒性

    • f_{\theta} 如何处理不同的变化的动力学
  2. 适应性

    • 如何实时微调参数 \theta

多任务与自适应 MBRL

  • 实时调整模型参数 \theta
  • 连接自适应控制

这依赖于元学习 meta-learning

mata-leaning

  • 实时适应机制

    • 在每个时间步用最新的数据 D 微调元学习的参数 \theta
  • 策略条件化

    • 设计策略 u=\pi(x_t,\theta_t),利用 DNN 算出 \theta_t

世界模型

  • 在现代机器人学习中,输入是高维图像或视频

    • 这使得直接学习 x_{t+1}=f(x_t,u_t) 变得极其困难而且效率低下
  • 于是我们把 Computer Vision 和 MBRL 结合起来,目标是从高维感官输入中学习世界模型

    • 这被称为 Deep MBRL for Rich Observations
    • Dreamer 是其中的代表算法
  • 更多例子;

    • Sora

      • 能根据文本指令生成想象场景
      • 但它不以 action 为条件

      17651855413912341147144732871749

    • RFM-1

      • 具有条件动作依赖性

Dreamer

Dreamer 算法的学习过程分为三步,

从经验中学习动态 Learn dynamics from experience

在想象中学习行为 Learn behavior in imagination

在环境中执行动作 Act in the in environment

  • dreamer 的创新在于,它不在原始的高维观测中学习,而是把高维观测 O 编码成一个紧凑的潜在空间(compact latent space),并在低维潜在空间中学习 动力学模型q(s_t|s_{t-1},a_{t-1})和奖励模型q(r_t|s_t)

  • latent-imagination
    • 一旦学到潜在动力学模型,智能体便可以利用这个模型在“想象中的轨迹“上规划和学习,使用 Actor-Critic 方法来优化策略,而无需与真实环境大量交互
  • 多目标学习

    • Dreamer-v1 通过结合三个目标进行学习:奖励预测、状态重构和对比估计

      • 这保证潜在空间中的状态 s 具有良好的信息量
    • Dream-v2 引入了离散表征来学习世界模型

    • dreamer-v3 提高了可扩展性,使其适用于多样化的领域

学习结构化的世界模型

  • 感知 perception
    • 负责把原始的高维观测 y_t(例如 RGB 图像、深度图或点云)和过去的动作 u_{1:t} 映射为一个紧凑的状态表征 z_t

    • z_t=g(y_{1:t},u_{1:t})

      • 历史依赖性:z_t 不仅依赖于当前的观测 y_t,还依赖于观测历史 y_{1:t}动作历史 u_{1:t}。这意味着感知模块需要具备记忆能力(例如使用 RNN 或 Transformer),以便在存在遮挡或部分可观测的情况下准确估计状态。

      • 基于粒子的表征

        • 感知模块常采用粒子(Particles) 作为通用的场景表征

        • 优势

          • 这种表征非常灵活,可以统一描述刚体、流体和可变形物体,并可以直接作为图神经网络(GNN) 的输入来预测动力学
    • 主要模型

      • Segment Anything(SAM)

        • 可以为图像生成大量掩码
      • DINOV2

        • 一种无监督方式学习鲁棒视觉特征的模型
      • D3Fields

      • 实现零成本泛化操作

        1. 更通用的表征
        2. 动态 3D 追踪

  • 动力学 dynamics
    • 负责预测。基于 z_tu_t,预测下一个时间步 z_{t+1}

      • 这实际上是在学习一个可微的物理模拟器
    • 这一步通常采用基于图的神经动力学模型(Graph-Based Neural Dynamics Model) 。通过对粒子或物体部件之间的相互作用进行建模(如使用图神经网络 GNN),模型可以准确预测物理系统的演变

      • 状态 z_t 被视为一个图(顶点 V 和边 E),其中粒子是节点,粒子间的相互作用是边。

      • 模型通过在节点和边之间传递信息(Message Passing)来预测粒子的运动(例如预测加速度或位置变化)。

      • a_{t+1}\=(f_{Node})(a_t,\sum_{k \in N(a_t)}e^k)
        • 汇总周围环境对当前粒子的所有影响(类似计算合力)。
        • 根据自身惯性和外力,决定下一刻怎么动(类似牛顿定律)。
        • a_t:自身状态
        • N(a_t):邻居集合
        • e^k:相互作用,由边函数 e^k=f_{Edge}(a_t,b_t)
        • \sum:作用集合
        • f_{Node}:状态更新函数,一个神经网络(MLP)用于预测下一个状态 \hat{a}_{t+1}
    • z_{t+1}=f(z_t,u_t)

    • 模型

      • PhysGaussian 技术

        • 将已知的物理规律集成到模型中,以提高模型的样本效率和泛化能力
  • 控制 control
    • 决策制定。基于感知到的状态和动力学模型的预测,计算出最优(使得系统在未来时间步的期望累积代价最小化 或奖励最大化)动作 u_t 以完成任务

    • 由于学习到的动力学模型通常是可微的,系统可以使用基于梯度的模型预测控制(MPC) 来进行规划。通过在模拟的未来轨迹中反向传播误差,直接优化动作序列

    • 除了基于梯度的方法,该框架也兼容基于采样的规划算法,例如:

      • CEM(交叉熵方法)

      • MPPI(模型预测路径积分)

      通过这种方式,机器人可以利用学习到的物理直觉来操作从未见过的物体(如生面团或流体)。

    • u_t=\pi(z_t)

    • 追求安全性最优性保证

其他 Deep MBRL 模型

  • TD-MPC

    • TD-MPC 同样学习潜在动力学模型和奖励模型
    • 它在推理阶段将 MPC​ (通常使用 MPPI 与 Value function/Cost-to-go)相结合

欠拟合和复合误差

min c_0(x_0,u_0)+c_1(f_{\theta}(x_0,u_0),u_1)+...

  • 复合误差指的是学习到的 f_{\theta} 被用于长期规划或者多步预测时,每一步的微小误差会不断累积并放大,最终导致巨大误差

  • 这主要发生在 MBRL 的规划或策略优化阶段,特别是是当需要计算长期累积成本的时候。误差会指数级增长。

  • 解决方案

    1. 更好的表征

      • 比如说 dreamer​ 潜在空间中学习,更鲁棒
    2. 分层或混合模型

      • 用不同的模型来处理不同的动力学特性
    3. 课程学习(curriculum learning)

      • 逐步训练模型掌握更长期的预测能力
    4. 无模型(fine-tuned by MFRL methods)微调

      • 使用 f_{\theta} 进行快速初始化或规划,随后使用无模型方法微调

学到的 f_{\theta} 的使用方法

  1. 策略搜索 Policy Search

    • 也就是直接优化策略
    • 找到一个最优策略
  2. 模型预测控制 Model Predictive ControlMPC

    • 在线优化

    • 利用 f_{\theta}未来一小段时间窗预测

      1. 规划:从当前状态 z_t 出发,预测并优化计算 u_{t:t+T-1}
      2. 执行:执行第一个动作 u_t
      3. 观测与反馈:感知模块获得新的观测 y_{t+1},估计出新的状态 z_{t+1}
      4. 重新规划
    • 利用一些算法优化

      • 序列二次规划 SQP

      • 迭代 LQR iLQR/DDP

      • 这两种算法利用泰勒展开,在当前轨迹周围 局部的将非线性的动力学模型线性化

        • 之后问题转换为 LQR 求解问题
        • 之后利用微分动态规划从后往前求解
        • 之后迭代优化
      • 基于采样的 MPC

        • COVO-MPC
        • MPPI
        • CEM
  3. 作为 MFRL 的模拟器 Dyna-style

    • 这将规划与学习结合起来unnamed 1

表征与结构的选择

  • 在机器人学习(特别是基于模型的学习)中,选择正确的表征(Representation)结构(Structure)直接决定了模型能否从有限的数据中学习并在新场景中工作。

泛化能力(Generalization)

  • 结构化的表征允许模型利用物理世界的组合性局部性,从而适应从未见过的情境,。

  • 原理: 比如使用粒子(Particles)图神经网络(GNNs) 。模型不需要记住整个场景的全局状态,而是学习粒子之间的局部相互作用规则(例如,碰撞、粘连),。

    结果: 一旦学会了这些局部规则,模型就可以将它们应用到:

    ◦ ​从未见过的物体形状(因为它们也是由同样的粒子组成的),。

    更大规模的系统(例如,训练时只有少量流体,测试时可以模拟大量流体)。

外推泛化(extrapolation generalization)

指模型在面对比训练数据规模更大的系统时,仍能保持预测。

GNN 中的外推泛化
  • GNN 学习粒子之间的局部相互作用规则
  • 通用的规则有组合性优势

样本效率(Sample Efficiency)

正确的结构引入了​归纳偏置(Inductive Bias) ,极大地减少了训练所需的数据量,。

  • 对比: 如果使用非结构化的黑盒模型(如直接从像素学习),模型必须从零开始“重新发现”物理定律,这需要海量数据。

  • 优势: 结构化模型(如以物体或粒子为中心)已经假设了物理互动的存在。这使得智能体能够用极少的数据快速掌握动力学。

  • 实例: 在 RoboCook 项目中,通过使用结构化模型,机器人仅需 20 分钟 的离线交互数据就能学会使用新工具处理面团,。

    • 结合了任务级规划(使用了分类器网络 classifier network)动作级策略(GNN)
    • 策略网络在动作级规划中生成具体的动作,快速找到优化轨迹

GNN

对于刚体

  • 全局运动

    • 由于刚体不会形变,模型会预测整个物体的平移和旋转
  • 分层建模

    • 维护粒子的结构信息

对于流体

  • 动态图构建

    • 粒子的连接和相互作用关系瞬息万变
    • 动态的更新
  • 局部运动

    • 模型关注粒子如何相对于邻居运动
    • 用于模拟物体的变形和流动

适用性

  • 适合组合性的物体
  • 适合具有高自由度的物体

动态分辨率模型学习

当使用粒子来表示对象堆(Object Pile)时

  • 粒子太少:模型无效
  • 粒子太多:模型低效

动态分辨率的目标是根据目前状态和目标,找到最优分辨率(Optimal Resolution)

实现方法:贝叶斯优化

模拟到现实的迁移(sim-to-real transfer)

参数不匹配(parametric mismatches)

  • 模拟器使用的参数值与实际系统的参数值存在差异

非参数不匹配(Non-parametric mismatches)

  • 模拟器没有考虑到真实世界中存在的某些复杂物理效应

    • 由 RoboCook 实验,我们得出学习到的动力学模型可以比基于物理的模型更准确
    • 这是因为非参数不匹配

处理模型

稀疏化

将原本复杂的神经动力学模型转换为分段仿射系统 Piecewise Affine Systems

优势

  • 与 MIP 规划器结合
  • 改进控制
  • 算法
    429 引用 • 254 回帖 • 24 关注

相关帖子

回帖

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...