来源:投稿 作者:橡皮
编辑:学姐
论文地址:https://arxiv.org/abs/2312.11598
项目主页:https://skilldiffuser.github.io/
unset
unset
摘要:
unset
unset
扩散模型已显示出机器人轨迹规划的巨大潜力。然而,从高级指令生成连贯的轨迹仍然具有挑战性,尤其是对于需要多种连续技能的远程组合任务。我们提出了 SkillDiffuser,这是一个端到端的分层规划框架,将可解释的技能学习与条件扩散规划相结合,以解决这一问题。在更高层次上,技能抽象模块从视觉观察和语言指令中学习离散的、人类可理解的技能表示。然后使用这些学习到的技能嵌入来调节扩散模型,以生成与技能一致的定制潜在轨迹。这允许生成遵循可学习技能的不同状态轨迹。通过将技能学习与条件轨迹生成相结合,SkillDiffuser 可以根据不同任务的抽象指令产生连贯的行为。在 Meta-World 和 LOReL 等多任务机器人操作基准上的实验展示了 SkillDiffuser 的最先进的性能和人类可解释的技能表示。
unset
unset
1 引言
unset
unset
最近的研究表明,与以前的模型相比,扩散模型具有更出色的生成能力,有助于在各个维度上增强强化学习,包括动作轨迹的生成、策略表示和数据合成。然而,它们为复杂任务生成连贯轨迹的能力在性能和通用性方面仍然存在挑战,因为这些任务通常需要完成由许多协调密集型连续步骤组成的抽象指令。
先前的方法(例如决策扩散器)旨在通过将复杂任务分解为更简单的子技能(组织在预定义的技能库中)来应对这一挑战。这些方法依赖于使用独热技能表示来调节扩散模型,以为每个子技能生成轨迹。然而,这些技术在尝试从广泛的数据集中自主进行端到端学习时遇到了困难,这阻碍了它们的可扩展性和实现端到端学习的能力。此外,如果不明确学习可重复使用的技能,模型就无法捕捉复杂的步骤间依赖关系和约束,从而产生支离破碎且不合逻辑的轨迹。将模糊的指令分解为可学习的子目标和技能可以更好地使模型遵循逻辑步骤顺序,尊重任务结构,并在不同任务之间转移通用程序(例如可重复使用的技能抽象和可适应的基于技能的扩散)。这种以技能为中心的范式为扩散模型铺平了道路,该模型可以解释和执行需要大量连续步骤的复杂抽象指令。
受上述观察的启发,我们提出了 SkillDiffuser,这是一个分层规划框架,将高级技能学习与低级条件扩散执行统一起来。如图 1 所示,与以前的语言条件扩散策略相比,SkillDiffuser 能够以更高的可迁移性端到端解释和执行复杂指令。SkillDiffuser 通过学习针对任务指令量身定制的可重用技能来诱导可解释的亚潜在目标。该框架根据这些学习到的技能设置扩散模型,以生成与总体目标一致的定制、连贯的轨迹。通过将分层技能分解与条件轨迹生成相结合,SkillDiffuser 无需依赖预定义的技能库即可实现一致的、以技能为导向的行为。此外,SkillDiffuser 旨在仅基于视觉观察进行操作,无需机器人本体感受(即完全观察到的状态)。这种端到端方法具有可学习的技能,使 SkillDiffuser 能够有效地在各种任务中执行抽象指令。
SkillDiffuser 的工作原理如下。1) 高级技能学习使用具有矢量量化的技能预测器,将任务提炼为离散且可解释的技能。我们采用固定的预测范围,而不是预测技能持续时间,即定期预测技能。这种基于范围的离散化过程将视觉和语言输入无缝集成到指导低级扩散模型的连贯技能集中。2) 对于基于技能的轨迹生成,我们使用无分类器扩散模型作为策略,将技能直接嵌入作为指导。此设置允许生成与技能规范一致的多模态状态轨迹,同时避免过度拟合封闭数据集。3) 为了能够从预测状态进行动作推断,我们训练了一个逆动力学网络来解码生成的两个连续帧之间的运动。通过将状态预测与运动解码分开,SkillDiffuser 产生了一个完全自适应的框架,用于通过可转移的状态空间计划来指导不同的体现。
我们在 LOReL Sawyer 和 Meta-World数据集上评估了该模型在技能学习和多任务规划方面的表现,并考虑到现实世界场景中的机器人代理必须使用有限的状态信息(主要是视觉观察)进行操作,因此采用了关键的实验设置。此外,我们还展示了未见过的组合任务的成功率、学习技能的可重用性和可视化,以说明该模型确实能够抽象出不仅有效而且人类可以理解的高级技能,使我们更接近以直接方式获取技能的智能代理。我们的贡献有三方面:1)我们通过技能学习提出了一个端到端的分层规划框架,用于子目标抽象;2)我们采用以学习到的技能为条件的无分类器扩散模型来生成面向技能的可转移状态轨迹;3)我们在复杂的基准上展示了最先进的性能,并提供了可解释的可视化人类可理解的技能表示。
图 1. SkillDiffuser 与之前的语言条件扩散器的比较。SkillDiffuser 利用高级抽象将视觉观察和语言指令转化为具有语言基础的人类可理解的技能。然后它使低级扩散模型条件化这些技能,不仅提高了多步骤组合任务的执行性能,而且大大增强了框架的泛化和适应性。
unset
unset
2 相关工作
unset
unset
2.1 模仿学习与多任务学习
模仿学习 (IL) 已从基础行为克隆发展为复杂的多任务学习框架。传统方法依赖于来自专家演示的监督学习,而最近的进展已转向从专家数据中学习奖励或 Q 函数,从而增强模仿复杂行为的能力。多任务 IL带来了新的挑战,其中模仿者接受各种任务的训练,旨在推广到新场景,任务规范范围从矢量状态到视觉和语言描述。
多任务学习方法通常利用共享表征来同时学习一系列任务,从而提高学习过程的灵活性和效率。Meta-World 基准评估了多任务和元强化学习,强调了对能够快速适应的算法的需求。在此基础上,Prompting Decision Transformer展示了使用特定于任务的提示的少样本策略泛化。此外,扩散策略也在多任务设置中得到了探索,这表明它能够熟练地跨任务生成各种行为。然而,与利用状态输入或访问机器人本体感受的方法不同,SkillDiffuser 仅使用原始视觉输入。
2.2 技能探索和分层学习
技能学习是机器人获得新能力或改进现有能力的过程,由于其在使自主系统能够适应新任务、随着时间的推移提高性能以及与人类和复杂环境自然交互方面发挥着关键作用,因此越来越受到关注。传统上,该领域受到手工制作的特征和专家演示的影响。
随着深度学习的发展,Eysenbach 等人和 A. Sharma 等人研究了学习方法中的技能发现,实现了以学习到的潜在变量为条件的策略,并在整个轨迹中保持一致的技能代码。在通过语言指令进行技能学习的领域,LISA 脱颖而出,通过在每个轨迹中采样多种技能,以独特的方式整合语言条件。
我们的 SkillDiffuser 遵循这种方式在较高级别提取每个指令的子技能。但不同的是,SkillDiffuser 在较低级别采用可适应的扩散策略,以不同的子技能为条件生成不同的动作,这形成了一个创造性的分层规划框架,也推动了强化学习分层技术的研究。
2.3 使用扩散模型进行规划
扩散模型近年来在图像合成中取得了重大突破,并在各种生成应用中展现出令人欣喜的结果。一项直接使用扩散进行规划的开创性工作是扩散器,它为在行为合成中使用扩散模型奠定了基础。随后,这类规划方法的一个分支在各种决策任务中取得了最先进的性能。其中,Chi 等人在中所做的工作引入了学习动作分布得分函数梯度的概念并对其进行迭代优化,展示了其在视觉运动策略学习中的巨大潜力。这些工作进一步扩展了这一方向,并增强了基于扩散的规划器的多功能性和泛化能力。
我们的方法受到无分类器扩散指导的启发,与分类器指导模型相比,它具有显著的优势。通过采用无分类器方法,我们可以规避与训练奖励模型和 Q 函数相关的挑战,这在许多复杂度非常高的现实世界规划场景中尤其麻烦。最近的研究也扩展了这个方向,它们使用条件扩散模型来生成定制轨迹。决策扩散器就是一个例子,旨在为预定义的技能库生成轨迹。然而,与我们的方法不同,它不能以端到端的方式自主学习技能抽象,这使得它很难扩展到更多任务。这凸显了具有动态、可学习技能抽象的扩散模型的必要性,以促进复杂的指令执行。
unset
unset
3 预备知识
unset
unset
3.1 状态扩散规划
如前文所述,扩散模型是一种很有前途的工具,可用于解决强化学习中的规划问题,该问题可视为马尔可夫决策过程 (MDP)。在 MDP 框架
中,规划策略旨在确定一个最优动作序列
,该序列可在有限时间范围 T 内最大化预期累积奖励,由状态转换动力学 T 和奖励函数 R 控制。S 是状态空间,A 是动作空间。
通过将状态轨迹视为序列数据 τ,利用序列建模,扩散概率模型将规划概念化为迭代去噪过程。该模型通过反转前向扩散过程逐步细化轨迹,该过程被建模为高斯过程,其中噪声逐渐添加到数据中,表示为
。训练涉及最小化数据负对数似然的 ELBO,类似于变分贝叶斯推理,优化目标是:
其中
是标准正态分布,
表示无噪声序列数据。
对于实际实现,使用简化的替代损失函数,重点预测逆扩散步骤的高斯均值:
3.2 无分类器扩散引导
在离线强化学习领域,基于非条件扩散方法的关键任务是生成具有最高奖励的轨迹。随着条件扩散模型的蓬勃发展,分类器引导方法开始着手实现这一目标,将特定的轨迹信息(编码在
中),例如回报
或指定的约束注入到扩散过程中:
根据假设,我们有:
其中 α 是调整指导强度的超参数,Σ 是指定的噪声协方差,µθ 是在无条件扩散中学习到的噪声平均值。
然而,分类器引导的扩散模型需要根据轨迹分类器
精确估计引导梯度,这可能不可行,并且需要在训练过程中引入单独的动态规划程序来估计 Q 函数。
因此,无分类器引导提供了一种替代方案,它通过引导信号增强轨迹生成过程,该信号放大数据中隐含的高奖励或最佳特征,即
。从数学上讲,在反向去噪过程中要添加的噪声是:
其中 ω 是指导尺度,∅ 表示没有指导。设置 ω = 0 会消除无分类器指导,转向无条件扩散模型,而较大的 ω 值会增强轨迹生成过程中条件信息的影响。
此外,最小化损失函数可以重写为,
其中 β 是控制删除特定条件
的概率的超参数,增强样本多样性,同时保持上下文相关性。
在使用上述
训练噪声预测模型 ϵθ 之后,从高斯噪声开始对轨迹进行采样,并通过公式 5 逐步用修改后的
进行去噪,采用重新参数化技术。
总之,通过无分类器引导,我们可以调节轨迹采样过程,以要求生成的轨迹与
表示的期望特征更加一致。该过程迭代地应用条件噪声模型来细化包含满足约束条件的未来状态的目标轨迹。
unset
unset
4 方法
unset
unset
4.1 概述
基于上述动机,我们提出了 SkillDiffuser,这是一种先进的方法框架,用于跨各种机器人进行稳健的多任务学习。这种动态方法利用了较高级别的技能学习和较低级别的条件扩散模型的协作。总体框架如图 2 所示。值得注意的是,我们利用基于语言的表示来抽象技能,从而使通过我们的扩散策略执行的任务对人类来说既可解释又可理解。
图 2. SkillDiffuser 的总体框架。这是一个分层规划模型,利用较高级别的可解释技能抽象和较低级别的技能条件扩散模型的协作,在多任务学习环境中执行任务。高级技能抽象是通过技能预测器和矢量量化操作实现的,生成子目标(技能集),扩散模型使用这些子目标来确定适当的未来状态。使用逆动力学模型将未来状态转换为动作。这种独特的融合使不同任务之间的底层规划器保持一致,而变化仅在逆动力学模型中。
4.2 高级可解释技能抽象
在我们的 SkillDiffuser 框架中,高级可解释技能抽象模块在理解和执行复杂任务方面起着至关重要的作用。然而,考虑到我们考虑的多任务环境,每个只有单一语言指令的任务可能会被分解为一系列子任务或技能,而这些子任务或技能并没有在指令本身中明确划分。此外,假设离线训练数据集表示为D,它由从各种任务的次优策略中得出的轨迹组成。轨迹
包括语言描述 l 和一系列图像观察和动作
,时间步骤为 T,没有附加任何奖励标签。但轨迹也没有表明子任务之间的界限,因此需要所提出的方法能够以无监督的方式将任务分割并解释为子目标。
为了应对这一挑战,我们在基于视野的技能预测器(改编自 GPT-2)的基础上构建了一个技能抽象组件。该组件旨在通过融合视觉输入和自然语言指令来解析和分解任务,同时还提供了一个矢量量化 (VQ) 子模块,将学习到的技能离散化为技能集。该组件的具体细节如下所示。
图 3. SkillDiffuser 的低级技能条件扩散规划模型。值得注意的是,虽然此处的示意图使用图像来表示视觉特征以方便说明,但在实际实施中,扩散模型的输入和采样输出都是状态嵌入。当前观察也是当前视觉观察的特征嵌入。
首先,由于我们仅使用图像作为机器人状态信息,我们使用固定图像编码器(例如 R3M)将图像转换为潜在空间特征。为方便起见,我们将图像编码器表示为
,其中
表示输入图像的空间,而
是结果特征空间,用于将视觉信息压缩为有利于高级语义的形式。同时,我们使用语言编码器对自然语言指令进行预处理,其形式化为
,其中 L 是语言指令空间,而
是语言特征空间。然后将两个编码器的输出输入到技能预测器中,该预测器用于整合这两种模态。
技能预测过程如下:将时间步骤 t 的图像
编码为视觉嵌入
。然后,将此嵌入 st 与语言指令
一起通过语言编码器的输出
输入到技能预测器。技能预测器表示为
,通过
生成技能代码
,该代码封装了从视觉和语言输入中解释的任务要求。
之后,采用矢量量化操作
将这些预测的技能转换为低维离散集 C。离散技能集包含 K 个技能嵌入
,代表不同的潜在技能。VQ 操作通过将潜在
映射到技能集中最近的条目来实现,其中技能向量更新为最接近它们的嵌入 z 的移动平均值。该过程如下,
VQ 强制每个学习的技能 z 位于 C 中,这相当于利用 k-means算法学习语言嵌入的 K 个原型。这充当了一个瓶颈,限制了语言信息的流动并有助于学习离散技能代码。通过非可微量化的反向传播是通过直通梯度估计器实现的,它只是复制梯度并使模型能够端到端训练。
在我们的方法中,我们在一定数量的时间步骤(称为范围)中应用一致的技能代码 z。这种跨多个范围的一致应用巧妙地解决了子任务持续时间变化的挑战,而无需改变范围本身。因此,这种策略不仅保留了执行不同任务所需的灵活性,而且还通过避免范围引起的结构变化来保持模型的架构稳定性。
重要的是,学习到的技能代码的离散性增强了系统行为的可解释性和可控制性,因为每个技能代码都与一些人类可理解的语言短语相关联。图 6 显示了一个例子。通过这种方法,SkillDiffuser 不仅可以学习根据语言指令执行任务,还可以以人类可解释的方式实现这些任务,从而可以更深入地理解和控制特定具身代理的决策过程。
4.3 低级技能条件扩散规划
如第 1 节所强调的,虽然现有方法(如决策扩散器)引入了受技能约束的条件扩散模型,但它们的能力仅限于生成仅满足预定义技能的轨迹。因此,这些模型无法实现能够以任意学习技能为条件的扩散模型。为了克服这些限制并使扩散模型能够对学习到的连续技能范围进行规划,我们提出了一种利用嵌入技能的无分类器引导扩散模型的方法。
SkillDiffuser 首先采用扩散模型对高级技能抽象过程中学习到的连续技能空间
进行操作。我们使用 U-Net 作为噪声预测模型
,并通过上下文条件对其进行引导。更具体地说,我们首先利用技能 MLP(类似于逐点前馈网络),表示为
,将技能特征与去噪模型对齐。之后,我们将技能嵌入
融合到整个 U-Net 残差块的状态特征中。细节如图 3 所示。通过这种方式,我们让扩散模型在每个步骤中根据上下文调节技能嵌入的影响。按照等式 5,我们可以合成关注这些给定技能的未来状态。这是从之前的静态条件框架向更动态和自适应的轨迹生成过程的重大转变。
此外,根据先前的研究,我们采用了仅状态的扩散模型,该模型避免了扩散模型中动作的直接生成。相反,我们利用另一个 MLP(表示为
)在状态生成后执行逆动态,以推断可实现两个连续状态之间转换的可行动作。此外,我们整合了当前帧的观测结果,为运动预测提供更详细的信息并实现闭环控制。从数学上讲,它是:
其中
和
是由扩散模型生成的
内的连续观测嵌入,它是当前观测,而
是推断的动作。
由于生成状态所产生的动作序列
封装了执行任务所需的技能,因此具有跨多项任务的出色适应性。当面对新任务时,我们只需要改变特定于新任务运动学的逆动力学模型
,而扩散模型的架构和参数保持不变。这种模块化确保 SkillDiffuser 的生成能力不是特定于任务的,而是可以在具有不同动态的各种任务中利用。低级模块的示意图如图 3 所示。
4.4 训练 SkillDiffuser
我们为 SkillDiffuser 设计了一个三重损失函数。首先,对于特定于任务的逆动力学模型,我们采用行为克隆损失 [44] 来训练我们的逆 MLP,以模拟观察到的状态转换中的专家动作。此损失表示为
,公式如下:
其中符号与公式9类似。
相应地,包括技能抽象和低级执行在内的其他部分与任务无关。对于高级技能抽象模块,我们应用矢量量化 (VQ) 损失来改进技能预测器。此 VQ 损失
确保技能预测器生成的嵌入与技能集向量紧密匹配,从而提高技能表示的可解释性和一致性。受 VQ-VAE的启发,我们将其公式化为:
其中