再来聊聊强化学习在自动驾驶中的应用
再来聊聊强化学习在自动驾驶中的应用
说到这事儿,我想起上个月一个特别尴尬的场景。
当时我兴冲冲地复现了一个模仿学习的baseline,模型在开环验证集上漂亮得不像话——loss直接干到0.0几,我差点以为自己要发顶会了。
结果呢?放到车上跑了一小圈,直接原形毕露。
路口往左偏了半米,差点蹭上路沿。
你猜我在想什么?这事儿我经历过不止一次了!
你想想,训练的时候给的全是完美的人类驾驶轨迹,每个状态都是“标准答案”下的状态。但车一上路,哪怕偏离一丁点,就会进入训练集里从没见过的状态——完了,彻底迷路,不知道该怎么回来。
这就是所谓的分布偏移。说人话?模型没见过世面。
所以,RL(强化学习)进入自动驾驶视野,几乎是必然的。
但说实话,RL自己想翻身也不容易。这些年踩过的坑、读过的论文,让我越来越觉得:这事儿没那么简单。
一、Waymo那篇ECCV的RL微调:聪明,但真够贼的
咱先聊聊Waymo在ECCV 2024发的那篇文章,《Improving Agent Behaviors with RL Fine-tuning for Autonomous Driving》。
核心思路特别有意思:既然你缺一个真实的环境做闭环训练,那就让网络自己给自己造一个环境。
他们用的MotionLM是自回归生成轨迹——每次输出ego和agent的一个action,然后循环拼接成完整6秒轨迹。换句话说,网络本身就构成了一个simulation。虽然粗糙,但跑RL微调够用了。
我当时看完立马在自己的数据上试了一把——结果你猜怎么着?效果惨不忍睹。
有个细节让我印象特别深:文章强调场景为中心的编码。网络输入的静态信息不是当前这一帧的地图,而是rollout这6秒内所有时间步的静态信息聚合。
我当时觉得这有啥了不起的,懒,只用了当前帧的HDMap。
结果rollout到第3秒,车就开始往没路的地方开。
为什么?因为模型压根不知道6秒后会没路!
这个教训让我彻底服了:看似是细节的东西,往往是成败的关键。
但话说回来,靠网络自己生成rollout,毕竟不是真实的闭环,生成的交互轨迹误差会随着时间累积。我真的大规模部署的话,这个简化版world model撑不撑得住?说实话,心里没底。
二、RL的三座大山:闭环、奖励、优化目标
最近读了篇上的分析文章,把RL在自动驾驶中的困难归纳为“三个拦路虎”。我基本认同,但想再展开聊聊。
先说说闭环这东西有多难。
你想想,现在谈闭环就三种:矢量闭环、中间特征闭环、传感器闭环。
矢量闭环最成熟,但只能做两段式——规划模块单独训练然后接一个闭环仿真器。特征闭环我折腾过不少,试过丢BEV特征进下一帧预测,但准确性很难验证。至于传感器闭环?就是world model。名字多高大上啊,背后全是坑。
我见过几个startup号称要做世界模型,最后都栽在了同一个地方:“新状态偏移”——训练集中没见过的场景,世界模型直接放飞自我。你敢用吗?反正我不敢。
其次是奖励函数,那真是个玄学。
我得坦白,我在调reward上栽过不止一个跟头。
有个让我又气又笑的事:有一次想鼓励车开得快一点,加了一个速度奖励项。结果你猜车学会了什么?
它学会了在直道上反复急加速急刹车来刷奖励!
平均速度没降,但能拿到更多的“动作奖励片段”。典型的reward hacking。
手工规则奖励太容易坠入手写rule时代的深渊了——各种边界条件调到你怀疑人生。基于模型的奖励(逆强化学习、RLHF)听起来美好,但你怎么保证学会的奖励模型是对的?人工标注奖励?开什么玩笑,驾驶场景那么多,一个人标一个偏好,另一个人标另一个,根本搞不定。
最后是优化目标和安全的关系,这段时间最让我纠结。
标准的RL优化的是discounted accumulated reward的期望值。但驾驶任务不一样——一个小概率但致命的错误,期望损失可能不大,但你敢冒这个险吗?
我查了一些用Conditional Value at Risk(CVaR)替代期望的文献。理论上有前途,但在大规模RL训练中的有效性?我没看到实证。学术圈还在吵架,工业界更不敢轻易换损失函数。
三、Apple那篇工作:里程碑,但我不意外
所有RL相关的工作里,让我觉得“这事儿终于成了”的是Apple发的一篇paper。
他们用高效的GPU模拟器生成了极大规模的自对弈数据,然后用RL训练出一个极其可用的驾驶策略,在好几个Benchmark上都刷了SOTA。
我读完的第一反应:果然得大厂才有这资源。
我自己在学校的集群上尝试过自对弈,跑了两个星期,CARLA里模拟了20万帧——效果还不如一个简单的PID控制器。
Apple这个工作量,模拟器级别的并行,再加上他们自己硬件上的优势,不是一般团队能复现的。
但冷静下来一想,这个方法暴露了一个核心问题:模拟器保真度。
Apple的模拟器是自家基于GPU的,效率确实高。但我怀疑它有多真——真实世界中的传感器噪声、天气突变、行人突然折返,模拟器如果还原不了,RL学到的策略在真实场景就还是不行。
Waymo和Cruise都在砸钱做高保真模拟器,方向是对的,但投入大到吓人。你想想,小团队怎么办?
四、不用RL也能提升闭环?ResAD这个思路绝了
地平线的一篇工作ResAD(发表于2024年11月),我之前的文章没提,这里补一下。
这篇文章不预测轨迹的绝对值,而是预测与恒定速度运动学模型的残差。
给你的感觉像是在学牛顿第一定律:没有外力,匀速直线;外力来了,才需要改变。
我试过这种方法,把它集成到自己模型里——不是完全替代RL,而是作为初始化。
结果呢?模型初期训练收敛快了很多,部署时面对没有见过的场景,也不那么容易“翻车”。这是不是间接缓解了闭环问题?我觉得是的——至少让你不需要一个超强的模拟器也能让模型学得稳。
不过,ResAD终究还是模仿学习那一套,上限没有RL高,但胜在稳。
五、DiffusionDriveV2和AlphaDrive:RL开始和生成式模型谈恋爱
最近还有两篇我很关注的工作:一个DiffusionDriveV2,一个AlphaDrive。方向不太一样,但都把RL和更高级的生成式模型绑在了一起。
DiffusionDriveV2把diffusion去噪过程看作一个MDP,然后用GRPO来优化。简单说:每步去噪相当于一次决策,多步生成一条轨迹,然后在这个序列上做RL。
他们还搞了Intra-Anchor和Inter-Anchor的GRPO——每个anchor内的轨迹自己组内比,不和别的anchor混淆。这个细节让我特别服气:因为不同anchor代表了不同驾驶意图(直走vs变道),混在一起比没有意义。
AlphaDrive是华中科大和地平线合作搞的,把GRPO用在了VLM的规划推理上。
最吸引我的不是性能提高了多少——说实话,20%数据超越全量SFT这种数字我见得多了。真正让我兴奋的是他们在实验过程中发现了多模态规划的“涌现能力”。这在之前的模仿学习里没见过。就好比模型突然学会了“推理”这个技能,而不是死记硬背轨迹。
我前不久尝试在自己的场景里用GRPO替换PPO,发现group-based baseline确实稳定一些。但reward function设计不当,训出来模型还是保守得要命——宁肯停在路口等三分钟也不肯走。
说明什么?奖励还是瓶颈。
六、未来走向:RL要翻的下一座山
聊了这么多,你可能会问:RL到底能不能在自动驾驶上大规模用上?
我觉得能,但要先翻过几座实打实的山。
首先是可验证的奖励。DeepSeek-R1能用规则奖励来验证推理步骤,因为数学题有唯一正确答案。但驾驶场景你怎么写个规则来评估一个左转行为好不好?安全?效率?舒适性?这三个经常是冲突的。
我看好逆强化学习和RLHF的组合,但得先搞定奖励学习的数据标注问题——这可不简单。
其次是world model的保真度。没有高保真的闭环环境,RL就是纸上谈兵。Apple走GPU模拟器路线,Waymo走数据驱动world model路线。我倾向于后者更长远——因为数据驱动的world model能自动适应新传感器、新场景。
但正如我前面说的,自监督的world model很容易在分布外场景上泛化失败。这个坑需要更先进的时序预测模型来填。
第三是计算效率。Apple那篇工作之所以是里程碑,不是因为它用了RL,而是因为它证明了大规模RL在驾驶上的可行性。但训练一个world model加一个RL policy,计算开销可能十倍于模仿学习。国内公司能否承受?是个问号。
我个人觉得,短期里最务实的路径是:先用ResAD那样的残差方法提升模仿学习的闭环鲁棒性,然后在关键的长尾场景(比如无保护左转、拥堵汇入)收集数据,用小范围的RL fine-tuning做针对性优化——而不是一上来就追求端到端全场景RL。
我实验室的一个项目就是按这个路子走的:model-based fine-tuning加限定场景的RL。虽然不能吹牛说全场景覆盖,但那些原来常失败的case,成功率确实从60%提到了85%以上。
至于AlphaDrive那种VLM+RL推理的路线?我更看好它的长期潜力。当模型能够“思考”每一个驾驶决策的后果时,安全就不只是靠奖励函数硬怼出来的了。
写到这儿,我又翻出自己之前写的轨迹规划代码,发现有几个bug还没改完。
与其在这高谈阔论RL的未来,不如先去跑一下明天的实验。
你看,干这行最怕的不是踩坑,而是踩完坑还在原地高喊口号。
别指望RL是万能药。但如果你问我它值不值得投入?
我觉得值。因为那些让车自己学会纠偏的时刻,会让你觉得——咦,这辆车,好像真的在进步了。
这感觉,比发十篇论文都爽。
你们有什么想法?欢迎留言骂我,或者给我指条明路。
真正酷的事不是被完美规划,而是在开错道的时候,还能自己开回来。
读者评论 4