Diffusion Policy扩散模型深度解析

Diffusion Policy(扩散策略) 是将扩散模型(Diffusion Model) 应用于机器人策略学习的方法。它的核心是:把机器人动作的生成,变成一个 “从随机噪声逐步去噪、还原出平滑动作序列” 的过程

一、通俗理解

传统强化学习(PPO/TD3):

  • 网络直接输出 “下一步该做什么动作”(单步、单点预测)
  • 容易抖动、不稳定、难学复杂动作

Diffusion Policy(DP)

  • 不直接输出单步动作,而是一次性生成未来一小段连续动作序列(比如 8~16 步)
  • 生成方式:从纯高斯噪声开始,经过十几步迭代去噪,慢慢 “净化” 成合理、平滑的动作序列
  • 执行时只取第一步(窗口的长度)动作,下一步重新观测、重新生成 → 类似 “滚动窗口规划”

类比:

传统方法:盲人一步一步摸路走;

DP:每次先闭眼想象一段完整路径(去噪生成),再只迈第一步(窗口的长度),不断重复。

二、核心原理

2.1 前向扩散过程(训练用)

真实、干净的动作序列 a₀ 逐步加高斯噪声,直到变成完全随机噪声 a_T。

  • a₀ = 真实动作(比如机械臂关节轨迹)
  • a₁ → a₂ → … → a_T:每步加一点点噪声
  • 公式:a_t = \sqrt{\alpha_t} * a_{t-1} + \sqrt{1 - \alpha_t} * \epsilon_t, \quad t = 1, \dots, T
  •            a_t表示第 t 步的动作序列,\alpha_t 是控制噪声添加强度的衰减系数,\epsilon_t 是高斯随机噪声。

训练目标:训练一个噪声预测网络 ε_θ(a_t, obs, t)

  • 输入:带噪动作 a_t + 当前观测 obs + 时间步 t
  • 输出:预测这一步加的噪声 ϵ̂
  • 损失:MSE (ϵ̂, ϵ) → 让网络学会 “看带噪动作,猜出被加了多少噪声”;

2.2 反向去噪过程(推理 / 控制用)

纯随机噪声 a_T 开始,反向迭代 T 步去噪,逐步还原出 a₀(动作序列)。

每一步 t(从 T→1):

  1. 用网络预测噪声:ε̂ = ε_θ(a_t, obs, t)
  2. 用公式 “减去噪声”,得到更干净的 a_{t-1}
  3. 最后一步可加少量随机噪声保持探索

结果

  • 得到一整段平滑、连续、物理合理的动作序列 [a₀₁, a₀₂, ..., a₀_H]
  • 机器人只执行第一个动作 a₀₁,剩下动作丢掉
  • 下一时刻:新观测 → 重新生成一段 → 再执行第一步 → 循环

三、每部分的具体参数详解

整体框架图:

3.1 图 a:General Formulation 通用公式

1)输入的观测序列:

符号含义通俗解释
Input: Image Observation Sequence输入:图像观测序列图像会通过 CNN/ViT 编码器提取特征,Robot Pose(机器人关节角度、末端位姿、夹爪开合度等自身状态)通过 MLP 编码,最终融合成统一的观测嵌入
Ot​第 t 时刻的观测块包含最近 To​ 步的历史观测(Ot−2​,Ot−1​,Ot​ 等),是模型的条件输入
To​Observation Horizon(观测窗口长度)模型一次看多少帧历史观测
Robot Pose机械臂关节信息除了图像,还会输入机械臂关节角、末端位姿等信息,作为观测的一部分

2)核心模型:Diffusion Policy参数

符号含义通俗解释
εθ​(O,A,k)噪声预测网络(Diffusion Policy 主体)

整个模型的核心,参数为 θ,输入 3 个东西:1. 观测 O(条件);

2. 带噪动作 A; 3. 扩散时间步 k; 输出:预测的噪声 ε^

kDiffusion Timestep(扩散时间步)对应我们之前说的 t,表示当前是第 k 步加噪 / 去噪,k=K 是完全噪声,k=0 是完全干净动作
KTotal Diffusion Steps(总扩散步数)整个扩散过程的总步数,也就是去噪要迭代 K 次,常用 20/50/100

3)输出侧:动作序列

符号含义通俗解释
At​第 t 时刻预测的动作序列模型输出的未来 Ta​ 步连续动作(at​,at+1​,at+2​,...)
at​第 t 时刻的单步动作动作序列里的第 1 个动作,机器人只执行这一步
Ta​ / Tp​Action Horizon / Prediction Horizon(动作预测窗口)模型一次生成多少步未来动作,也就是 At​ 的长度,常用 8/16/32
AtK​第 t 时刻、第 K 步的带噪动作初始完全随机的高斯噪声,是去噪的起点
At0​第 t 时刻、第 0 步的干净动作经过 K 次去噪后,最终得到的完美、平滑的动作序列
Output: Action Sequence输出:动作序列图左下角的彩色轨迹,从噪声(左,杂乱)→ 去噪(中,收敛)→ 最终轨迹(右,平滑),直观展示去噪过程

执行顺序:

  • 模型在时刻 t,输入最近 To​ 步观测 Ot​,输出未来 Ta​ 步动作 At​
  • 下一个时刻 t+4(图中窗口长度为3),输入新的观测 Ot+4​,重新生成新的动作序列 At+4​
  • 机器人只执行每个序列的第 1 步,实现滚动窗口闭环控制,保证鲁棒性

3.2 图 b:CNN-based Diffusion Policy(CNN 架构实现)

这是 Diffusion Policy 原论文的默认骨干网络(U-Net 结构),核心是用 FiLM 做条件注入

符号 / 模块含义通俗解释
Observation Ot​观测输入先通过编码器(CNN/MLP)把图像 / 状态变成观测特征向量
k时间步嵌入把扩散步数 k 编码成特征,告诉网络当前是第几步去噪
FiLM conditioningFeature-wise Linear Modulation(特征 - wise 线性调制)把观测特征 Ot​ 和时间步 k 融合,生成缩放系数 γ(图中的 a)和偏置 β(图中的 b)
a⋅x+bFiLM 公式对卷积层的特征 x 做:y=γ⋅x+β,用观测信息调整每一层的特征,通过x来调整出特征对哪个特征更关注(对a更关注则x比较大,对b更关注x比较小)
Conv1D一维卷积层处理动作序列的时序特征,提取动作的时间相关性
At​带噪动作输入第 k 步的带噪动作序列,作为网络的输入
∇E(At​)噪声预测输出网络预测的噪声梯度(等价于预测噪声 ε^),用来做去噪计算
×K迭代 K 次从 AtK​(纯噪声)开始,重复 K 次去噪,最终得到 At0​(干净动作)

3.3 图 c:Transformer-based Diffusion Policy(Transformer 架构实现)

这是 Diffusion Policy 的Transformer 变体,用交叉注意力做条件注入:

符号 / 模块含义通俗解释
Observation Ot​观测输入编码成 Obs Emb(观测嵌入),作为交叉注意力的 Key/Value
k时间步嵌入把扩散步数 k 编码,和观测嵌入融合
At​带噪动作输入编码成 Action Emb(动作嵌入),作为交叉注意力的 Query
Cross Attention交叉注意力层让动作嵌入 **“看到” 观测嵌入 **,实现 “根据当前观测生成动作” 的条件控制
Causal Attention Mask(因果注意力掩码)图中的网格掩码强制动作嵌入只能关注自己和之前的动作,不能看未来的动作,保证时序因果性,避免信息泄露
∇E(At​)噪声预测输出和 CNN 版一致,输出预测的噪声,用于去噪
×K迭代 K 次同样迭代 K 次去噪,得到最终动作序列

四、为什么 Diffusion Policy 比传统 RL 强

4.1 输出平滑动作序列

  • 预测一个动作序列窗口(如16步),但只执行第一个滑动窗口的动作,下一窗口时刻重新观测规划。通过此规则实现输出平滑动作序列。

  • 类比:就像开车时只关注前方一段路,不断根据新情况调整方向。

而传统RL则是单步单点预测,直接输出下一个动作。

    4.2 能学多模态、复杂动作分布

    • 传统策略输出单点高斯,容易单峰、卡死
    • DP 建模整个分布,可学 “多条可行路径”(比如绕开障碍的多种抓法)

    4.3 训练更稳定、梯度更干净

    • 训练目标是简单的噪声预测 MSE,比策略梯度好训
    • 不容易崩溃、遗忘、抖动

    4.4 支持长时序依赖

    • 一次生成 H 步动作,自带时序相关性
    • 适合抓取、装配、开门等需要连续多步配合的任务。

    内容概要:本文提出了一种在单向和双向V2G(Vehicle-to-Grid)环境下,对分布式电源与电动汽车充电站进行联合配置的优化方法,并提供了基于Matlab的代码实现。该方法综合考虑了分布式光伏、储能系统以及电动汽车的充放电行为对配电网的影响,构建了一个包含电压偏差、线路容量、设备出力等多种约束条件的多目标优化模型。通过合理规划分布式电源和充电站的位置与容量,旨在提升配电网对新能源的接纳能力,增强系统运行的经济性与稳定性。研究重点对比了单向充电与双向V2G模式下的配置差异,验证了V2G技术在削峰填谷、改善电压质量和降低网络损耗方面的显著优势,体现了其作为灵活资源参与电网互动的潜力。; 适合人群:具备电力系统分析基础、熟悉Matlab编程工具,从事新能源并网、电动汽车与电网互动、智能配电网规划等相关领域的研究生、科研人员及工程技术人员。; 使用场景及目标:①用于研究高比例电动汽车接入背景下配电网的规划与优化问题;②为含分布式能源的主动配电网提供充电基础设施与电源协同配置方案;③通过仿真对比单向充电与V2G模式对电网影响,评估V2G的调节潜力和服务价值。; 阅读建议:建议结合文中提供的Matlab代码,复现算例仿真过程,深入理解模型构建逻辑与求解流程,同时可拓展考虑更多不确定性因素(如负荷波动、光伏出力随机性)以提升模型实用性。
    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

    当前余额3.43前往充值 >
    需支付:10.00
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包

    打赏作者

    ghx3110

    你的鼓励将是我创作的最大动力

    ¥1 ¥2 ¥4 ¥6 ¥10 ¥20
    扫码支付:¥1
    获取中
    扫码支付

    您的余额不足,请更换扫码支付或充值

    打赏作者

    实付
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

    1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
    2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

    余额充值