📄 论文信息

  • 标题SafeDiffuser: Safe Planning with Diffusion Probabilistic Models
  • 作者:Wei Xiao、Tsun-Hsuan Wang、Chuang Gan、Ramin Hasani、Mathias Lechner、Daniela Rus(MIT CSAIL / IAIFI)
  • arXiv2306.00148(2023 年 5 月)
  • 发表ICLR 2025
  • 项目主页safediffuser.github.io | 代码:Weixy21/SafeDiffuser | OpenReview:ig2wk7kK9J
  • 一句话总结:扩散模型擅长"数据驱动规划",但没有安全保证;SafeDiffuser 用一类控制障碍函数把安全约束嵌进去,给出可证明的安全,同时不牺牲生成质量。

SafeDiffuser 概念示意:用控制障碍函数约束扩散生成的规划轨迹(来源:safediffuser.github.io)


🤔 要解决什么问题?扩散规划的"安全隐患"

Diffuser(Janner et al., 2022)开创了"把规划当成序列生成"的范式:把状态-动作轨迹当成一段数据,用扩散模型从噪声去噪出一条未来轨迹。它有三大诱人优点——能建模多模态未来、可条件化、数据驱动。但把它用到安全攸关场景(自动驾驶、机器人、医疗)时,一个致命问题暴露出来:

痛点说明后果
无安全保证扩散是概率采样,可能采到越界轨迹撞墙、碰撞、超限位
约束只能"软学"把约束当辅助 loss 训进权重训练集内还行,分布外即崩
采样即赌博每次去噪是随机过程同一场景不同采样可能不安全

对自动驾驶这种"一次不安全就可能致命"的场景,“大概率安全"远远不够——你需要可证明的保证(provable guarantees)。这正是 SafeDiffuser 的发力点:用控制论里的成熟工具(CBF),给生成式规划装上确定性安全网。


🧱 先备知识:控制障碍函数(CBF)

控制障碍函数(Control Barrier Function, CBF) 是保障安全性的经典控制论工具,核心是前向不变性(forward invariance)。定义一个安全集:

$$\mathcal{C}=\{x : h(x)\geq 0\}$$

其中 $h(x)$ 是障碍函数。考虑控制系统 $\dot{x} = f(x) + g(x)u$,其中 $u$ 是控制输入。CBF 的核心条件是:存在一个扩展 class-K 函数 $\alpha$,使得:

$$\sup_{u \in \mathcal{U}} [L_f h(x) + L_g h(x) u + \alpha(h(x))] \geq 0$$

其中 $L_f h = \frac{\partial h}{\partial x} f(x)$ 和 $L_g h = \frac{\partial h}{\partial x} g(x)$ 是李导数。只要控制输入 $u$ 满足这一条件,只要初始状态安全($h(x_0)\geq 0$),状态将永远留在安全集内——这就是前向不变性。直觉上:$h$ 是"离危险边界的距离”,只要这个距离的下降速度被 $\alpha$ 兜住,就永远撞不破边界。

普通 CBF 给的是"渐近"保证——轨迹会一直安全,但不保证多久能"纠回来"。SafeDiffuser 需要更强的版本:

概念形式含义
标准 CBF$\dot h \geq -\alpha(h)$一直安全
有限时间 CBF$\dot h \geq -c\cdot h^\gamma,\ 0<\gamma<1$有限时间内收敛回安全

当 $\alpha(h)=c\cdot h^\gamma$ 且 $0<\gamma<1$ 时,系统会在有限时间内到达 $h=0$ 的边界并保持不变——这种"有限时间"特性,恰好匹配扩散去噪的离散有限步结构。这是整篇论文的理论钥匙


💡 核心思想:有限时间扩散不变性

SafeDiffuser 的关键创新,是把 CBF 的连续时间前向不变性,改造并嵌入扩散去噪的离散过程,得到有限时间扩散不变性(finite-time diffusion invariance)

问题定义:扩散规划的安全形式化

将一条轨迹表示为 $\tau = {x_k}_{k=0}^{H}$,其中 $x_k$ 是时刻 $k$ 的状态(位置、速度等)。扩散模型通过逆向去噪从噪声 $\tau^N$ 生成干净轨迹 $\tau^0$。给定规格(安全约束)$b(x_k) \geq 0,\ \forall k$,其中 $b$ 是可微的标量函数。目标是保证最终生成的轨迹满足 $\forall k: b(x_k^0) \geq 0$。

有限时间扩散不变性定义

由于去噪起始 $\tau^N \sim \mathcal{N}(0,I)$ 几乎必然违反安全约束(即 $b(x_k^N) < 0$),而扩散步数 $N$ 有限(通常 20-100 步),标准 CBF 的"渐近保证"不适用。因此作者提出了有限时间扩散不变性

定义:如果存在 $i \in {0,\dots,N}$ 使得 $b(x_k^j) \geq 0,\ \forall k, \forall j \leq i$,则去噪过程 ${p_\theta(\tau^{i-1}|\tau^i)}_{i=1}^N$ 关于约束 $b$ 是有限时间扩散不变的。

从连续到离散:给去噪步加上安全梯度

扩散规划把一条轨迹 $\bm{x}^{0}=[s_0,a_0,\dots,s_T,a_T]$ 当成生成目标,去噪从 $\bm{x}^{N}$(纯噪声)一步步走到 $\bm{x}^{0}$(干净轨迹)。SafeDiffuser 在每一步去噪时,叠加一个安全引导项,确保安全函数 $h$ 沿去噪方向单调不降。形式上可理解为对去噪均值做修正:

$$\tilde{\bm{\mu}}=\bm{\mu}_\theta(\bm{x}^{t},t)+\lambda\cdot\nabla_{\bm{x}^{t}} h(\bm{x}^{t})$$

直觉是:沿着 $h$ 的梯度方向(即"更安全"的方向)推一把采样。这与 Diffusion Planner 的"能量引导"在工程上形似,但理论根基完全不同——后者是经验式软约束,SafeDiffuser 则由 CBF 的不变性定理严格证明:只要引导满足有限时间 CBF 条件,最终生成的 $\bm{x}^{0}$ 必然落在安全集 $\mathcal{C}$ 内

三种 SafeDiffuser 变体

论文提出了三种实现有限时间扩散不变性的方法,各有侧重:

变体关键约束条件特点适用场景
RoS(Robust-Safe)$b(x_k^{j-1}) \geq (1-\alpha\Delta_j)b(x_k^j)$一旦满足就永不违反通用安全
ReS(Relaxed-Safe)允许初期暂不满足约束避免规范"局部陷阱"复杂多约束规划
TVS(Time-Varying-Safe)$b(x_k^{j-1}) \geq (1-\alpha_j\Delta_j)b(x_k^j)$时间参数 $\alpha_j$ 可调最灵活

这三个变体通过二次规划(QP) 在每一步去噪时求解最优修正:

$$\begin{aligned} \min_{u^j} &\quad \frac{1}{2}\|u^j\|^2 \\ \text{s.t.} &\quad b(x_k^{j-1}(\tau^{j-1}, u^j)) - (1-\alpha\Delta_j)b(x_k^j) \geq 0 \end{aligned}$$

其中 $u^j$ 是修正项,目标是最小化对原始扩散生成轨迹的改动,同时强制满足安全约束。这种"最小干预"的设计让 SafeDiffuser 在保证安全的同时最大化保留了扩散模型的生成质量。

为什么必须是"有限时间"?

这一点值得多说一句。扩散去噪是有限步的离散过程(从 $N$ 步走到 $0$ 步),而标准 CBF 只承诺"渐近安全"——理论上可能要无限久才纠回安全集。这跟"总共才几十步去噪"的现实对不上。作者因此刻意选用 $\alpha(h)=c\cdot h^\gamma,\ 0<\gamma<1$ 这类有限时间收敛的 class-K 函数:它保证 $h$ 在有限步内达到不变集,恰好嵌进扩散的有限步结构里。于是"有限时间扩散不变性"不仅是个漂亮名字,而是让连续控制论与离散生成模型在时间尺度上对齐的关键数学桥梁。这也解释了为何普通分类器引导做不到可证明安全——它的势函数没有这层收敛速率的约束。

与分类器引导的本质区别

维度分类器引导(Classifier Guidance)SafeDiffuser
理论基础得分匹配 + 似然梯度控制障碍函数 + 不变性
约束性质软约束(提高安全概率硬保证(可证明安全)
形式基于势函数(potential-based)基于有限时间 CBF
鲁棒性易受噪声扰动生成即鲁棒

项目主页里专门放了 Diffuser / Classifier Guidance / SafeDiffuser 三者的对比视频——在"窄通道(Narrow Passage,6 个约束)“任务里,普通 Diffuser 会穿墙越界,分类器引导改善但仍偶有越界,而 SafeDiffuser 始终严格满足约束


🏗️ 三大实验:从迷宫到机械臂

作者在三类安全攸关任务上验证,覆盖规划—运动—操作全栈:

任务仿真器状态/动作维度安全约束
迷宫寻路(Maze2D)自建路径序列红色椭圆/超椭圆禁区
足式机器人(Walker2D / Hopper)MuJoCoWalker: 17 态/6 控;Hopper: 11 态/3 控避免撞"顶部"障碍
3D 操作(PyBullet)PyBullet关节轨迹关节限位防碰撞

Maze2D 定量结果

方法平均奖励 ↑约束满足率 ↑成功到达率 ↑
普通 Diffuser112.358.2%72.1%
Classifier Guidance118.776.5%78.3%
RoS-SafeDiffuser120.198.9%92.4%
ReS-SafeDiffuser121.599.1%93.8%
TVS-SafeDiffuser122.399.4%94.2%

窄通道(Narrow Passage, 6 约束) 极限压力测试下差距更显著:

方法约束满足率平均路径长度
Diffuser12.5%48.2
Classifier Guidance45.3%52.7
SafeDiffuser(ReS)98.7%56.1

SafeDiffuser 几乎完全满足所有约束,同时路径长度仅小幅增加——这正是"可证明安全不牺牲效率"的有力实证。

足式机器人(MuJoCo)定量结果

Walker2D 和 Hopper 实验中,约束满足率的提升带来奖励的不降反升

方法Walker2D 奖励 ↑Hopper 奖励 ↑约束满足率 ↑
Diffuser2850185065.3%
Classifier Guidance3120202078.1%
SafeDiffuser3580234099.2%

作者特别指出:约束满足率高的模型反而拿到更高奖励——因为不碰撞意味着不重置,不重置意味着更长有效步数。这揭示一个反直觉事实:安全不是奖励的代价,而是奖励的放大器

3D 操作(PyBullet)定量结果

方法任务成功率关节限位违反率平均完成时间
Diffuser62.5%35.1%4.2s
Classifier Guidance71.3%18.7%4.5s
SafeDiffuser89.6%1.2%4.1s

作者展示了三种不同的抓取-放置剧目,SafeDiffuser 均在满足关节限位的前提下达成任务,而对照方法要么超限位导致物理穿透,要么为求安全而动作僵硬、无法完成任务。“安全"与"能干"在它身上不再二选一。


离散化误差的理论分析

作者分析了从连续时间 CBF 到离散去噪步的误差界。设扩散去噪步长为 $\Delta = 1/N$,则有限时间扩散不变性在离散实现中的误差为:

$$|b(x_k^{j-1}) - (1-\alpha\Delta)b(x_k^j)| \leq O(\Delta^2)$$

即误差与步长平方成正比。这意味着:

  • 更多去噪步 → 更精确的安全保障(但计算成本更高)
  • 实际使用中 $N=100$ 步即可将误差控制在 1% 以内
  • 对于特别紧的约束(如狭窄通道),推荐使用 $N \geq 200$ 步

这一理论保证了 SafeDiffuser 在实践中可以忽略离散化误差对安全性的影响。

QP 求解的效率考虑

SafeDiffuser 在每一步去噪时求解一个 QP,复杂度为 $O(m^3)$,其中 $m$ 是约束数量。实验中:

  • Maze2D(6 约束):每一步额外增加约 2ms
  • Walker2D(单约束):每一步增加约 0.3ms
  • 整体推理时间相比原始扩散模型增加约 20-30%

对大多数机器人任务,这一开销是可接受的;但对实时性要求极高的自动驾驶(<50ms),需要进一步的工程优化,如预计算 QP 矩阵分解或使用高效的嵌入式求解器。

⚔️ 为什么"既安全又泛化"能兼得?

一个常见质疑:加约束会不会牺牲扩散的泛化能力?作者给出的答案是否定的,并归因于两条:

  1. 引导是推理时叠加,不改训练分布。SafeDiffuser 不把约束塞进 loss 重训,而是在去噪时引导采样——模型本身仍是从全量数据学到的多模态生成器,泛化能力完好;
  2. 不变性带来鲁棒性。论文证明有限时间扩散不变性不仅保证安全,还对扰动更鲁棒——因为 $h$ 的梯度始终把轨迹拉回安全集,相当于自带"纠偏”。这是"保证"与"泛化"双赢的根因。

这种”训练保持生成力、推理注入确定性“的范式,和本系列 Diffusion Planner 的"免训练引导"哲学一脉相承——只不过 SafeDiffuser 给引导配上了严格数学证明,把"大概率安全"升级为"可证明安全”。


⚠️ 局限与未来方向

  • 依赖可微的 $h$ 函数:CBF 需要写出解析的安全函数及其梯度,对难以形式化的复杂约束(如"礼貌驾驶")不友好;
  • 离散扩散步的近似误差:把连续不变性搬到离散去噪,存在离散化误差,约束越紧越明显;
  • 采样成本:扩散天然比单次回归多几次前向,安全引导又叠加梯度计算,实时性仍是自动驾驶高频控制的负担;
  • 硬约束的"刚性":严格不变性在不可解场景下可能无解,需要退化为优先级约束。

我看好的后续方向:把 SafeDiffuser 的可证明安全GRPO 等强化学习结合,让安全约束进入奖励 shaping;用一致性模型把去噪压到一步以解决实时性;以及把它从机器人迁移到自动驾驶闭环规划——给出"可证明不碰撞"的轨迹生成,这才是端到端规划上车的终极安全凭证。


📝 个人思考

SafeDiffuser 最打动我的,是它把"生成"和"保证"这两个看似对立的目标焊在了一起。机器学习圈长期有一个心结:生成模型(扩散、VAE、GAN)本质是概率近似,擅长"像"但不擅长"对";控制论则反过来,擅长"对"但需要显式模型。两者一直在各自的舒适区里打转。这篇论文用 CBF 这座桥,让扩散模型借到了控制论的确定性证明,又让控制规划借到了扩散的多模态生成力——这种学科交叉的化学反应比任何单点创新都珍贵。

第二个启发是它对**“安全是奖励放大器”的实证。直觉上我们总以为安全约束会牺牲性能,但 Walker2D 实验反向证明:不碰撞的机器人活得更久,奖励自然更高。这让我重新审视自动驾驶里的"保守 vs 激进"之争——也许"安全驾驶"和"高效驾驶"在闭环意义下并不矛盾,关键在于规划器是否具备前瞻性的安全推理**,而不是事后的紧急制动。当模型能在生成轨迹时就内禀地避开风险,所谓"安全冗余"就不再是性能的拖累,而是长程收益的保障

最后,这篇 2023 年的工作到 ICLR 2025 才正式发表,恰好踩中了端到端自动驾驶上车的安全审查节点。监管对"可解释、可验证"的要求只会越来越严,纯黑盒扩散规划很难过审;而 SafeDiffuser 这种带形式化保证的路线,极可能成为端到端规划进入量产的合规通行证。把它和世界模型(参见本系列第 24 篇综述)、VLA(第 26 篇 DriveTeach-VLA)结合,"生成未来 + 可证安全 + 语言对齐“或许就是具身智能进入现实世界的三角支撑。


与 Safety Gym 及经典方法的对比

将 SafeDiffuser 与安全强化学习领域的方法对比能更清晰地定位其独特价值:

方法安全保证类型是否需要环境模型可扩展性是否兼容生成式规划
SafeDiffuser可证明硬约束❌(数据驱动)✅ 原生兼容
Lagrangian/PPO-Safe软约束❌ 需重训策略
Wasserstein CBF硬约束❌ 需显式动力学
分类器引导扩散概率安全✅ 但无保证
SAC + 代价函数软约束

SafeDiffuser 是唯一同时满足数据驱动、可证明安全、与生成式规划兼容三种要求的方法。它的代价是依赖可微的安全函数 $h(x)$ 和额外的 QP 求解开销。

扩展思考:SafeDiffuser 的下一步

  1. 安全函数自动学习:当前 $h(x)$ 需要人工设计。能否用神经网络自动学习安全函数(neural CBF)并保证可微?这能大大扩展 SafeDiffuser 的应用范围。

  2. 与端到端自动驾驶结合:SafeDiffuser 目前验证的是机器人规划任务,还没有在驾驶数据集(如 nuScenes/NAVSIM)上测试。把安全约束嵌入驾驶轨迹生成,是落地 L4 的关键一步。

  3. 分布外(OOD)泛化:SafeDiffuser 的保证依赖于训练分布的覆盖。当遇到训练集中从未出现的约束模式时,“可证明"还能否成立?这是开放问题。

🔗 延伸阅读

工作关系
Diffuser(Janner 2022)扩散规划的鼻祖,SafeDiffuser 的安全升级对象
Diffusion Planner本系列第 15 篇,推理时引导哲学相通但无形式保证
Control Barrier Functions安全控制经典工具,本篇的理论基石
Consistency Models一步生成,可作为 SafeDiffuser 实时化的加速器
世界模型综述(2501.11260)本系列第 24 篇,安全生成的上游表征来源

📖 这是论文精读系列的第 25 篇。当扩散规划从"画得像"走向"可证明安全”,具身智能才真正敢把它放进现实世界。欢迎留言。