Github Repo

In this work, we seek to address this challenge by introducing a new form of robot visuomotor policy that generates behavior via a “conditional denoising diffusion process Ho et al. (2020) on robot action space”, Diffusion Policy.

在机器人的Action Space上使用Diffusion进行去噪作为policy model以获取action

pipeline:

Denoising Diffusion Probabilistic Models

使用DDPM进行训练.

去噪过程可以表示为:

其中:

  • 是学习的去噪网络, 是参数
  • 是训练的时候添加的高斯噪声

这个去噪过程可以表示为一次带噪声的梯度下降过程:

使用网络模型去学习预测梯度场

Diffusion for Visuomotor Policy Learning

把Observation 作为condition, 对action进行denoise生成.

为了时间连续性, 并为了最大发挥出diffusion的能力, 一次性生成一个chunk的action sequence. 执行其中一小部分, 然后根据新的observation进行replan, 重新生成新的action, 以执行闭环控制.

为了能预测当前的动作, 同时不需要预测未来动作以加速推理, 因此使用DDPM去拟合一个分布而不是原始的联合分布. 此时, 去噪公式变成:

Loss变成:

The first design decision is the choice of neural network architectures for .

有两种不同的去噪模型架构.

首先是CNN的架构. 使用1D的时序CNN进行卷积并进行了一部分改进:

  • 使用FiLM将Observation的Features作为条件用于去噪(将作为condition注入到CNN中间层的features中)
  • 仅预测动作轨迹, 而不是预测一个
  • 为了满足之间的闭环控制, 不使用inpainting-based的goal(给定头尾预测中间). 如果实在需要inpainting-based goal state conditioning, 可以使用FiLM将goal state作为条件嵌入
  • 最终经过个Conv1D+FiLM之后, 得到最终的梯度

但是使用CNN有问题, CNN架构由于有强大的[[Deep Learning#Convolutional Neural Networks (CNNs)#Key Concepts|归纳偏执]], 因此对于高频动作信号的处理不佳. 同时, CNN对于长期的视野的建模能力不佳.

Time-series diffusion transformer

按照pipeline图, 可以认为架构如下:

  • 首先将去噪步数转换成正弦编码, 拼接在最头上.
  • 然后将Observation经过MLP转换成Embedding空间中的向量拼接在后面
  • actions (这个是多个action的拼接, 长度为action horizon) 经过embedding得到action embedding, 拼接在Observation后面
  • 上述的部分作为query(应该是). action embeddings独立作为key和value, 与query做cross attention. 在cross attention的时候, 针对action embedding使用causal mask, action和observation部分两者完全可见
  • 将这个cross attention重复次, 将次之后的输出给到一个MLP, 让这个MLP生成

使用Transformer能够有更强大的表达能力, 能够处理高频的动作信号. 但是对超参数敏感, 更难得到一个好的结果. 使用更大的数据集可能能解决

Visual Encoder

使用ResNet-18作为encoder(未经过pretrain), 并做了以下改进:

  • 使用softmax pooling代替普通的pooling
  • DDPM中常使用EMA+Norm, 但是使用Exponential Moving Average无法和BatchNorm进行配合. 因此改成GroupNorm + EMA

Noise Schedule

使用iDDPM的 Square Cosine Schedule

Accelerating Inference for Real-time Control

使用DDIM的方法, 将训练中的去噪步数和推理时的去噪步数解耦, 在真实世界中有0.1s的推理延迟(使用100次训练去噪步数, 10次推理去噪步数, 在Nvidia 3080 GPU上推理)