当前位置:   article > 正文

Diffusion Policy: Visuomotor Policy Learning via Action Diffusion精读笔记(一)

diffusion policy

本篇内容主要解释论文中的主要部分
项目主页
论文链接

一、背景知识

在这里插入图片描述
为了理解这个封面图,先了解一下“(a)Explicit Policy”和“(b)Implicit Policy”。

1. Explicit Policy显式策略

Explicit Policy是行为克隆(behavior cloning)中的一种常见方法,它直接从世界状态或观察结果映射到动作。具体来说,Explicit Policy可以看作是一种监督回归任务,旨在学习将观察结果映射到动作的映射函数。在机器人学习领域,行为克隆通常涉及使用人类演示者提供的数据来训练一个模型,该模型能够重现演示者的行为。
以下是文中的定义。

The simplest form of explicit policies maps from world state or observation directly to action. They can be supervised with a direct regression loss and have efficient inference time with one forward pass.
从世界状态或观察结果直接映射到行动,它们可以通过直接回归损失进行监督,并且只需一次前向传递即可实现高效推理。

在这里插入图片描述
图中展示了三种不同的动作表示方法:

  1. 标量(Regression):这种表示方法将动作表示为一个实数,通常用于连续动作空间。
  2. 混合高斯(Mixture of Gaussians):这种表示方法将动作表示为一个高斯混合模型,通常用于离散动作空间。
  3. 分类(Categorical):这种表示方法将动作表示为一个离散的类别,通常用于离散动作空间。

Explicit Policy高效但是无法适应高精度和多模态的任务。

2. Implicit Policy隐式策略

再来了解“Implicit Policy”,以下是文中的定义。

Implicit policies define distributions over actions by using Energy-Based Models (EBMs). In this setting, each action is assigned an energy value, with action prediction corresponding to the optimization problem of finding a minimal energy action. Since different actions may be assigned low energies, implicit policies naturally represent multi-modal distributions.
隐式策略通过使用基于能量的模型(EBM)来定义行动分布。在这种情况下,每个动作被分配一个能量值,动作预测对应于寻找最小能量动作的优化问题。由于不同的行动可能被赋予较低的能量,因此,隐性政策天然地代表了多模态分布。

在这里插入图片描述
隐式策略是一种策略学习方法,与显式策略不同,它不直接输出具体的动作,而是通过优化某种能量函数来找到最佳动作。

  1. 能量函数:隐式策略通过一个能量函数 E θ ( o , a ) E_\theta(o, a) Eθ(o,a) 来定义状态 o o o 和动作 a a a 之间的关系。这个能量函数通常是一个参数化的模型,其参数为 θ \theta θ

  2. 优化过程:在给定状态 o o o 的情况下,隐式策略通过找到使能量函数最小化的动作 a a a 来决定执行的动作。这可以表示为:
    a ^ = arg ⁡ min ⁡ a E θ ( o , a ) \hat{a} = \arg \min_a E_\theta(o, a) a^=argminaEθ(o,a)

    这个过程需要求解一个优化问题,即找到能量函数最低点对应的动作。

  3. 适用场景:隐式策略特别适用于多模态分布(即在相同状态下可能有多个合理的动作选择)的场景,通过能量函数的优化可以更好地捕捉复杂的动作分布。

3.参考的典型显式策略和隐式策略

在这篇论文中,作者介绍了一种新的策略——扩散策略(Diffusion Policy),并对比了其他显式和隐式策略的特点。具体参考如下:

  • Mandlekar et al. (2021) 提出了使用高斯混合模型的显式策略,这种策略适用于复杂多模态动作分布。
  • Shafiullah et al. (2022) 提出了分类模型的显式策略,适用于动作空间较小且离散的任务。
  • Florence et al. (2021) 和 Wu et al. (2020) 提出了隐式策略,通过优化能量函数来选择动作,适用于多模态分布任务。

二、扩散策略

扩散模型是一种概率生成模型,它将随机取样的噪声迭代地从一个潜在的分布中提炼出来。它们也可以从概念上理解为学习一个隐式动作得分的梯度场,然后在推理过程中优化该梯度。

2.1去噪扩散概率模型(DDPMs)

这是一种经典的扩散模型,出自于《Denoising Diffusion Probabilistic Models
主要的实现方式:
在这里插入图片描述
众所周知,Diffusion Processes分为前向过程和反向过程,上图中从右至左为前向过程,从左至右则为反向过程。前向过程是一个马尔可夫链,它逐渐向数据中添加高斯噪声,一种统计学上常见的噪声类型,数据分布呈高斯分布(正态分布)。反向过程是一个参数化的马尔可夫链,用于从噪声数据中恢复出原始数据。
在这里插入图片描述
左边的Training就是前向过程的简要概括,右边的Sampling则是反向过程的简要概括。

2.2 DDPM在本篇论文中的应用

而在本篇论文中,简要概括了这种DDPM的作用:
在这里插入图片描述

  • denoising iteration:去噪迭代,重复的过程,每一次都会减少数据中的噪声,直至达到预期质量。
  • ε_θ (noise prediction network):带有参数θ的噪声预测网络,用于预测在迭代过程中应该移除的噪声量。

在这里插入图片描述
在框中的内容就是在每次迭代中添加的高斯噪声,σ2是方差,I 是单位矩阵。
在这里插入图片描述

  • α, γ, σ (noise schedule):这些参数是迭代步k的函数,也被称为噪声计划。它们控制着去噪过程中的学习率(α),噪声预测的影响(γ),以及添加的高斯噪声的量(σ)。
  • ∇E(x) (gradient field):梯度场,表示在给定点的成本函数的斜率或变化率。 在上述方程中,α, γ, 和σ的选择对整个去噪过程的稳定性有重要影响。α略小于1时可以提高稳定性,而关于噪声计划,原文:“在我们的控制任务中,我们通过实验发现,iDDPM中提出的平方余弦计划表最适用于我们的任务。”
  • 平方余弦计划 (Square Cosine Schedule):出自论文《Improved Denoising Diffusion Probabilistic Models》,这个策略的目的是在采样过程的中间步骤添加更多的噪声,而在开始和结束时添加较少的噪声。而传统的DDPM模型使用一个线性噪声调度,即每一步的噪声方差是逐渐增加的。在噪声计划(Noise Schedule)中使用平方余弦计划后,可以在采样过程中减少大约一半的步骤,而几乎不影响样本的质量。
  • The Denoising Diffusion Implicit Models (DDIM):出自论文《Denoising Diffusion Implicit Models》这里主要借鉴了这种方式在扩散过程中进行加速。DDIM论文介绍了一种在图像质量几乎没有tradeoff的情况下加快图像生成的方法。它通过将扩散过程重新定义为非马尔可夫过程来做到这一点。

三、技术路径

3.1 网络架构

在这里插入图片描述

3.1.1 CNN

我们采用了Janner等人( 2022b )的一维时序CNN,并做了一些修改。
本篇基于CNN的Diffusion的方法主要基于论文《Planning with Diffusion for Flexible Behavior Synthesis》做出了部分修改,下图就是出自于该论文。
在这里插入图片描述
在这里插入图片描述
Figure A1便是《Planning with Diffusion for Flexible Behavior Synthesis》使用的架构。

整体架构类似于已经在基于图像的扩散模型中取得成功的U - Nets类型,但是使用二维空间卷积替换为一维时间卷积(图A1 )。

而Diffusion Policy中使用的CNN架构则是:

首先,我们仅通过对观察特征Ot使用特征线性调制(FiLM)[35]以及去噪迭代k来建模条件分布p(A_t | O_t),如图2(b)所示。其次,我们只预测动作轨迹,而不是连接的观察动作轨迹。第三,由于与我们的框架使用逐渐缩小的预测视野不兼容,我们移除了基于修复的目标状态条件。然而,使用与观察相同的FiLM条件方法,目标条件仍然是可能的。

特征线性调制(Feature-wise Linear Modulation,FiLM)层是一种神经网络模块,它可以用来实现特征的条件调整。FiLM层的主要功能是对输入特征进行缩放(scaling)和偏移(shifting),并且这个缩放和偏移是可以学习的。

最后文中也提到,CNN可以开箱即用,不需要怎么调整参数,但是不太适应快速变化的动作。

3.1.2 Transformer

时间序列扩散变压器 为了减少CNN模型中的过平滑效应[49],我们引入了一种基于变压器的全新DDPM,它采用了来自minGPT[42]的变压器架构进行动作预测。
这种方法就来自于论文《Behavior Transformers: Cloning k modes with one stone
在这里插入图片描述

在这个模型中,带有噪声的动作被作为输入标记传递给Transformer的解码器块。模型的输入还包括一个正弦嵌入,用来指导扩散过程。观察结果通过一个共享的多层感知机(MLP)转化为嵌入序列,然后作为特征输入到Transformer解码器堆栈中。解码器堆栈中的每个输出标记预测了一个“梯度”。实验结果表明,当任务复杂且动作变化频繁时,基于Transformer的模型表现最好。但是,这个模型对超参数(影响模型性能的参数)更加敏感,并且目前训练起来较为困难,这可能是未来改进Transformer训练技术或增加数据规模时需要解决的问题。

总结:

一般建议,我们建议在新任务上首先尝试基于CNN的扩散策略实现。如果由于任务复杂性或高频率的动作变化导致性能较低,那么可以使用时间序列扩散变压器(Time-series Diffusion Transformer)公式来潜在地提高性能,但这可能需要额外的调优。

3.2 模型训练

在这里插入图片描述
训练过程

  1. 从数据集中随机抽取一个未添加噪声的样本 x0
  2. 随机选择一个去噪迭代步数 k 。
  3. 根据迭代步数 k ,从标准正态分布中采样一个随机噪声 εk
  4. 在样本 x0 中添加噪声 εk ,得到带有噪声的样本 xk
  5. 让噪声预测网络 ε_θ 预测从数据样本 xk 中添加的噪声 εk
  6. 计算预测噪声 ε_θ 和真实噪声 εk 之间的均方误差损失,并最小化这个损失。
  7. 最小化上述损失函数也等价于最小化数据分布 p(x0) 和从DDPM中抽取的样本分布 q(x0) 之间的KL散度下界。

总之,DDPM的训练是通过让网络预测给定观测样本添加的噪声,并最小化预测噪声和真实噪声之间的差异,从而学习得到一个能够从噪声中生成数据分布的生成模型。

3.3 视觉–动作训练

基于公式(1)得到的公式(4);基于公式(3)得到的公式(5)。其中将x0 更换为A0_t,并增加了观察O_t。
在这里插入图片描述

  1. 视觉运动策略:指机器人根据视觉输入(观察)来决定执行的动作策略。
  2. 动作序列预测:在给定时间点,模型根据最近的观察数据预测一系列未来的动作。
  3. 条件分布:在统计学中,指的是给定某些变量值的情况下另一个变量的概率分布。这里特指给定观察数据O_t时动作A_t的概率分布。
  4. 递减视界控制(Receding Horizon Control):一种控制策略,它在一个固定的时间窗口内进行滚动优化,不断根据新的信息更新计划。
  5. 训练损失(Training Loss):在机器学习中,用于衡量模型预测值与实际值之间差异的指标,这里指的是均方误差(MSE),用于指导模型的学习过程。

原文中对于视觉编码器的表述如下:

视觉编码器将原始图像序列映射为一个潜在嵌入Ot,并通过扩散策略进行端到端的训练。不同的相机视图使用独立的编码器,每个时间步的图像独立编码,然后拼接形成Ot。我们使用标准的ResNet - 18 (未进行预训练)作为编码器,并做了如下修改:
1 )将全局平均池化替换为空间softmax池化,以保持空间信息;
2 )将Batch Norm替换为Group Norm Wu and He ( 2018 ),用于稳定训练。当归一化层与指数移动平均(常用于DDPMs)一起使用时,这一点很重要。

四、总结

本篇主要根据论文中内容和引申内容,做出了对于主要技术路线的讲解,接下来可能还会继续更新关于代码和实验复现的相关内容,欢迎批评指正。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/爱喝兽奶帝天荒/article/detail/1004560
推荐阅读
相关标签
  

闽ICP备14008679号