论文阅读笔记——Diffuser,Diffusion Policy

server/2025/3/31 3:12:52/

Diffuser

Diffuser 论文

将轨迹预测问题转化为基于扩散模型的条件生成问题,通过概率框架统一了动力学约束与目标优化。
在这里插入图片描述
轨迹表示(state,action):
τ = ( s 0 s 1 … … s T a 0 a 1 … … a T ) \tau = \begin{pmatrix}s_0s_1……s_T\\a_0a_1……a_T\end{pmatrix} τ=(s0s1……sTa0a1……aT)
Diffuser采用了一种非自回归的轨迹建模方法,它不需要严格遵循时间顺序或马尔可夫性,而是基于局部时间窗口进行预测。如图2所示,模型通过迭代去噪生成轨迹,每一步仅根据邻近的几个状态-动作对(红色区域)来更新当前预测,这种局部处理方式最终能合成出全局一致的完整轨迹。

基于时间局部性的设计原则,Diffuser 的神经网络架构需要满足三个关键条件
1)采用非自回归的全局轨迹预测方式(通过感受野机制实现);
2)确保去噪过程的每一步都具有时间局部性
3)轨迹表示需保持沿规划时维度的等变性,而不要求状态-动作特征间的等变性。
这些条件共同保证了模型既能捕捉局部动态,又能生成全局一致的轨迹。
在这里插入图片描述
如图,采用了堆叠 时序卷积残差块,整体类似 U-Net,将二维空间卷积替换成了一维时序卷积,并且全部由卷积构成可以让输入时域长度可变。
损失函数类比扩散模型可得:
L ( θ ) = E i , ϵ , τ 0 [ ∣ ∣ ϵ − ϵ θ ( τ i , i ) ∣ ∣ 2 ] \mathcal{L}(\theta)=\mathbb{E}_{i,\epsilon,\tau_0}[||\epsilon-\epsilon_\theta(\tau^i,i)||^2] L(θ)=Ei,ϵ,τ0[∣∣ϵϵθ(τi,i)2]

将强化学习表示为条件分布

借助控制即推断模型(control-as-inference graphical model),令 O t \mathcal{O}_t Ot 为一个二元随机变量,将奖励函数转换为概率形式,通过贝叶斯公式可得
p ( O t = 1 ) = e r ( s t , a t ) P ~ θ ( τ ) = p ( τ ∣ O 1 : T = 1 ) ∝ p ( τ ) p ( O 1 : T = 1 ∣ τ ) \begin{aligned} p(\mathcal{O}_t=1)=e^{r(s_t,a_t)} \\\tilde{P}_\theta(\tau)=p(\tau|\mathcal{O}_{1:T}=1) \propto p(\tau)p(\mathcal{O}_{1:T}=1|\tau) \end{aligned} p(Ot=1)=er(st,at)P~θ(τ)=p(τO1:T=1)p(τ)p(O1:T=1∣τ)
通过高斯分布近似 p ( τ i ∣ τ i + 1 ) p(\tau^i|\tau^{i+1}) p(τiτi+1) 可以获得采样结果,类比 Classifier-guidance:

本质上是通过扩散模型的迭代细化过程,在保持轨迹物理合理性的同时优化累积奖励。

p θ ( τ i ∣ τ i + 1 ) = N ( μ , Σ ) log ⁡ p θ ( τ i ∣ τ i + 1 ) = − 1 2 ( τ i − μ ) T Σ − 1 ( τ i − μ ) + C \begin{aligned} p_{\theta}(\tau^{i}|\tau^{i+1}) & =\mathcal{N}(\mu,\Sigma) \\ \log p_{\theta}(\tau^{i}|\tau^{i+1}) & =-\frac{1}{2}(\tau^{i}-\mu)^{T}\Sigma^{-1}(\tau^{i}-\mu)+C \end{aligned} pθ(τiτi+1)logpθ(τiτi+1)=N(μ,Σ)=21(τiμ)TΣ1(τiμ)+C
x t = μ x_t=\mu xt=μ 泰勒展开得到:
l o g p ( O 1 : T ∣ τ i ) ≈ l o g p ( O 1 : T ∣ τ i ) ∣ τ i = μ + ( τ i − μ ) ∇ τ i l o g p ( O 1 : T ∣ τ i ) ∣ τ i = μ = ( τ i − μ ) g + C 1 g = ∇ τ i l o g p ( O 1 : T ∣ τ i ) ∣ τ i = μ = ∑ t = 0 T ∇ s t , a t r ( s t , a t ) ∣ ( s t , a t ) = μ t = ∇ J ( μ ) \begin{aligned} &logp(\mathcal{O}_{1:T}|\tau^{i}) \approx logp(\mathcal{O}_{1:T}|\tau^{i})|_{\tau^{i}=\mu}+(\tau^{i}-\mu)\nabla_{\tau^{i}}logp(\mathcal{O}_{1:T}|\tau^{i})|_{\tau^{i}=\mu}=(\tau^i-\mu)g+C_1 \\ &g=\nabla_{\tau^i}logp(\mathcal{O}_{1:T}|\tau^i)|_{\tau^i=\mu}=\sum_{t=0}^T\nabla_{s_t,a_t}r(s_t,a_t)|_{(s_t,a_t)=\mu_t}=\nabla\mathcal{J}(\mu) \end{aligned} logp(O1:Tτi)logp(O1:Tτi)τi=μ+(τiμ)τilogp(O1:Tτi)τi=μ=(τiμ)g+C1g=τilogp(O1:Tτi)τi=μ=t=0Tst,atr(st,at)(st,at)=μt=J(μ)
l o g p ( ( τ i ∣ τ i + 1 ) p ( O 1 : T ∣ τ i ) ) ≈ − 1 2 ( τ i − μ ) T Σ − 1 ( τ i − μ ) + ( τ i − μ ) g + C 2 = − 1 2 ( τ i − μ − Σ g ) T Σ − 1 ( τ i − μ − Σ g ) + 1 2 g T Σ g + C 2 = − 1 2 ( τ i − μ − Σ g ) T Σ − 1 ( τ i − μ − Σ g ) + C 3 = l o g p ( z ) + C 4 , z ∼ N ( μ + Σ g , Σ ) \begin{aligned} logp((\tau^{i}|\tau^{i+1})p(\mathcal{O}_{1:T}|\tau^{i})) & \approx-\frac{1}{2}(\tau^{i}-\mu)^{T}\Sigma^{-1}(\tau^{i}-\mu)+(\tau^{i}-\mu)g+C_{2} \\ & =-\frac{1}{2}(\tau^i-\mu-\Sigma g)^T\Sigma^{-1}(\tau^i-\mu-\Sigma g)+\frac{1}{2}g^T\Sigma g+C_2 \\ & =-\frac{1}{2}(\tau^{i}-\mu-\Sigma g)^{T}\Sigma^{-1}(\tau^{i}-\mu-\Sigma g)+C_{3} \\ & =logp(z)+C_4,z\sim\mathcal{N}(\mu+\Sigma g,\Sigma) \end{aligned} logp((τiτi+1)p(O1:Tτi))21(τiμ)TΣ1(τiμ)+(τiμ)g+C2=21(τiμΣg)TΣ1(τiμΣg)+21gTΣg+C2=21(τiμΣg)TΣ1(τiμΣg)+C3=logp(z)+C4,zN(μ+Σg,Σ)
在这里插入图片描述

Diffusion Policy

Diffusion Policy 论文
在这里插入图片描述

  • 显式策略(a)直接输出确定性动作或参数化分布(如高斯混合),计算高效但难以建模复杂多模态动作;
  • 隐式策略(b)通过能量函数定义动作概率,需迭代优化生成动作,理论表达能力强但训练不稳定且计算代价高;
  • 扩散策略(c)创新性地将动作生成转化为条件去噪过程,通过噪声预测网络学习梯度场并配合随机采样,兼具多模态建模、高维序列输出和训练稳定性三重优势.

将 Diffuser 中 p ( A t , O t ) p(A_t,O_t) p(At,Ot) 使用 DDPM 改进为 p ( A t ∣ O t ) p(A_t|O_t) p(AtOt) ,无需像 Diffuser 显示输出 state,仅输出 action sequence,保证动作上时间一致性,防止单个动作输出导致的摇摆不定。
传统 EBM 建模
p ( x ) = e − E ( x ) Z Z = ∫ e − E ( x ) d x ( 1 ) p(x)=\frac{e^{-E(x)}}{Z} \quad Z=\int e^{-E(x)}dx \qquad \qquad (1) p(x)=ZeE(x)Z=eE(x)dx(1)
其中归一化常数 Z Z Z 因为高维积分难解,故而选择学习其梯度场 Δ x log ⁡ p ( x ) \Delta_x\log p(x) Δxlogp(x)
采用 Langevin 动力学采样,迭代执行:扩散模型的噪声预测 ϵ θ \epsilon_\theta ϵθ 实际隐式建模了 ∇ x log ⁡ p ( x ) \nabla_x\log p(x) xlogp(x)
x t + 1 = x t + η ∇ x log ⁡ p ( x t ) + 2 η ϵ t ( 2 ) x_{t+1}=x_t+\eta\nabla_x\log p(x_t)+\sqrt{2\eta\epsilon_t} \qquad \qquad (2) xt+1=xt+ηxlogp(xt)+2ηϵt (2)
DP
基于 EMB 表示动作分布:
p θ ( a ∣ o ) = e − E θ ( o , a ) Z ( o , θ ) ( 3 ) p_\theta(\mathbf{a}|\mathbf{o})=\frac{e^{-E_\theta(\mathbf{o},\mathbf{a})}}{Z(\mathbf{o},\theta)} \qquad \qquad (3) pθ(ao)=Z(o,θ)eEθ(o,a)(3)
为了训练用于隐式策略的 EMB,使用 infoNCE 风格损失函数,相当于式(3)的负对数似然:
L i n f o N C E = − log ⁡ ( e − E θ ( o , a ) e − E θ ( o , a ) + ∑ j = 1 N n e g e − E θ ( o , a ~ j ) ) ( 4 ) \mathscr{L}_{infoNCE}=-\log(\frac{e^{-E_{\theta}(\mathbf{o},\mathbf{a})}}{e^{-E_{\theta}(\mathbf{o},\mathbf{a})}+\sum_{j=1}^{N_{neg}}e^{-E_{\theta}(\mathbf{o},\widetilde{\mathbf{a}}^{j})}}) \qquad \qquad (4) LinfoNCE=log(eEθ(o,a)+j=1NnegeEθ(o,a j)eEθ(o,a))(4)
通过建模相同动作分布的得分函数,避免了 Z ( a , θ ) Z(a,\theta) Z(a,θ) 的估计问题:
∇ a log ⁡ p ( a ∣ o ) = − ∇ a E θ ( a , o ) − ∇ a log ⁡ Z ( o , θ ) ⏟ = 0 ≈ − ε θ ( a , o ) \nabla_\mathbf{a}\log p(\mathbf{a}\mid\mathbf{o})=-\nabla_\mathbf{a}E_\theta(\mathbf{a},\mathbf{o})-\underbrace{\nabla_\mathbf{a}\log Z(\mathbf{o},\theta)}_{=0}\approx-\varepsilon_\theta(\mathbf{a},\mathbf{o}) alogp(ao)=aEθ(a,o)=0 alogZ(o,θ)εθ(a,o)
在这里插入图片描述

CNN & Transformer

CNN
通过 FiLM 层将观测特征 O t O_t Ot 和去噪步数 k 作为条件输入,仅建模条件分布 p ( A t ∣ O t ) p(A_t|O_t) p(AtOt) ,在动作快速剧变(如速度指令空间)时表现欠佳,这源于时序卷积偏好低频信号的固有偏置以及局部感受野。

Transformer
输入为 [ k , O b s E m b , A E M b ] [k,Obs Emb, A EMb] [k,ObsEmb,AEMb] ,k 为扩散步骤的正弦, O t O_t Ot 通过共享的 MLP 转换为 O b s E m b Obs Emb ObsEmb,但是 Transformer 对超参数敏感。


http://www.ppmy.cn/server/179707.html

相关文章

【Unity】 HTFramework框架(六十三)SerializableDictionary可序列化字典

更新日期:2025年3月26日。 Github 仓库:https://github.com/SaiTingHu/HTFramework Gitee 仓库:https://gitee.com/SaiTingHu/HTFramework 索引 一、SerializableDictionary可序列化字典1.使用SerializableDictionary2.实现思路 二、Serializ…

3.使用epoll实现单线程并发服务器

目录 1. epoll的概述 2. 多线程与epoll的处理流程 2.1 多线程处理流程 2.2 epoll处理流程 3. epoll与多线程的比较 4. epoll的操作函数 4.1 epoll_create() 4.2 epoll_ctl() 4.3 epoll_wait() 5. 示例代码 6. epoll的工作模式 7. 使用O_NONBLOCK防止阻塞 8.运行代…

LeetCode-451. 根据字符出现频率排序

1、题目描述: 给定一个字符串 s ,根据字符出现的 频率 对其进行 降序排序 。一个字符出现的 频率 是它出现在字符串中的次数。 返回 已排序的字符串 。如果有多个答案,返回其中任何一个。 示例 1: 输入: s "tree" 输出: "eert"…

AI比人脑更强,因为被植入思维模型【19】三脑理论思维模型

定义 三脑理论思维模型是由美国神经科学家保罗麦克莱恩(Paul MacLean)提出的,该理论认为人类的大脑由三个不同但又相互关联的部分组成,分别是爬虫脑(Reptilian Brain)、边缘脑(Limbic Brain&am…

【赵渝强老师】达梦数据库的数据库对象

达梦数据库中包含各种数据库对象,主要分为两大类型:基本数据库对象和复杂数据库对象。下面分别进行介绍。 视频讲解如下 【赵渝强老师】达梦数据库的数据库对象 一、 基本数据库对象 常见的基本数据库对象有:表、索引、视图、序列、同义词等…

ngx_http_core_location

定义在 src\http\ngx_http_core_module.c static char * ngx_http_core_location(ngx_conf_t *cf, ngx_command_t *cmd, void *dummy) {char *rv;u_char *mod;size_t len;ngx_str_t *value, *n…

Vue3自定义指令的注册和使用

局部注册 先在setup中进行局部注册&#xff0c;如果使用Composition API <script setup> import { nextTick, ref } from vue;const overflowIndexes ref(new Set());const handleOverflow (index) > (el) > {nextTick(() > {if (el.scrollWidth > el.cl…

【身份证证件OCR识别】批量OCR识别身份证照片复印件图片里的文字信息保存表格或改名字,基于QT和腾讯云api_ocr的实现方式

项目背景 在许多业务场景中,需要处理大量身份证照片复印件,手动输入其中的文字信息效率低下且容易出错。利用 OCR(光学字符识别)技术可以自动识别身份证图片中的文字信息,结合 QT 构建图形用户界面,方便用户操作,同时使用腾讯 OCR API 能够保证较高的识别准确率。 界面…