当前位置: 首页 > article >正文

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

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.kler.cn/a/610295.html

相关文章:

  • java使用小知识合集(持续更新中)
  • 栈-常见考察面试算法题
  • 生活电子常识——cmd不能使用anaconda的python环境,导致输入python打开应用商店
  • Driver具体负责什么工作
  • 大疆上云api直播功能如何实现
  • odata 搜索帮助
  • LangChain开发(六)多模态输入与自定义输出
  • leetcode238.除自身意外数组的乘积
  • 解决GLIBC不兼容问题
  • 查看linux系统文件描述符限制
  • abp vnext框架重写volo.abp.openiddict的tokenController登录验证
  • 【MySQL】用户账户、角色、口令、PAM
  • 一文速通Python并行计算:03 Python多线程编程-多线程同步(上)—基于互斥锁、递归锁和信号量
  • vue 封装 Axios菜鸟教程
  • C++学习之路:从头搞懂配置VScode开发环境的逻辑与步骤
  • P1464 Function —— 洛谷
  • C++:重载操作符
  • django入门教程之cookie和session【六】
  • Pyecharts入门之绘制地图数据
  • 云端存储新纪元:SAN架构驱动的智能网盘解决方案