为什么自动驾驶需要扩散模型?

自动驾驶规划的核心难题在于"找到正确的轨迹分布",而非仅仅是"找到一条轨迹"。

考虑一个简单场景:自车接近一个无信号灯的 T 字路口。存在三种合理选项——左转、右转、直行通过。传统回归模型(L1/L2 损失)训练后面对此场景会输出三条轨迹的平均值:一条斜向路口中央的无意义曲线。这是损失函数的结构性局限,而非模型的能力缺陷——L2 回归在多模态分布上的最优解恰好是条件均值,而条件均值在物理上可能根本不可行。

扩散模型提供了一条基本的出路。它学习轨迹的概率分布 p(x)p(\mathbf{x}),然后从中采样,而非直接预测轨迹坐标。训练目标是匹配分布本身——分布可以是多模态的、长尾的、任意复杂的。当模型学到"左转/右转/直行各自构成一个概率峰"后,采样自然产生合理的轨迹而非均值坍缩。

本文尝试做一次面向自动驾驶的系统梳理。从扩散模型的第一性原理出发,追踪每一步数学推导的动机,理解每一个设计选择背后的"为什么",最终回答:扩散模型的哪些性质使其天然适配驾驶规划,以及当前方法尚未解决的根本矛盾。


一、扩散的数学:从破坏到重建

1.1 前向过程:逐步破坏数据

扩散模型的起点是一个简单的物理直觉:如果你对一张清晰的图像逐步添加高斯噪声,最终它会变成纯噪声。形式化地,给定干净数据 x0\mathbf{x}_0,前向过程定义了一个马尔可夫链:

q(xtxt1)=N(xt;1βtxt1,βtI) q(\mathbf{x}_t \vert \mathbf{x}_{t-1}) = \mathcal{N}(\mathbf{x}_t; \sqrt{1 - \beta_t}\, \mathbf{x}_{t-1}, \beta_t \mathbf{I})

其中 βt\beta_t 是噪声调度(noise schedule),控制每一步添加噪声的强度。关键性质是:通过重参数化技巧,我们可以从 x0\mathbf{x}_0 直接跳到任意时间步 tt,而无需逐步迭代:

q(xtx0)=N(xt;αˉtx0,(1αˉt)I) q(\mathbf{x}_t \vert \mathbf{x}_0) = \mathcal{N}(\mathbf{x}_t; \sqrt{\bar{\alpha}_t}\, \mathbf{x}_0, (1 - \bar{\alpha}_t)\mathbf{I})

其中 αt=1βt\alpha_t = 1 - \beta_tαˉt=i=1tαi\bar{\alpha}_t = \prod_{i=1}^t \alpha_i。这一闭式解是整个训练框架的基石——它使得训练时不需要真正执行前向链,只需一步采样即可获得任意噪声水平的训练样本。

对驾驶规划的启示。 前向过程将一条干净的轨迹 x0\mathbf{x}_0(例如 [x1,y1,θ1,,x8,y8,θ8][x_1, y_1, \theta_1, \ldots, x_8, y_8, \theta_8])逐步腐蚀为高斯噪声。当 tt 较小时,xt\mathbf{x}_t 仍是可辨识的轨迹,只是偏离了真值几个车道宽度;当 tt 较大时,xt\mathbf{x}_t 变成无意义的随机坐标。这意味着噪声水平 tt 定义了任务的难度谱系——从"微调一条几乎正确的轨迹"到"凭空生成一条合理的轨迹"。

1.2 反向过程:学会逆转破坏

如果前向过程将数据变为噪声,那么反向过程就是从噪声中恢复数据。核心问题是:给定 xt\mathbf{x}_t,如何推断 xt1\mathbf{x}_{t-1}

当以 x0\mathbf{x}_0 为条件时,反向转移概率 q(xt1xt,x0)q(\mathbf{x}_{t-1} \vert \mathbf{x}_t, \mathbf{x}_0) 可以解析计算。通过贝叶斯法则展开两个高斯分布的乘积、配方后还原为标准高斯形式,得到:

q(xt1xt,x0)=N(xt1;μ~t,β~tI) q(\mathbf{x}_{t-1} \vert \mathbf{x}_t, \mathbf{x}_0) = \mathcal{N}(\mathbf{x}_{t-1}; \tilde{\boldsymbol{\mu}}_t, \tilde{\beta}_t \mathbf{I})

其中后验均值和方差为:

β~t=1αˉt11αˉtβt,μ~t=αˉt1βt1αˉtx0+αt(1αˉt1)1αˉtxt \tilde{\beta}_t = \frac{1 - \bar{\alpha}_{t-1}}{1 - \bar{\alpha}_t} \beta_t, \quad \tilde{\boldsymbol{\mu}}_t = \frac{\sqrt{\bar{\alpha}_{t-1}} \beta_t}{1 - \bar{\alpha}_t} \mathbf{x}_0 + \frac{\sqrt{\alpha_t}(1 - \bar{\alpha}_{t-1})}{1 - \bar{\alpha}_t} \mathbf{x}_t

由于 x0\mathbf{x}_0 未知,我们用模型预测的 x^0\hat{\mathbf{x}}_0 替代。将 x0=1αˉt(xt1αˉtϵ)\mathbf{x}_0 = \frac{1}{\sqrt{\bar{\alpha}_t}}(\mathbf{x}_t - \sqrt{1-\bar{\alpha}_t}\boldsymbol{\epsilon}) 代入后,均值可重新参数化为噪声预测形式:

μ~t=1αt(xt1αt1αˉtϵ) \tilde{\boldsymbol{\mu}}_t = \frac{1}{\sqrt{\alpha_t}} \Big( \mathbf{x}_t - \frac{1 - \alpha_t}{\sqrt{1 - \bar{\alpha}_t}} \boldsymbol{\epsilon} \Big)

这是全文最核心的推导结果。它告诉我们:学习反向过程等价于学习预测噪声 ϵθ(xt,t)\boldsymbol{\epsilon}_\theta(\mathbf{x}_t, t)。训练目标简化为:

Lsimple=Et,x0,ϵ[ϵϵθ(αˉtx0+1αˉtϵ,t)2] \mathcal{L}_{\text{simple}} = \mathbb{E}_{t, \mathbf{x}_0, \boldsymbol{\epsilon}} \Big[\| \boldsymbol{\epsilon} - \boldsymbol{\epsilon}_\theta(\sqrt{\bar{\alpha}_t}\, \mathbf{x}_0 + \sqrt{1 - \bar{\alpha}_t}\, \boldsymbol{\epsilon},\, t) \|^2 \Big]

Ho et al. (2020) 发现,丢弃变分下界中随时间变化的权重项、使用等权 MSE 训练,反而在实践中产生更好的样本质量。这实际上是深刻的技术洞察:权重项将训练重心压向高噪声时间步(那里样本最多但信息最粗糙),而等权训练让模型在每个噪声水平上都获得足够的监督。

1.3 统一视角:噪声预测、分数估计与速度预测

DDPM 的噪声预测 ϵθ\boldsymbol{\epsilon}_\theta、NCSN 的分数估计 sθ\mathbf{s}_\theta 和 v-prediction 的速度预测 vθ\mathbf{v}_\theta 是同一对象的三个参数化。具体地:

sθ(xt,t)=ϵθ(xt,t)1αˉt,vθ(xt,t)=αˉtϵθ(xt,t)1αˉtx0 \mathbf{s}_\theta(\mathbf{x}_t, t) = -\frac{\boldsymbol{\epsilon}_\theta(\mathbf{x}_t, t)}{\sqrt{1 - \bar{\alpha}_t}}, \quad \mathbf{v}_\theta(\mathbf{x}_t, t) = \sqrt{\bar{\alpha}_t}\, \boldsymbol{\epsilon}_\theta(\mathbf{x}_t, t) - \sqrt{1-\bar{\alpha}_t}\, \mathbf{x}_0

分数函数 xlogp(xt)\nabla_{\mathbf{x}} \log p(\mathbf{x}_t) 与噪声预测之间仅差一个与时间相关的缩放因子。这意味着 DDPM 和基于分数的生成模型(Song & Ermon, 2019)在数学上等价——它们只是同一概率流的不同参数化。

v-prediction 的几何直觉更为优美。定义角坐标 ϕt=arctan(σt/αt)\phi_t = \arctan(\sigma_t / \alpha_t),则 v\mathbf{v}-prediction 可以写成:

vϕ=cosϕϵsinϕx \mathbf{v}_\phi = \cos\phi\, \boldsymbol{\epsilon} - \sin\phi\, \mathbf{x}

DDIM 的去噪步骤因此化为三角恒等式:

zϕs=cos(ϕsϕt)zϕt+sin(ϕsϕt)v^θ(zϕt) \mathbf{z}_{\phi_s} = \cos(\phi_s - \phi_t)\, \mathbf{z}_{\phi_t} + \sin(\phi_s - \phi_t)\, \hat{\mathbf{v}}_\theta(\mathbf{z}_{\phi_t})

去噪过程被几何化为圆弧上的旋转运动——每一步沿 v^-\hat{\mathbf{v}} 方向旋转一定角度。这不仅优雅,而且数值稳定:三角函数的模始终为 1,避免了极端噪声水平下数值爆炸的风险。

对驾驶规划的启示。 轨迹空间比图像空间低得多(24 维 vs 百万维),因此理论上扩散过程应该更简单。但低维也意味着分布结构更加尖锐——多条模态之间可能有极窄的低概率谷地分隔。在实践中,v-prediction 的数值稳定性在低维轨迹扩散中尤为重要,因为噪声调度在低维空间的容错裕度更小。


二、从 DDPM 到 Flow Matching:生成范式的演进

2.1 DDIM:确定性去噪的突破

DDPM 的反向过程是随机的——每一步从学习到的高斯分布中采样。这意味着同一条噪声轨迹可能产生不同的输出,且采样需要数百步才能获得高质量结果。

DDIM (Song et al., 2021) 的核心洞察是:反向过程不必是随机的。 通过将反向转移的方差设为零,DDIM 将随机采样替换为确定性映射:

xt1=αˉt1xt1αˉtϵθ(xt,t)αˉtx^0+1αˉt1σt2ϵθ(xt,t) \mathbf{x}_{t-1} = \sqrt{\bar{\alpha}_{t-1}} \underbrace{\frac{\mathbf{x}_t - \sqrt{1-\bar{\alpha}_t}\, \boldsymbol{\epsilon}_\theta(\mathbf{x}_t, t)}{\sqrt{\bar{\alpha}_t}}}_{\hat{\mathbf{x}}_0} + \sqrt{1-\bar{\alpha}_{t-1} - \sigma_t^2}\, \boldsymbol{\epsilon}_\theta(\mathbf{x}_t, t)

σt=0\sigma_t = 0 时为完全确定性(DDIM),σt=β~t\sigma_t = \tilde{\beta}_t 时退化为 DDPM。确定性映射的关键优势是:可以大幅跳步采样(如从 t=1000t=1000 直接到 t=800t=800 再到 t=600t=600),因为确定性轨迹在时间轴上是可预测的。这使得推理步数从 1000 降至 10-50 步而几乎不损失质量。

对驾驶规划的意义。 实时性要求是驾驶系统区别于图像生成的核心约束。DDIM 使得扩散规划器可以在 10-20 步内完成去噪,配合 DiT 架构的单步推理耗时约 5ms,总推理延迟可控制在 50-100ms 内,满足 10Hz 的规划频率要求。DiffusionDrive (CVPR 2025) 正是利用了 DDIM 的截断采样,将扩散步数进一步压缩至 2-4 步。

2.2 Flow Matching:直线耦合

Flow Matching(Lipman et al., 2023)和 Rectified Flow (Liu et al., 2023) 代表了扩散模型的最新范式演进。其核心简化在于:不再使用离散的马尔可夫链,而是定义一个从噪声 ϵ\epsilon 到数据 x0\mathbf{x}_0 的连续时间速度场 vtv_t

dxtdt=vt(xt),x0=ϵ,x1=xdata \frac{d\mathbf{x}_t}{dt} = v_t(\mathbf{x}_t), \quad \mathbf{x}_0 = \epsilon, \quad \mathbf{x}_1 = \mathbf{x}_{\text{data}}

训练目标极其简洁——匹配预定义的插值路径上的速度场:

LFM=Et,x0,ϵ[vtvθ(xt,t)2] \mathcal{L}_{\text{FM}} = \mathbb{E}_{t, \mathbf{x}_0, \epsilon} \Big[ \| v_t - v_\theta(\mathbf{x}_t, t) \|^2 \Big]

其中 xt=(1t)ϵ+tx0\mathbf{x}_t = (1-t)\epsilon + t\mathbf{x}_0 是噪声与数据之间的线性插值,目标速度 vt=x0ϵv_t = \mathbf{x}_0 - \epsilon 是常数。

与 DDPM 相比,Flow Matching 有三个本质差异:

性质DDPM/DDIMFlow Matching
前向过程离散马尔可夫链,逐步加噪连续插值,一步定义
耦合路径弯曲(非线性噪声调度)直线(线性插值)
采样需要学习噪声调度ODE 求解器直接积分

直线耦合是 Flow Matching 的核心优势。Rectified Flow 进一步通过 reflow 操作将弯曲的耦合路径拉直——用已经训练好的模型生成 (ϵ,x^0)(\epsilon, \hat{\mathbf{x}}_0) 对,然后在这些"已配对"的数据上重新训练。每经过一轮 reflow,路径变得更直,更少的 ODE 步数即可精确求解。理论上,经过无穷次 reflow 后路径变成完美直线,一步 ODE 即可完成生成

对驾驶规划的意义。 Flow Planner (NeurIPS 2025) 将 Flow Matching 引入驾驶规划,用细粒度轨迹 tokenization 将长轨迹分解为重叠片段,配合 flow matching 建模每个片段的条件分布。相比 Diffusion Planner (ICLR 2025) 的 DDPM+DiT 方案,Flow Planner 在相同步数下获得了更低的轨迹误差——这正是直线耦合的实证优势。

2.3 三种范式的统一视图

从概率流 ODE 的角度看,DDPM、DDIM 和 Flow Matching 可以统一为:

dx=[f(x,t)12g(t)2xlogpt(x)]dt d\mathbf{x} = \left[ f(\mathbf{x}, t) - \frac{1}{2}g(t)^2 \nabla_{\mathbf{x}} \log p_t(\mathbf{x}) \right] dt

其中 ffgg 是前向 SDE 的漂移和扩散系数。DDPM 对应 g>0g > 0(随机),DDIM 对应 g=0g = 0(确定性),Flow Matching 对应 ff 为常数速度场、g=0g = 0。三者的共同本质是:学习数据分布的分数函数(或其等价形式),然后沿分数方向从噪声移动到数据。


三、条件生成:如何让模型听指挥

3.1 分类器引导:外部梯度注入

无条件扩散模型学习的是 p(x)p(\mathbf{x})——所有合理轨迹的分布。但驾驶规划需要的是条件分布 p(xc)p(\mathbf{x} \vert c)——在给定导航指令 cc(如"左转")下的轨迹分布。

分类器引导 (Dhariwal & Nichol, 2021) 的思路是:训练一个独立的分类器 fϕ(cxt)f_\phi(c \vert \mathbf{x}_t),然后在采样时将分类器梯度注入去噪方向:

ϵ^θ(xt,t,c)=ϵθ(xt,t)1αˉtwxtlogfϕ(cxt) \hat{\boldsymbol{\epsilon}}_\theta(\mathbf{x}_t, t, c) = \boldsymbol{\epsilon}_\theta(\mathbf{x}_t, t) - \sqrt{1 - \bar{\alpha}_t}\, w\, \nabla_{\mathbf{x}_t} \log f_\phi(c \vert \mathbf{x}_t)

引导强度 w>0w > 0 控制条件的影响力度。ww 越大,采样轨迹越严格地满足条件,但多样性越低。

在驾驶场景中,分类器引导的直觉是:在每一步去噪时,额外施加一个"方向修正力",将轨迹推向满足导航指令的区域。 这类似于势场法中的引力场——分类器梯度充当了"目标引力"。

然而,分类器引导有一个基本缺陷:它需要训练一个独立于扩散模型的分类器,且分类器必须对任意噪声水平的 xt\mathbf{x}_t 都准确——这意味着需要在所有噪声水平上都有标注数据。在驾驶场景中,为每个噪声水平标注"这条轨迹是否安全/合规"几乎不可行。

3.2 无分类器引导:条件与无条件的线性组合

无分类器引导 (Ho & Salimans, 2022) 用一个优雅的数学技巧消除了对独立分类器的需求。核心思想是同时训练条件模型 ϵθ(xt,t,c)\boldsymbol{\epsilon}_\theta(\mathbf{x}_t, t, c) 和无条件模型 ϵθ(xt,t,)\boldsymbol{\epsilon}_\theta(\mathbf{x}_t, t, \varnothing)(将条件替换为空 token),然后在采样时使用线性组合:

ϵ^θ(xt,t,c)=(w+1)ϵθ(xt,t,c)wϵθ(xt,t,) \hat{\boldsymbol{\epsilon}}_\theta(\mathbf{x}_t, t, c) = (w+1)\, \boldsymbol{\epsilon}_\theta(\mathbf{x}_t, t, c) - w\, \boldsymbol{\epsilon}_\theta(\mathbf{x}_t, t, \varnothing)

w=0w = 0 时退化为普通条件采样,w>0w > 0 时增强条件的影响。这一公式的推导基于贝叶斯法则:

xtlogp(xtc)=xtlogp(xt)+xtlogp(cxt) \nabla_{\mathbf{x}_t} \log p(\mathbf{x}_t \vert c) = \nabla_{\mathbf{x}_t} \log p(\mathbf{x}_t) + \nabla_{\mathbf{x}_t} \log p(c \vert \mathbf{x}_t)

条件分数 = 无条件分数 + 分类器梯度。因此,从条件模型和无条件模型的分数之差中可以隐式地提取出分类器梯度,无需显式训练分类器。

对驾驶规划的关键应用。 在 Diffusion-Planner (ICLR 2025) 中,条件 cc 包含了场景上下文(BEV 特征、周围车辆状态、导航指令等),通过 DiT 的 cross-attention 注入。DiffusionDrive (CVPR 2025) 进一步将条件细化为一组多模态锚点轨迹(anchor trajectories),每个锚点代表一种驾驶意图(左转/直行/右转),模型在锚点约束下进行截断扩散。

无分类器引导在驾驶场景中有一个独特的价值:通过调节 ww,可以在安全性和多样性之间做运行时权衡。ww 产生保守的、严格遵循导航指令的轨迹;低 ww 产生更多样的、可能包含创造性避障方案的轨迹。这种运行时可调性是扩散规划器相对于确定性回归方法的核心优势之一。

3.3 条件注入的架构实现

条件信息如何进入模型?三种主流范式在驾驶规划中各有应用:

AdaLN(自适应层归一化)。 将时间步 tt 和条件 cc 通过 MLP 映射为 scale 和 shift 参数,对 DiT 每个 block 的输出做仿射变换:

AdaLN(h,t,c)=γ(t,c)LayerNorm(h)+β(t,c) \text{AdaLN}(\mathbf{h}, t, c) = \gamma(t, c) \odot \text{LayerNorm}(\mathbf{h}) + \beta(t, c)

Diffusion-Planner 和 DiffusionDrive 都采用了 DiT+AdaLN 的架构。其优势是条件信息渗透到模型的每一层、每一个 token,且不增加序列长度。

Cross-Attention。 条件信息作为 key-value,噪声轨迹 token 作为 query,通过标准交叉注意力融合:

CrossAttn(Q,Kc,Vc)=softmax(QKcd)Vc \text{CrossAttn}(\mathbf{Q}, \mathbf{K}_c, \mathbf{V}_c) = \text{softmax}\Big(\frac{\mathbf{Q}\mathbf{K}_c^\top}{\sqrt{d}}\Big) \mathbf{V}_c

在驾驶规划中,Kc,Vc\mathbf{K}_c, \mathbf{V}_c 通常来自 BEV encoder 或 VLM 的输出。Cross-attention 允许轨迹 token 选择性地关注场景中最相关的区域,空间对齐更加灵活。

In-Context Concatenation。 将条件 token 直接拼接到噪声轨迹 token 序列中,通过自注意力统一处理。这种方式最简单但序列长度翻倍,计算开销较大。

关于 τ(时间步)的详细消费接口(AdaLN 全局调制 / Concat 输入融合 / FinalLayer 局部调节三种范式及其数学推导),参见下一小节「3.4 τ:扩散与流匹配的时间条件」。关于导航信息注入的专门分析(四层注入体系:Prompt → Adapter → Diffusion Condition → Unified Token),见前文

3.4 τ:扩散与流匹配的时间条件

τ(tau)是所有生成式模型的隐含假设——它回答的是"当前输入有多脏,模型该做多强的修正"。无论扩散还是 Flow Matching,τ 都是不可或缺的过程条件。本节详细展开 τ 的语义、编码方式和消费范式。

从一个直觉开始

想象在一张布满噪声的画布上作画:

  • τ = 0 时,画布上已有模糊可辨的轮廓——只需轻轻润色。
  • τ = 0.5 时,画布上是半抽象色块——需同时判断构图和填充细节。
  • τ = 1 时,画布几乎全是白噪声——必须凭空构想整幅画的框架。

这就是 τ 的全部语义:它告诉模型当前输入有多脏,从而决定该做多大强度的修正。

扩散模型中的 τ

在 DDPM 中,前向过程将干净数据 x0\mathbf{x}_0 逐步加噪:

xt=αˉtx0+1αˉtϵ,t[0,T]x_t = \sqrt{\bar{\alpha}_t}\, x_0 + \sqrt{1-\bar{\alpha}_t}\, \epsilon, \quad t \in [0, T]

训练时随机采样 tt,让模型从 xtx_t 中预测噪声 ϵ\epsilon 或直接预测 x0x_0。Diffusion-Planner 的实现:

1
2
3
4
t = torch.rand(B, device=gt_future.device) * (1 - eps) + eps
mean, std = marginal_prob(gt_future, t)
xT = mean + std * randn_like(gt_future)
score = dit(xT, t, ...)

τ\tau 越大,x(τ)x^{(\tau)} 越接近纯噪声;τ\tau 越小,越接近真实轨迹。τ 是去噪过程的进度条。

Flow Matching 中的 τ

Flow Matching 的前向过程更简洁——线性插值:

xt=(1t)x0+tϵ,t[0,1]x_t = (1 - t)\, x_0 + t\, \epsilon, \quad t \in [0, 1]

推理时通过欧拉积分逐步去噪:

1
2
3
4
for step in range(num_steps):
    t_now = t_grid[step]
    velo_t_pred = model(x_t, t_now)
    x_t = x_t + dt * velo_t_pred

关键结论:无论扩散还是 Flow Matching,τ 都是不可缺少的条件输入——生成是从噪声到数据的渐进过程,τ 标记当前位置。

τ 作为通用进度条:SDE 弯曲路径 vs ODE 直线路径
Loading visualization...
拖动 τ 滑块(0→1)观察粒子从右侧高斯噪声 cloud 流向左侧目标 GMM。蓝色:DDPM SDE 路径含 Euler-Maruyama 随机扰动;绿色:Flow Matching ODE 路径沿插值直线。两者用 τ 标记同一进度,但轨迹形态截然不同。

τ 的编码:从标量到向量

神经网络无法直接处理标量。τ 必须先通过正弦位置编码转换为向量:

Emb(τ)i={sin(τωi)i evencos(τωi)i odd,ωi=1100002i/d\text{Emb}(\tau)_i = \begin{cases} \sin(\tau \cdot \omega_i) & i \text{ even} \\ \cos(\tau \cdot \omega_i) & i \text{ odd} \end{cases}, \quad \omega_i = \frac{1}{10000^{2i/d}}

低频分量捕捉粗粒度位置,高频分量捕捉细粒度差异。编码后经过 MLP 投影到隐藏维度:

1
2
t_freq = SinusoidalPosEmb(t, dim=256)      # 标量 → [B, 256]
t_emb = MLP(t_freq)                         # [B, 256] → [B, hidden_dim]

至此完成了从物理世界标量到模型内部向量空间中一个点的转换。接下来就是这个嵌入向量"去哪里"的问题——这正是不同范式的分水岭。

τ 的三种消费范式

全局调制型(AdaLN)。 DiT 引入并被 DiffusionPlanner 采用的方式。τ 嵌入向量 yy 通过 MLP 生成 shift、scale、gate 参数,逐层控制每个 Block 的 LayerNorm:

[σs,γs,gs,σm,γm,gm]=MLPadaLN(y)[\sigma_s, \gamma_s, g_s, \sigma_m, \gamma_m, g_m] = \text{MLP}_{\text{adaLN}}(y)

每个 Block 内部:x^=LN(x)(1+γs)+σsx=x+gsAttn(x^)\hat{x} = \text{LN}(x) \cdot (1 + \gamma_s) + \sigma_s \rightarrow x' = x + g_s \cdot \text{Attn}(\hat{x})

τ 控制了每一层的归一化行为——这是一个全局旋钮,渗透最深

Paradigm 1: Global Modulation via AdaLNτ (scalar)SinusoidalEmb + MLPy = emb(τ)→ {shift, scale, gate} × 2DiT Block 1LN · (1+s)+σ · Attn · gLN · (1+s)+σ · MLP · gDiT Block NLN · (1+s)+σ · Attn · gLN · (1+s)+σ · MLP · gFinalLayerLN · (1+s)+σ · LinearOutput trajectoryτ modulates EVERY layer — "global knob"

输入融合型(Concat/FiLM)。 当复用标准 Transformer 层(如 VLA 的 action expert)时,τ 只能在最早的处理阶段注入。例如 VLA Flow Matching 的 ActionProjector

1
2
3
4
5
6
class ActionProjector:
    def forward(self, x, tau):
        out = w1(x)                        # 轨迹投影
        out = out + pos_embed              # 加位置信息
        out = w2(concat([out, tau]))       # ★ τ 与特征拼接
        return w3(silu(out))               # [B, L, hidden_dim]

这里 τ 与输入特征打包成一个上下文向量,后续层自己学会从中提取时间信息。信息渗透较浅。

输出层调节型(FinalLayer only)。 最轻量的方式——只在最终输出层用 τ 做 adaLN 调制,前面层完全不接触 τ:

1
2
3
4
5
class FinalLayer:
    def forward(self, x, c):  # c = tau_emb
        shift, scale = adaLN_modulation(c).chunk(2)
        x = modulate(norm_final(x), shift, scale)
        return linear(x)

三种范式对比:

范式τ 注入位置信息渗透深度适用架构
全局调制 (AdaLN)每一层 LN 之后最深自研 DiT / UNet
输入融合 (Concat)投影层浅层为主复用的标准 LLM
输出调节 (Final)仅最后层最浅轻量级 decoder

核心观察:τ 的消费方式首先受制于模型架构的可塑性,而不是理论最优性。自研模型可以选择最强大的全局调制;而复用 LLM 的 VLA 往往只能在有限的接口中寻找平衡。


四、驾驶规划中的扩散:三种路线

4.1 全扩散路线:从纯噪声生成轨迹

全扩散路线直接将轨迹生成建模为标准的条件扩散过程。从纯高斯噪声出发,经过 TT 步去噪,生成未来轨迹。

Diffusion-Planner (ICLR 2025 Oral) 是这一路线的代表。它使用 DiT 架构,将加噪的未来轨迹(自车 + 周车,联合建模 8 秒 @ 10Hz = 80 个时间步,每步 4 维 (x,y,sinθ,cosθ)(x, y, \sin\theta, \cos\theta))作为输入 token,场景条件通过 cross-attention 注入,时间步 tt 通过 AdaLN 调制。训练目标预测 x^0\hat{\mathbf{x}}_0 形式(而非噪声预测),推理使用 DPM-Solver++。其核心创新在于联合建模自车与周车轨迹,将运动预测与闭环规划统一在同一扩散过程中。它还引入了四个可微能量函数作为分类器引导——目标速度维持、舒适性约束、碰撞规避和可行驶区域合规——无需额外训练分类器。在 nuPlan 闭环评测中,Diffusion-Planner (w/ refine) 在 Test14-Reactive 上取得 91.75 分,接近规则方法 PDM-Closed (91.63),远超纯学习方案 PlanTF (79.58)。一个反直觉的发现是:将 ego 速度/加速度加入条件反而损害性能(Test14: 89.19→78.65),暗示模型可能学会利用这些捷径绕过真正的规划推理。

DiffusionDrive (CVPR 2025) 在此基础上引入了两个关键改进:多模态锚点截断扩散。20 个锚点轨迹通过 K-Means 聚类训练集专家轨迹获得,每个锚点代表一种典型驾驶意图。截断扩散将前向过程的起始点从纯噪声改为锚点附近的加噪版本——搜索空间从"所有可能的轨迹"缩减为"锚点附近的轨迹变体",使得 2 步去噪即可获得高质量轨迹,推理速度达到 45 FPS(9× 快于标准扩散的 ~5 FPS)。在 NAVSIM v1 上以 ResNet-34 backbone 取得了 88.1 PDMS

DiffusionDriveV2 (2025.12) 进一步引入 RL 约束:Intra-Anchor GRPO(组内相对优势防止模式坍缩)和 Inter-Anchor Truncated GRPO(跨锚点正优势保留、负优势截断),加上乘性噪声替代加性噪声(仅 2 个标量控制纵向+横向扰动),将 NAVSIM v1 提升至 91.2 PDMS,v2 达到 85.5 EPDMS

4.2 流匹配路线:更直的路径

Flow Planner (NeurIPS 2025) 用 Flow Matching 替代 DDPM 作为生成范式。其创新点包括:

  • 细粒度轨迹 tokenization:将完整轨迹分解为重叠的时间片段,每个片段独立建模条件分布。这种分解降低了单一 token 需要建模的分布复杂度。
  • Flow Matching + 引导采样:训练速度场 vθ(xt,t,c)v_\theta(\mathbf{x}_t, t, c),推理时用 Euler 积分沿速度场前进。由于路径更直,相同步数下的近似误差更小。

GoalFlow (CVPR 2025) 进一步将目标点(goal point)作为 Flow Matching 的条件,用目标驱动的方式生成轨迹——先由目标构造器确定 goal point,再用单步 Flow Matching 生成到达目标点的具体路径。仅 1 步采样即可生成高质量轨迹,在 NAVSIM v1 上取得 90.3 PDMS。这种分层设计将"去哪里"和"怎么去"解耦,使得每个子任务的分布更简单。

4.3 离散扩散路线:Token 化的轨迹

ReflectDrive-2 (Li Auto, 2026) 开辟了第三条路线:离散扩散。轨迹首先被 token 化为离散码本中的索引序列(8 个 waypoint × 2 token/waypoint = 16 个 token),然后通过 masked discrete diffusion 过程生成。每一步扩散将 token 替换为随机码本条目(离散版本的"加噪"),去噪过程则是逐步将随机 token 替换回正确的码本条目。

离散扩散的核心优势在于:轨迹空间被离散化为有限码本,分布建模从连续概率密度估计变为分类问题——这更接近语言模型的自回归生成范式,使得可以借鉴 LLM 的训练技巧(如 DPO、RLHF)来优化轨迹质量。更关键的是,离散 token 空间支持高效的局部搜索和 inpainting——这是连续空间中极难实现的。ReflectDrive v1 的 Reflective Inference 正是利用了这一特性:先安全 oracle 识别不安全 token,再在离散空间中搜索"安全锚点",围绕锚点做 diffusion inpainting。这一两阶段流程在仅使用摄像头(无 LiDAR)的条件下取得了 91.1 PDMS

ReflectDrive-2 的另一创新是 AutoEdit:不需要额外的修正网络,而是用同一个模型直接在 concrete token 序列上做 token-to-token 重写。训练时使用结构感知扰动(Structure-Aware Perturbations):纵向扰动用缩放插值 z~i=Interp(z0,βdi)\tilde{z}_i = \text{Interp}(z_0, \beta d_i),横向扰动用旋转矩阵 z~i=R(α)zi\tilde{z}_i = R(\alpha) z_i。RL 对齐至关重要——SFT 下的 AutoEdit 仅提升 +0.3 PDMS,但 RL fine-tuning 提升 +1.9 PDMS,加上可行驶区域合规场(DACF)损失贡献 +2.4 PDMS。最终 ReflectDrive-2 在 NAVSIM v1 上取得 91.0 PDMS(单轨迹),best-of-6 采样达到 94.8 PDMS——与人类参考水平持平。

4.4 NAVSIM 竞技场:扩散方法主导 Top-4

截至 2026 年 5 月,NAVSIM v1 PDMS 排行榜的前四名全部由某种形式的生成式模型占据:

排名方法PDMS扩散类型输入Backbone
1DiffusionDriveV291.2截断连续Cam+LiDARResNet-34
2ReflectDrive91.1离散掩码CameraVLA 0.8B
3ReflectDrive-291.0离散掩码CameraVLA 0.8B
4WAM-Diff91.0离散掩码CameraVLA MoE
5GoalFlow90.3Flow MatchingCam+LiDARVoVNet
6DiffusionDrive88.1截断连续Cam+LiDARResNet-34

三种路线的统一比较:

维度连续扩散Flow Matching离散扩散
代表DiffusionDrive/V2GoalFlowReflectDrive-2, WAM-Diff
轨迹空间连续坐标连续坐标离散码本
前向过程高斯加噪(截断)线性插值随机 token 替换
训练目标噪声预测 MSE速度场匹配Token 分类 CE
采样效率2 步 / 45 FPS1 步多步 / 31.8ms on Thor
可控性CFG + 锚点 + RLCFG + goal pointRL + AutoEdit/inpainting
最佳 PDMS91.290.391.1
In-place 编辑困难(需重新扩散)困难容易(token 替换)

三条路线在数学上的共同本质是:学习一个从简单分布(噪声/均匀)到目标分布(合理轨迹)的可逆映射,然后通过条件信息控制映射的方向。 差异在于如何定义这个映射(ODE vs SDE vs 离散转移)和如何参数化轨迹空间(连续 vs 离散)。


五、根本矛盾与开放问题

5.1 安全性 vs 多样性的不可调和?

扩散模型最大的优势——多模态多样性——在驾驶场景中同时也是最大的风险。多样性意味着模型可能采样到一条"看起来合理但实际不安全"的轨迹(例如合法变道但未考虑盲区)。传统方法通过硬约束(优化中的不等式约束)确保安全,但扩散模型的采样过程是自由的——没有显式的安全约束机制。

当前实践中的三种缓解策略各有局限:

  • 高引导强度 ww:压缩分布方差,使得采样轨迹集中在高概率、高条件匹配度的区域。但过高的 ww 会导致模式坍缩——模型只会生成最保守的轨迹。
  • 后处理过滤:采样多条轨迹,用规则或轻量级验证器筛除不安全选项。但这引入了额外的延迟,且过滤标准本身可能不完备。
  • 混合范式:Diffusion-Planner 的实验给出了最直接的证据——纯扩散在 nuPlan Test14-NR 上得分 89.19,加入规则化精炼后提升至 94.80(+5.6 分)。这说明当前扩散模型生成的轨迹仍需要规则层兜底,纯学习方案与规则方法的差距并未完全消除。

一个值得关注的早期尝试是 SafeDiffuser (ICLR 2025),它将控制障碍函数(CBF)集成到扩散采样过程中——在每一步去噪时,CBF 约束修正轨迹使其留在安全集内,提供了形式化的安全保证。但 SafeDiffuser 目前仅在 Maze2D、Walker2D 等简单域上验证,尚未扩展到完整的驾驶 benchmark。其核心思路——在 ODE/SDE 的积分过程中施加约束——与扩散模型的自由采样存在基本张力,但在安全攸关的驾驶场景中可能是不可回避的。

5.2 分布偏移:开环训练 vs 闭环部署

几乎所有扩散规划器都在开环数据上训练——给定当前帧的观测和真值轨迹,学习轨迹的条件分布。但实际部署是闭环的:模型输出的轨迹被执行,改变了自车的位置,进而改变了后续帧的观测。这种分布偏移在扩散模型中比在确定性回归模型中更难处理,因为扩散模型的输出是随机的——同一条训练轨迹可能对应不同的采样输出,使得闭环偏差更难预测。

NAVSIM 的 open-loop + closed-metric 评估协议部分缓解了评估问题(用非反应式仿真器评估碰撞风险),但无法替代真正的闭环测试。在 CARLA 和 nuPlan 上的闭环评估结果表明,开环指标与闭环性能之间的相关性有限——这也是当前扩散规划器最需要突破的瓶颈。

5.3 步数-质量权衡的理论极限

截断扩散(DiffusionDrive)和 Flow Matching 都在追求更少的采样步数。当前 SOTA 方法在 2-8 步内完成规划。但更少的步数意味着更大的单步修正量,而大步长在弯曲的概率流上会引入近似误差。

Rectified Flow 的 reflow 操作提供了一条理论路径:通过反复拉直耦合路径,使得 ODE 轨迹趋近直线,从而支持单步生成。但 reflow 需要额外的训练轮次,且每次 reflow 的边际收益递减。在驾驶场景中,是否值得为了从 4 步压缩到 1 步而付出额外训练成本,取决于实际部署的延迟预算。

5.4 从轨迹生成到世界模型

当前扩散规划器生成的是轨迹坐标——自车未来 8 秒的 (x,y,θ)(x, y, \theta) 序列。但驾驶规划实际上是对未来世界的推理:我需要知道不只是"我往哪里走",还包括"其他车会怎么动"“信号灯什么时候变"“那个行人是否会突然横穿”。

一个更雄心勃勃的方向是扩散式世界模型:生成未来场景的表征(如未来帧的 BEV 特征图)而非直接生成轨迹,然后从场景表征中解码出轨迹。这类似于我们在前文 Driving JEPA 中讨论的 latent prediction 路线——扩散模型在 latent space 中预测未来表征,而非直接在 Cartesian space 中输出轨迹。

这条路线的挑战在于:场景表征的维度远高于轨迹坐标(BEV 特征图可能包含数万个值),扩散过程在高维空间中的训练成本和采样质量都需要重新考量。

相关概念


参考文献

[1] Ho, J., Jain, A., & Abbeel, P. Denoising Diffusion Probabilistic Models. NeurIPS 2020.

[2] Song, J., Meng, C., & Ermon, S. Denoising Diffusion Implicit Models. ICLR 2021.

[3] Song, Y. & Ermon, S. Generative Modeling by Estimating Gradients of the Data Distribution. NeurIPS 2019.

[4] Lipman, Y., et al. Flow Matching for Generative Modeling. ICLR 2023.

[5] Liu, X., et al. Flow Straight and Fast: Learning to Generate and Transfer Data with Rectified Flow. ICLR 2023.

[6] Ho, J. & Salimans, T. Classifier-Free Diffusion Guidance. NeurIPS Workshop 2022.

[7] Dhariwal, P. & Nichol, A. Diffusion Models Beat GANs on Image Synthesis. NeurIPS 2021.

[8] Liao, J., et al. DiffusionDrive: Truncated Diffusion Model for End-to-End Autonomous Driving. CVPR 2025.

[9] Zheng, Y., et al. Diffusion-Based Planning for Autonomous Driving with Flexible Guidance. ICLR 2025.

[10] Tan, J. & Zheng, Y., et al. Flow Matching-Based Autonomous Driving Planning with Fine-Grained Trajectory Tokenization. NeurIPS 2025.

[11] Li Auto. ReflectDrive-2: Reinforcement-Learning-Aligned Self-Editing for Discrete Diffusion Driving. 2026.

[12] Shao, H., et al. GoalFlow: Goal-Driven Flow Matching for End-to-End Autonomous Driving. CVPR 2025.

[13] Salimans, T. & Ho, J. Progressive Distillation for Fast Sampling of Diffusion Models. ICLR 2022.

[14] Song, Y., et al. Consistency Models. ICML 2023.

[15] Sohl-Dickstein, J., et al. Deep Unsupervised Learning Using Nonequilibrium Thermodynamics. ICML 2015.