24年10月来自南洋理工、Nvidia和斯坦福的论文“Gen-Drive: Enhancing Diffusion Generative Driving Policies with Reward Modeling and Reinforcement Learning Fine-tuning”。
自动驾驶需要能够推理交通智体之间的未来交互,并做出明智的规划评估。 Gen-Drive ,从传统的预测和确定性规划框架转变为生成-然后-评估的规划范式。该框架采用行为扩散模型作为场景生成器,以产生各种可能的未来场景,从而增强联合交互推理的能力。为了方便决策,提出一个场景评估器(奖励)模型,该模型使用通过 VLM 辅助收集的成对偏好数据进行训练,从而减少人工工作量并提高可扩展性。此外用 RL 微调框架来提高扩散模型的生成质量,使其更有效地完成规划任务。对 nuPlan 数据集进行训练和闭环规划测试,结果表明,采用这种生成-然后-评估的策略优于其他基于学习的方法。此外,经过微调的生成式驾驶策略,在规划性能方面表现出显著的提升。与依赖人工设计的奖励相比,利用学习的奖励模型进行评估或 RL 微调可以带来更好的规划性能。
自动驾驶的预测和规划
预测规划框架是自动驾驶决策的基石,它可以预测其他智体的行为,然后为自车智体制定规划。深度学习的最新进展显著提高了预测模型的准确性 [19]–[21]。尽管如此,仅仅提高预测准确性并不一定意味着更好的规划性能 [8]、[22]。为了解决这个问题,提出综合预测和规划 (IPP) 方法 [5]、[6]、[8]、[23],旨在优化整体规划性能。虽然 IPP 方法可以直接提高规划性能,但它们仍然将自车与社交互动环境隔离开来,难以处理预测结果固有的多模态性。此外,设计 IPP 方法的复杂性及其复杂的训练要求,给它们的实际部署带来了挑战。因此,从预测方法转向生成方法,开发一个能够为包括自车在内的所有智体生成不同未来场景的模型。这是为了确保场景的一致性,更好地捕捉交互动态,并提高最终的规划性能。
自动驾驶的奖励建模
奖励建模或场景/规划评估是一项至关重要但又具有挑战性的任务。传统评估主要依赖于人类制定的指标和函数,例如 nuPlan 分数 [18] 和预测驾驶模型 (PDM) 分数 [24]。这些指标虽然有用,但可能无法准确反映不同场景中的人类价值观,并可能导致使用这些奖励训练的规划模型偏离人类行为。奖励建模的一个有前途的方向,是使用逆强化学习 (IRL) 从人类驾驶数据中学习 [7]、[8]、[25]。然而,它需要对奖励函数的结构做出假设,而这些假设可能无法反映不同条件下的实际人类偏好。最近,利用成对的人类偏好数据来训练奖励模型已经越来越受欢迎 [26],这可以进一步应用于微调生成模型 [17]。这种方法有望实现与人类一致的评估并增强类人驾驶能力。
自动驾驶的生成模型
生成模型(例如扩散和自回归 Transformer 模型)已越来越多地用于交通模拟和轨迹预测任务 [10]、[20]、[27]–[32]。这些模型擅长捕捉多智体联合行为的复杂和多模态分布,从而在场景生成性能方面表现出色 [10]、[27]、[28]、[32]。虽然自回归生成模型(例如 BehaviorGPT [27] 和 SMART [28])擅长生成交互式行为,但与扩散模型相比,它们在多样性和可控性方面有所欠缺。因此,扩散模型代表一种有前途的替代方案。
基于扩散场景生成中的著名例子包括 CTG++ [12] 和 VBD [10],它们构成了框架的基础。扩散模型在规划中的一种特殊应用是扩散进化策略 [33],但它主要用作自车智体的轨迹优化方法,而不是生成多智体未来场景。
在提出的 Gen-Drive 模型中,目标是通过适当的奖励建模来提高规划性能,并改进规划的扩散模型。使用强化学习训练扩散模型(之前在图像生成中取得成功 [34]、[35]),将结果导向高回报规划/场景并降低计算成本来提高模型的生成质量。
如图所示:Gen-Drive 代表了从传统预测和确定性规划方法到生成-然后-评估框架的范式转变。在此框架中,会为自车智体和其他智体生成不同的联合未来场景,然后通过场景评估(奖励)模型进行选择。为了训练有效的奖励模型,对生成结果进行采样,并使用 VLM 辅助流水线来整理成对偏好数据集。训练后的奖励模型可用于做出明智的决策并通过 RL 对生成模型进行微调,从而进一步提高其规划性能。
Gen-Drive 采用生成(扩散)模型来取代传统范式中的预测规划模型。关键的区别在于,自车智体并非与场景隔绝;相反,它被视为一个不可分割的部分,所有智体的行为都相互依赖。为了利用这个生成模型进行规划,设计一个场景评估(奖励)模型。该模型使用精选的成对人类偏好数据集进行训练,使其能够直接对生成的场景(规划)进行评分,并促进选择最佳和符合上下文的决策。此外,利用奖励模型来微调扩散生成过程,使其朝着生成高回报规划的方向发展。RL 微调步骤可以提高整体规划性能并减少大量采样的需要。
其 NN 架构如下所示:
场景生成器
对于当前时间步的初始驾驶场景,考虑 N 个目标(包括自车)和 M 个地图元素,跟踪这些目标在 T/h 个时间步内的历史轨迹。编码器的当前场景输入包括目标轨迹 O 和地图折线 M ,其中 N/p 是航路点的数量,D/o 和 D/p 是每个点的维度特征。
编码器。当前场景输入最初通过时间轴自注意 Transformer 层对目标轨迹进行编码,得到 Oe,并通过具有最大池化的 MLP 对地图数据进行编码,得到 Me 。它们被连接起来形成初始编码。采用以查询为中心的 Transformer 编码器 [10]、[16]、[21] 来融合场景元素的特征并生成综合场景条件编码 C 。
降噪器。扩散过程在所有感兴趣目标 N/a 的联合动作空间 a 中进行,动作由加速度和偏航角速度组成。噪声直接添加到动作序列中。给定噪声输入 a/k ,其中 k 是噪声水平,T/f 是未来的时间步长,以及场景条件 C,用具有自注意和交叉注意层的降噪 Transformer 来预测降噪动作序列 ˆa/0。对于自车智体,提供了额外的路线信息,并使用了额外的交叉注意层来建模自车-路线关系。
生成。未来场景(联合目标动作)从随机高斯噪声 a/K ∼ N (0, I) 开始生成,其中 K 是扩散步骤的总数。随后,每个扩散步骤 k 从转换动态中进行采样 [36]–[38]。
通过迭代反转扩散步骤,获得最终的去噪联合动作输出 a/0。随后,使用动力学模型 f 将目标动作转换为状态 x/0 = f(a/0),从而导出状态。该状态包含目标的 x/y 坐标、航向和速度。
场景评估器
场景评估器将扩散生成器生成的 S 个未来场景作为输入,这些场景可以通过从一批高斯噪声中启动来并行生成。这些生成场景的结构为 S ,评估器的另一个输入是矢量图 M。这些未来场景使用以查询为中心的 Transformer 编码器进行编码,类似于历史场景的编码,从而得到场景特征表示 Se 。随后,用从场景编码 Se 中提取的自车智体未来或规划编码 Ae 作为查询,并使用 Transformer 解码器中的场景编码作为K和 V,得出未来场景以规划为中心的特征 A 。请注意,Transformer 解码器会分别关注每个场景中 (Na + M) 个元素。在该特征张量上附加两个 MLP 头,分别重建自车智体的规划轨迹并输出不同生成场景(规划轨迹)的分数。自我规划重建头作为辅助任务添加,以增强稳定性和有效性。
训练基扩散模型
基扩散模型经过训练,可以在各种噪声水平和场景条件下从带噪声的关节轨迹输入中恢复干净的轨迹。在每个训练步骤中,都会采样噪声水平 k 和高斯噪声来扰乱原始动作轨迹。由于该模型预测场景级关节轨迹,因此所有目标轨迹都会受到相同噪声水平的影响。
奖励模型训练
成对偏好数据收集。要构建有效的奖励模型,必须整理全面的数据集。一种方法是利用人为设计的指标,例如 PDM 分数 [24]。但是,依赖此类指标存在很大的局限性,因为它们可能无法准确反映不同场景中实际人类价值观。此外,即使对于人类评估者来说,准确地用奖励值标记场景也是一项挑战。或者,可以让人类注释者进行成对比较,确定哪些场景更符合人类偏好。然而,整理大规模奖励数据集会给人类注释者带来巨大的工作量。为了解决这个问题,用 VLM 来提高流程的效率和可扩展性。
VLM 辅助的奖励标记流程如图所示。为了增加规划轨迹的多样性,首先利用 K-均值算法从数据中提取 32 个 5 秒锚定目标,并采用引导扩散 [10]、[12] 为自车智体生成 32 条不同的规划轨迹,以及模型对场景中其他目标的反应行为。随后,对这些场景进行成对抽样。首先计算计划轨迹之间的差异,然后检查碰撞和越出道路以过滤掉明显的失败情况。如果这些措施不足以区分,将利用 GPT-4o 提供结论性评估。如图所示,GPT-4o 根据当前场景背景对两个生成的场景提供合理的评估。
训练过程。在每个训练步骤中,从相同的初始条件中抽取一批成对比较结果,即接受(正)场景 Sa 和拒绝(负)场景 Sr。
微调生成模型
为了提高扩散生成在规划任务中的效率,使用训练有素的奖励模型和 RL 对扩散模型进行微调。可以将扩散去噪过程表述为多步骤 MDP [15]、[35],其中去噪器作为以每一步的噪声输入为条件的策略。轨迹包含 K 个时间步,在扩散过程结束时发出奖励信号。RL 目标是最大化沿轨迹的累积奖励,可以利用去噪扩散策略优化 (DDPO) [35] 来改进生成策略。
微调损失是在整个扩散轨迹上累积的,并且只有降噪器是可学习的,而编码器在微调期间是固定的。如下算法 1 说明使用 DDPO 的 RL 微调算法。
实施细节
模型参数。场景上下文由 N = 100 个目标组成,每个目标都有 2 秒的历史轨迹,以 0.5 秒的间隔进行采样(Th = 4)。矢量图包含 M = 350 个元素,每个元素包含 Np = 20 个航路点,以及用于自车的额外 R = 30 条路线折线。基本扩散模型由 6 个查询中心的注意编码层和 6 个 Transformer 解码层组成,隐维度为 D = 256。该模型在 5 秒的范围内为最接近自车智体的 Na = 50 个目标生成未来场景,间隔为 0.5 秒(Tf = 10)。采用 K = 10 个扩散步骤和余弦噪声调度。场景评估器包括 Transformer 编码器中 3 个以查询为中心的注意层和 Transformer 解码器中的 3 个交叉注意层。
训练流水线。为了训练基础扩散模型,我们采用每 GPU 16 的批处理大小和 20 个训练周期。使用 AdamW 优化器,从 2e-4 的学习率开始,每 1k 步衰减 0.95。对于奖励模型,我们收集 5k 个场景,每个场景有 50 次成对比较,并使用每 GPU 32 的批处理大小在 50 个周期内对其进行训练。在微调阶段,设置参数:正则化 α = 10,剪辑参数 ε = 0.01,每 GPU 样本大小 m = 32,学习率 γ = 1e − 5,微调步骤 T = 1000,每步更新迭代 I = 5。所有训练作业均在 8 个 NVIDIA A100 GPU 上进行。