Planning with Diffusion for Flexible Behavior Synthesis
可视化:https://diffusion-planning.github.io/
Sergey Levine 组的大作,中了 ICML 2022 年的 long talk。究竟是大佬整活,还是将扩散模型用于强化学习的开山之作呢?翻译可能有问题的地方,以原文为准(狗头)。
摘要
基于模型的强化学习算法通常仅利用学习来估计近似的动态模型,将其余的决策工作交给经典的轨迹优化器。尽管这种组合在概念上很简单,但经验上存在一些缺陷,表明学习到的模型可能不太适合标准的轨迹优化。在本文中,我们考虑将轨迹优化步骤融入到建模过程中,这样从模型中采样与从模型中规划轨迹几乎是相同的任务。我们的技术方法的核心是一种扩散概率模型,它通过迭代去噪轨迹来进行规划。我们将分类器引导采样和图像修补重新解释为连贯的规划策略,探索了基于扩散的规划算法独特且有用的性质,并展示了我们的框架在强调长期决策和测试目标适应性的控制环境中的有效性。
引言
使用学习模型进行规划是一种在概念上十分简单的框架,用于强化学习和数据驱动的决策。它的吸引力在于仅在最成熟和有效的地方使用学习技术,即对未知的环境动力学模型的近似,这本质上是一个监督学习问题。然后,学习好的模型可以被插入到经典的轨迹优化流程中,这些流程在其原始的问题背景中同样已经被很好地理解了。
图 1:Diffuser 是一种扩散概率模型,通过迭代地细化轨迹来进行规划。
然而,这种组合很少能像描述的那样有效。由于强大的轨迹优化器利用的是学习好的模型,通过这种过程生成的路径规划经常看起来更像对抗性样本而非最优轨迹。因此,当代基于模型的强化学习算法通常更多地继承自无模型算法,例如价值函数和策略梯度,而不是轨迹优化技术。那些依赖在线规划的算法往往使用简单的无梯度轨迹优化流程,例如打靶法或交叉熵算法来规避上述问题。
本文提出了一种数据驱动轨迹优化的替代算法。其核心思想是训练一个模型,并将其直接用于轨迹优化,从模型中采样与从模型中规划轨迹几乎是同样的任务。实现这一目标需要转变模型设计的思路。因为可学习的动力学模型一般是环境动力学的代理模型,研究通常根据潜在的因果过程构建模型以实现改进。与这些研究相反,我们考虑的是如何设计一个与其将要解决的规划问题相一致的模型。例如,由于该模型最终将被用于规划问题,因此动作分布与状态动力学一样重要,且长期精度比单步误差更为重要。另一方面,模型应保持对奖励函数的不可知性,以便能迁移到各种任务中,包括在训练过程中从未见过的任务。最后,这个模型还应该做如此设计:其生成的路径规划(而不仅仅是对路径的预测)能够随着经验的增加而逐渐改善,并且不会像标准的基于打靶法的规划算法那样具有决策短视的问题。
图 2:Diffuser 通过迭代地从二维数组中去噪来生成规划。该数组包含可变数量的状态-动作对。一个小的感受野约束模型在单个去噪步骤期间必须确保局部一致性。通过组合众多去噪步骤,局部一致性可以驱动生成规划的全局一致性。一个可选的引导函数 \(\mathcal{J}\) 可以用来调整采样倾向,生成那些对测试目标优化或满足一组约束条件的规划。
我们将这个想法具体实现为一种名为 Diffuser 的轨迹级扩散概率模型,如图 2 所示。传统的基于模型的规划算法都是自回归地向前预测,而 Diffuser 能够同时预测路径规划中所有的时间步。扩散模型的迭代采样过程具有灵活的添加条件的能力,允许辅助引导信息修改采样的过程,以还原出高收益或满足一系列约束条件的轨迹。这种基于数据驱动的轨迹优化算法具有几种迷人的特点:
- 长程可扩展性 Diffuser 是以生成轨迹的准确性——而非单步转移的准确性——为目标进行训练的,因此它不会受到单步动力学模型在长时间的序列上,推演误差会逐步累积放大的影响,能够更好地应对长时间的规划需求。
- 任务可组合性 奖励函数提供了采样规划时可用的辅助梯度。通过将多个奖励梯度相加,我们可以简单地将它们组合起来以进行规划。
- 时序可组合性 Diffuser 通过迭代地提高局部一致性来生成全局一致的轨迹,这也就意味着它可以通过将训练轨迹分布中的转移子序列拼接在一起来推广得到分布以外的新的轨迹。
- 高效的非贪心规划 通过模糊模型和规划器之间的边界,用于改进模型预测能力的训练过程也会提高其规划能力。这种设计产生了一个经过学习得来的规划器,可以解决许多传统规划算法难以解决的长时程、稀疏奖励的问题。
本工作的核心贡献是为轨迹数据设计了一种去噪扩散模型,并提供了一个行为合成的概率框架。虽然和基于模型的深度强化学习的各种常用模型相比有些不同寻常,但我们证明了 Diffuser 具有许多有用的特性,并且在需要长程推理和灵活适应测试环境的目标的离线控制环境中特别有效。
背景
我们的规划算法是基于学习的,与过去在行为合成方面使用轨迹优化的工作相类似。在本节中,我们将简要介绍轨迹优化所考虑的问题环境以及我们为解决该问题所采用的生成模型。
问题设定
考虑一个由离散时间动力学模型控制的系统,在状态 \(\boldsymbol{s}_t\) 与给定动作 \(\boldsymbol{a}_t\) 的情况下,动作转移为 \(\boldsymbol{s}_{t+1} = \boldsymbol{f}(\boldsymbol{s}_t, \boldsymbol{a}_t)\) 。轨迹优化是指寻找一个动作序列 \(\boldsymbol{a}_{0:T}^*\) ,使得目标 \(\mathcal{J}\) 分解到每个时间步的奖励(或成本)\(r({\boldsymbol{s}_t}, {\boldsymbol{a}_t})\) 最大化(或最小化):
\[\begin{equation}\displaystyle {\boldsymbol{a}}_{0:T}^* = {\mathop{\arg\max}}_{{\boldsymbol{a}}_{0:T}} \mathcal{J}({\boldsymbol{s}}_0, {\boldsymbol{a}}_{0:T}) = {\mathop{\arg\max}}_{{\boldsymbol{a}}_{0:T}} \sum_{t=0}^{T} r({\boldsymbol{s}_t}, {\boldsymbol{a}_t}) \end{equation}\]其中 \(T\) 是规划时域。我们使用缩写 \({\boldsymbol{\tau}^{}} = ({\boldsymbol{s}}_0, {\boldsymbol{a}}_0, {\boldsymbol{s}}_1, {\boldsymbol{a}}_1, \ldots, {\boldsymbol{s}}_T, {\boldsymbol{a}}_T)\) 表示由一系列状态-动作对组成的轨迹,并使用 \(\mathcal{J}({\boldsymbol{\tau}^{}})\) 表示该轨迹的目标值。
扩散概率模型
扩散概率模型将数据生成过程表述为一个迭代去噪过程 \(p_\theta({\boldsymbol{\tau}^{i-1}} \mid {\boldsymbol{\tau}^{i}})\) 。该去噪过程是正向扩散过程 \(q({\boldsymbol{\tau}^{i}} \mid {\boldsymbol{\tau}^{i-1}})\) 的反向过程,这里的正向扩散过程是指通过添加噪声逐渐破坏数据的结构。扩散模型对数据分布的影响为:
\[\begin{equation}\displaystyle p_\theta({\boldsymbol{\tau}^{0}}) = \int p({\boldsymbol{\tau}^{N}}) \prod_{i=1}^{N} p_\theta({\boldsymbol{\tau}^{i-1}} \mid {\boldsymbol{\tau}^{i}}) \mathrm{d} {\boldsymbol{\tau}^{1:N}} \end{equation}\]其中,\(p({\boldsymbol{\tau}^{N}})\) 是一个标准高斯先验分布,\({\boldsymbol{\tau}^{0}}\) 表示(无噪声的)数据。通过最小化反向去噪过程的负对数似然的变分下界来优化参数 \(\theta\):\( \theta^* = {\mathop{\arg\min}}_{\theta} -\mathbb{E}_{{\boldsymbol{\tau}^{0}}}\left[\log p_\theta({\boldsymbol{\tau}^{0}})\right] \) 。反向过程通常参数化为带有固定的与时间步长相关的协方差的高斯分布:
\[\begin{equation}\displaystyle p_\theta({\boldsymbol{\tau}^{i-1}} \mid {\boldsymbol{\tau}^{i}}) = \mathcal{N}({\boldsymbol{\tau}^{i-1}} \mid \mu_\theta({\boldsymbol{\tau}^{i}}, i), \Sigma^i). \end{equation}\]正向过程 \(q({\boldsymbol{\tau}^{i}} \mid {\boldsymbol{\tau}^{i-1}})\) 通常是预先指定的。
- 符号表示 本文中有两个“时间”:扩散过程的时间和规划问题的时间。我们使用上标(当未指定时记为 \(i\) )表示扩散的时间步长,使用下标(当未指定时记为 \(t\) )表示规划的时间步长。例如,\({\boldsymbol{s}_t}^{0}\) 指的是一条无噪声轨迹中的第 \(t^{\text{th}}\) 个状态。当上下文不会引起歧义时,可以省略无噪声量的上标:\({\boldsymbol{\tau}^{}} = {\boldsymbol{\tau}^{0}}\) 。稍微修改一下符号定义,我们将轨迹 \({\boldsymbol{\tau}^{}}\) 中的第 \(t^\text{th}\) 个状态(或动作)表示为 \({\boldsymbol{\tau}^{}}_{{\boldsymbol{s}_t}}\) (或 \({\boldsymbol{\tau}^{}}_{{\boldsymbol{a}_t}}\) )。
利用扩散进行规划
使用轨迹优化技术的一个主要障碍是需要已知真实环境的动力学模型 \({{\boldsymbol{f}}}\)。大多数基于学习的算法试图通过训练近似的动力学模型,并将其插入到传统规划过程中来克服这个障碍。然而,学习到的模型往往不适合于针对真实动力学模型设计的规划算法,规划器只会通过寻找对抗性样本来利用学习到的模型。
我们提出了一种将建模与规划结合得更紧密的算法。我们不是将学习到的模型放入传统规划器的环境中使用,而是尽可能地将规划过程整合到生成建模框架中,规划过程几乎就等价于采样过程。我们使用轨迹扩散模型 \(p_\theta({\boldsymbol{\tau}^{}})\) 来实现这一点。扩散模型的迭代去噪过程可以在扰动分布中采样,这使得它非常适合被用来实现灵活的条件化:
\[\begin{equation}\displaystyle \tilde{p}_\theta({\boldsymbol{\tau}^{}}) \propto p_\theta({\boldsymbol{\tau}^{}}) h({\boldsymbol{\tau}^{}}). \end{equation}\]函数 \(h({\boldsymbol{\tau}^{}})\) 可以包含先验信息(例如观测的历史记录)、期望的结果(例如要达到的目标)或者需要进行优化的一般函数(例如奖励或成本)。在这种扰动分布中进行推理可以被看作是对问题设定一节中提出的轨迹优化问题的概率化类比,因为它需要找到既在 \(p_\theta({\boldsymbol{\tau}^{}})\) 下符合物理实际,又在 \(h({\boldsymbol{\tau}^{}})\) 下具有高奖励(或满足约束)的轨迹。由于动力学信息与扰动分布 \(h({\boldsymbol{\tau}^{}})\) 是分开的,同一个扩散模型 \(p_\theta({\boldsymbol{\tau}^{}})\) 可以被反复应用在相同环境下的不同任务中。
本节中,我们描述了 Diffuser,这是一种专门被设计用于学习轨迹优化的扩散模型。然后,我们讨论了使用 Diffuser 进行规划的两个具体实例,分别对应于分类器引导采样和图像修补两个任务的强化学习版本。
轨迹规划的生成模型
- 时间顺序性 模糊从轨迹模型中采样和使用它进行规划的边界,带来了一个不同寻常的限制:我们不能再按照时间顺序自回归地预测状态。考虑在目标条件下的推理过程 \({p({\boldsymbol{s}}_1 \mid {\boldsymbol{s}}_0, {\boldsymbol{s}}_T)}\) ;下一个状态 \({\boldsymbol{s}}_1\) 不仅依赖于前一个状态,还依赖于一个未来状态。这个例子是一个更一般的原理的具体实例:虽然动力学预测是因果的,即现在由过去决定,但决策和控制可以是反因果的,即当前的决策可以是基于未来的条件的(在通常的强化学习背景下,对未来条件的推导建立在未来是最优的这一假设之上,并由此写出动态规划的递归式。具体而言,它体现为动作分布 \(\log p({\boldsymbol{a}_t} \mid {\boldsymbol{s}_t}, \mathcal{O}_{t:T})\) 中的未来最优性变量 \(\mathcal{O}_{t:T}\) )。因为我们不能使用自回归的时间顺序,所以我们设计了 Diffuser 来同时预测规划中所有的时间步。
- 时间局部性 尽管不是自回归或遵循马尔可夫性质的,Diffuser 依旧具有一种松弛形式的时间局部性。在图 2 中,我们展示了由单个时间卷积组成的扩散模型的依赖关系图。给定预测的感受野仅包括过去和未来的邻近时间步。因此扩散过程的每个步骤只能基于轨迹的局部一致性进行预测。然而,通过将许多这些去噪步骤组合在一起,局部一致性也可以促成全局的连贯性。
- 轨迹表示 Diffuser 是一种为规划而设计的轨迹模型,这意味着从模型中得到的控制器的有效性与状态预测的质量同等重要。因此,轨迹中的状态和动作是一起预测的——从预测的目的上来看,动作只是状态的附加维度。具体而言,我们将 Diffuser 的输入(和输出)表示为一个二维数组:\[\begin{align}\displaystyle {\boldsymbol{\tau}^{}} = \begin{bmatrix} {\boldsymbol{s}}_{0} & {\boldsymbol{s}}_{1} & {\ldots} & {\boldsymbol{s}}_{T} \\ {\boldsymbol{a}}_{0} & {\boldsymbol{a}}_{1} & {\ldots} & {\boldsymbol{a}}_{T} \end{bmatrix}. \end{align}\]其中每个时间步长在输入和输出中都表示为一个列。
- 模型架构 现在我们有了定义 Diffuser 模型架构所需的一切要素:(1) 一个完整的轨迹应该是非自回归地预测的,(2) 每个去噪步骤在时间上都应该有局部一致性,(3) 对轨迹的表示在一个维度(规划时限维度)上应具有等变性,而在另外的维度(状态和行为特征维度)上不应具有等变性。我们通过重复的(时间)卷积残差块来满足这些需求。模型的整体结构类似于在基于图像的扩散模型中成功应用的那种U-Nets,不过我们把二维空间卷积替换成了一维时间卷积(如图 3 所示)。由于模型是全卷积的,预测的时域不是由模型结构决定,而是由输入的维度决定;如果需要的话,它可以在规划期间动态地改变。
图 3:Diffuser 使用 U-Net 架构,其中包含由时间卷积、组归一化和 Mish 非线性激活函数组成的残差块。
- 训练过程 我们使用 Diffuser 参数化轨迹去噪过程中习得的梯度 \(\epsilon_\theta({\boldsymbol{\tau}^{i}}, i)\) ,通过闭式求解可以从中得到均值 \(\mu_\theta\) 。我们使用简化的目标函数来训练 \(\epsilon\)-模型,即:\[\begin{equation} \displaystyle \mathcal{L}(\theta) = \mathrm{E}_{ i,\epsilon,{\boldsymbol{\tau}^{0}} }\left[ \lVert \epsilon - \epsilon_\theta({\boldsymbol{\tau}^{i}}, i) \rVert^2 \right], \end{equation}\]其中 \(i \sim \mathcal{U}\{1, 2, \ldots, N\}\) 为扩散的时间步,\(\epsilon \sim \mathcal{N}(\boldsymbol{0}, \boldsymbol{I})\) 为目标噪声,\({\boldsymbol{\tau}^{i}}\) 为带有噪声 \(\epsilon\) 的轨迹 \({\boldsymbol{\tau}^{0}}\) 。反向过程的协方差矩阵 \(\Sigma^i\) 遵循 IDDPM 中提出的余弦调度算法。
强化学习即引导采样
为了使用 Diffuser 解决强化学习问题,我们必须引入奖励的概念。我们借鉴控制即推理的图模型来实现。假设 \(\mathcal{O}_{t}\) 是一个二元随机变量,表示轨迹中时间步 \(t\) 的最优性,其中 \(p(\mathcal{O}_t=1) = \exp(r({\boldsymbol{s}_t}, {\boldsymbol{a}_t}))\) 。我们可以通过在式 1 中令 \({h({\boldsymbol{\tau}^{}}) = p(\mathcal{O}_{1:T} \mid {\boldsymbol{\tau}^{}})}\) ,从最优轨迹集合中采样:
\[\begin{equation}\displaystyle \tilde{p}_\theta({\boldsymbol{\tau}^{}}) = p({\boldsymbol{\tau}^{}} \mid \mathcal{O}_{1:T}=1) \propto p({\boldsymbol{\tau}^{}}) p(\mathcal{O}_{1:T}=1 \mid {\boldsymbol{\tau}^{}}). \end{equation}\]我们已经将强化学习问题转化为了一种条件采样问题。值得庆幸的是,已经有许多前人的工作研究了在扩散模型中条件采样的算法。虽然从这个分布中精确地采样是不可行的,但当 \(p(\mathcal{O}_{1:T} \mid {\boldsymbol{\tau}^{i}})\) 足够平滑时,反向扩散过程中的每一步转换都可以近似为高斯分布:
\[\begin{equation}\displaystyle p_\theta({\boldsymbol{\tau}^{i-1}} \mid {\boldsymbol{\tau}^{i}}, {\mathcal{O}}_{1:T}) \approx \mathcal{N}({\boldsymbol{\tau}^{i-1}}; \mu + \Sigma g, \Sigma) \end{equation}\]其中 \(\mu\) 和 \(\Sigma\) 是原始的反向过程 \(p_\theta({\boldsymbol{\tau}^{i-1}} \mid {\boldsymbol{\tau}^{i}})\) 中的参数。
\[\begin{equation} \begin{aligned}\displaystyle g &= \nabla_{{\boldsymbol{\tau}^{}}} \log p({\mathcal{O}}_{1:T} \mid {\boldsymbol{\tau}^{}}) |_{{\boldsymbol{\tau}^{}} = \mu} \\ &= \sum_{t=0}^{T} \nabla_{{\boldsymbol{s}_t},{\boldsymbol{a}_t}} r({\boldsymbol{s}_t}, {\boldsymbol{a}_t}) |_{({\boldsymbol{s}_t},{\boldsymbol{a}_t})=\mu_t} = \nabla \mathcal{J}(\mu). \end{aligned} \end{equation}\]利用分类器引导的采样过程本来用于分类条件的图像生成,而这个关系式则提供了一种直截了当地将其转化为强化学习问题的方式。我们首先用所有可获取的轨迹数据的状态与动作训练扩散模型 \(p_\theta({\boldsymbol{\tau}^{}})\) 。然后,我们训练一个独立的模型 \(\mathcal{J}_\phi\) 来预测轨迹样本 \({\boldsymbol{\tau}^{i}}\) 的累积奖励。\(\mathcal{J}_\phi\) 的梯度用于根据式 5 修改反向过程的均值 \(\mu\),以引导对轨迹的采样过程。我们可能会在环境中执行从 \(p({\boldsymbol{\tau}^{}} \mid \mathcal{O}_{1:T}=1)\) 中采样出的样本轨迹 \({\boldsymbol{\tau}^{}}\) 的第一个动作,此后在一个标准的后退时域控制循环中,我们会重新开始规划过程。引导规划算法的伪代码见算法 1 。
算法 1:引导扩散规划
目标条件强化学习即图像修补
有些规划问题更适合将满足约束而非奖励最大化作为目标。在这些情况下,目标是生成满足一组约束的任意可行轨迹,例如要求在目标位置终止。利用式 2 所描述的轨迹二维数组,这种情况可以转化为一个修补问题,其中状态和动作约束类似于图像中已被观测到的像素。在数组中,所有未观测到的位置必须以一种与观测到的约束相一致的方式,通过扩散模型填充进来。
这个任务所需的扰动函数对于已观测的值是狄拉克Delta函数,在其他情况下是常数。具体来说,如果 \({{\boldsymbol{t}}}_t\) 是时间步 \(t\) 下的状态约束,则
\[\begin{equation}\displaystyle h({\boldsymbol{\tau}^{}}) = \delta_{{{\boldsymbol{t}}}_t}({\boldsymbol{s}}_0,{\boldsymbol{a}}_0,\ldots,{\boldsymbol{s}}_T,{\boldsymbol{a}}_T) = \begin{cases} +\infty & \text{若 }\ {{\boldsymbol{t}}}_t = {\boldsymbol{s}_t}\\ \quad \ 0 & \text{其他} \end{cases} \end{equation}\]对动作约束的定义也是一样的。在实际操作中,这可以通过从未被扰动的反向过程中采样 \({{\boldsymbol{\tau}^{i-1}} \sim p_\theta({\boldsymbol{\tau}^{i-1}} \mid {\boldsymbol{\tau}^{i}})}\) 并在所有的扩散时间步 \(i \in {0, 1, \ldots, N}\) 后用条件值 \({{\boldsymbol{t}}}_t\) 替换采样值来实现。
即使是奖励最大化问题,也需要通过修补策略来进行条件约束,因为所有采样的轨迹都应该从当前状态开始。这个条件由算法 1 的第10行描述。
扩散规划模型的性质
我们接下来要讨论 Diffuser 的一些重要性质,重点关注那些与标准动力学模型不同或对于非自回归轨迹预测来说不同寻常的性质。
图 4:(扩散规划器的属性) (a) 长程规划可学习性: Diffuser 的学习规划过程不会遇到打靶法常见的决策短视的问题,并能够在奖励稀疏的情况下规划长期策略。(b) 时间可组合性:即使该模型不是马尔可夫模型,它也通过迭代地细化局部一致性来生成轨迹。因此,它展现出了通常与马尔可夫模型相关的一般化特性,能够将训练数据中的轨迹片段拼接在一起生成新的规划。(c) 规划长度可变性:虽然 Diffuser 是一个轨迹级别的模型,但其规划时域并不被模型架构所限定。训练完成后仍可以通过改变输入噪声的维度来改变规划时域。(d) 任务可组合性: Diffuser 可以与新的奖励函数组合,以规划在训练期间从未见过的任务。在所有子图中,\(\odot\) 表示起始状态,\(\circledast\) 表示目标状态。
- 长程规划可学习性 单步模型通常被用作真实环境动力学模型 \({{\boldsymbol{f}}}\) 的代理模型,因此它们与特定的规划算法没有联系。相比之下,算法 1 中的规划过程与扩散模型的独有特征紧密相关。由于我们的规划算法与采样几乎一模一样(唯一的区别是通过扰动函数 \(h({\boldsymbol{\tau}^{}})\) 进行引导),Diffuser 的长程预测效果可以直接转化为有效的长程规划。我们在图 4(a) 中展示了可学习的规划在达成既定目标的问题中的优势,在稀疏奖励环境下,Diffuser 能够生成可行的轨迹,而众所周知,打靶式算法很难处理此类环境。我们在长程多任务规划一节中探讨了这个问题更为定量的版本。
- 时间可组合性 单步模型通常由马尔可夫性质驱动,从而允许它们将训练轨迹分布内的转移组合起来,以推广到分布外的轨迹。Diffuser 通过迭代地提高局部一致性(轨迹规划的生成模型一节)来生成全局一致的轨迹,因此它还可以以一种新颖的方式将已知的子序列拼接在一起。在图 4(b) 中,我们在只包含直线路径的轨迹集上训练了 Diffuser,并展示了它可以通过在交点处将轨迹组合起来以推广到 V 形轨迹。
- 规划长度可变性 因为我们的模型在其预测的时间维度上全卷积形式的,所以其规划的视野不是由架构指定的。相反,它是由初始化去噪过程时的输入噪声 \({\boldsymbol{\tau}^{N}} \sim \mathcal{N(\mathbf{0}, \mathbf{I})}\) 的大小所确定的,这使得可变长度的规划(如图 4(c) 所示)成为可能。
- 任务可组合性 虽然 Diffuser 包含环境动态和行为信息,但它与奖励函数无关。因为该模型充当可能的未来的先验,所以规划可以通过相对轻量级的扰动函数 \(h({\boldsymbol{\tau}^{}})\)(甚至是多个扰动的组合)进行引导,这些扰动函数对应于不同的奖励。我们通过针对扩散模型在训练期间未见过的新奖励函数进行规划来证明这一点(如图 4(d) 所示)。
实验评估
我们实验的重点是评估 Diffuser 在数据驱动规划器所需的功能上的能力。具体而言,我们评估:(1) 在没有手动构造奖励的情况下长期规划的能力,(2) 推广到训练中未见过的新目标设置的能力,(3) 从质量不同的异构数据中还原出有效的控制器的能力。最后,我们研究了对基于扩散的规划过程在实际运行时上的考量,包括如何在最小化性能损失的情况下最有效地加速规划过程。
长程多任务规划
我们在 Maze2D 环境中评估长程规划,该环境要求到达目标位置以获得值为 1 的奖励。没有在任何其他位置提供奖励。因为到达目标位置可能需要数百步,即使是最好的无模型算法也很难充分执行信用分配并确保到达目标(如表 1 所示)。
表 1:(长程规划)Diffuser 和无模型的算法在 Maze2D 环境中的表现,由于其稀疏的奖励结构,这个环境测试的是长视程规划。Multi2D 环境是指一种多任务的环境变体,其中目标位置在每个回合开始时都会重新采样。在两种环境中,Diffuser 的性能都大大优于以前的方法。
我们使用修补策略对 Diffuser 进行规划,以便对起点和目标位置进行条件限制(对于无模型算法来说,目标位置也是可知的:它是数据集中唯一的具有非零奖励的状态)。然后,我们使用采样的轨迹作为一种开环规划。在所有尺寸的迷宫中,Diffuser 的分数均超过了 100,表明它优于作为参考的专家策略。我们在图 5 中可视化了生成Diffuser 规划的反向扩散过程。
图 5:(规划即修补)在 Maze2D 环境中,通过采样与指定起点 \(\odot\) 和目标条件 \(\circledast\) 相符合的轨迹来生成规划。剩余的状态通过去噪过程进行“修补”。
虽然 Maze2D 的训练数据是无目标的——控制器从随机选择的位置导航往返——但评估时属于单任务,也就是说目标始终相同。为了测试多任务的灵活性,我们修改了环境,在每个回合开始时随机化目标位置。这种设置在表 2 中记为 Multi2D。Diffuser 天然就是一个多任务规划器;我们无需重新训练模型,只需改变条件目标即可。因此,Diffuser 在多任务环境中的表现与单任务相当。相比之下,最好的无模型算法在从单任务调整到多任务时表现显著下降(IQL)。MPPI 使用真实动力学模型;与 Diffuser 的学习规划算法相比,它的表现不佳,这突显了即使预测中没有不准确性,长程规划也存在困难。
表 2:(离线强化学习) Diffuser 和先前的各种算法在 D4RL 运动基准测试中的性能。Diffuser 的结果对应于 150 个规划随机数种子下测得的平均值和标准误差。遵循 IQL 中的做法,我们将在各项任务中得分达到最大值的 5% 以内( \(\geq 0.95 \cdot \max\))的结果加粗以作强调。
测试目标适应性
为了评估泛化到测试环境中的新目标的能力,我们构建了一系列堆叠方块的任务,包含三种任务场景:(1) 无条件堆叠,其任务是尽可能高地堆叠方块塔;(2) 有条件堆叠,其任务是按照指定的方块顺序构建方块塔;(3) 重新排列,其任务是在新的排列中匹配一组参考方块的位置。我们使用 PDDLStream 生成的演示数据训练所有的算法,共包含 10000 个轨迹;奖励在成功堆叠方块时为 1,否则为 0。这些方块堆叠任务是考察模型对测试目标的适应性的挑战性任务;当控制器朝着随机设定的目标执行部分堆叠操作的时候,它会进入训练环境中未包含的新状态。
我们使用一个训练好的 Diffuser 模型来处理所有的堆叠任务,只修改不同场景下的扰动函数 \(h({\boldsymbol{\tau}^{}})\) 。在 无条件堆叠 任务中,我们直接从未经扰动的去噪过程 \(p_\theta({\boldsymbol{\tau}^{}})\) 中进行采样,以模拟 PDDLStream 控制器。在 有条件堆叠 和 重新排列 任务中,我们组合两个扰动函数 \(h({\boldsymbol{\tau}^{}})\) 来调整采样的轨迹:第一个函数最大化轨迹的最终状态与目标设定的匹配度,第二个函数在堆叠过程中对末端执行器与方块之间施加了一个接触限制。
表 3:(测试目标的适应性)BCQ,CQL 和 Diffuser 在方块堆叠任务上的表现。分数 100 表示完美执行的堆叠,随机策略的分数为 0。
我们与两个之前的无模型离线强化学习算法 BCQ 和 CQL 进行了比较,在 无条件堆叠 任务中训练标准变体,在 有条件堆叠 和 重新排列 任务中训练目标条件变体。定量结果如表 3 所示,其中得分 100 对应于任务的完美执行。Diffuser 显著优于先前的算法,对于需要灵活的行为生成的条件任务场景,无模型算法尤其难以胜任。图 6 提供了 Diffuser 规划执行过程的可视化。
图 6:(方块堆叠)Diffuser 执行的一个方块堆叠序列。建议通过此链接中可观看的视频来更好地了解这个任务:diffusion-planning.github.io
离线强化学习
最后,我们使用 D4RL 离线运动套件评估从质量不同的异构数据中还原有效的单任务控制器的能力。我们使用强化学习即引导采样中描述的采样过程将 Diffuser 生成的轨迹引导到高奖励区域,并使用目标条件强化学习即图像修补中描述的修补过程对轨迹进行条件限制。奖励预测器 \(\mathcal{J}_\phi\) 的训练采用与扩散模型相同的轨迹。
我们与一系列先前的算法进行了比较,这些算法涵盖其他数据驱动控制的算法,包括无模型的强化学习算法 CQL 和 IQL;回报条件化算法,如 Decision Transformer (DT);以及基于模型的强化学习算法,包括 Trajectory Transformer (TT)、MOPO、MOReL 和 MBOP。在单任务场景下,Diffuser 的性能与以前的算法相当:比基于模型的 MOReL 和 MBOP 以及回报条件化的 DT 更好,但比专门为单任务场景设计的最好的离线算法差。我们还研究了一种变体,将 Diffuser 作为传统轨迹优化器(如 MPPI)中的动力学模型,但发现该组合的表现和随机差不多,这表明 Diffuser 的有效性来自于耦合的建模和规划,而不是提高了开环预测准确性。
扩散热启动加速规划
Diffuser 的一个限制是生成单个规划的速度较慢(因为是迭代生成)。一种简单的解释是,由于我们采用的是开环规划的方式,每一步执行都需要重新生成一个新的规划。为了提高 Diffuser 的执行速度,我们可以进一步重用先前生成的规划来预热生成后续规划。
为了预热规划,我们可以从先前生成的规划中执行有限数量的前向扩散步骤,然后从这个部分受干扰的轨迹开始,执行相应数量的去噪步骤以重新生成更新后的计划。在图 7 中,我们研究了在为重新生成新的规划而执行的去噪步骤数目从 2 到 100 变化时,性能和运行时预算之间的权衡。我们发现,仅需要略微牺牲点性能,就可以显著降低这种算法的规划时长。
图 7:(快速规划)当改变热启动规划的扩散步数时,Diffuser 在 Walker2d Medium-Expert 任务上的表现。只要规划是从上一个时间步开始初始化的,即使我们执行了多达十分之一的扩散步数,性能也只有轻微的下降。
相关工作
近年来,深度生成模型的发展已经在基于模型的强化学习领域取得了突破,多个研究方向分别探索了以 U 型卷积神经网络(U-Nets)、随机循环网络、向量量化自编码器(VQ-VAE)、神经网络常微分方程(neural ODEs)、标准化流模型(normalizing flows)、生成对抗网络(GANs)、基于能量的模型(EBMs)、图神经网络(GNNs)、神经辐射场和 Transformer 参数化动力学模型的方法。此外,Lambert 等人(2020)研究了将非自回归的轨迹级动力学模型用于长时间预测。这些研究通常假设模型和规划器之间存在一个抽象的边界。具体而言,学习所扮演的角色仅为近似真实环境的动力学模型;一旦学习完成,模型就可以插入到各种规划或策略优化算法中,因为规划器的形式并不强依赖于模型的形式。我们的目标是打破这种抽象的边界,通过设计一个同时训练模型和规划算法的模型,得到一个非自回归的轨迹级模型,采样和规划几乎是同一回事。
一些同期工作通过不同的算法研究了如何打破模型学习和规划之间的抽象边界。这些算法包括训练用于奖励预测的自回归隐空间模型,通过状态值加权模型训练目标,以及将配置法用于可学习的单步能量模型中。相比之下,我们的算法通过建模并同时而非自回归地生成轨迹中所有的时间步来进行规划,并使用辅助引导函数对采样的轨迹进行条件约束。
扩散模型已经成为了一种很有前景的生成模型。它将数据生成过程阐述为迭代去噪过程。这个去噪过程可以被视为对数据分布梯度的参数化,将扩散模型与得分匹配和能量模型相关联。迭代的、基于梯度的采样有利于实现灵活的条件化以及条件间的组合,从而使我们能够从异构数据集中还原出有效的行为,并针对在训练时从未见过的奖励函数进行规划。虽然扩散模型已经被开发用于图像、信号、三维形状和文本的生成,但据我们所知,它们以前还没有被用在强化学习或决策制定的环境中。
总结
我们提出了一种用在轨迹数据上的去噪扩散模型 Diffuser。Diffuser 的规划过程与采样过程几乎完全一致,唯一的区别在于添加了辅助扰动函数以引导采样。所学的基于扩散的规划过程具有许多有用的特性,包括能够优雅地处理稀疏奖励,能够在无需重新训练的情况下针对新的奖励作出新的规划,以及时序上的可组合性,这使得它能够通过将从训练轨迹集分布中学到的转移子序列拼接在一起以生成分布以外的轨迹。我们的结果为基于模型的强化学习指明了一条崭新的,利用扩散过程进行规划的道路。
标签:Diffusion,tau,轨迹,模型,boldsymbol,Planning,Diffuser,Behavior,规划 From: https://www.cnblogs.com/guapiii/p/planning-with-diffusion.html