01 | AI: 端到端真的是自动驾驶的曙光? 长尾问题的终结者?

文摘   汽车   2024-08-19 09:31   德国  

自动驾驶系统在过去十年经历了从技术突破到资本热潮的快速发展,得益于传感器技术、人工智能和高性能计算的进步,吸引了谷歌、特斯拉等科技巨头和传统汽车制造商的大量投资。


然而,近年来,自动驾驶技术面临着复杂驾驶环境中的技术挑战、长尾问题,安全性尚未充分验证、法规和伦理问题滞后等困难,加之高昂的研发和部署成本、未明晰的盈利模式以及消费者对其接受度低,导致许多人对自动驾驶前景持怀疑态度,认为自动驾驶是一个伪命题,前景不明朗


自动驾驶技术自诞生以来,其技术也经历了显著的发展和演变,特别是在神经网络的进化和应用方面。这一演变可以大致分为几个阶段,从最初的基于规则的系统,逐步转向基于神经网络的复杂系统,从小规模、模块化的算法迈向基于大规模神经网络的整体解决方案。


直到今年,随着AI技术的兴起,端对端自动驾驶技术的出现给苦苦挣扎的自动驾驶领域的带来了新的希望。与传统自动驾驶系统依赖于多种独立模块(如感知、规划、控制等)不同,端对端技术通过单一的深度学习模型直接将传感器输入映射为驾驶动作。这种方法简化了系统架构,减少了各模块之间的复杂交互,显著提高了自动驾驶系统的效率和响应速度。


那么,问题来了,和现有的分布式技术路线,端到端优势在哪里,是否真的能够解决目前自动驾驶的真正的困境,给自动驾驶技术带来新的突破呢?


01


分治法的困境 


刚才我们聊到,传统自动驾驶系统采用分布式的架构或解决办法,通常将整个系统划分为以下几个独立的模块:

1. 感知
处理传感器数据,识别和理解环境中的物体和场景。
2. 定位和地图构建
确定车辆在环境中的位置,并构建和更新高精度地图。
3. 路径规划
基于感知和地图信息,规划安全和高效的行驶路径。
4. 决策和控制
根据路径规划结果,生成具体的车辆控制命令。


本质上来讲,分布式自动驾驶系统属于分治法(Divide and Conquer)解决方案,这个其实也是我们目前解决问题最常用的手段,原理是将复杂的问题分解为若干较小的子问题,分别解决这些子问题,然后将其结果合并以得到原问题的解。分治法的核心思想在于“分而治之”,通过递归的方式处理问题,直到每个子问题足够简单。


那么,分治法有哪些优势呢?


1. 模块化设计

分治法使得系统设计更加模块化,每个模块可以独立开发和测试,降低了系统的复杂性。

2. 可扩展性

模块化设计便于系统的扩展和升级,可以在不影响其他模块的情况下对某个模块进行改进和替换。

3. 鲁棒性和可靠性

通过将复杂问题分解为简单子问题,系统的鲁棒性和可靠性得到提高,因为每个模块都可以专注于特定功能,并进行优化和冗余设计。

4. 并行处理

多个模块可以并行处理不同的任务,提高了系统的整体性能和响应速度。


那么对于自动驾驶系统,分治法为什么就不行了呢?


基于分治法的分布式自动驾驶系统其实是我们面对复杂问题最基本的解决思路,通过将问题白盒化,简单化,分工协作,最终达成目的,这些年分治法的自动驾驶系统虽然也取得了很大的进步,实现了一定程度的高级别自动驾驶,在处理大部分的驾驶场景时表现都比较良好,但在面对大量罕见和复杂的边缘情况时,表现却不够可靠,这种方法也存在显著的局限性

1. 模块间通信和协调的复杂性

式系统依赖于各模块之间的高效通信和精确协调。每个模块需要实时共享大量数据,以确保整个系统的一致性。这种高频次的数据交换增加了系统的通信开销和延迟,并且容易产生同步问题,导致系统响应变慢或出现决策错误。

2. 信息丢失和数据一致性问题

在分治方法中,各模块处理的数据可能存在不同步和不一致的情况。例如,感知模块和规划模块在处理同一场景时,若数据传递过程中存在延迟或丢包,可能导致系统对当前环境的理解出现偏差,进而影响最终的驾驶决策。

3. 系统集成与兼容性挑战

由于各模块可能由不同团队使用不同技术和算法开发,系统集成时容易出现兼容性问题。各模块接口的标准化和数据格式的一致性难以保证,增加了集成难度和维护成本,限制了系统的可扩展性和灵活性。

4. 调试和优化的复杂性

分治法的模块化结构使得系统整体性能的调试和优化变得困难。单个模块的性能瓶颈或错误可能影响整个系统的表现,跨模块的协作调试需要大量时间和资源。系统的故障诊断和修复也变得复杂,影响了开发效率和系统的可靠性。

5. 全局视角的缺乏

分治方法倾向于将任务分解为独立的局部问题,每个模块只关注自身的任务,缺乏全局视角。这可能导致各模块的独立决策无法有效协调,无法处理复杂动态环境下的全局优化问题,降低系统的整体智能化水平和适应性。

6. 数据冗余与资源浪费

各模块独立处理传感器数据,可能导致数据冗余和计算资源的浪费。例如,感知模块和规划模块可能需要分别对同一传感器数据进行处理,增加了系统的计算负担和能源消耗,降低了系统的效率和实时性。

此外,面对自动驾驶长尾问题,分治法也面临极大的挑战,这部分内容我们在下面的章节细聊。


02


长尾问题的绝望 


目前实际上,现有的自动驾驶技术在处理大部分的驾驶场景时表现都比较良好,但在面对大量罕见和复杂的边缘情况时,表现可能不够可靠。这些罕见情况占所有可能驾驶场景的比例虽然很小(“长尾”部分,Long Tail Problem),但其种类繁多且不易预测,因此对自动驾驶系统的全面可靠性构成了重大挑战。

长尾问题的具体表现为: 

1. 罕见的道路情况

例如,遇到异常天气条件(如大雪、浓雾)、道路施工、落石或被水淹没的路段等。

2. 不规则的交通行为

例如,行人突然闯入道路、其他驾驶员的危险驾驶行为、动物突然横穿马路,驾驶参与者手势动作等。

3. 复杂的城市环境

例如,繁忙的交叉路口、非标准交通信号、特殊交通规则(如特定时间段的限行)等。

4. 意外事件

例如,交通事故现场、紧急车辆通行、路面上意外的障碍物等。


那么,长尾问题出现的本质原因是什么,解决的难度在哪里?


1. 数据稀缺

罕见场景的数据量有限,训练数据不足导致系统难以有效学习和应对这些情况。而收集罕见事件的数据不仅需要大量时间和成本,而且这些事件本身发生的频率低,进一步加大了数据获取的难度。


罕见事件的数据需要高质量的标注,而标注工作复杂且容易出错。同时,罕见事件数据的多样性和复杂性也增加了数据处理的难度。

2. 模型泛化

深度学习模型需要具有强大的泛化能力,能够处理未见过的情况,而这是一个巨大的技术挑战。


需要设计更复杂的模型和算法来应对罕见事件的多样性,但这会显著增加模型的训练难度和计算资源消耗。

3. 安全性要求

自动驾驶系统必须在各种场景下都能保证安全,但长尾场景的复杂性和多变性增加了系统设计的难度和系统风险。

4. 计算资源

处理长尾问题需要大量的计算资源,进行复杂的模拟和测试以覆盖尽可能多的罕见情况


那么长尾问题怎么解决呢?

1. 数据增强和合成

通过数据增强技术和仿真环境生成更多罕见事件的数据,以补充实际数据的不足。

2. 迁移学习和少样本学习

利用迁移学习和少样本学习技术,提高模型在小数据量下的泛化能力,从而更好地处理罕见事件。

3. 在线学习和持续学习

实现模型的在线学习和持续学习,使其能够在运行过程中不断吸收新数据和新知识,逐步提高对罕见事件的处理能力。这实际上要求模型本身具有自学习能力,对技术要求非常高,而且还会涉及模型无法对齐和校正问题,进而涉及到伦理道德问题

4. 多模型集成

通过集成多个模型的方法,例如,视觉语言大模型(VLM),甚至是真正的世界模型,提高系统的鲁棒性和泛化能力,降低单一模型在处理罕见事件时的失误率。


这种方式实际上目前已经有一些企业在进行尝试,例如,如下图所示,理想汽车今年提到的端到端快慢模型的结合,其中将视觉语言大模型(VLM)作为慢系统,在传统的端到端模型无法支持驾驶任务的时候进行介入和输入校正信息。


03


端到端的新希望

所以不管是自动驾驶长尾问题,还是分治法解决方法,都让高级别自动驾驶困难重重,算法工程师需要针对每个长尾问题,分而治之,非常耗时耗力,需要大量工程师维护,这对当今以快为上的汽车内卷时代,当然是绝对不允许的。


在这样的大背景下,端到端自动驾驶(End-to-End Autonomous Driving)顺势而生,旨在通过深度学习等人工智能技术,从传感器输入直接生成驾驶决策输出,简化传统自动驾驶系统的复杂性,通过一个统一的模型,将传感器输入(如摄像头、雷达和激光雷达数据)直接映射到驾驶控制命令(如转向、加速和制动),不需要显式的分层模块化设计。




当然端到端自动驾驶系统也存在不少挑战,例如:

1. 数据需求

训练高性能的端到端模型需要大量的高质量驾驶数据,涵盖各种驾驶场景和条件,这要远远比现有的模块化训练所需的数据要求更高。

在特斯拉2023年的一次财报会议上,马斯克表示,“我们训练了100万个视频片段(clips),勉强可以工作;200万个clips,稍好一些;300万个clips,就会感到惊喜;训练到1000万个clips,系统的表现就变得难以置信了”。特斯拉Autopilot回传数据的一个clip普遍被认为是1分钟的片段,那么入门级别的100万个视频clips大概就是16000小时。对于“端到端”系统所需要的数据质量,不同公司有不同的理解。

一般来说,高质量的数据需要具备以下特性:

  1. 完整的维度信息:数据应包含全面的环境和情境信息,以便系统能够在不同情况下做出准确判断。

  2. 广泛的分布多样性:训练数据应涵盖广泛的场景,如不同的天气条件、路况和交通情况。这种多样性确保了系统在各种实际驾驶环境中都能表现良好。


更重要的是,数据中的驾驶场景要达到“老司机”的驾驶水平。然而,许多驾驶员并不是“老司机”。因此,需要一套筛选机制,仅提取“老司机”所驾驶的车辆在特定场景下的高质量数据。这样的筛选机制可以通过以下方式实现:


  1. 驾驶行为分析:通过分析驾驶员的行为和反应,识别出那些表现出高水平驾驶技能的数据片段。

  2. 机器学习筛选:使用机器学习算法,从大量数据中自动筛选出高质量的驾驶场景,确保训练数据的优质和有效性。

  3. 人工审核:结合人工审核,对筛选出的数据进行进一步的验证,确保其符合高质量标准


所以获取并筛选出高质量训练数据也是需要大量的人力和物力,这绝对是一项不小的挑战!


2. 可解释性
端到端模型往往是高度复杂的深度神经网络,包含数百万甚至数亿参数。如此庞大的模型需要巨大的计算资源进行训练和推理。
模型的黑箱特性使其决策过程难以解释,导致在安全性和法规合规性方面面临挑战。尤其在事故发生时,无法追溯具体原因。
3. 泛化能力

模型需要在各种不同的驾驶环境和条件下表现良好,这要求其具有很强的泛化能力

4. 计算资源
训练和运行端到端自动驾驶模型需要大量的计算资源,特别是高性能GPU的支持


虽然,目前端到端的自动驾驶技术刚刚开始,依然存在很多的挑战,但它的出现至少让高级自动驾驶,甚至完全自动驾驶再次看到了一点新的希望!

这里需要特定指出的是,目前由于特斯拉V12推出端到端解决方案后,很多友商,企业也纷纷跟进,甚至标榜落地了端到端解决方案,而实质上,很多都是模块化的端到端,或者只是基于数据的驱动感知模块等等,这些都不能算真正的端到端。


那么,端到端就是未来吗?

坦白讲,这个问题很难回答,未来犹未可知,下面分享我个人的几个观点,以此共勉:

数据为王的时代

未来必定是数据为王的时代。谁拥有高质量的数据,谁就有绝对优势,数据已成为解决问题的主要手段,推动各行各业的创新和变革
对于自动驾驶而言,海量数据的收集、处理和分析是其核心驱动力。从感知环境到决策和控制,自动驾驶系统依赖于对大量实时数据的准确理解和处理。这些数据不仅包括视觉、雷达、激光雷达等传感器数据,还涵盖了地图数据、交通信息、车辆状态数据等。通过大数据分析和机器学习技术,自动驾驶系统能够不断优化其算法,提高驾驶的安全性和效率。

端到端技术的现状

目前,端到端技术虽然展现出巨大的潜力,但仍处于起始阶段,尚不够完善。现有的端到端自动驾驶系统在处理复杂驾驶场景和应对各种突发情况时,仍存在诸多挑战。实现从数据输入到驾驶决策的完全端到端处理,虽然简化了系统架构,但在可靠性和鲁棒性方面还需要进一步提升。端到端系统需要大量高质量的数据进行训练,同时还要解决数据偏差和模型泛化的问题,这在实际应用中仍有很大的改进空间。

寻找分治法和端到端方法的平衡点

我个人认为,端到端的出现并不意味着是要推翻之前分治法解决方案的积累,进行彻底的技术革新来的自动驾驶技术需要在分治法和端到端方法之间找到平衡点,融合两者的优势,克服各自的局限性,以实现更加高效、可靠和智能的自动驾驶系统。这可能包括以下几个方面:
  1. 分治法中的全局视角在分治方法中引入更多的全局视角和协同优化机制。通过共享中间特征和信息,确保各模块之间的协调与一致,从而提升系统的整体性能和稳定性。
  2. 融合架构开发更为先进的统一模型,将分治法的模块化设计与端到端的整体优化相结合。利用协同优化技术,将端到端方法的全局最优和分治法的局部优化结合起来,形成一个具有高度协同性和鲁棒性的混合系统。这样可以在复杂驾驶环境中提供更加灵活和可靠的解决方案。
  3. 渐进式过渡:在实现完全端到端系统之前,逐步过渡,先将某些关键任务(如感知和规划)集成到端到端框架中,通过不断迭代和优化,逐步实现全端到端的目标。
  4. 数据驱动优化:持续收集和分析驾驶数据,进行在线学习和自适应更新,确保系统能够不断适应和应对新的驾驶环境和挑战。

Transformer绝对不是终点

回顾深度学习算法的发展历程,可以看到AI人工智能领域经历了多次革命性的变化。从早期的专家系统,到决策树,再到支持向量机(SVM),每一步进展都推动了技术的进步。随后,深度学习尤其是卷积神经网络(CNN)的引入,显著提升了图像和视频处理的能力,并在自动驾驶等领域得到广泛应用,直到近些年Transformer的出现,端到端大模型正式出现
虽然Transformer展示了巨大的潜力,但科技的发展不会止步于此。在不久的未来,肯定会出现新的算法,进一步提升自动驾驶系统的性能和智能化水平。这是否意味着我们基于现有算法的模型需要重新训练呢?

  1. 模型重训的必要性:新算法通常带来新的结构和优化方法,这可能要求对现有模型进行重新训练,以充分利用新算法的优势。然而,完全重训并非总是必要的,有时可以通过迁移学习等技术,在新算法的基础上微调现有模型,减少训练成本。
  2. 兼容性和扩展性:未来的算法设计将更加注重兼容性和扩展性。新的算法可能会与现有算法结合,形成混合模型,逐步优化和替代现有部分,而无需完全推翻现有系统。
  3. 持续优化与在线学习自动驾驶系统将越来越多地采用在线学习和持续优化的方法。新算法的引入可以逐步替换和优化现有模型,而无需彻底重训。这种渐进式的过渡将减少对系统的冲击,确保自动驾驶技术的平稳发展。
端到端确实存在很多优势,但也面临诸多挑战和风险,我们还有很长的路要走!
写在最后:


AI系列,端到端自动驾驶相关的内容我们就聊完了,希望能够给朋友们对其带来更多理解。


最后,给朋友们推荐下我个人的汽车功能安全ISO26262书籍,需要的朋友们可以前往公众号主页,商品橱窗购买个人汽车功能安全书籍,保证不讲废话,只讲干货😉! 也有更多推荐书籍!



END





点赞【在看】= 原创的动力

                                 多谢点赞和【在看

AUTO世代
汽车功能安全ISO26262,预期功能安全SOTIF,软件开发,MBSE,敏捷开发等专业知识布道者,坚持原创,拒绝粗制滥造,助力汽车安全落地,欢迎关注!
 最新文章