赞
踩
为了理解这个封面图,先了解一下“(a)Explicit Policy”和“(b)Implicit 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.
从世界状态或观察结果直接映射到行动,它们可以通过直接回归损失进行监督,并且只需一次前向传递即可实现高效推理。
图中展示了三种不同的动作表示方法:
Explicit 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)来定义行动分布。在这种情况下,每个动作被分配一个能量值,动作预测对应于寻找最小能量动作的优化问题。由于不同的行动可能被赋予较低的能量,因此,隐性政策天然地代表了多模态分布。
隐式策略是一种策略学习方法,与显式策略不同,它不直接输出具体的动作,而是通过优化某种能量函数来找到最佳动作。
能量函数:隐式策略通过一个能量函数 E θ ( o , a ) E_\theta(o, a) Eθ(o,a) 来定义状态 o o o 和动作 a a a 之间的关系。这个能量函数通常是一个参数化的模型,其参数为 θ \theta θ。
优化过程:在给定状态
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)
这个过程需要求解一个优化问题,即找到能量函数最低点对应的动作。
适用场景:隐式策略特别适用于多模态分布(即在相同状态下可能有多个合理的动作选择)的场景,通过能量函数的优化可以更好地捕捉复杂的动作分布。
在这篇论文中,作者介绍了一种新的策略——扩散策略(Diffusion Policy),并对比了其他显式和隐式策略的特点。具体参考如下:
扩散模型是一种概率生成模型,它将随机取样的噪声迭代地从一个潜在的分布中提炼出来。它们也可以从概念上理解为学习一个隐式动作得分的梯度场,然后在推理过程中优化该梯度。
这是一种经典的扩散模型,出自于《Denoising Diffusion Probabilistic Models》
主要的实现方式:
众所周知,Diffusion Processes分为前向过程和反向过程,上图中从右至左为前向过程,从左至右则为反向过程。前向过程是一个马尔可夫链,它逐渐向数据中添加高斯噪声,一种统计学上常见的噪声类型,数据分布呈高斯分布(正态分布)。反向过程是一个参数化的马尔可夫链,用于从噪声数据中恢复出原始数据。
左边的Training就是前向过程的简要概括,右边的Sampling则是反向过程的简要概括。
而在本篇论文中,简要概括了这种DDPM的作用:
在框中的内容就是在每次迭代中添加的高斯噪声,σ2是方差,I 是单位矩阵。
我们采用了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可以开箱即用,不需要怎么调整参数,但是不太适应快速变化的动作。
时间序列扩散变压器 为了减少CNN模型中的过平滑效应[49],我们引入了一种基于变压器的全新DDPM,它采用了来自minGPT[42]的变压器架构进行动作预测。
这种方法就来自于论文《Behavior Transformers: Cloning k modes with one stone》
在这个模型中,带有噪声的动作被作为输入标记传递给Transformer的解码器块。模型的输入还包括一个正弦嵌入,用来指导扩散过程。观察结果通过一个共享的多层感知机(MLP)转化为嵌入序列,然后作为特征输入到Transformer解码器堆栈中。解码器堆栈中的每个输出标记预测了一个“梯度”。实验结果表明,当任务复杂且动作变化频繁时,基于Transformer的模型表现最好。但是,这个模型对超参数(影响模型性能的参数)更加敏感,并且目前训练起来较为困难,这可能是未来改进Transformer训练技术或增加数据规模时需要解决的问题。
总结:
一般建议,我们建议在新任务上首先尝试基于CNN的扩散策略实现。如果由于任务复杂性或高频率的动作变化导致性能较低,那么可以使用时间序列扩散变压器(Time-series Diffusion Transformer)公式来潜在地提高性能,但这可能需要额外的调优。
训练过程:
总之,DDPM的训练是通过让网络预测给定观测样本添加的噪声,并最小化预测噪声和真实噪声之间的差异,从而学习得到一个能够从噪声中生成数据分布的生成模型。
基于公式(1)得到的公式(4);基于公式(3)得到的公式(5)。其中将x0 更换为A0_t,并增加了观察O_t。
原文中对于视觉编码器的表述如下:
视觉编码器将原始图像序列映射为一个潜在嵌入Ot,并通过扩散策略进行端到端的训练。不同的相机视图使用独立的编码器,每个时间步的图像独立编码,然后拼接形成Ot。我们使用标准的ResNet - 18 (未进行预训练)作为编码器,并做了如下修改:
1 )将全局平均池化替换为空间softmax池化,以保持空间信息;
2 )将Batch Norm替换为Group Norm Wu and He ( 2018 ),用于稳定训练。当归一化层与指数移动平均(常用于DDPMs)一起使用时,这一点很重要。
本篇主要根据论文中内容和引申内容,做出了对于主要技术路线的讲解,接下来可能还会继续更新关于代码和实验复现的相关内容,欢迎批评指正。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。