先分工:模仿学习学“人通常怎么开”,强化学习学“这样开以后会怎样”
模仿学习在固定的专家数据 D = {(s, a)} 上,最小化动作或轨迹与真值的差距。它擅长吸收道路几何、常见交互、车辆动力学、驾驶风格和大量隐性常识,训练稳定,数据利用率高。生成器不同,监督的形式也不同:AR 用 next-token 交叉熵,Query 规划器用轨迹回归或打分,Diffusion 和 Flow 回归噪声或速度场。本质上,它们都是先把人类的驾驶分布,变成一个可以采样的策略。
但日志里的专家只展示“做了什么”,很少展示“换一种做法会怎样”。策略一旦偏离专家轨迹,看到的就是训练分布之外的新状态。前一步的小误差会改变感知、交互和后续动作,而纯模仿学习没有自我纠错的信号。它也很难显式优化安全、舒适、效率、规则和通行之间的长期取舍。
强化学习补上的是环境转移和回报:策略执行动作 a_t 之后,环境给出下一状态 s_{t+1} 和奖励 r_t。它独有的价值,是比较专家数据里没出现过的行为会带来什么后果,并把几秒后的通行、碰撞或让行,追溯到此前的动作。
两者的长短处正好互补。模仿学习类人、数据利用率高、实现简单,但示范之外容易违规,泛化有问题;强化学习能把交规写进奖励和约束去优化、能探索,但合不合规取决于环境和奖励,也不够类人,样本效率低。所以 RTR、RAD 这类方案,都把两者写进同一个联合目标,而不是用一个替换另一个。
模仿学习
行为底座
- 数据:真实人驾或高质量的专家日志。
- 目标:拟合动作或轨迹分布,保持类人。
- 优势:稳定,能扩规模,建立基本的驾驶先验。
- 盲区:因果混淆、偏离之后的恢复、没示范过的动作值多少。
凸包、监督赤字与 90% 的直觉
模仿学习的边界,可以说得比“泛化差”精确得多。第一个概念是训练数据的凸包:基于监督学习的模型,受限于训练样本围出的这片范围。范围之内是插值,大体可靠;范围之外是外推,没有保证。
第二个概念是监督赤字:一个转向角、一脚油门,这类稀疏的低维控制信号,给不了高维网络足够的物理约束。动作监督太稀,所以有方法让世界模型去生成图像,给模型补上稠密的视觉监督,DriveVLA-W0 就是这么做的。
两个概念合起来,就是长尾场景的失效机制。面对没见过的东西,比如倒下的树、异形车辆、极端天气,或者高速上侧翻的货车、弹跳的掉落轮胎,模型只能在记忆的样本里找最近邻,照着那个开。它没法像人一样,调用常识做因果推理。
扩数据当然有用:凸包变大,长尾出现的频率变低。但数据再多,也不会自动告诉模型没示范过的动作值多少,更不会教它犯错之后怎么恢复。RTR 论文里的对比很直观:纯模仿学习训出的交通智能体,在分叉和合流的例子里都撞了车。
闭环的必要性,有一个准确的说法:闭环训练唯一、不可替代的价值,是跨时间的信用分配,也就是弄清“我现在的动作,会怎样改变未来”。形式上是 s_{t+1} = f(s_t, a_t):动作改变状态,改变了的状态再影响未来的奖励。
有一个经验判断值得记住:自动驾驶里 90% 的“人类直觉行为”,都属于长期规划这一类,纯模仿学习在固定日志上学不到它们的因果。闭环要解决的,是三个换不掉的问题:
- 长期规划:没有闭环,决策视野超过两步基本就失效,奖励塑形越加越重;有了闭环,策略能自然学会让速、占位、提前对齐车道。
- 多智能体博弈:没有闭环,其他车只是“录像”,自车永远在演“独角戏”;有了闭环,我激进,他会刹车,我让步,他会插入。社会性驾驶,本质就是闭环。
- 真实鲁棒性:没有闭环,策略永远走在“看起来安全”的轨迹上,对罕见情况无感;有了闭环,错一次就进入新状态,策略能学会自我恢复。这正是业界最关心的“犯错之后怎么办”。
三种“闭环”别混在一起:数据、环境和评测
“闭环”在团队里至少有三种用法:数据闭环、环境闭环和评测闭环。它们回答的问题不同,混在一起说,很容易高估系统的能力。
最关键的是环境闭环:策略的动作真的会改变下一状态,其他参与者也会对自车的动作作出反应。只有这一层,能训练交互和跨时间的因果。数据闭环扩大训练集的覆盖,评测闭环暴露开环距离指标看不出的失败,两者都重要,但都替代不了训练环境里“动作改变状态”这一环。纯模仿学习训出的策略,一样可以拿去做闭环评测。
还有一种形态,常被说成闭环:伪开环。表面上在用奖励优化动作,下一状态却仍来自预录的轨迹,不受当前动作影响。它可控、安全、便宜,适合在数据覆盖的范围内,做风格和平滑性上的温和优化;但学不到“我强行并线,后车会刹车”,也学不到“我提前让速,对方会插进来”。这和开环评测假设“他车不受自车影响”,犯的是同一个错:交互被抹掉了。
伪开环还有一个致命缺陷:强化学习找到的“最优动作”,数据里可能根本不存在。它的价值只能外推,于是 Q 值高估、策略漂移,一上线就崩。所以,固定数据适合做安全、稳定的局部价值优化,不该被包装成开放世界里的交互学习;把伪开环称为闭环强化学习,会夸大系统能力。
AutoVLA 的强化微调可以作参照。它用 GRPO,奖励由 PDMS 的安全、舒适、效率项,加一项推理长度惩罚组成,仿真用的是数据回放。PDMS 从 80.54 升到 89.11,推理时间从 3.95 秒降到 1.31 秒,简单场景里它学会了切到快思考。这组收益是实打实的,但按上面的分法,它更接近固定数据上的价值优化,还证明不了交互能力。
评测闭环还要做成“单科考试”。CARLA Leaderboard v2 的驾驶分数等于完成度乘以惩罚系数,惩罚层层相乘,分数波动很大:同一个模型跑三次,完成度都是 90%,闯灯 0、1、2 次,得分就是 90、63、44.1。它的路线又长达 7–10 公里,惩罚越乘越多,已有方法的分数都挤在 0–5 分之间,分不清短板在哪项能力。Bench2Drive 改成 220 条 150–200 米的短路线,每条只考一种行为,覆盖 44 种场景、5 大类技能。训练闭环也需要这种场景拆分,否则奖励和最终分数都只剩一个总数,没法归因。
数据闭环
下一批数据从哪来
- 路测采集、难例挖掘、标注、训练、部署,再采集。
- 扩大训练集的覆盖。
- 训练本身仍可能是固定日志上的监督学习。
环境闭环
动作会不会改变未来
s_{t+1} = f(s_t, a_t),他车会对自车的动作作出反应。- 唯一能训练交互和跨时间因果的一层。
- 强依赖可信的仿真或世界模型。
评测闭环
执行之后哪项能力失败
- 统计路线完成、碰撞、违规和各项能力得分。
- 纯模仿学习的策略也能做。
- 不等于用强化学习训练过。
PPO:用 Critic 做基线,用裁剪防止策略“一步走飞”
PPO 走的是 Actor-Critic 路线:Actor π_θ(a|s) 负责出动作,Critic V_φ(s) 估计当前状态的长期价值。训练先用旧策略 π_old 和环境交互,采样一批 rollout,也就是 (s_t, a_t, r_t, s_{t+1}) 序列;再算折扣回报 G_t 和优势 A_t,常用 GAE 来估。A_t > 0,说明这个动作比当前状态下的平均水平好;A_t < 0,说明更差。
策略更新用新旧策略的概率比 r_t(θ) = π_θ(a_t|s_t) / π_old(a_t|s_t),目标取 min(r_t(θ)·A_t, clip(r_t(θ), 1−ε, 1+ε)·A_t)。新旧策略差得太多时,裁剪会截断继续放大的收益,防止策略“一步走飞”。Critic 另外最小化 (V(s_t) − G_t)²。同一批数据更新几轮之后,再用新策略重新采样。
放进自动驾驶,PPO 就不只是一个算法名,而是四类工程组件:环境 worker 高吞吐地产生 rollout;奖励 worker 计算安全、规则、效率和舒适分;Critic 和参考模型做推理,给出优势和行为锚点;Actor 训练,更新规划器。面向大模型 RLHF 的 ROLL 框架,就把 Actor、Critic、环境、奖励拆成各自独立的 worker,还专门调度 rollout。强化学习训练的基础设施,比监督训练复杂得多。
PPO 适合逐步动作的概率明确、Critic 能从大量状态里学到价值的策略,比如 AR 的动作 token,或连续控制策略。它的脆弱点在 Critic:长时程、稀有的安全事件下,价值很难估准;基线一错,正确的动作也会被标成负优势。裁剪只限制更新的幅度,没法把错误的奖励或错误的价值变对。
- Rollout用冻结的
π_old在可交互的环境里采样状态、动作、奖励和下一状态,同时记下终止条件和场景标签。 - 回报与优势按折扣累计未来奖励,用 Critic 或 GAE 估计
A_t = Q − V;场景稀有时,要专门检查估值的偏差。 - 裁剪更新用新旧动作的概率比构造裁剪目标,限制单轮的策略漂移,同时更新 Critic。
- 行为锚定叠加 BC 损失,或者对参考模型加 KL 约束,防止策略为了奖励丢掉人类的驾驶分布。
- 重新采样更新之后必须回到环境,生成新的状态分布;反复使用同一份固定日志,构不成真正的 on-policy 闭环。
GRPO:同一道场景多次作答,用组内相对好坏代替独立 Critic
GRPO 对同一个场景或条件 q,从当前策略采样 G 条动作序列或轨迹,得到奖励 r_1 … r_G,再用 A_i = (r_i − mean(r)) / std(r) 算出组内的相对优势。它不用额外训练一个独立的 Critic,也就少了“价值网络本身估错”这一个误差来源。能对同一场景采出多条候选的生成式规划器,比如 AR、Diffusion、Flow,天然适合它:Plan-R1 和 DiffusionDriveV2 用的都是组内优势,Flow-GRPO 则把同样的思路用到了 Flow 生成模型上。组也不能太小:AutoVLA 的实验里,组大小为 8 时训练奖励最高,组太小,模型很难学到好的行为。
但 GRPO 只回答“这组里谁相对更好”。如果同一个锚点下的轨迹全都撞了,组内最高分也只是“最不坏”。DiffusionDriveV2 因此把 GRPO 拆成两层:锚点内的 GRPO 只在同一意图内部比较,防止模态崩溃;跨锚点的截断 GRPO 引入全局视角,对碰撞这类失败给绝对惩罚,避免“矮子里拔将军”。它的原则可以概括成一句话:奖励相对改进,但绝对惩罚失败。
GRPO 也没有解决信用分配。组内奖励通常落在整条轨迹上,能判断哪条更好,却未必知道是第几个 token、哪一步去噪、速度场的哪一段导致了结果。AR 可以把整条轨迹的优势乘到每个 token 的对数概率上,Diffusion 和 Flow 可以把优势传给整条生成链。两者的归因粒度不同,但都可能把末端事故的责任,平摊给无关的早期动作。省掉独立的 Critic,解决的是优势基线的构造成本,不是“哪个早期动作造成了晚期后果”的因果识别。
还要分清:裁剪和 KL 管的是训练稳定和分布漂移,不是安全证明;奖励函数和参考模型,本身都不保证安全。数值奖励对罕见危险也天然吃力。设想学超车:其余轨迹的奖励落在 −1 到 1 之间,概率为 p 的危险轨迹罚 −r,它对期望回报的影响只有 −p·r。r 远小于 1/p,学习器往往会忽略它;r 远大于 1/p,回报的方差又大到没法稳定估计目标和梯度。调奖励的数值能改善,但不能根治。安全要靠绝对的安全门槛、独立的验证和执行层的兜底。
所以用于量产,GRPO 至少要同时保留三样东西,缺一样,它就只是一个更便宜的“挑高分”技巧:
- 相对奖励:推动同一场景之内的改进。
- 绝对安全门槛:防止全组都失败时,仍有轨迹被奖励。
- 参考模型或 KL:约束策略,别为了局部场景的优化,破坏常见的驾驶行为。
PPO
Critic 基线
- 优势来自回报与
V(s)的差。 - 能跨批次、跨状态给出绝对的价值参照。
- 多一个需要稳定训练的 Critic。
- 适合逐步决策、交互样本充足的策略。
GRPO
组内基线
- 优势来自同一场景
G个样本的均值和方差。 - 省掉独立的 Critic,直接利用多候选生成。
- 只知道相对好坏,全组都差时也会选出“赢家”。
- 要靠跨锚点比较或绝对安全信号补上尺度。
奖励:不是把安全、效率、舒适加起来就结束
奖励函数难写,根子在表达方式的错位:自动驾驶要的是“规则 + 安全 + 常识”,强化学习只懂“数值 + 可微 + 累积期望”,两者在数学表达上就不兼容。奖励工程的大部分难处,都是在给这道缝打补丁。
自动驾驶的奖励至少要覆盖六类:安全、法规、效率、舒适,还有“不吓人、不逼车”的社会规范,和“像老司机”的人类偏好。只要漏一条,强化学习就会拼命利用这个漏洞。
难的也不只是项多,而是这些目标会在同一帧里打架。绕行奖励可能鼓励激进变道,车道保持奖励可能挡住合理的绕行,追专家轨迹可能和避碰惩罚重复计分,速度奖励可能让策略去赌对方减速。固定权重的加权和,表达不了场景条件和优先级:碰撞罚 −1000 和罚 −2000 有本质区别吗?+1 的进度奖励,值得一次冒险吗?不同场景的权重应该一样吗?
量产上更接近答案的做法,是给奖励分层、定作用域、管冲突。先按安全、法规、体感分层,优先级是安全 > 法规 > 体感。任一时刻发生碰撞,立即清空绕行相关的奖励:是清零,不是扣分,撞了就拿不到这部分收益。某一时刻如果已经触发了其他奖惩,就不再对这一时刻追 GT,也不再额外加罚。车道锁定只管静态的无效换道,绕行慢车时禁用,免得和绕行奖励互相打架,这就是场景隔离。这些都不是漂亮的统一公式,而是奖励的作用域和冲突管理。
奖励被钻空子,不是强化学习的 bug,而是它的本性,也不是模型故意捣乱。奖励写成“−碰撞 − jerk + 速度”,模型照样可能发现“不动最安全”,学成“慢到永远不出事”:路口犹豫,合流不敢进。仿真里的交通车永远让行,策略就会学会“欺负世界”。只看即时的 TTC 和 jerk,会得到短期看似安全、长期把自己送进死路的策略。最危险的一类是利用仿真漏洞:钻模型车之间的缝、利用延迟、无视真实物理。仿真里的奖励最大化,不等于现实里可行。
出路不是无上限地加奖励项。可以做场景隔离,随机化奖励权重和环境,用人类偏好或逆强化学习代替手写公式,再加一道独立的安全门槛。更务实的立场是:别指望奖励写对,而要让系统在奖励不完美时也能容错。
奖励也不是越多越好:每多一项,就多一处漏洞和冲突。更稳妥的顺序是,先找最小够用的目标,再写清作用域和绝对底线,最后做攻击测试。CaRL 用的就是极简奖励;RTR 也只把目标拆成“匹配专家分布”和“避免违规”两项。
奖励的正确性,要先离线单元测试,再做小规模的闭环对抗测试。每项奖励都要有正例、反例、边界值、互斥条件、优先级和可解释的日志;然后做“反优化”测试,主动去找能拿高分、却违背产品意图的轨迹。如果轨迹回放解释不了一条总奖励为什么高,就不该直接进入大规模的强化学习。
- 安全底线:碰撞、越出道路、逆行、闯红灯这类绝对失败,不和体验项做简单的加权交换。
- 作用域:每项奖励只在明确的场景、目标类型和时间窗口里生效。
- 去重:同一次物理失败,不要被 TTC、距离、碰撞和追 GT 重复惩罚。
- 优先级:安全 > 法规 > 体感;场景的特殊规则,要写清覆盖关系。
- 攻击测试:主动去找静止不动、卡 gap、赌他车、利用延迟这类高分捷径。
量产强化学习的真实账本:一个加塞案例的完整生命周期
先对一下数量级。一线量产经验给出的数字是:验证一个奖励的方向对不对,10 条数据就够;单任务的性能优化,每个任务加百到千条 clip;强化学习全量训练,10 万条 clip 就能有比较好的效果。对照模仿学习需要的千万级 clip,差了两个数量级。
奖励项的规模是十几到几十个。这比端到端联训动辄几百个 loss 少一个量级,但每一项都要人工权衡。
多任务的奖励还会互相打架,常见的有两种。一是奖励尺度不同:任务 A 的奖励在 0–1,任务 B 在 0–100,策略就会“只学 B”,因为 B 的梯度大,其他任务被压制。解法是物理、场景、标签三层隔离:限定每项奖励生效的场景,并把 task id 作为 token 注入模型,比如城区、高速。二是探索策略冲突:不同任务需要不同的探索方式和行为风格,共享一个策略时,一个任务的探索会破坏另一个任务的数据分布。解法是多任务调参:调整数据配比和奖励大小,多任务一起训练、看结果。
这本账里最有价值的,是一个加塞场景从现象、根因、修复到副作用的完整生命周期。它没有停在“修好了”:修复本身带来了新问题。奖励调优不是单调改善,而是在“过度保守”和“过度激进”两种失效之间找平衡点。
- 现象:安全但行为失真模型收敛到一种“安全但行为失真”的模态:多数推理轨迹原地等待,直到导航车道的车全部通过才变道。碰撞风险是规避了,类人的主动博弈却明显缺失。
- 根因:感知与数据分布的差异实车数据里,自车变入导航车道之后低速前进,后车又被遮挡,后向感知存在失真;而真实交通中,后方车流可能持续很久,一直等就等不到自然的插入窗口。模型因此在仿真里学到了“等到完全安全”的退化策略。
- 修法:只奖励关键区间推理轨迹成功插入与实车相同的空隙,并且完成变道之前没有发生任何碰撞,就给这一段额外的高奖励。奖励只作用在变道的关键区间,用来强化在可接受风险下主动完成插入的策略。
- 副作用:过度自信加塞整体更像人了,但也出现一定程度的“过度自信、过度积极”,部分场景里更容易尝试高风险的插入。
- 下一步:两条改进方向这一步还只是提出的方向,不是已验证的修复。数据上,同步补进加塞失败后折回、前序等待时机的样本,增强风险校准;交互上,用 IDM 这类规则模型按一定概率控制加塞后车不让行,增加博弈复杂度,避免模型只学到一种成功模态。
信用分配:事故在十秒后,责任可能在十秒前
自动驾驶的奖励往往是延迟的。现在没有提前变道,十秒后错过路口;现在抢了半个车位,五秒后逼得后车急刹;现在绕行晚了半秒,随后进入无法挽回的碰撞状态。终局惩罚能告诉策略“这段 rollout 不好”,却很难判断是哪个早期动作埋下了风险。
归因失败的后果很具体。几秒前的激进行为导致十秒后的险情,奖励却在最后才给出;在复杂交通里,“哪个动作导致了事故”几乎无法回答。模型于是可能学到“表面安全、实则埋雷”的策略,对罕见情况完全失效。
时间差分、GAE 和 Critic,都在尝试把未来回报分配到各个时刻;AR 逐 token 的对数概率,也提供了较细的更新接口。但场景越长、交互越复杂、奖励越稀疏,估计的方差就越大。Diffusion 和 Flow 一次生成整段轨迹,轨迹级奖励能直接评价长期结构,却更难定位到某一步去噪,或速度场的某一段。换方法,只是换了归因的接口,因果识别的难题还在。
闭环是信用分配的必要条件,因为动作必须真的改变下一状态;但闭环还不够。他车模型只会理性让行,策略就会把“后车总会刹车”,错误地归功于自己的强势;世界模型对碰撞前的状态预测不准,优势也会沿着错误的动力学传播。所以还需要多样的交通参与者、对抗场景、终止和恢复状态的校准,以及按事件切分的短场景。
实践中,可以把长期目标拆成可验证的中间事件,但别把每个事件都变成稠密奖励。更稳妥的做法是:用关键状态做辅助的价值或风险预测,用场景级的终局奖励保持目标一致,用短路线缩小归因跨度,再用反事实回放,检验“只改一个早期动作”是否真的改善了后果。
- 定位终局事件明确碰撞、偏航、无法合流或路线失败发生在哪一帧,以及第一个不可恢复的状态。
- 回溯关键决策窗口不从事故帧才开始罚,而是去找可行解最后消失之前的变道、让速或目标选择。
- 做反事实比较在相同的初始状态和交通随机种子下,只替换关键动作,检查环境后果是否按预期改变。
- 控制归因跨度先用单技能的短场景和事件切片降低方差,再到长路线上验证组合能力。
- 校验环境因果如果他车或世界模型对自车动作没有真实的响应,任何优势估计都只是在给录像打分。
闭环环境:吞吐、高保真和多样性三者互相牵制
强化学习需要海量的 rollout。规则交通模型 IDM 的计算量是 O(1),参数可解释,可以百万级并行,改参数就等于改驾驶风格,很适合闭环早期和风格随机化。但它的行为过度理性:永远让行,不反击也不抢行;同样的状态总给出同样的行为;也不理解对方要并道。在这样的环境里训练,强化学习会学会“欺负世界”。给 IDM 加随机噪声能降低过拟合,但仍代替不了真实的人类博弈分布。
几条规模化的路线,解决的是不同的瓶颈。GigaFlow 追求吞吐:每块 GPU 并行 4800 个世界,每个世界最多 150 个智能体,所有车共用一套策略做自博弈。CaRL 在 nuPlan 的真实数据上,用分布式 PPO 训练了超过 3 亿步;它报告的“超人水平”,限定在强行并线、无保护左转这类动态博弈场景。
RAD 用 3DGS 重建真实场景,缩小仿真和真实之间的视觉差距,同时保留动作的因果。Think2Drive 用 RSSM 世界模型在潜空间里想象 rollout,不必每一步都调用昂贵的渲染,训练提速百倍以上。RTR 把真实的名义场景,和用脚本写出来的加塞等长尾场景,放进同一个闭环里联合训练。这些工作不能只按总步数横向比较。
学出来的环境,也有自己的有效范围。Think2Drive 的失败案例里,规划器闯了红灯,世界模型随即终止这一回合,之后的预测帧都是随机生成的。用学出来的环境训练策略,这个有效范围就成了新的凸包;终止之后的那段序列,必须从优势估计里屏蔽掉。
真实道路不允许无约束的在线探索,所以量产强化学习几乎必然是分层的:先在固定日志上做离线或伪开环的筛选,再在规则模型或世界模型里做大规模闭环,然后用 3DGS 或高保真仿真复验困难场景,最后用封闭场地、影子模式和严格的安全员流程做校准。规模是训练条件,不是能力证据。“训练了三亿步”本身说明不了什么,要同时说清这些步是在什么世界里跑出来的、覆盖了什么,闭环能力的分项又怎样。
所以环境验收要同时测动力学一致性、传感器逼真度、他车响应的多样性、终止条件、长尾覆盖和实际吞吐。吞吐极高、后车却全都让行的环境,给出的交互奖励是错的;视觉逼真、参与者行为却很幼稚的 3D 场景,也训不出社会性驾驶。
- 吞吐:每块 GPU 的世界数、智能体数、步进频率,以及完整 rollout 的成本。
- 真实性:视觉、动力学、交通规则和参与者行为,是否同时可信。
- 可交互性:他车是否随自车的动作改变,而不是播放固定的录像。
- 多样性:激进、保守、误判、迟疑、抢行这些人类行为,是否都有覆盖。
- 有效性:终止、碰撞和越出分布之后的序列,还能不能用于优势估计。
为什么强化学习替代不了监督底座
第一,探索空间太大。规划器要先学会道路坐标、车辆动力学、基本跟车、红灯停车、舒适控制和人类交互,这些在日志里都有稠密的监督。从随机策略起步,绝大多数 rollout 都是低价值的失败,奖励稀疏,分不清“不会开车”和“策略选得不好”,样本效率远低于直接模仿。所以提高样本效率的标准做法之一,就是先从专家演示里模仿出初始策略,再让强化学习和环境交互。
第二,奖励永远不完备。人类示范里有大量没写进公式的社会规范:不吓人,给对方留空间,不过度试探。纯强化学习只优化被测量的量,即使没撞,也可能学会卡 gap、逼车或者极端保守。RTR 论文的对比里,纯强化学习的智能体碰撞率虽然低,加速度分布却明显偏离人类示范。监督的参考不是安全保证,但能把策略限制在人类行为的合理邻域里。
第三,仿真和数据的覆盖,决定了强化学习的上限。固定日志上的离线强化学习,一旦走出行为数据的分布,Q 值就会高估;低保真的闭环,会把钻模拟器的空子当成能力。有了模仿学习提供的真实状态—动作联合分布,强化学习才能在“已有可驾驶策略的附近”做局部探索,而不是在错误的世界里重新发明驾驶。
第四,量产需要可回退的训练阶段。常见的多阶段训练先稳定感知,再稳定规划:规划侧先只用模仿学习训练规划器,再和感知联训,最后用更小的学习率、更少的数据,只对规划做强化学习;两段式则直接跳过中间的联训。Plan-R1、RAD 和 DiffusionDriveV2 也都从预训练策略开始做后训练。保留监督的 checkpoint、参考模型和 BC 损失,才能判断强化学习的增益是不是拿常见场景的退化换来的,也才能在奖励改坏时回退。
监督底座本身,也还有很大的空间。PLUTO 的思路是先把模仿学习推到极限:横向和纵向的 query 分开建模,再交叉组合出大量候选;用六种正负数据增强配合对比学习,同时治分布偏移和因果混淆。其中一种增强是“前方没有前车时,反转红绿灯”,逼模型真的去看灯,而不是只凭前车判断信号。先把模仿学习和数据做满,再谈强化学习。
在讲分布偏移怎么治时,还有一个经验比例:数据解决 60% 的问题,模仿学习解决 30%,强化学习解决 10%。它说的是治分布偏移的手段配比,不宜外推成整个项目的投入比例。模仿学习和强化学习各占多少、什么时候启用强化学习,属于团队自己的工程决策,没有统一的行业配方。
所以合理的问题,不是“什么时候从模仿学习切换到强化学习”,而是“哪些场景、哪些参数、哪一级表示,值得用强化学习来改”。常见的道路行为,继续由大规模模仿学习提供底座;合流、加塞、绕行、无保护左转这类反馈密集、规则可验证的专项,用闭环强化学习做受限优化;任何增益,都要回到全量常见场景做回归。放到更大的版图里,分工同样清楚:VLA 解决“懂不懂”,世界模型解决“敢不敢”,强化学习解决“好不好”。
纯模仿学习
能开,但不会试错
- 容易扩数据,训练稳定。
- 类人先验强。
- 偏离示范之后,缺少恢复能力。
- 没法显式比较反事实的动作。
纯强化学习
会试错,但目标不完整
- 需要海量、可信的交互。
- 容易钻奖励和模拟器的空子。
- 类人性和基础驾驶,都要靠稀疏的回报重学。
- 训练波动大,安全验证成本高。
监督 + 强化
在行为邻域内改进
- SFT 或模仿学习的 checkpoint,作为策略和参考模型的起点。
- 针对专项场景,生成成组的 rollout。
- 用 KL 或 BC 约束常见行为不漂移。
- 闭环收益和全量回归,共同决定能否上线。
一条可执行的训练路线:先证明底座,再证明改进,最后证明没有副作用
阶段一,建立监督底座。清洗人驾数据,统一导航和场景的分布,训练感知或场景编码,再训练规划器。按常见、长尾、交互、规则、舒适分桶,报告开环和闭环的基线。阶段二,挑选可归因的专项场景。定义状态、动作、终止条件、绝对安全门槛和最小够用的奖励,先用轨迹回放做单元测试。
阶段三,建立 rollout。同一个初始场景,生成多策略、多随机种子的结果,确认自车的动作会改变他车和后续观测。然后再选算法:动作是逐步生成的、Critic 的数据也充分,就用 PPO;生成器天然出一组候选、Critic 又难以稳定,可以用 GRPO,但要加上绝对失败约束和跨组校准。整个阶段都保留参考模型、KL 或 BC 约束和早停,并持续混入监督数据。
阶段四,做场景级的闭环验收。先用短路线的单科考试,定位汇入、超车、紧急制动、让行、交通标志这五类技能,再做长路线的组合。报告里必须同时有:专项提升、常见场景回归、奖励分布、KL 漂移、策略熵、Top-K 与 Top-1、碰撞与违规,以及人工的体验审查。
上线门槛不是总奖励提升,而是三件事同时成立:专项能力的闭环因果改进可以复现;安全和规则的底线,没有被其他奖励交换掉;常见的人类驾驶分布,没有明显退化。任何一项做不到,这个强化学习 checkpoint 就还是研究结果,不是量产候选。
- 模仿学习基线与数据分桶固定一个可复现的 checkpoint,记录常见、长尾、交互场景的开环和闭环能力,明确强化学习要补的具体缺口。
- 奖励单元测试对正反例、边界、冲突和钻空子的轨迹逐条验算,先证明奖励和产品意图一致。
- 环境因果校验同一场景只替换自车动作,验证他车、观测和终止是否按预期变化;测参与者的多样性和 sim2real 风险。
- PPO 或 GRPO 受约束后训练小步更新,用 KL 或 BC 锚定,加绝对安全门槛,按场景监控优势,别只盯着总奖励。
- 短场景单科闭环每条路线只考一种行为,定位奖励、信用分配和策略的失败,不用长路线的总分掩盖原因。
- 全量回归与人工审查确认专项收益没有换来常见场景的退化、逼车或极端保守,再进入封闭场地和影子模式这一层证据。
沿着主线继续
相关术语
- 模仿学习与强化学习的关系——RL 不是从零学开车,而是在模仿学习学出的基础策略上做对齐微调。
- PPO 与 GRPO——都是策略优化算法;GRPO 用「同场景多条候选的组内相对好坏」算优势,省掉了单独的价值网络。
- 奖励函数——把安全、效率、舒适、法规、人类偏好折算成一个可优化的数值信号,并用 KL 约束拴住策略别跑偏。
- 奖励钻空子——模型会最大化你写下来的数值,而不是你心里真正想要的驾驶行为——这是 RL 的本性,不是偶发 bug。
- 信用分配——整条轨迹拿到一个 reward,要把功过分配回生成过程中的哪一步——AR 的粒度天然对齐到每个 token,但长期 reward 仍可能错归到早期动作;Diffusion 要摊回多个去噪步。
- 开环与闭环——开环用数据集里的真实下一状态,闭环用环境动力学产生下一状态——前者看不到误差累积,后者才检验纠错能力。
- 逐步展开与误差累积——策略一步步展开未来时,前一步的输出会变成后一步的输入——错了就会沿着错误状态一路滚下去。
- 参考模型与 KL 约束——冻结的预训练策略作为锚点,用 KL 惩罚拴住新策略,别为了刷 reward 跑出原本合理的驾驶分布。
- RL 能解决的五类问题——长时序决策、多目标权衡、不确定交互、稀疏延迟反馈、规则写不清的灰色决策区。
- RL 数据规模直觉——验 reward 方向约 10 条;单任务专项百到千条 clip;全量训练约 10w clip;一段式预训练可能千万级。
- 场景隔离——同一个 reward 在不同场景下含义可能相反,所以 reward 不能全局常开,必须按场景生效。
- 数据闭环——从线上发现问题到归因、难例挖掘、数据配比、调整、开闭环评测、小流量验证,再回到发现问题的完整循环。
相关论文
- Plan-R1:把安全可行的轨迹规划建模为语言建模——规划语言化 + GRPO
- DiffusionDriveV2:强化学习约束的截断扩散建模——锚内提质,锚间协调
- Flow-GRPO:通过在线强化学习训练流匹配模型——ODE 转 SDE 再 RL
- TrajHF:通过人类反馈强化学习学个性化驾驶风格——偏好定驾驶风格
- Diffusion-QL:把扩散策略作为离线 RL 的表达性策略类——多峰动作 + Q 引导
- DPPO:扩散策略的策略优化——diffusion 微调方法论
- Diffuser:用扩散做灵活的行为合成——value 引导采样
- PLUTO:把模仿学习规划推到极限——把 IL 做到极致,再谈 RL