简介

在追求完全自动驾驶汽车的过程中,“规划”模块是整个操作的大脑。它决定汽车应该去哪里、开多快,以及如何处理突然过马路的行人。从历史上看,这曾是基于规则系统的领域——由工程师编写的大量决策树 (例如,“如果是红灯,就停车”) 。虽然这些规则在标准交通状况下行之有效,但它们很脆弱。它们无法扩展到现实世界中那些奇怪、不可预测的“长尾”场景。

这促使研究人员转向模仿学习 (Imitation Learning, IL) , 即神经网络通过复制人类驾驶员的行为进行学习。虽然 IL 具有可扩展性,但它深受复合误差的困扰;如果汽车稍微偏离完美的人类路径,它就会进入以前从未见过的状态,并往往因此陷入恐慌。

这就轮到强化学习 (Reinforcement Learning, RL) 登场了。理论上,RL 是完美的候选者。它通过试错进行学习,针对长期目标进行优化,而不仅仅是复制单一轨迹。它在闭环模拟中茁壮成长,可以从自己的错误中学习。然而,在自动驾驶领域,RL 有一个不为人知的秘密: 奖励工程 (Reward Engineering)

为了让 RL 发挥作用,研究人员传统上设计了极其复杂、“塑形 (shaped) ”的奖励函数。他们给汽车加分的情况包括: 保持在车道中心、保持速度、保持方向,而对于急动度 (jerk) 则会扣分。这种方法虽然初衷是好的,但却产生了一组新问题: 智能体学会了“钻系统的空子”,找到局部的漏洞来最大化分数,而实际上并没有把车开好。

在这篇文章中,我们将剖析一篇引人入胜的论文 “CaRL: Learning Scalable Planning Policies with Simple Rewards” (CaRL: 通过简单奖励学习可扩展的规划策略) , 该论文挑战了这一现状。作者提出了一个激进的简化方案: 停止使用复杂的基于规则的奖励。取而代之的是,使用基于路线完成度的简单奖励,并将训练数据扩展到 3 亿个样本。结果产生了一个规划器,其在 CARLA 模拟器和现实世界的 nuPlan 基准测试中均优于复杂的 SOTA (最先进) 方法。

复杂奖励的陷阱

在强化学习中,智能体通过优化自身行为来最大化标量奖励信号。在国际象棋或围棋等游戏中,奖励很简单: 赢了 +1,输了 -1。然而,在驾驶中,反馈循环很长。如果汽车在行驶 10 秒后发生碰撞,算法很难知道具体是哪一个转向动作导致了碰撞。

为了解决这个“信用分配”问题,研究人员通常使用密集、塑形的奖励 。 这些是在每个时间步都会给出的奖励。例如,一种名为 Roach 的流行方法对以下各项奖励进行求和:

  1. 速度与目标匹配。
  2. 位置与车道中心匹配。
  3. 方向与车道方向匹配。

问题在于,这些奖励依赖于基于规则的专家来定义什么是“最佳”速度或位置。如果基于规则的专家有缺陷,RL 智能体就会学到有缺陷的行为。此外,这些加性奖励会产生局部极小值。

作者强调了这些复杂奖励的一个可笑但棘手的失效模式。如下图所示,使用 Roach 奖励训练的智能体学会了在绿灯时等待

Roach slows down at green lights. Top to botom are 3 different time steps. Note how the velocity initially slows down from 4 m/s to 3 m/s . Once the agent passed the green light, the model started accelerating again to 5 m/s

它为什么要这样做?Roach 奖励会因为匹配目标速度而给予高分。如果红灯亮起,目标速度为 0。如果智能体在绿灯时停下来,它可能会失去一些进度分,但它通过让自己完美匹配最终红灯亮起时的“停止”目标,从而“黑”进了奖励函数。它本质上是在为了刷分而停止驾驶。

可扩展性问题

复杂奖励的第二个,也许是更关键的问题是可扩展性 。 在现代深度学习中,成功的秘诀通常是:

  1. 获取海量数据集。
  2. 使用巨大的批量大小 (batch size) 。
  3. 训练巨大的模型。

然而,当研究人员尝试在使用 PPO (近端策略优化) 算法和复杂奖励的情况下增加小批量大小 (模型在更新权重前查阅的数据量) 时,性能却崩溃了。

Figure 1: Simple rewards scale with mini-batch size. Typical rewards in driving consist of complex rewards that trade off many individual components. This limits scalability as PPO gets stuck in local minima with larger mini-batch sizes. We propose a simple alternative based on maximizing route completion that scales well with mini-batch size.

如图 1 所示,复杂奖励 (蓝线) 随着每次更新数据量的增加,表现反而变差。梯度被平滑了,优化过程陷入了那些局部极小值 (比如绿灯等待策略) ,因为对于奖励函数来说,这些是“安全”的赌注。

作者的方法 CaRL (红线) 显示了相反的趋势: 随着规模的扩大,它变得更好

CaRL: 核心方法

研究人员提议回归第一性原理。他们不再用关于车道位置或方向的具体规则来微观管理汽车,而是简单地告诉汽车做什么 , 而不是怎么做

简单的奖励函数

新的奖励设计简洁优雅。它主要基于路线完成度 (Route Completion, RC)

Equation

以下是各项的分解:

  • \(RC_t\) : 当前时间步完成路线的百分比。这是主要的驱动因素。汽车想要跑完路线。
  • \(p_t\) (软惩罚) : 这些是 0 到 1 之间的乘法因子。如果汽车开得好,\(p_t = 1\)。如果汽车违反了软约束 (例如超速、稍微偏离车道或驾驶不舒适) ,\(p_t\) 会降至 1 以下,从而减少该步的奖励。
  • *注意: * 因为这些是乘法因子,如果你鲁莽驾驶,你的进度奖励 (\(RC_t\)) 将大打折扣。
  • \(T\) (终止惩罚) : 如果汽车犯了“硬”违规——比如碰撞或闯红灯——剧集 (episode) 立即结束,并扣除惩罚 \(T\)。

这种设计确保了奖励的全局最优驾驶任务的全局最优相匹配。为了获得最高分,汽车必须完成路线 (最大化 RC) 同时避免所有惩罚。这里不存在绿灯停车能得分的漏洞。

优化 PPO 以适应规模

为了让这个简单的奖励发挥作用,作者必须修正训练超参数。CARLA 中的大多数先前工作 (如 Roach) 对 PPO 算法使用了非常保守的设置 (低学习率) 。

作者转而使用 PPO 的标准 “Atari” 超参数 , 该参数使用更高的学习率和更少的训练轮数 (epochs) 。

Table 2: Atari vs CARLA hyperparameter set on CARLA.The Atari hyperparameters train faster (-10 h using one A100 (40GB) and 14 EPYC 7742 CPU cores),achieve better performance (+11 DS),and have lower variance (-4 std).

如表 2 所示,仅仅切换到这些稳健的超参数 (Atari) 就减少了 10 小时的训练时间,并使驾驶评分 (Driving Score, DS) 提高了 11 分。这表明,以前在驾驶 RL 中的挣扎部分归因于糟糕的超参数选择,掩盖了标准算法的潜力。

扩大数据规模

简单奖励 + 稳健超参数的结合,解锁了使用巨大批量大小 (高达 16,384) 的能力。大批量意味着梯度估计非常准确。

这使得团队能够在多个 GPU 上并行化数据收集。他们在 CARLA 中将训练扩展到 3 亿个样本 , 在 nuPlan 中扩展到 5 亿个样本 。 作为对比,之前的 SOTA 方法通常仅使用 1000 万到 2000 万个样本。

模型架构

策略本身是一个卷积神经网络 (CNN) ,用于处理鸟瞰图 (BEV) 语义图像。

Figure 3: A rendering of our input. The distribution shows the model action distribution predictions. The yellow vertical line denotes the mean of the distribution. Other cars are rendered in blue. The brightness of blue encodes their speed. A constant velocity forecast is rendered as a line in front of other vehicles. The ego car is depicted in white. Conditioning is in light grey and only rendered inside intersections. Dark grey depicts the road. The lane markings are pink.

输入包括道路、车道标记、其他车辆 (编码了速度) 、行人和交通信号灯的通道。网络直接输出转向、油门和刹车动作。

实验与结果

作者在两个主要基准上评估了 CaRL: CARLA (一个 3D 模拟器) 和 nuPlan (基于真实世界日志的数据驱动模拟器) 。

CARLA 上的结果

在 “longest6 v2” 基准 (涉及密集交通长路线的严格测试) 上,CaRL 展现了巨大的性能飞跃。

Table 5: Performance on longest6 v2 (CARLA).

  • Roach (之前的 RL SOTA): 22 分 (DS)。
  • Think2Drive (世界模型 RL): 7 分 (DS)。
  • CaRL (本文): 64 分 (DS)

CaRL 的性能是之前最好的 RL 方法的三倍。它还优于 PlanT (62 DS) ,这是一种基于 Transformer 的模仿学习方法。它接近了基于规则的专家 PDM-Lite (73 DS) ,但它是通过纯神经网络实现的,且运行速度显著更快 (推理时间 8ms 对比 18ms) 。

nuPlan 上的结果

nuPlan 对基于学习的方法来说也是出了名的难,因为它要求对真实世界记录的交通做出反应。

Table 6: Performance on Val14 (nuPlan)

在“反应式 (Reactive) ”设置中 (背景车辆会对自车做出反应) ,CaRL 达到了 90.6 的闭环分数 (CLS) 。

  • 这击败了 Diffusion Planner (82.7)。
  • 这与强大的基于规则的系统 PDM-Closed (92.1) 几乎相同,这对于纯 RL 方法来说是一个了不起的成就。
  • 也许最重要的是,CaRL 的速度快了几个数量级 , 运行时间仅为 14ms,而 Diffusion Planner 为 138ms,PLUTO 为 237ms。

失败案例

虽然 CaRL 是向前迈出的重要一步,但它并不完美。奖励的简单性意味着智能体必须从头开始弄清楚一切,这可能导致特定类型的错误。

Figure 9: Failures of CaRL in nuPlan. (a) The ego vehicle collides with non-reactive pedestrians and veers off-road in an attempt at colision avoidance. (b) During an unprotected turn, the ego vehicle has a rear-side collision with a non-reactive vehicle.(c) Non-ego vehicles regularly block the road in the reactive simulation, resulting in low progress scores.

在 nuPlan (图 9) 中,智能体有时在激进避让方面表现挣扎。在 (a) 中,为了避开行人,它完全偏离了道路。在 CARLA 中,作者指出 CaRL 有时会错过高速公路出口,因为它还没有完全学会为了满足路线要求而提前足够远进行变道规划,或者会被闯红灯的激进模拟司机追尾。

结论

CaRL 论文为自动驾驶系统日益增加的复杂性趋势提供了一个有力的反面论述。它表明,我们不一定需要更复杂的奖励函数或精心制作的基于规则的教师来训练好的驾驶策略。

相反,成功的公式是:

  1. 简化目标: 使用与最终目标完美一致的奖励 (路线完成度) 。
  2. 信任算法: 使用具有高学习率的标准 PPO。
  3. 扩展、扩展、再扩展: 利用简化的奖励解锁巨大的批量大小,并在数亿个样本上进行训练。

通过消除塑形奖励的“保姆式”引导,CaRL 允许智能体学习更稳健、更自然的驾驶行为,并能随着数据的增加而更好地扩展。随着我们向端到端驾驶系统迈进,这表明瓶颈可能不在于算法,而在于我们如何定义我们要让汽车完成的任务。