Skip to content
Go back

Diffusion Policy: 基于扩散模型的机器人策略学习

Updated:
Edit page
12 min read

基于学习的机器人学其实本质上是一个生成式的过程,所以自然语言处理和计算机视觉中的一些模型可以用来生成动作序列和策略。

机器人学习示意图

DDPM

使用的模型是 DDPM (Denoising Diffusion Probabilistic Models)

通过加噪再去噪的过程,训练完成之后就可以直接采样噪声,然后训练好的 decoder 根据一些 condition 就可以还原出原来的 X0X_0。加噪和去噪的转移概率如下:

DDPM 模型图

KL 散度概念回顾

补充一下之前一直有的一个概念,什么是 KL 散度。KL 散度,也常被称为相对熵(Relative Entropy),是信息论和概率论中一个重要的概念。它用于衡量两个概率分布之间的差异性

衡量当你用你的模型 QQ 来近似真实分布 PP 时,所造成的信息损失(Information Loss)有多少。

这里给出公式:

KL散度公式

DDPM 的优化目标

回到 DDPM,它的目标是通过负对数似然估计来优化变分推理界:

DDPM优化目标

求解过程:

DDPM求解过程

转换一下其实就是求 Pdata(X)P_{data}(X) 和我训练 network 得到的 Pθ(X)P_θ(X) 的最小化 KL 散度:

KL散度最小化

(如果感兴趣可以去看看变分推理,边缘分布里面有引入了证据下界来估计一些观测数据的对数似然的下限。)

加噪过程的优化

在论文里面的加噪过程不是说在上一个时刻的基础上加噪,而是在原图的基础上,每一次按照手动设置的比例直接加上去:

加噪过程示意图

来源于这里:

闭合性(Closure Property)

两个高斯分布的和(或线性组合)仍然是一个高斯分布。这就是”闭合性”。

我们的前向过程是不断地累加高斯噪声。第一步是 x0x_0 + 高斯噪声,第二步是在此基础上再加高斯噪声…

利用高斯分布的闭合性,我们可以推导出一个**“一步到位”的公式**,直接从原始图像 x0x_0 计算出任意时刻 tt 的噪声图像 xtx_t,而无需真的去迭代 tt 次。

对应的数学公式

q(xtx0)=N(xt;αˉtx0,(1αˉt)I)q(x_t|x_0) = N(x_t; \sqrt{\bar{\alpha}_t}x_0, (1-\bar{\alpha}_t)I)

高斯分布闭合性公式

DDPM去噪过程

让网络去学习噪声(学习起来是更加简单的相比图像):

噪声学习示意图

详细数学讲解可以参看这篇博客What are Diffusion Models? | Lil’Log

关于 Diffusion Policy

在模仿学习(IL)的工作里面,有三种主流的思想:显式策略 (Explicit Policy)隐式策略 (Implicit Policy)扩散策略 (Diffusion Policy)

① 显式策略 (Explicit Policy)

多模态失效问题

显式策略多模态问题

② 隐式策略 (Implicit Policy)

③ 扩散策略 (Diffusion Policy)

扩散策略概念图

这里的condition变成了摄像头的观测来做去噪:

条件化扩散过程

在每一次需要生成动作时,视觉编码器(如 ResNet)会先处理一次输入的图像,将其转换成一个紧凑的特征向量 OtO_t。然后,在后续的几十步甚至上百步的迭代去噪过程中,这个固定的特征向量 OtO_t 会在每一步都被用作”条件”输入到噪声预测网络中,指导噪声的去除方向。

如果把视觉信息和动作混在一起作为被去噪的对象,那么每一步去噪都需要重新编码图像,这将导致无法接受的计算延迟,使其无法用于实时控制。

视觉条件化去噪过程

技术实现细节

闭环动作序列与滚动时域控制

滚动时域控制 (Receding Horizon Control)

策略会预测未来 TpT_p 步的动作序列,但只执行其中的前 TaT_a 步,然后根据最新的观测重新规划。预测长序列,执行短序列,不断循环。

滚动时域控制示意图

网络架构

网络架构选择

网络架构对比

控制策略优化

同时动作空间使用了位置控制取代速度控制,面对多模态问题(即同一个任务有多种正确做法)位置控制会更优。同时对”累积误差”的更强抵抗力:

位置控制 vs 速度控制

双相机设置

有两个相机,单独编码,一个用来保留深度信息,另一个用来保证训练稳定:

双相机设置

方法对比

不同方法的对比:(第二种是加了视觉的encoder)

方法对比结果

训练和推理过程

训练阶段:学习如何”去噪”

训练的目标是让一个噪声预测网络 ϵθ\epsilon_\theta 学会如何从一个带噪声的动作中,依据当前的视觉观测,准确地预测出所添加的噪声。

通过这个过程,模型学会了在任何观测条件下,从一个混乱的、带噪声的动作中恢复出清晰、有效的专家动作的能力。

推理阶段:从噪声生成动作

在机器人需要执行任务时,它会利用训练好的去噪网络来生成一个动作。

参考

  1. What are Diffusion Models? | Lil’Log - 扩散模型的详细数学讲解

  2. Denoising Diffusion Probabilistic Models - DDPM 原始论文项目页面

  3. Diffusion Policy: Visuomotor Policy Learning via Action Diffusion - Diffusion Policy 官方项目页面

  4. Diffusion Policy: Visuomotor Policy Learning via Action Diffusion (arXiv) - 论文原文

  5. 【论文精读】Diffusion Policy:机器人策略学习的新范式 - B站视频讲解

  6. 扩散模型在机器人控制中的应用 - B站相关视频

  7. Google Gemini - AI助手,协助理解和整理相关概念


Edit page
Share this post on:

Previous Post
拓荒