paper解读:diffusion policy

用于自己学习记录,如有错误,欢迎大家讨论!!!!!

研究背景

1.机器人的控制策略主要有3大类别:

   (1) 显式方程的动作策略,根据条件(这里说的视觉,还可以是wrench)给出动作策略。

     (2) 隐式方程的动作策略,根据当前条件、动作的得分,优化出动作策略

     (3) 条件去噪扩散动作生成,根据条件,带噪声的动作,生成动作策略

    2. 扩散策略的三大重要特征(优点)

   (1)多模态动作分布表示:这意味着它能够生成多种可能的动作序列,即使这些序列在动作空间        中不是连续的或者有多个峰值(即多模态)

   (2)高维输出空间:这意味着策略不仅能够决定单一步骤的动作,还能够推断出一系列未来动作      (高维),这对于保持动作的连贯性和避免短视的决策至关重要。

   (3)稳定训练:不需要进行负采样来估计归一化常数,通过直接学习能量函数的梯度,绕过了对        归一化常数的估计,从而实现了更稳定的训练过程(需要了解强化学习)。

    3.为了将模型更好地应用在real机器人上:

   (1)闭环动作序列:很好地结合了预测高维动作策略序列的能力和递推视觉控制,实现策略以闭        环方式持续重新规划其动作,同时保持时间上的动作一致性,从而在长视距规划和响应性之间        实现平衡。

   (2)视觉条件化:引入了一种视觉条件化扩散策略,其中视觉观测被视为条件而不是联合数据分       布的一部分(这里就是说的是传统GMM策略表示中机器人状态-动作的联合分布),策略只需         提取一次视觉表示,而无需考虑去噪迭代(这里说的是如果作为被训练数据的话,需要反复迭       代优化),从而大大减少了计算量,并实现了实时动作推理。

   (3)时间序列扩散transformer:提出了一个transformer为基础框架的扩散模型,为了克服CNN          扩散模型存在的过平滑影响。能做出快速响应。

    4.视觉运动的扩散策略学习(原理)

    (1)扩散过程(DDPM)的回顾

        (a)从高斯噪声中采样出Xk开始,执行K次去噪迭代,以生成一系列噪声逐渐减少的中间动          作 (Xk-1,….X0),直到形成所需的无噪声输出X0.

       (b)上述的去噪过程可以看作一个单一的噪声梯度下降过程:

               这里解释了噪声估计网络对噪声的预测,其实相当于预测到了能量函数的梯度场,从而             调整X(动作)的位置(就是在整个动作值域内的取值)。公式中E(X)就相当于能量函               数,▽E(x)就是能量函数的梯度,也是噪声。

      (c)训练噪声预测模型过程:

             首先从数据集中随机抽取未修改的样本X0,开始设置K次迭代。在每次迭代过程中,采样        一个具有适当方差的随机噪声ek(这里的k是代表第k次),然后要求噪声估计网络从添加噪声的数        据样本中预测噪声,损失函数使用MSE:

    (2)DDPM的改造(针对机器人的):

      (a)闭环动作序列预测:

          在时间步骤 ,策略将最新的 个观察数据 作为输入,并预测 个动作,其中 个       动作在不重新规划的情况下在机器人上执行
     (在此定义中, 表示观测范围, 表示动作预测范围,而 则代表了动作执行范围)

      (b)视觉观察条件化:

          使用DDPM(扩散去除噪声过程模型)来近似条件动作分布 ,使得模型能够          在 不推断未来状态的情况下预测基于观察的动作。而不是建模一个条件-动作的总的分布。

           去除噪声的公式:

             噪声模型的损失函数:

       (3)关键的设计:

          (a)噪声估计模型的网路结构:

              CNN的(当期望的动作序列随着时间快速而急剧变化时(如velocity命令动作空间),它的              表  现很差

         使用特征线性调制的办法,根据状态(observation)条件(迭代次数K,观察)给出缩放和     偏移的参数:a 、 b; 对动作信息的特征进行修饰,修饰后的特征经过连续的卷积神经网络,       得到当前状态和动作(带噪声)下的噪声,对当前动作(带噪声)去除噪声,生成更清晰的动        作,循环K次,生成动作。

        但是这种结构的diffusion model,对需要快速反应的任务效果不好,可能是因为卷积对低频信   号更友好。

          Transformer结构的

          为了解决基于CNN的diffusion modle存在过度平滑,无法快速动作的缺陷。设计了基于               transformer的diffusion modle。迭代次数K、条件嵌入(embeding)、动作嵌入(embeding)作           为transformer解码器的输入特征,同时动作嵌入(embeding)也作为解码器的输入token。这样          解码器会生成当前条件下的噪声序列。

   (4)视觉条件编码器:

         文中使用修改的resnet18作为编码器,将图像序列编码为嵌入条件特征。修改主要是两个部     分:使用空间softmax池化代替全局池化、使用GroupNorm代替BatchNorm。

    (5)噪声调节器

          使用平方余弦调度,用来调节在denoise过程中:三个参数。

    (6)快速推理

          解耦了训练和推理过程中denoise的迭代次数,允许在推理时,使用较少的推理次数,保证        闭环控制的有效。

5. diffsion policy 主要解决问题:

  (1)一种新的策略的表示,有效建模了多模态动作分布,相较于以往的分类分布、GMM等表达方式具有更高的精度,而且避免了不同规模之间的震荡

分类分布对于低维的动作,有一定的效果,但是当动作的维度变大以后,动作的类别呈指数上升。模型会很大。为了解决这一问题,研究人员将动作各维度信息进行解耦,针对每一维信息进行采样,然后组合成N维的动作,这样会产生很多本来不存在的动作模态,如{(1,2)(4,5)},解耦以后{(1,4),(1,5),(2,4)(2,5)}

GMM这种多高斯混合模型的方法,将n维动作信息和“加一维”信息(如空间、时间)用多个N+1维高斯模型模拟,然后根据给定的加1维信息选择合适的高斯模型,进行采样得到N维动作。

Diffusion policy可以建模多模态动作分布的内在原因在于:随机初始化和随机采样

  (2)提供了一种训练方法:

    之前的训练方法是基于能量函数的,要训练出能量函数,和归一化常数。

    但是归一化常数难以估计,故才采用下面的办法,构造损失函数:

    这样就只用估计能量函数,能够使得好的样本,能量小,损失小

坏的动作样本,能量大,损失大。但是需要收集大量负样本,尤其是动作维度多时,负样本会很多,很难收集,这会造成收敛难,因此diffusion的训练过程的平稳性相较于强化学习要好的多

而diffsion policy,估计的噪声就相当于估计能量函数的梯度,不用收集负样本。

6. 实验设计:

(1)在仿真实验中,在6个任务上进行了对比实验:展示了各种方法最好的表现/最后10个checkpoint的平均表现,实验分居于视觉的,基于状态的,进行了两大组实验。

额外的两个仿真实验:

  (2) 对视觉条件编码器的选择做了消融

(3)在realwork task中做了Push-T Task、Mug Flipping Task、Sauce Pouring and Spreading实验

注:会在其他文章讲解lstm-gmm、IBC 、BET的基本原理

### 扩散策略在机器学习中的概念 扩散模型是一种强大的生成模型,在图像、音频和其他数据类型的生成任务中表现出色。这些模型通过逐步向输入数据添加噪声来训练,随后再学习如何逆转这个过程以去除噪声并恢复原始数据[^1]。 具体来说,扩散策略Diffusion Policy)通常指利用这种去噪机制来进行决策制定的过程。这类方法可以应用于强化学习领域,其中代理(agent)学会执行一系列动作以最大化累积奖励。在这种背景下,扩散策略能够帮助解决连续控制问题,并且已经在机器人技术和自动驾驶汽车等领域显示出巨大潜力[^2]。 为了实现这一点,研究人员开发出了基于变分推理框架下的算法,使得模型能够在高维空间内有效地探索可能的状态转移路径。此外,还引入了时间反演技术,允许更灵活地调整采样步骤的数量以及每一步骤之间的间隔大小,从而提高了效率和性能表现[^3]。 ```python import torch from diffusers import DiffusionPipeline pipeline = DiffusionPipeline.from_pretrained('model_name') image = pipeline(prompt="an example image").images[0] ``` 此代码片段展示了如何加载预训练好的扩散模型并通过给定提示词生成一张图片。虽然这只是一个简单的例子,但它体现了扩散策略背后的核心思想——即通过对潜在分布施加渐进式的扰动来引导最终输出的结果。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值