IJRR’24&RSS‘23 Diffusion Policy Visuomotor Policy Learning via Action Diffusion

0 引言

为什么很多vla的动作输出头都是用扩散策略呢,这大概是来源于一篇很重要的论文Diffusion Policy: Visuomotor Policy Learning via Action Diffusion.
Groot N1 model review

1 简介

本文介绍了Diffusion Policy,一种通过条件去噪扩散过程表示机器人视觉运动策略的新方法。在4个不同机器人操作基准的15个任务中,Diffusion Policy consistently outperforms existing state-of-the-art methods,平均性能提升46.9%。该方法学习行动分布分数函数的梯度,并通过随机朗之万动力学步骤在推理期间优化该梯度场

策略学习分类

显式策略(相当于直接学习一个状态到动作的映射函数/控制器)和隐式策略(相当于学习一个关于观测和动作的能量/评价函数,引导策略向能量最小的地方去,类似Q学习和D学习)不同,扩散策略学习一个将噪声引导至动作的向量场,这样的方式能够使模型准确的对多模态动作分布进行建模,并适应高维动作序列

2 Diffusion Policy Formulation

2.1 DDPM

生成过程被视为从高斯噪声开始的迭代去噪(Stochastic Langevin Dynamics)。
核心公式: x k − 1 = α ( x k − γ ϵ θ ( x k , k ) + N ( 0 , σ 2 I ) ) x^{k-1}=\alpha (x^k-\gamma \epsilon_{\theta}(x^k,k)+N(0,\sigma^2I)) xk1=α(xkγϵθ(xk,k)+N(0,σ2I))
上述公式也可以用一个简单的噪声梯度下降代替: x ′ = x − γ ∇ E ( x ) x'=x-\gamma \nabla E(x) x=xγE(x)
其中,噪声预测网络 ϵ θ ( x k , k ) \epsilon_{\theta}(x^k,k) ϵθ(xk,k)用来预测梯度场 ∇ E ( x ) \nabla E(x) E(x) γ \gamma γ是学习率

2.2 DDPM训练过程

训练过程从抽取未加噪声的样本开始 x 0 x^0 x0,然后选择去噪的第k次迭代的噪声 ϵ k \epsilon^k ϵk,噪声预测网络的训练目标函数为:
L = M S E ( ϵ k , ϵ θ ( x 0 + ϵ k , k ) ) L = MSE(\epsilon^k,\epsilon_{\theta}(x^0+\epsilon^k,k)) L=MSE(ϵk,ϵθ(x0+ϵk,k))
噪声预测网络 ϵ θ \epsilon_{\theta} ϵθ的输入为加噪k步之后的数据 x k = x 0 + ϵ k x^k=x^0+\epsilon^k xk=x0+ϵk和去噪迭代步数k, ϵ θ \epsilon_{\theta} ϵθ旨在预测添加到 x 0 x^0 x0 中的噪声

2.2.1 细节描述

ϵ k \epsilon^k ϵk被定义为在第 k 次去噪迭代中添加的高斯噪声
ϵ k ∼ N ( 0 , σ k 2 I ) \epsilon^k \sim N(0,\sigma^2_{k}I) ϵkN(0,σk2I)
其中方差 σ k \sigma_k σk是一个依赖于当前去噪迭代步数k的值,由噪声调度决定。
噪声调度是扩散模型的核心设计之一,它定义了方差如何随着去噪步数的变化而变化。

2.2.2 噪声调度

噪声调度是一组预定义的参数,用于控制扩散过程中每一步的噪声水平。它不仅仅是定义方差 σ k 2 σ_k^2 σk2​,通常还关联着另外两个关键参数 α k ​ α_k​ αk γ k γ_k γk​。这些参数都是迭代步 k的函数。

  • σ k 2 σ_k^2 σk2​​​:​添加的噪声方差。它决定了在第 k步时,向数据中添加的噪声的强度。
  • α k α_k αk​​​:​保留信号的比例因子。它控制着在去噪步骤中保留多少上一步的信号。
  • ​ γ k ​​ ​γ_k​​ γk​​ :​梯度步长的学习率。它控制了根据预测的梯度(噪声)更新当前值的步长大小。
  • x k − 1 = α ( x k − γ ϵ θ ( x k , k ) + N ( 0 , σ 2 I ) ) x^{k-1}=\alpha (x^k-\gamma \epsilon_{\theta}(x^k,k)+N(0,\sigma^2I)) xk1=α(xkγϵθ(xk,k)+N(0,σ2I)) :这个公式可以理解为:新的、更干净的估计 x k − 1 x_{k−1} xk1是由上一轮估计 x k x_k xk的衰减值,减去一个基于预测梯度的修正项,再加上一个小的随机噪声扰动构成的。噪声调度就是为每一步 k定义 ( α k ​ , γ k ​ , σ k ​ ) (α_k​,γ_k​,σ_k​) (αk,γk,σk)这个三元组。

2.3 DDPM推理过程

  • 初始噪声采样​:从标准高斯分布中采样一个初始噪声作为起点,可以将其理解为 ε k ε^k εk,但此时方差 σ k 2 ​ σ_k^2​ σk2通常被设置为1(或接近1),因为这是噪声最大的状态。
  • 迭代去噪:执行 x k − 1 = α ( x k − γ ϵ θ ( x k , k ) + N ( 0 , σ 2 I ) ) x^{k-1}=\alpha (x^k-\gamma \epsilon_{\theta}(x^k,k)+N(0,\sigma^2I)) xk1=α(xkγϵθ(xk,k)+N(0,σ2I)),在每一步去噪中,​会重新注入一个方差更小的新噪声。这样做是为了防止结果收敛到一个单一的模(mode),从而保持生成动作的多模态性。

2.4 Diffusion for Visuomotor Policy Learning

扩散策略

将DDPM应用于视觉运动策略学习,主要修改包括:输出改为机器人动作序列,并引入观察条件化。公式修改为
A t k − 1 = α ( A t k − γ ϵ θ ( O t , A t k , k ) + N ( 0 , σ 2 I ) ) A_t^{k-1}=\alpha (A_t^k-\gamma \epsilon_{\theta}(O_t,A_t^k,k)+N(0,\sigma^2I)) Atk1=α(Atkγϵθ(Ot,Atk,k)+N(0,σ2I))
目标函数为
L = M S E ( ϵ k , ϵ θ ( O t , A t 0 + ϵ k , k ) ) L = MSE(\epsilon^k,\epsilon_{\theta}(O_t,A_t^0+\epsilon^k,k)) L=MSE(ϵk,ϵθ(Ot,At0+ϵk,k))

3 实现细节

3.1 网络结构

在这里主要讨论了两种去噪网络的结构选用,分别是CNN和Transformer,主要核心在于如何引入观测条件化

3.1.1 CNN-based

cnn

  • backbone​:使用一个1D时序卷积神经网络。该网络将整个动作序列 A t k ​ A_t^k​ Atk(形状为预测视野×动作维度)视为一个时间序列进行处理。
  • 条件化方式​:采用 ​FiLM(Feature-wise Linear Modulation)​。这是该实现的一个关键设计。FiLM机制在每一个卷积层之后、激活函数之前发生作用。
    • 过程​:视觉观察 O t ​ O_t​ Ot(已经通过编码器处理,现在是个紧凑特征向量)通过一个投影网络(如MLP)生成一组FiLM参数( γ γ γ β β β)。然后,这些参数被应用到CNN的每一个卷积层上,对每个通道的特征图(当前卷积层输出)进行缩放和偏移 ( γ ⋅ F + β ) (γ⋅F+β) (γF+β)
    • 优势​:实现了深度条件化,视觉信息从网络底层到顶层持续引导去噪过程,且计算高效(观察只需编码一次,用于所有去噪迭代)。
3.1.2 Transformer-based

transformer

  • backbone​:采用Transformer解码器架构​(类似minGPT)。噪声动作序列 A t k A_t^k Atk​被切分成多个时间步的token,每个token被嵌入后输入Transformer块。
  • 条件化方式​:采用交叉注意力(Cross-Attention)​
    • 过程​:视觉观察 O t O_t Ot​被编码为一个序列的嵌入。在Transformer的每一层中,​动作token作为Query,​观察嵌入作为Key和Value,进行多头交叉注意力计算。这使得每个动作token都可以动态地关注观察序列中最相关的部分。
  • 因果注意力掩码​:为确保自回归特性,对注意力矩阵应用因果掩码,使每个动作token只能关注自身及之前的时间步,防止信息泄露。
3.1.3 方式对比
特性基于CNN的实现基于Transformer的实现
核心机制1D时序卷积Transformer解码器 + 因果注意力
条件化方式FiLM​:深层、逐层特征调制交叉注意力​:动态、基于内容的查询
训练稳定性,开箱即用,超参数鲁棒相对敏感,需要更多调优
处理高频动作较弱,存在过度平滑效应,能捕捉快速变化
计算效率通常更高,推理速度更快参数更多,计算量可能更大
推荐场景大多数任务的首选起点,尤其是动作变化平滑的任务任务复杂、动作变化剧烈,且CNN性能不足时

3.2 视觉编码器

视觉编码器的主要作用是将图像编码为高维隐空间特征 O t O_t Ot,在这里使用未经过预训练的ResNet-18架构,通过端到端训练提取视觉特征。

3.3 噪声调度

采用Square Cosine Schedule,控制扩散过程的学习率调度,以平衡高低频动作信号。
平方余弦调度能更平滑地过渡不同噪声水平,通常比线性调度表现更好。

3.4 现实中的推理加速

使用DDIM(Denoising Diffusion Implicit Models)减少去噪迭代次数,实现实时控制。

4 扩散策略中的有趣特性

4.1 建立动作的多模态分布

在模仿学习的行为克隆中,对多模态分布的建模一直是个难题。但是扩散策略可以很好的解决。
扩散策略在动作生成中的多模态特性源自两个核心要素:

  • 底层随机采样机制与随机初始化过程。具体而言,在随机朗之万动力学框架中,每次采样开始时都会从标准高斯分布中抽取初始样本 A t k A_t ^k Atk,这为最终动作预测 A t 0 A_t ^0 At0设定了不同的收敛区域。
  • 通过大量迭代中的高斯扰动优化,即去噪过程中加入的高斯噪声,使得各个动作样本既能收敛又能自由穿梭于不同多模态的行动空间。
    多模态特性

4.2 位置控制

文章中对比了几种方法在速度控制和位置控制中表现的异同。传统方法通常在位置控制中表现打折扣,但是扩散策略更适合于位置控制模式。Diffusion Policy恰好能够克服位置控制的传统缺陷(多模态性)​,并充分利用其固有优势(无漂移)​,而其他方法则不能。

4.3 动作序列预测

Diffusion Policy通过其强大的生成能力,能够有效预测未来多个时间步的动作序列。这种“序列到序列”的映射方式,相比传统的“观察到单步动作”的映射,带来了三大关键优势:

  • 提升时序动作一致性
    • 问题​:在多模态场景中(例如,从左侧或右侧绕过障碍物),如果每一步都独立地从多模态分布中采样, consecutive actions could be drawn from different modes,导致动作抖动、轨迹在两种模式间跳变的不稳定行为。
    • Diffusion Policy的解决方案​:通过一次性预测整个动作序列,Diffusion Policy能够承诺于一个单一的模式。在Push-T任务中,策略在每次 rollout 中都会坚定地选择“从左绕”或“从右绕”的一条轨迹,并执行到底,从而生成平滑、一致、物理上可行的动作。
  • 对空闲动作的鲁棒性
    • 问题​:在人类示教数据中,经常存在“空闲动作”(Idle Actions),即操作者暂停时产生的一段位置不变或速度为零的动作序列。单步策略极易过拟合这种暂停行为,导致策略在执行时经常“卡住”。
    • Diffusion Policy的解决方案​:通过预测序列,策略能够更好地理解上下文。它能够识别出空闲动作是演示中的一个特殊“段落”,并在生成动作序列时,主动地“跳过”或“填充”上合理的动作,从而避免陷入停滞。
  • 减轻累积误差
    • 问题​:在速度控制下,单步预测的微小误差会随时间累积,导致最终位姿严重偏离。
    • Diffusion Policy的解决方案​:预测一个绝对位置序列(与位置控制协同)或一个长远的速度序列,能够在规划层面就考虑到整个时间窗口内的动作协调性,从而从根源上减少每一步的决策误差,避免误差累积。

4.4 训练稳定性

Diffusion Policy通过学习梯度函数而非能量函数,规避了估计难以处理的归一化常数这一难题,从而实现了显著优于隐式策略的训练稳定性。这使得它易于调参和部署。

4.5 控制理论的联系

对于一个简单的含有噪声的线性系统:
s t + 1 = A s t + B a t + w t , w t ∼ N ( 0 , Σ w ) s_{t+1}=As_t+Ba_t+w_t, w_t\sim N(0,\Sigma_w) st+1=Ast+Bat+wt,wtN(0,Σw)
假设演示数据是来源于一个LQR控制策略 a t = − K s t a_t=-Ks_t at=Kst

  • 收敛性断论:当预测步长为1时,迭代去噪过程,可以看作是在这个简单的凸优化问题(梯度场)上,从随机初始点(噪声)开始,​进行一系列梯度下降步骤。由于问题本身是凸的(线性系统),梯度下降必然会收敛到全局最优点,也就是 a t = − K s t a_t=-Ks_t at=Kst
  • 动力学模型学习:当预测步长大于1时,去噪过程需要产生 a t + t ′ = − K ( A − B K ) t ′ s t a_{t+t'}=-K(A-BK)^{t'}s_t at+t=K(ABK)tst,这展示出为了在未来时刻 t ′ t' t做出正确的动作 a t + t ’ a_{t+t’} at+t,策略需要知道到那个时刻的状态会变成什么样子,即隐式的学出了动力学模型。如果模型是非线性并且包含复杂噪声,这将更适合使用扩散策略。

5,6,7为实验分析,待补充

好的,关于多机器人系统的应用,以下是一些例子: 1. 目标检测和跟踪:多机器人系统可用于对目标进行检测和追踪。例如,在[1]中,研究人员提出了一种基于异质MRS的目标跟踪算法,通过使用具有不同传感器和处理能力的机器人,实现了对目标的高效跟踪。 2. 环境感知和地图生成:MRS也可用于进行环境感知和地图生成。例如,在[2]中,研究人员开发了一种自主异构MRS,用于在未知环境中进行地图制作。通过使用不同类型的机器人,包括地面和空中机器人,实现了高效且准确的地图生成。 3. 协作运输和队形控制:多机器人系统还可用于进行协作运输和队形控制。例如,在[3]中,研究人员提出了一种基于异质MRS的协作运输算法,通过使用具有不同运输能力的机器人,实现了高效的协作运输。 4. 勘探和地图制作:MRS在勘探和地图制作任务中也有广泛的应用。例如,在[4]中,研究人员开发了一种自主异构MRS,用于进行海底勘探和地图制作。通过使用不同类型的机器人,包括水下机器人和地面机器人,实现了高效且准确的勘探和地图制作。 引用的参考文献: [1] A. P. Delgado et al., "Heterogeneous multirobot system for efficient object tracking," in Robotics and Autonomous Systems, vol. 76, pp. 27-37, 2016. [2] Y. Zhang et al., "Autonomous heterogeneous multi-robot system for mapping in unknown environments," in Autonomous Robots, vol. 43, no. 1, pp. 177-192, 2019. [3] Y. Liu et al., "Heterogeneous multi-robot system for cooperative transport," in Robotics Science and Systems, 2018. [4] Y. Zhang et al., "Autonomous underwater and ground multi-robot system for seafloor exploration and map construction," in Journal of Field Robotics, vol. 38, no. 5, pp. 359-375, 2021.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值