持续学习、适应和改进:自动驾驶的dual-process方法

24年5月来自浙江大学、上海AI实验室和华东师范大学的论文“Continuously Learning, Adapting, and Improving: A Dual-Process Approach to Autonomous Driving”。

由于传感器、机器学习和人工智能的进步,自动驾驶取得了长足的进步。然而,现行方法难以应对复杂的场景和因果关系,阻碍了在不同环境中的适应性和可解释性。为了解决上述问题,LeapAD是一种受人类认知过程启发的自动驾驶新范式。具体而言,LeapAD 通过选择与驾驶决策相关的关键目标、简化环境解释和降低决策复杂性来模拟人类注意力。此外,LeapAD 还采用dual-process决策模块,该模块由用于深入分析和推理的分析过程(系统 II)和用于快速和经验处理的启发式过程(系统 I)组成。分析过程利用其逻辑推理来积累语言驾驶经验,然后通过监督微调将其转移到启发式过程。通过反思机制和不断增长的记忆库,LeapAD 在闭环环境中不断从过去的错误中自我改进。CARLA 中的闭环测试表明,LeapAD 优于所有仅摄像头输入的方法,所需的标记数据量减少了 1-2 个数量级。实验还表明,随着记忆库的扩展,仅具有 1.8B 个参数的启发式过程可以继承 GPT-4 驱动分析过程的知识并实现持续的性能改进。代码将在 GitHub - PJLab-ADG/LeapAD 发布。

大语言模型 (LLM) 和视觉语言模型 (VLM) 以其嵌入的世界知识和强大的解释和推理能力而闻名,它们的最新进展引起了研究人员的兴趣 [5–8]。例如,在自动驾驶领域,一些基于知识的方法 [9–12] 采用 LLM 和 VLM 作为驾驶代理。然而,这些方法执行开环测试,仅评估模型输出与数据集的基本事实之间的误差,无法反映自车与真实世界环境之间的动态交互 [13]。因此,它们通常不足以有效评估驾驶智体的响应能力和适应性。

事实上,人类学习驾驶涉及闭环环境中的持续交互和探索过程,驾驶员根据周围环境做出决策并相应地接收反馈。根据dual-process理论 [14–16],人类智能在两个层面上运行:1)启发式过程(系统 I),它是自动的、快速的、经验性的和特定于领域的; 2)分析过程(系统 II),理性、缓慢,擅长跨领域逻辑推理和创造力。这种dual-process思维在从新手到经验丰富的驾驶员的过程中显而易见。最初,由于缺乏驾驶经验,个人严重依赖常识。通过训练,在闭环学习过程中发展驾驶技能,该过程涉及不断反复试验,同时通过理性分析(分析过程)评估其行为。这些技能随着时间的推移而被内化,形成肌肉记忆,从而能够在熟悉的驾驶场景中做出快速、本能的反应(启发式过程)。即使在获得驾照后,个人仍会继续积累经验并从事故中学习以提高驾驶技能。

如图所示LeapAD 由三个主要组件组成:用于场景理解的 VLM、由分析过程和启发式过程组成的dual-process决策模块,以及用于低层控制的动作执行器。在 CARLA 模拟器中,LeapAD 利用 VLM 处理周围图像并生成关键目标的描述。然后,这些场景描述被输入到dual-process决策模块中,得出场景推理和驾驶决策。最后,这些高级决策被转发给动作执行器,转换成控制信号,并与模拟器交互。

在闭环驾驶环境中,启发式过程让经过微调的轻量级模型用于根据记忆库的可转移经验执行快速、经验性的决策。当启发式过程遇到事故时,分析过程就会介入。分析过程利用 LLM 分析交通事故,利用其嵌入的世界知识,特别是对交通规则的理解。然后,它会生成经过修正的高质量驾驶体验,丰富记忆库,并使整个系统能够持续学习。

请添加图片描述

采用分析过程来反思交通事故,如图所示。具体来说,当VLM和启发式过程在闭环驾驶场景中运行时,任何事故都会触发反思机制。在此过程中,事故发生前,前几帧的场景描述D、推理R和决策S被转发到分析过程。然后需要细致地分析事件的原因,找出错误,并提供纠正的推理和决策。从反思过程中获得的见解,被进一步整合到记忆库中,使LeapAD能够不断从失败中学习,并逐步在未来的驾驶场景中做出更明智、更准确的决策。重要的是,记忆库中的经验具有良好的可迁移性和泛化性。它可以被其他轻量级模型直接利用,并很容易推广到不同的场景。

请添加图片描述

在 LeapAD 中,用 Qwen-VL-7B [28] 作为场景理解的 VLM,GPT-4 作为理性和逻辑思维的分析过程,Qwen1.5-1.8B [60] 作为自动快速思考的启发式过程。用 OpenAI 嵌入模型作为文本编码器 Te 来提取文本嵌入。为了充分激发 VLM 在自动驾驶中的能力,用指令跟踪数据执行 SFT。AdamW 优化器设置[61],β1 = 0.9 和 β2 = 0.95,学习率的余弦衰减,最初设置为 1e-5,批量大小设置为 16。模型在 8 个 A100 GPU 上训练了 5 个epochs,大约需要 26 小时。输入图像分辨率设置为 448×448 像素。对于启发式过程,用存储库中的样本对 Qwen1.5-1.8B 进行了 5 个epochs的 SFT,大约需要 6 个小时。训练超参与 VLM 的训练过程一致。

详细的微调过程如图所示。Dual-process决策模块以 2 HZ 的频率输出元动作(例如“AC”、“DC”、“IDLE”、“STOP”),这些元动作进一步细化为控制信号。

请添加图片描述

CARLA 提供的默认路线航点很稀疏,连续航点之间的距离可达几十米。这使得低层控制器很难将元动作分解为控制信号。为了解决这个问题,用高清地图将这些稀疏的航点密集化为 1 米间隔的路径点,这些路径点构成自车的参考路径。随后,控制器采用 Pure Pursuit 算法 [64] 来跟踪参考路径,确保自车保持在正确的道路上。跟踪的目标路径点的选择是自适应的,取决于车辆的速度,控制器会选择前方第3到第7个路径点之一。

值得注意的是,高清地图并不是必要条件。替代方法,例如 DriveCot [65] 或 TransFuser [42] 中提出的方法,它们利用单独的神经网络,根据具有稀疏导航信息的摄像机图像,预测未来的参考路径,也与控制器设计兼容,而不会影响核心方法的运行。

如图VLM 在自收集的 CARLA 模拟数据集上生成场景描述的注释格式和示例:

请添加图片描述

如图是详细的关键目标描述格式:

请添加图片描述

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-23 03:38:01       52 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-23 03:38:01       54 阅读
  3. 在Django里面运行非项目文件

    2024-07-23 03:38:01       45 阅读
  4. Python语言-面向对象

    2024-07-23 03:38:01       55 阅读

热门阅读

  1. ImageView实现原理分析

    2024-07-23 03:38:01       17 阅读
  2. 数据结构---二叉树

    2024-07-23 03:38:01       17 阅读
  3. [k8s源码]6.reflector

    2024-07-23 03:38:01       11 阅读
  4. NumPy冷知识66个

    2024-07-23 03:38:01       14 阅读
  5. 怀庄之醉是勾兑酒吗?

    2024-07-23 03:38:01       15 阅读
  6. 【开源库学习】libodb库学习(一)

    2024-07-23 03:38:01       13 阅读
  7. 【Apollo学习笔记】—— Cyber RT之创建组件, test ok

    2024-07-23 03:38:01       15 阅读
  8. Linux Shell 022-按日期清理文件

    2024-07-23 03:38:01       15 阅读
  9. Red Playing Cards (牛客多校2 I)

    2024-07-23 03:38:01       17 阅读