RAD-2: Scaling Reinforcement Learning in a Generator-Discriminator Framework

核心贡献: 提出了一个统一的生成器-鉴别器框架,通过"扩散生成器放飞自我地想 + RL鉴别器冷静地挑好的 + BEV-Warp快速地练习",让自动驾驶规划器既能建模多模态的未来不确定性,又能在闭环交互中为后果负责。


一、核心动机:为什么需要这套组合拳?

1.1 模仿学习的三重困境

想象一下,你在教一个新手司机开车。用模仿学习(Imitation Learning)的方式,就像给他一大堆"老司机录像"反复看——他能学到很多驾驶技巧,但问题是,他只知道"该怎么开",却从来没有为自己的失误付出过代价

作者首先梳理了自动驾驶运动规划领域的"江湖现状":

第一种流派——回归规划器(如 VAD、UniAD):直接预测一条轨迹。听起来简单粗暴,问题是现实中司机会有很多合理选择(超车?还是跟车?),而它只会吐出一个"平均答案",像个永远在走中间路线的优柔寡断者。

第二种流派——选择型规划器(如 VADv2、Hydra-MDP):预先定义一堆候选轨迹,然后从里面选一条。这就像出行前只有几条固定路线可选,灵活性大打折扣。

第三种流派——扩散规划器(Diffusion-based):用扩散模型来生成连续的多模态轨迹分布,理论上最优雅。但它们在纯模仿学习训练下面临关键挑战:真实驾驶数据有噪声和分布不均匀,导致扩散模型对某些轨迹区域学习不充分,偶尔会生成低质量或不稳定的轨迹——这在对安全极度敏感的规划任务中尤为致命。

更要命的是,模仿学习存在**“因果混淆"问题**——模型学到的是状态和动作之间的相关性,而不是真正的因果关系,导致"走捷径"行为。而且它的开环训练范式与真实驾驶的闭环本质存在根本性的错配

1.2 强化学习的拦路虎

引入强化学习(RL)本是解药——让模型在闭环仿真中真正"为自己的行为负责”。但直接将RL应用于生成式规划器极具挑战性:

  • 信用分配困境:RL的奖励信号通常是低维标量,而动作空间是高维、时间结构化的轨迹,这使得信用分配极其复杂
  • 优化不稳定:优化高维轨迹空间极易发散
  • 仿真环境限制:游戏引擎仿真器(如CARLA)简化了智能体行为;基于重建的仿真器复杂且昂贵;学习型世界模型在长时序、多视角生成上力不从心

1.3 RAD-2 的解题思路

RAD-2 的核心洞见是:不要直接用稀疏的标量奖励去优化那个高维的扩散轨迹空间——那太难了!

换个思路:

  • 让 RL 只优化鉴别器(discriminator)——因为鉴别器的输出天然就是低维的分数,和奖励信号"门当户对"
  • 同时,用一种特殊的方法来渐进式地引导生成器向好的轨迹区域靠拢

一句话概括:扩散生成器放飞自我地想 + RL鉴别器冷静地挑好的 + BEV-Warp快速地练习 = 一个既有丰富想象力、又懂得为后果负责的自动驾驶大脑。


二、方法详解:RAD-2 的核心武器库

这是论文最精华的部分,包含四件"法宝"。

2.1 生成器-鉴别器框架

整个框架分两个组件,分工明确,各司其职:

扩散生成器(Diffusion Generator)——“天马行空”

生成器的任务是生成多样化的候选轨迹。具体流程:

第一步:场景编码

  • 把多视角摄像头图像压缩成鸟瞰图(BEV)特征
  • 分别提取静态地图元素(车道线、路边界)、动态智能体(周围车辆、行人)和导航指令的 Token 嵌入
  • 融合成统一的场景嵌入 $E_{\text{scene}}$

第二步:轨迹生成

  • 对 M 个独立模式,从高斯噪声出发
  • 通过 K 步迭代去噪,每一步都在场景嵌入的条件下完成
  • 最终得到 M 条连续的 (x, y) 轨迹候选
  • 这就像同时给出 32 种不同的"下一步棋"供选择

RL鉴别器(RL-based Discriminator)——“严格把关”

鉴别器的任务是对生成器吐出的每条轨迹打一个 0~1 的分数,分数越高代表这条轨迹的长期驾驶质量越好。

具体架构:

  • 每条轨迹通过 MLP 嵌入后,用一个带 [cls] Token 的 Transformer Encoder 提取轨迹级别的查询向量
  • 通过交叉注意力与地图特征、BEV特征、智能体特征进行多源融合
  • 最后经过 Sigmoid 输出一个标量分数

推理时扩展:这一架构天然支持推理时扩展——增加候选数量 M,让鉴别器探索更密集的动作空间,在不重新训练的情况下找到更高质量的解。

2.2 BEV-Warp 仿真环境——“秘密武器”

这是 RAD-2 能够大规模训练的"秘密武器"。

传统方法的痛点

传统方法想做闭环评估,要么开游戏引擎渲染图片,要么跑神经网络生成逼真画面——都慢得要命

RAD-2 的思路:不生成图片,直接变形特征图!

在每个仿真步骤:

  • 提取参考 BEV 特征 $\mathcal{B}^{\text{ref}}_{t+1}$(来自真实录制的日志)
  • 根据仿真自车位姿与参考位姿的偏差,推导变形矩阵 $\mathbf{M}{t+1} = (\mathcal{P}{t+1})^{-1}\mathcal{P}^{\text{ref}}_{t+1}$
  • 通过双线性插值将参考特征进行空间变形,合成新的观测特征 $\mathcal{B}_{t+1}$

比喻:就像玩拼图,你不需要重新印一张新图,只需要把原来的图平移一下、旋转一下,就能模拟出"车向前开了10米"的新视角——速度快到飞起!

为什么能这样做?

BEV 特征具有强烈的空间等变性(Spatial Equivariance):对特征施加变形矩阵,解码出的感知输出(如3D边界框)会随之精确对应物理世界的位移。这保证了模拟的可靠性。


2.3 关于 BEV-Warp 动态障碍物的讨论

这是一个非常关键的细节讨论,值得深入理解。

问题:动态障碍物怎么处理?

直觉上,直接平移 BEV 的操作对静态障碍物有效,但动态障碍物本身也在移动啊!

BEV-Warp 的处理方式

BEV-Warp 没有独立地对动态障碍物建模和预测运动。它的做法是:

直接从真实日志里取下一时刻的完整 BEV 特征(包含了那一时刻周围所有车辆已经运动到的真实位置),然后只对这张完整特征图施加一个刚体平移/旋转变换,补偿自车偏离参考轨迹产生的视角差。

用一个比喻理解:就像你有一段真实录像,每帧都记录了所有人的真实位置。BEV-Warp 不是去"演算"下一帧里别的车在哪,而是直接拿真实录像的下一帧,再把画面平移/旋转一下来对准你当前的视角。

这意味着什么?

维度 结论
动态障碍物的运动轨迹 ✅ 是真实的——因为它们的位置直接来自真实日志
动态障碍物与自车的交互 ❌ 是假的——真实日志里的其他车不会因为你的自车走了不同路径而改变行为

这个妥协带来的根本缺陷

场景A——自车偏离但障碍物不响应: 假设原本参考轨迹是跟车,但仿真自车选择了超车变道。真实日志里前车不会因此加速或让路,依然按原轨迹走。超车后自车与前车的空间关系在 BEV 特征里会出现一个几何偏差。

场景B——变形引入的空间误差: 对动态元素,变形矩阵仅补偿了自车的视角变化,没有补偿动态障碍物本身在这段时间内的独立运动

为什么这个方案还能奏效?

论文能自圆其说,依赖以下几点:

1. 自车偏离量通常很小 BEV-Warp 的设计前提是:仿真自车不会和参考轨迹偏差太远。在短时序的 rollout 里(10~20秒),如果自车的偏差是米级的,对 BEV 特征的影响是局部的、可用刚体近似的。

2. 奖励计算绕开了特征误差 安全奖励 TTC 的计算方式:$\mathcal{V}_{\text{env}}(t+k)$ 代表的是环境在绝对时间 $t+k$ 的真实状态(ground-truth occupancy),而不是从变形后的 BEV 特征里解码出的感知结果。

关键洞察:奖励信号是直接查真实日志计算的,而不是依赖那张变形后可能有误差的特征图。特征图只是给规划器看的"输入视图",碰没碰、安不安全,是对照真实数据算的。

3. 它的目标是训练 RL,不是完美仿真 BEV-Warp 的定位从来不是"真实模拟所有交互",而是给策略提供足够密度的、方向大致正确的梯度信号

总结对比表

静态障碍物 动态障碍物
位置来源 真实日志特征 真实日志特征
运动建模 无需(静止) ❌ 完全没有独立预测
视角校正 ✅ 刚体变换精确 ⚠️ 只校正了自车视角偏差
交互响应 N/A ❌ 其他车不响应自车行为变化
奖励计算 查真实日志 查真实日志(绕开了特征误差)

2.4 联合策略优化:三步迭代循环

整个训练过程分三个阶段循环推进,如同一个自我进化的闭环。

2.4.1 时序一致性采样(Temporally Consistent Rollout)

问题:如果每一步都重新采样一条全新的轨迹来执行,那么"这一步走哪"和"后来撞没撞车"之间的关联就会被打散——强化学习的信用分配变得极其困难,就像一场考试里每道题都由不同的人作答,分数却只给到整份试卷一样。

解法:一旦在时刻 $t$ 选定了最优轨迹,就把它对应的控制序列重用 $H_{\text{reuse}}$ 步(设为 8 步最优),而不是每步都重新规划。这保证了"这条轨迹导致的结果"能被清晰地归因到这条轨迹的选择上。

用时间轴画出来:

时刻:   t=0   1   2   3   4   5   6   7   8   9  10  11 ...
决策:   ★               ★               ★
执行:   [← 锁定执行 A →][← 锁定执行 B →][← 锁定执行 C →]
        (Hreuse=8)       (Hreuse=8)       (Hreuse=8)

★ 是"真正做决策的时刻"——鉴别器重新对 M 条候选轨迹打分、选出最优的时刻。

为什么 $H_{\text{reuse}}=8$ 而不是 1?

这是一个经过实验验证的关键设计。

$H_{\text{reuse}}$ 效果
太小(=1或2) 模式切换频繁,奖励被稀释到太多决策点,归因噪声大;rollout 间差异来源混乱,组内对比失效;轨迹跳变、不可跟踪
太大(=16+) 归因清晰但决策点太少,更新频率低;锁定时间过长导致策略对环境变化的响应迟钝
=8(最优) 让每个决策的影响持续足够长以便清晰归因,同时又不长到让策略对动态环境失去反应能力

比喻:你要评估"选A路还是选B路"哪个更好,最合理的方式是让两辆车各自沿着选定的路开一段时间再比较结果。而不是每走一步都重新随机选一次路。

2.4.2 鉴别器的 RL 优化(TC-GRPO)

奖励设计:系统设计了两个互补的奖励:

🛡️ 安全奖励($r_{\text{coll}}$)

  • 通过反事实插值量化碰撞风险
  • 计算"碰撞时间(TTC)"
  • 序列级奖励取整个 rollout 中最危险时刻的 TTC 边际
  • 一次安全违规就能主导整个序列的奖励,强制执行严格保守的驾驶策略

🚀 效率奖励($r_{\text{eff}}$)

  • 评估自车相对于参考轨迹的行驶进度
  • 用稳定窗口惩罚机制将车辆进度限制在目标效率区间(1.05~1.10倍参考速度)内
  • 既惩罚磨磨蹭蹭,也惩罚冒进超速

TC-GRPO 优化目标

这是从 DeepSeek-R1 里借鉴灵感的 GRPO 方法的"驾驶版"。对于从同一初始状态出发的 G 条 rollout:

$$\mathcal{L}{i,t\in\mathcal{K}i} = \min\Big(\rho{i,t} A_i,; \text{clip}(\rho{i,t}, 1-\varepsilon, 1+\varepsilon) A_i\Big)$$

其中:

  • $A_i$:标准化优势(每条 rollout 奖励相对于组内均值和标准差)
  • $\rho_{i,t} = \frac{\mathcal{D}\phi(\hat{\tau}^*{i,t} \mid o_{i,t})}{\mathcal{D}{\phi{\text{old}}}(\hat{\tau}^*{i,t} \mid o{i,t})}$:重要性采样比
  • $\mathcal{K}_i$:rollout 中"启动新的锁定执行区间的决策时刻"的集合

关键设计:策略梯度只施加在 ★ 时刻(决策点),这保证了优势信号强化的是时序一致的轨迹假设,而非时序上缺乏相干性的独立动作样本。

梯度为什么只在 ★ 时刻施加?

问题一:在非决策时刻(比如 t=1,2,3),鉴别器根本没有输出任何分数——它没有做选择,不存在一个 $\mathcal{D}_\phi(\hat{\tau}^* \mid o_1)$ 这样的量。强行在 t=1 打梯度,等于是在惩罚一个"没有做过的决定"。

问题二:整个 rollout 只有一个序列级奖励 $r_i$。如果强行把这个奖励分摊到每一步,t=0 的决策和最终碰撞隔了十几步,t=14 的决策和碰撞只隔了 1 步——把同一个奖励同等地归因给这两个时刻,是严重失真的。

对比 LLM 的 GRPO

LLM 中的 GRPO RAD-2 的 TC-GRPO
决策单元 每个生成的 token 每个锁定执行区间的起点 ★
奖励来源 整段回答的最终得分 整段 rollout 的碰撞/效率分数
梯度施加点 每个 token 位置 只有 ★ 时刻,跳过锁定执行步

奖励如何分配到多个决策时刻?

假设一条 rollout 的 $A_i = -0.8$,有 t=0, 4, 8 三个决策时刻。三个时刻的损失项是:

$$\mathcal{L}{i,0} = \min!\Big(\rho{i,0} \cdot (-0.8),\ \text{clip}(\rho_{i,0}, 1-\varepsilon, 1+\varepsilon)\cdot(-0.8)\Big)$$

三项进入求和后被 $|\mathcal{K}_i|=3$ 均等归一化,没有任何时刻拿到更大的权重

但每个时刻的实际梯度大小由各自的重要性采样比 $\rho_{i,t}$ 决定:

$$\rho_{i,t} = \frac{\mathcal{D}\phi(\hat{\tau}^*{i,t} \mid o_{i,t})}{\mathcal{D}{\phi{\text{old}}}(\hat{\tau}^*{i,t} \mid o{i,t})}$$

设计哲学:三个决策点对最终结果的贡献是"串联"的,而不是"并联独立"的。用统一的 $A_i$ + 各自不同的 $\rho_{i,t}$ 来自然地区分惩罚强度,让数据本身说话

自适应熵正则化

什么是熵?

熵来自信息论,衡量的是**“不确定性"或"混乱程度”**。

用抛硬币理解:

  • 公平硬币(50%-50%):熵最大 = 1 bit,完全猜不到结果
  • 作弊硬币(99%-1%):熵很小 ≈ 0.08 bit,几乎能确定结果

熵越高 = 分布越均匀 = 越不确定;熵越低 = 分布越集中 = 越确定。

鉴别器的"分布"

鉴别器对每条候选轨迹输出一个 0~1 的分数。在一批候选轨迹里,可以把这些分数理解为一个偏好分布:

  • 高熵状态:分数都差不多,鉴别器在说"我也不太确定哪条更好"
  • 低熵状态:分数极度集中(比如一条0.99,其他都0.01),鉴别器在说"A 碾压所有"

低熵有什么问题?

在 RL 训练中,鉴别器会自然趋向低熵——每次更新都在奖励高分、惩罚低分,分数越来越往两极分化。

这带来两个后果:

  • 梯度消失:Sigmoid 在接近 0 或 1 时梯度几乎为零,学习停滞
  • 探索停止:鉴别器不再给其他轨迹机会,系统失去发现更好解的可能性

自适应熵正则化——只在需要时介入

RAD-2 的改进:用可学习的温度参数 $\lambda$ 控制正则化强度,只在批次平均熵低于目标值时才激活:

$$\beta = \exp(\lambda) \cdot \mathbf{1}{[\bar{\mathcal{H}} < \bar{\mathcal{H}}{\text{target}}]}$$

大白话翻译:

如果 当前平均熵 < 目标熵:
    β = exp(λ)  → 熵正则化开启,踩刹车
否则:
    β = 0       → 熵正则化关闭,放手让它跑

比喻:想象鉴别器是招聘面试官。HR 只在面试官"过于武断"时出面提醒:“你确定看够了吗?"——平时不干涉,只在关键时刻介入。

消融实验显示:加入熵项后碰撞率从 0.254 降至 0.234,Safety@1 从 0.697 提升至 0.730。

2.4.3 生成器的在策优化(OGO)

鉴别器再厉害,也只是从已有候选里"选最好的”。如果生成器本身生成的轨迹质量就不高,鉴别器也巧妇难为无米之炊。OGO 就是专门来"提升生成器的上限"的。

核心思路:不直接用 RL 去优化高维轨迹空间,而是把闭环反馈转化为结构化的纵向优化信号,仅调整速度/加速度剖面,保持横向路径不变:

  • 安全驱动减速:当 TTC 低于安全阈值时,压缩行驶距离(减速)
  • 效率驱动加速:当自车落后参考轨迹且无碰撞风险时,延展行驶距离(加速)

为什么只动纵向?横向怎么办?

OGO 对横向路径(转向、变道、绕障的空间曲线)完全不施加任何修正

设计者的核心论点是:在驾驶场景里,大多数安全和效率问题,首先体现在纵向维度上。

想想日常驾驶中的典型危险:

  • 前车突然刹车 → 需要减速,而不是转向
  • 路口黄灯 → 需要加速通过或减速停止
  • 跟车太近 → 需要拉开纵向距离

横向问题(压线、走错车道)通常在生成阶段就会被鉴别器过滤掉——一条明显走错车道的轨迹在重排序时就会得到低分。

分工逻辑:横向质量靠鉴别器的重排序来保证,纵向质量靠 OGO 来迭代改进。

局限性:这种系统性横向偏差无法被 OGO 修正。只能靠最初的模仿学习预训练纠正,或靠积累足够多的真实数据让生成器自然学到正确的横向分布。

具体怎么做到"只动纵向"?

关键在于轨迹的参数化方式。把轨迹想象成一段铁路:

  • 横向路径 = 铁轨本身的弯曲形状(空间曲线)
  • 纵向剖面 = 火车在这段铁轨上的速度和加速度(时间进度)

OGO 的操作:铁轨的形状一分不动,只调整火车的速度表。

纵向优化通过对原始加速度值施加常数偏移并重新积分:

$$\text{压缩后的行驶距离} = \text{原始距离} \times \rho$$

其中 $\rho \in (0,1)$ 用于减速,$\rho’ > 1$ 用于加速。

数字例子

原始轨迹(空间坐标),总行驶距离 ≈ 9.0m:
h=0: (0.0m,  0.0m)
h=1: (2.0m,  0.3m)
h=2: (4.2m,  0.5m)
h=3: (6.5m,  0.6m)
h=4: (9.0m,  0.6m)

压缩后(ρ=0.7),总行驶距离 ≈ 6.3m:
h=0: (0.0m,  0.0m)
h=1: (1.4m,  0.21m)  ← 沿同一条曲线,走到70%的位置
h=2: (2.94m, 0.35m)
h=3: (4.55m, 0.42m)
h=4: (6.3m,  0.42m)

空间曲线的形状(弯曲程度、转向角)完全没变,只是车在同样的时间窗口里走得更慢了。

技术原理:空间曲线可以用弧长参数化来描述。加速度的积分只影响沿弧长方向的进度,对垂直于运动方向的横向位移没有任何作用——这是微分几何上的天然解耦。

优化循环的异步机制

  • 每次新批次 rollout 入库就更新鉴别器
  • 每积累满 8 批新 rollout(整个 buffer 刷新一遍)才优化生成器
  • 形成 8:1 的训练频率比
  • 确保鉴别器持续感知最新数据,生成器则在积累足够数据后做一次大步调整

三、3DGS 验证:真实感渲染下的二次检验

3.1 两个环境的本质区别

BEV-Warp 环境(日常训练):

  • “作弊版"仿真——不渲染任何图片,直接对 BEV 特征图做矩阵变形
  • 极其高效,但本质上是一种几何近似
  • 场景里缺少真实的光照、纹理、天气等视觉细节

3DGS 环境(验证环境):

  • 使用 3D 高斯泼溅技术
  • 直接从 3DGS 场景中,根据自车当前位姿 $\mathcal{P}_t$,用可微渲染算子 $\mathcal{R}(\cdot)$ 渲染出真实的多视角摄像头图像
  • 再正常走完整的感知→BEV 编码→规划流程

比喻:BEV-Warp 是让学生在"填涂卷"上练习,3DGS 是让他进真实考场做"实操题”。问题是:在简化版练习场里练出来的技能,在逼真考场里还能用吗?

3.2 训练数据的分层结构

RAD-2 有两套并行的训练体系

第一套(主力训练,BEV-Warp 环境)

  • 从真实驾驶日志收集 5万条片段
  • 筛选后保留安全类和效率类场景各 1万条 做 RL 训练,各 512条 做评估
  • 生成器和鉴别器都在这里联合优化
  • 这是论文方法的主战场

第二套(补充训练,3DGS 环境)

  • 来自 Senna-2 基准的 1044条训练片段
  • 只在 3DGS 里对鉴别器做额外的 RL 训练
  • 生成器在这里不做额外训练
  • 3DGS 渲染太慢,无法支撑完整的联合优化

工程考量:3DGS 每一步都要调用可微渲染器生成多视角真实感图像,再走完整感知流水线,计算代价极高。所以只让相对轻量、参数少的鉴别器做增量适配——本质上是让鉴别器在"更逼真的考场"里做一次针对性微调,以弥合域差距。

3.3 3DGS 里的闭环流程

  1. 感知输入是真实渲染图像:每一步用当前自车位姿向 3DGS 场景发出渲染请求
  2. 感知→BEV→规划走完整链路:送入预训练感知骨干网络,编码成 BEV 特征
  3. iLQR 控制器执行轨迹:选定最优轨迹后,计算底层控制指令
  4. 奖励和指标与 BEV-Warp 一致:仍然计算碰撞率、安全边际

3.4 为什么能迁移?

关键保障:BEV 特征的空间等变性

不管输入是变形后的 BEV 特征,还是由真实渲染图片走感知流程得到的 BEV 特征,骨干网络输出的特征语义是一致的——两个世界共享同一套"语言"。

3.5 验证结果

在真实感 3DGS 基准评估中:

  • RAD-2 取得最低碰撞率(0.250
  • 最高 Safety@1(0.723)和 Safety@2(0.644
  • 超越 Senna、Senna-2 和 RAD 等强劲竞争对手

结论:在 BEV 特征空间里训练出来的策略,没有因为换成真实感图像输入而"失灵",证明泛化能力是真实的。


四、安全奖励的计算:依赖标注数据吗?

4.1 TTC 计算公式

$$T_t = \inf{k \in [0, T_{\max}] \mid \mathcal{B}{\text{ego}}(k;t) \cap \mathcal{V}{\text{env}}(t+k) \neq \emptyset}$$

其中 $\mathcal{V}_{\text{env}}(t+k)$ 是环境在绝对时间 $t+k$ 的所有障碍物的真实占用集合(ground-truth occupancy)

4.2 直接答案:是的,依赖预先标注好的真实障碍物位置

$\mathcal{V}_{\text{env}}$ 这个符号里藏着答案——ground-truth occupancy,即真实标注的占用区域。这不是模型感知出来的结果,而是从真实驾驶日志的标注数据里直接读取的。

数据包含:

  • 每个时刻所有动态障碍物的 3D 边界框(位置、朝向、尺寸)
  • 静态障碍物和道路边界的几何信息

这在自动驾驶数据集(nuScenes、Waymo)里是标准配置。

4.3 TTC 计算流程

第一步:预测自车未来占用区域

  • 根据选定轨迹推算自车在未来 k 时刻的位置和朝向
  • 结合车辆几何尺寸得到矩形占用框

第二步:查询环境真实占用

  • 直接从日志标注里读取 k 时刻所有障碍物的真实边界框

第三步:逐帧检测相交

  • 从 k=0 开始往后扫,找到第一个重叠时刻

4.4 这个设计的重要推论

BEV 特征图里动态障碍物的位置有误差 → 不影响奖励计算

因为奖励用的是标注真值,不是从变形后的 BEV 特征里解码出来的感知结果。这是一个非常聪明的解耦——用近似的特征图喂给规划器看,但用精确的标注真值来评判决策好不好。

4.5 潜在局限性

训练数据必须有高质量的 3D 标注,而标注本身是昂贵的。论文用了 5 万条片段做 RL 训练,这背后是规模庞大的标注工程。


五、绕开人工标注的替代方案

对于资源有限的公司,有几条可行的替代路径:

5.1 用传感器原始数据直接计算占用

激光雷达点云

  • 点云本身就是障碍物存在的直接证据
  • 体素化成占用栅格(Occupancy Grid)
  • TTC 计算从"自车预测框 vs 标注边界框"变成"自车预测框 vs 占用栅格"
  • 零标注成本

纯视觉的深度估计

  • 用自监督深度估计模型(MonoDepth2、DepthAnything)从图像恢复深度
  • 投影成伪点云,构建占用栅格
  • 模型可以用无监督方式训练(利用多帧视差一致性)

5.2 用端到端模型的中间特征

BEV 占用预测头

  • 很多端到端模型都有占用预测分支
  • 可以用自监督或弱监督方式训练:
    • 利用激光雷达点云作为伪标签
    • 利用相邻帧光流一致性

5.3 从真实事故/险情数据中学习奖励

利用车辆自身的传感器信号

  • 急刹车事件(加速度计突然大负值)
  • AEB(自动紧急制动)触发记录
  • 碰撞传感器触发
  • 驾驶员接管事件

这些事件不需要任何人工标注,车辆 ECU 会自动记录。

对比学习构建奖励模型

  • 收集"好的驾驶"和"坏的驾驶"片段
  • 用对比学习训练奖励模型
  • 类似 RLHF 思路,把"人类偏好"换成"传感器采集的客观安全信号"

5.4 用世界模型替代标注环境

训练生成式世界模型,输入当前场景和自车轨迹,预测未来画面或 BEV 特征:

原来:查标注数据 → 获得未来障碍物真实位置
替换:世界模型预测 → 获得未来场景的估计状态

世界模型本身可以用纯视频数据自监督训练(预测下一帧),不需要任何标注。

代价:世界模型在长时序下会累积误差(时序漂移),导致奖励信号失真。

5.5 用规则定义基于原始信号的奖励

不计算 TTC,直接用原始信号

  • 纵向加速度 $|a_x| > \text{阈值}$ → 惩罚
  • 横向加速度 $|a_y| > \text{阈值}$ → 惩罚
  • 方向盘转角变化率过大 → 惩罚
  • 自车速度与参考速度偏差 → 效率奖励

这些信号全部来自车辆 IMU 和 CAN 总线,零标注、零感知依赖

缺点:这类奖励是滞后的——只能在危险已发生后才给惩罚,而 TTC 是前瞻性的预测。


六、实验结果

6.1 数据集规模

  • 生成器预训练:约 5万小时真实世界驾驶数据
  • RL 闭环训练(BEV-Warp):从真实驾驶日志收集 5万条片段,筛选后安全类和效率类场景各 1万条训练,各 512条评估
  • 3DGS 环境:来自 Senna-2 基准,1044条训练,256条评估

6.2 闭环 BEV-Warp 评估

与 ResAD 基线对比:

  • 碰撞率(CR)从 0.533 降至 0.234(降低 56%)
  • 自身责任碰撞率从 0.264 降至 0.092
  • Safety@1/2 从 0.418/0.281 提升至 0.730/0.596
  • EP@1.0 从 0.516 提升至 0.736

6.3 闭环 3DGS 评估

RAD-2 在所有方法中取得:

  • 最低碰撞率(0.250
  • 最高 Safety@1/2(0.723/0.644
  • 超越 Senna、Senna-2 和 RAD

6.4 开环 Senna-2 基准

  • 总体碰撞率降至 0.142%(前最优为 Senna-2 的 0.288%)
  • ADE/FDE 分别降至 0.208m/0.553m

6.5 消融实验摘要

消融项 结论
训练流程 单独 RL 生成器优化能提升安全性但稍降效率;单独 RL 鉴别器训练能大幅提升效率;二者联合才能取得最优
执行时域 $H_{\text{reuse}}$ =8 最优;太小梯度不稳,太长反应迟钝
片段过滤 过滤低方差片段能显著提升效率(EP@1.0 从 0.662→0.728),使训练更稳定
鉴别器初始化 从预训练规划头初始化大幅提升安全性(Safety@1 从 0.512→0.615)
TC-GRPO 组大小 组大小=4 时性能最优
熵正则化 加入熵项使碰撞率从 0.254 降至 0.234,Safety@1 从 0.697 提升至 0.730
训练场景组合 混合安全和效率场景训练效果最优;单一目标训练会导致严重性能偏差
推理时扩展 训练时 M=32,推理时增大 M 可持续提升效率(EP@1.0 从 0.667→0.814),无需重新训练

6.6 定性对比

场景一(安全性)

  • 基线模型识别不到风险直接撞车
  • RAD-2 提前感知威胁,主动减速,等危险解除后平稳继续

场景二(效率性)

  • 基线模型在另一辆车并入时过于保守,停下来等待
  • RAD-2 判断左侧有足够空间,果断变道超越慢车,EP=1.09(基线 EP=1.01)

七、局限性与未来展望

作者坦诚指出两大不足:

7.1 表示方式的局限性

BEV-Warp 的高效率根植于对 BEV 特征图的操作。对于使用原始相机像素或统一潜在嵌入(没有显式空间等变栅格结构)的架构,几何变形机制需要更通用的变换模块或直接在潜在空间的世界模型才能适用。

7.2 通向生成式世界模型

生成式世界模型提供更高灵活性和逼真感,但目前受:

  • 计算开销大
  • 长时序生成中时间漂移严重

等问题制约,限制了在大规模 RL 训练中的实用性。未来将聚焦于优化基于潜在空间的世界模型的推理效率和时序一致性。


八、总结

这篇论文解决了什么核心问题?

解决了扩散规划器在纯模仿学习下的关键挑战——模型只知道"该怎么开",却不知道为自己的失误付出代价。通过生成器-鉴别器框架,让 RL 只优化低维的鉴别器分数,同时渐进引导生成器向好的轨迹区域靠拢。

RAD-2 的三件法宝

法宝 功能
扩散生成器 天马行空地生成多样化候选轨迹
RL 鉴别器 冷静地为后果负责,挑出最安全高效的轨迹
BEV-Warp 快速地练习,支撑大规模闭环训练

核心创新点

  • TC-GRPO:时序一致采样改善信用分配,只在决策时刻施加梯度
  • OGO:在策生成器优化,通过纵向反馈渐进精炼轨迹分布
  • 自适应熵正则化:只在熵过低时介入,维持探索多样性
  • BEV-Warp:特征级仿真绕过昂贵渲染,高吞吐量闭环训练

相关论文

  • [[ResAD - 归一化残差轨迹建模]](同团队的前作,生成器架构的基础)
  • [[UAD - 无需3D标注的端到端自动驾驶]]
  • [[World4Drive - 无需感知标注的端到端世界模型]]
  • [[LAW - Latent World Model for E2E Driving]]