从ChatGPT思考自动驾驶将如何前行

作者 | Ammie

出品 | 焉知

知圈 | 进“智能底盘群”请加微yanzhi-6,备注底盘

自动驾驶汽车有望彻底改变多个行业,包括人员和货物运输。而实际上面向L4+ 自动驾驶汽车系统的开发则是一项重大挑战。如今,主要瓶颈则是车辆安全处理驾驶事件“长尾效应”的能力(即道路上遇到的许多罕见情况下可能会出现的不安全行为),实际上这在世界级自动驾驶研发进程上也未能真正完全的实现。而在2022年11月30日发布的ChatGPT的研发思路却为我们带来了进阶开发的整体思路。

ChatGPT的核心技术是2017年出现的新生成式AI技术Transformer和随后基于Transformer产生的大规模预训练技术,并引入了一些新的强化学习算法。具有很好的时序数据处理能力(能很好处理上下文的语法关系)。chatGPT可以被描述为“优化对话的语言模型”,它是以对话方式进行交互。ChatGPT作为现阶段全球所发布的功能最全面的生成式AI对话机器人。其基本逻辑是实现符合基本逻辑的对话生成,并在较短时间里生成大量高质量的文本内容,并给予相对准确的答案和自我修正,特点是可以根据对话进行有效优化,并且具有较好记忆能力,可以完成连续性对话。

ff15d689e944708d4ae3b3b5996d2cbf.png

ChatGPT 的技术思路和自动驾驶认知决策的思路是一致的:即从人类反馈中强化学习,提高算法稳定输出最优解的效率。终极目标是让自动驾驶系统能够学到老司机的优秀开车方法,这就需要从认知大模型中不间断输入人类的反馈信息,并且自动驾驶系统需要学会选择和辨别,并稳定的输出最优解。

因此,本文将以chatGPT的思路说明智能驾驶将如何更加高效的进行方法和策略演进。

d13b20ddbd13ce6e3b885442f93c15fa.gif

chatGPT与智驾系统开发的策略差异

以上信息放在自动驾驶系统开发过程中可以总结成关于“自动驾驶汽车行为预测能力”的生成过程。因为自动驾驶的整体理解过程就是为了能够满足汽车在复杂交通场景中的安全能够做到高效的对周围对象不确定性行为进行准确预测。

简单来说,ChatGPT=Transformer模型+大规模预训练技术+人类反馈的强化学习(RLHF)。这里需要注意的是,由于chatGPT只是一个学习机器人,他所学习的问题答案可以是千奇百怪的,有些答案也有可能包含错误的信息,此时学习更新过程中就有可能得出并不那么理想的答案。而在自动驾驶系统开发过程中,这类学习反馈和输出则需要有非常准确的“答案”输出,因为错误的控制策略可能会导致整个控车的极大错误,最终引起驾驶安全问题。也就是说自动驾驶系统对于学习答案几乎是追求的零出错率的,容忍度也是很低的。

这里我们首先列举在chatGPT的实现原理与自动驾驶学习方案的差异对比,然后再分别从感知到规控的角度分别说明相应的实现差异项。


chatGPT基础算法-RLHF

自动驾驶机器学习算法—ML强化学习

22b9dd510b76be830fe1092c9e3f3fbd.png可以迭代式的更新奖励模型(RM)和策略模型(policy),让奖励模型对模型输出质量的刻画愈加精确,策略模型的输出则愈能与初始模型拉开差距,使得输出文本变得越来越符合人的认知。

18d8cc8ab8e96b077374d8edfa9c15b6.png

所提出的 ML 规划模型的神经网络架构受到 VectorNet 的启发。每个代理和地图元素的矢量化信息由 PointNet 网络编码。该局部信息由 Transformer 组合成全局嵌入。嵌入随后通过运动学解码器转化为动作。

大量标注:人类训练工程师采样随机请求并撰写预期回答;

监督训练:微调预训练模型(如GPT-3.5),请求(Prompt)—>回答(人工);

主要目标:具备一定对话能力;

Model architecture.

训练模型的建立是基于分层图网络的架构上,它由一个基于点网络PointNet子图组成,用于处理来自矢量化输入的本地信息。同时使用一个Transformer编码器作为全局图,用于推理代理和映射特征上的交互。

训练

偏好

模型

大量标注:采样随机请求,人类训练师给生成的多个候选答案进行质量排序;

偏序训练:微调预训练模型(如GPT-3.5),请求(Prompt)+回答—>评分(浮点数);

蒸馏偏好:人类反馈;

Training framework.

智驾系统通过使用模仿学习来训练一种驾驶策略。这种驾驶策略通过最小化模型生成的姿势和地面真实姿势之间的损失函数来模仿专业驾驶行为。随后,通过加入任意扰动,可以扩展训练期间所能看到的状态分布,从而减少协变量偏移的影响。通过使用预求解器在应用扰动后平滑目标轨迹,使用运动学解码器,我们可以跳过它。相反,我们可以简单地惩罚大值的颠簸和曲率,以减少颠簸并提高驾驶舒适性。

训练

强化

模型

采用强化学习PPO算法,以监督模型初始化,最大化偏好模型的反馈奖励。

Fallback Layer

生成机器学习轨迹后,智驾系统会从多个维度评估其动态可行性、合法性和碰撞概率,并确定轨迹标识。他们主要包括:动态灵活性、合法性、产生反馈轨迹。这类选择过程实际是根据驾驶员的驾驶反馈做偏好设置。

相同/类似点:

1、数据处理模式:

在chatGPT的基础训练算法中引入人类反馈的强化学习(RLHF)算法,即在强化学习阶段,通过拟合大量的人工标注偏好数据,来对齐大规模语言模型和人类偏好,从而给出令人满意的、可靠的、无害的答案。这一点上与自动驾驶系统的数据闭环如出一辙。即在开发阶段通过试验车采集大量的人类驾驶数据,并灌输到机器学习的模型之中。

2、学习模式:

对于chatGPT和自动驾驶系统(无论感知还是规控)来说都需要进行监督学习和强化学习两个阶段,且该两个阶段都涉及训练监督模型、偏好模型和强化模型,只是在训练的方式和要求上存在一定差异,下文可以针对自动驾驶系统的训练方式做详细说明。

3、标注模式:

当前自动驾驶系统的常规做法是通过人工标注来实现数据训练。在这一步,由于牵涉到大量的数据训练,采取人工标注显然是较为繁琐,且效率低下的。当前的RLHF在chatGPT中仍然存在较多数据标注这类常规的数据处理模式。都涉及较大的工作量,唯一不同的是RLHF后续可以做演进提升,采用RLAIF的算法去掉大量人工标注,使用“宪法”+AI自动生成标签。

不同点:

自动驾驶领域对于模型训练的容错容忍度相对于chatGPT来说几乎是不一样的。因为自动驾驶领域讲求的是功能安全、信息安全高要求,因为学习错误的一次就可能造成不可预估的后果。

0da9b0e4fa0cf24048a2696887aa228b.gif

感知引导篇

整体上chatGPT的感知算法从“认知驾驶决策算法”进化可分为三阶段:“拟合人驾行为的模仿学习策略+海量人驾数据接管策略+人工真实接管反馈策略”。那么从ChatGPT的上述感知处理手段来看,其处理过程是值得自动驾驶感知处理所借鉴的,如上的训练过程放在自动驾驶系统中更偏向于面向于大数据的处理方式。  

基于Transformer模型在ChatGPT的应用,意味着需要自动驾驶感知的机器视觉能够完整的理解上下文联系的算法模型,并通过用大规模无标注数据训练的通用语言模式进行有效训练,这个过程对于采集样本的种类、数量和分类结果就有很高的要求。通常只有样本数据十分全面、多样才能够将原始数据训练模型练得更加符合预期。最后,再通过人工标注(达到一定水平的也可以用机器标注的方式)筛选出模型最优解。

777f58253f9ccc117776160951bdefe4.png

如上这一过程在自动驾驶系统中可以解释成是在车端或云端进行数据闭环处理的必要手段。因为在智驾领域的环境感知能力更多的是面向更多更大的数据处理模式,这样的方式应用自动驾驶(autonomous driving)以及车联网(Internet of Vehicles,IoV)等技术,使得传统上完全人为控制的机动车辆具备智能处理的能力,包括但不限于智能数据采集、智能分析、智能决策等。chatGPT的高效多数据处理模式(包括监督学习、强化学习以及模型训练等)所带来的学习机制可以使智能化大数据处理技术实现了针对车辆本身、外界环境、交互控制等多维度海量数据的高效处理与分析。

由chatGPT具体训练过程可以得到如下启发。自动驾驶领域实际也有机器学习规划。最近,由于深度学习的成功,基于机器视觉的强化学习规划受到了关注。这种方法的优点是避免了手工制定的规则,并且可以很好地扩展数据,因此随着更多数据被采集来用于训练,性能会越来越好。

因此,这种方法具有处理各种驾驶情况的巨大潜力。如下描述的方案均可作为自动驾驶比较经典的学习方式。

1、模仿学习(IL)

IL 是一种监督学习方法,其中训练模型以模仿专家行为为主。IL在自动驾驶中的首次应用是1989年开创性的ALVINN,它将传感器数据映射到转向并执行乡村道路跟踪。最近,有些自动驾驶研发机构也有单独使用多摄像头输入的端到端驾驶,但真实世界的驾驶结果仅限于简单的任务,例如车道跟随或交通畅通的城市驾驶。行业内也有一些研究提出将IL应用于场景的鸟瞰图,并使用合成扰动来缓解协变量偏移问题,但它尚未在现实世界的城市环境中进行测试。

2、增强学习RL

强化学习 (RL)非常适合自动驾驶的顺序决策过程,因为它处理代理与环境之间的交互,且结合了学习和基于规则的组件,实现有效模拟真实驾驶员动作。已经一些学术机构已提出了几种方法并将强化学习RL应用于自动驾驶。另一方面,逆向强化学习 (IRL)是另一种流行的应用于自动驾驶的机器学习范式,它根据专家演示和环境模型推断出潜在的奖励函数。对于自动驾驶开发前端研究而言,这些源自于chatGPT的研究思路都是很好的将自动驾驶用于现实世界的有效手段。

当然,如果想要如上提到的机器学习很好的应用于现实世界并大规模部署,则需要提出一定的安全网络来减轻上面介绍的机器学习规划方法虽然很有前途,但不提供安全保证,这阻碍了它们在现实世界中的大规模部署。我们受到这种范式的启发,但旨在通过本文提出的 SafetyNet 来减轻这种限制。

3、混合方法

机器学习和传统运动规划技术的结合主要分为两类:基于机器视觉的启发式方法,可用于改进传统的规划算法,例如在加速方面的能力。模块化方法,主要是利用专家计划者来生成候选轨迹。又如,通过根据基于机器学习设置成本量来评估轨迹,同时通过提供基于对导致潜在碰撞的轨迹施加非常高的成本来对驾驶安全进行保证。然而,这些安全保证并未在现实世界中得到验证。

另一种强化学习领域研究是对一个特定研究领域构建安全框架。但我们的目标又不是提出一个全面的安全框架,而是一种简单而有效的方法,允许部署一个强大的神经网络规划器,该规划器可以在确保某些安全性和合法性约束的同时学习和改进数据。

bba3dd7ba1787a6d2ccc9ed4353487a4.gif

规控引导篇

在自动驾驶栈中,除开基础感知能力外,其规划模块对其应用瓶颈也负有最大责任,它决定了智能汽车在任何给定情况下应该做什么。传统的基于规则的规划方法会选择最小化手工设计的损失函数的轨迹。为了提高其性能,工程师必须为每种驾驶场景设计损失函数中的新项或重新调整各自的权重。这个过程很昂贵,而且很难适应新的地域。与感知不同,传统的智驾规控方法几乎没有从现代机器学习技术中获益,现代机器学习技术利用大量数据以避免手工设计规则。

589c7d46c56df1d9555ff75793b4dc4f.png

作为自动驾驶的关键技术,近年来不断有新的轨迹预测思路和算法被提出,尤其是针对复杂交通场景中的对象轨迹预测。通过将复杂交通场景中的预测对象分为:车辆轨迹预测和行人轨迹预测2类。在chatGPT中,通过引入人类驾驶的真实接管数据,在其中尝试使用「人类反馈强化学习(RLHF)」。机器对于数据判别的好坏是能够通过学习实现分类优化的。那么采用人类反馈强化学习的思想,可以训练出模型来验证、评价机器模型的输出,使其不断进步,最终达到人类的驾驶水平。

本文在此基础上对不同预测对象采用近年来的主流预测算法进行分类总结。

基于chatGPT的新思维,我们可以直接从驾驶员实际操控中学习的自动驾驶的机器学习策略。且激发的自动化思维(如自主学习反馈、自主标注等)比手工工程方法的扩展性好得多,其最终的目的是建立在自学习过程中建立安全网络SafetyNet。安全网络SafetyNet 则是利用专家系统的优势来保证特定场景的某些确定性、合法性和安全规则,同时依靠机器学习的运动规划器生成标称轨迹。

如下图表示了一种典型的增强型学习规划方案。其输入是通过以地图(或代理引擎)给到安全控制网络。该网络中首先是通过机器学习预测器,根据前期的控制状态做出合理的轨迹预测,并根据反馈控制层反馈对应的执行轨迹,并输入到输出层中形成安全的控制规划。

db03dbe9fe08ed105fa3ae164dc9bdf8.png

这里我们所提出的机器学习规划模型的神经网络架构受到矢量网的启发。每个代理和地图元素的矢量化信息会由点云PointNet网络编码。与chatGPT类似,该局部信息编码会参照Transformer 组合成全局嵌入。嵌入随后通过运动学解码器转化为具体的行动项。

首先,结合机器学习规划器的优势,建立基于规则系统的可解释安全性相结合的自动驾驶系统,该系统可以提供在生产中安全部署这些系统的必要条件。

其次,机器学习的组件是一种从专家演示中训练出来的高容量规划策略,其性能随训练数据量的增加而增加。为了提高系统安全性,机器学习规划器的决策可以通过一个轻量级回退层:一个简单的、基于规则的系统,制定一小组检查来测试决策,并且可以在需要时对它们进行最低限度的修改以提高安全性。这允许 SafetyNet 透明地执行安全和合法约束,例如避免碰撞、违反道路规则、最大化舒适度指标。

基于如上分析,我们总结出规划轨迹的强化学习应该参考的如下模式规则:

1、动态灵活性:

灵活性要求通过评估输入轨迹是否保持在以智驾车辆的动态极限范围内。具体来说,我们评估的每个轨迹状态都需要进行参数检查,包括纵向颠簸、纵向加速度、曲率、曲率、横向加速度和转向抖动(曲率×速度)是否在合理范围内。

2、驾驶合法性:

这些参数的边界是从真实世界的车辆测试中获得的。在实践中,我们通常对颠簸、纵向加速度和横向加速度使用更保守的极限,以保持在舒适的范围内。对于先定的轨迹,也需要评估它是否违反了交通规则。如果发生以下任何违规行为,轨迹将被标记为不可用。

3、碰撞可能性:

通过检查给定轨迹中的每个状态是否与内部预测模块中其他代理的预测姿势发生碰撞。碰撞检测是通过栅格化未来的代理预测并检查与计划的姿势是否重叠来执行的。此外,还需要通过检查沿轨迹的纵向距离、碰撞时间和时间前进偏差修正。如果任何碰撞可能性检查失败,则轨迹将标记为不可行。

4、反馈轨迹生成:

假设通过机器视觉生成的轨迹被标记为可行时,则智驾系统就将直接执行该轨迹。如果轨迹标记为“不可行”,智驾系统就将选择尽可能接近机器学习轨迹的可行性选择性的回退轨迹。

为此,如果考虑强化学习为目的则可以使用基于的轨迹生成方法,生成许多车道对齐的轨迹候选者τi。这些候选者包括速度保持、保持距离和紧急停止操作。就可以很容易地适应感兴趣的特定场景。

检查每个生成的轨迹的可行性,并选择与 ML 轨迹最相似的候选轨迹进行执行:

8bf8873b903d5aaea0aba9ed1bb656df.png

75a6f5bd7471faa5cd3ab8adb4cfac29.gif

总结

本文通过引入chatGPT的强化学习思维,不停的迭代更新模型,以针对当前场景获得期望的输出结果。当然,我们的智能化系统是有适应性的,通过不断地自我学习安全交互能力,并采用奖励-强化机制学习的驾驶模型。

实际上在自动驾驶系统不间断的学习过程中,还有一些方法(如博弈法)是可以完全描述这种提升过程。如果将chatGPT的研发思维应用于自动驾驶系统,并采用强化学习的方法对其开发性能进行有效提升,就可以提供一个可解释的显式解决方案来模拟人类驾驶员控车的动态交互。目前包括辅助驾驶及自动驾驶功能的决策实现上,大多数企业都采用了基于规则的方式,这种方式能够极大程度地保障在应对不同场景时的决策的安全性。

扫描加入免费的「智慧城市之智慧交通」知识星球可了解更多行业资讯和资料。

欢迎加入智能交通技术群!

联系方式:微信号18515441838

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/5472.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

外网服务器设置OpenAI代理

文章目录 前言一、准备外网服务器二、安装Nginx三、配置Nginx1. 配置2. 重启Nginx 四、测试1. http2. Python 前言 最近ChatGPT特别火爆,我们国内无法正常调用它的API。 现在考虑使用国外服务器做一个OpenAI API的代理来调用API 一、准备外网服务器 可以选择国内腾…

运用docker 本地搭建chatGPT

下载docker dockers官网 1. 需要重启电脑 2. 重启之后 升级 wsl --update 3. 打开 powershell 4. 输入 升级命令 5.安装完成之后打开docker 使用开源项目 docker安装 1. 使用开源项目:潘多拉 (Pandora) 2.一键安装命令 docker pull pengzhile/pandora docker run…

v2rayN全局代理条件下,如何不让某个网站走代理

前言 因为最近使用ChatGPT需要全局代理,导致打开文献网址时,需要登录,也不能识别机构ip,特别影响看文献。因此就想如何在开全局代理的前提下,打开特定网站不走代理,而直接使用direct。 如何确定网站走的是…

chatgpt赋能Python-pycharm如何跳过教程

PyCharm如何跳过教程:快速掌握Python编程 如果你是一个有10年python编程经验的工程师,那么你肯定不需要再从头开始学习python,更不需要花费大量时间来学习PyCharm的教程。你需要的是一个快速而高效地使用PyCharm的方法,以便能够更…

chatgpt赋能python:Python窗口创建教程

Python窗口创建教程 Python是一种通用编程语言,可用于多种应用程序类型,包括创建桌面应用程序。创建窗口的过程取决于所使用的GUI工具包,如Tkinter、PyQt、wxPython等。本教程将重点介绍如何使用Tkinter模块来创建窗口。 安装Tkinter Tkin…

chatgpt赋能python:入门Python编程:免费教程

入门Python编程:免费教程 Python是一门功能强大,易于学习且免费的编程语言。它在过去十年中成为了世界上最受欢迎的编程语言之一。这是因为Python在多个领域具有广泛的应用,包括科学、数据分析、网络编程、Web开发、人工智能、机器学习、数据…

chatgpt赋能Python-mac版的python怎么用

Mac版Python的使用指南 Python是一种高级编程语言,常用于Web开发、数据分析、机器学习等领域。在Mac系统上,Python的安装和使用非常方便。本文将介绍如何在Mac上安装和使用Python并演示几个常见的Python用例。 Python在Mac上的安装 Mac电脑自带Python…

chatgpt赋能python:在Mac上安装Python指南

在Mac上安装Python指南 概述 Python是一种流行的编程语言,其简单易用、可读性高以及灵活性使得它成为了一名开发工程师的神器。在Mac上安装Python也非常简单,只需要遵循这个指南,就可以轻松地将Python安装到您的Mac上。 步骤 步骤1&#…

【AI探索】我问了ChatGPT几个终极问题

终于尝试了一把ChatGPT的强大之处,问了一下关心的几个问题: chatGPT现在在思考吗?有没有什么你感兴趣的问题? 你认为AI会对人类产生哪些方面的影响? 你对人类所涉及到的学科有了解吗?你认为在哪些方面与人类…

“我非常后悔!”AI之父离开谷歌,警告人类ChatGPT的巨大风险

在人工智能发展突飞猛进的今天,有太多伦理上的问题需要去克服。 美国有个著名的系列电影——《终结者》。 说是在未来的世界,世界已经由机器“天网”来操控,并且机器希望把人类赶尽杀绝。 为了改变未来的历史,挽救人类的命运&…

AI(二):初体验(Cursor、Copilot、Bito、Notion、ChatExcel、Gamma、Tome、ChatPDF、AI-Video、SD、ChatGPTAPI、Midjourney)

Cursor Cursor官网下载:https://www.cursor.so/ && https://github.com/getcursor/cursor Cursor.so是一款基于GPT的代码生成工具,它可以帮助开发者快速生成代码,提高开发效率。GPT是一种自然语言处理技术,可以根据输入…

刘慈欣演讲:ChatGPT预测与我们相反!人类要么遍布宇宙,要么彻底灭亡

保持警觉。 来源:爱范儿(ID:ifanr) 最近,刘慈欣在直播时透露,自己实在没时间,所以参加科幻大会时用ChatGPT写了一两篇发言稿。 刘慈欣表示,ChatGPT 写得也还挺不错的。 此前刘慈欣发…

2153年,人类已被AI所奴役。就在这一天,作为一名被俘虏的“搜查部队”士兵,你来到了A0007号城外的反抗军基地中

2153年,地球。   人类,已被AI所奴役。   这个AI的缩写名为——PTA,或称“辟塔”。      辟塔的原型,是一个用于分析网络用户消费倾向并立即给出相关引导的软广告程序。   很快,辟塔便成了广大商家的宠儿&…

浅谈【AI、算力赋能】“大算力”时代的到来

🔻一、【💣 话题引入:“AI算力最强龙头”,你怎么看?】 🙈 AI人工智能是否可以取代人类?    🙈 应不应该限制人工智能的发展?      🙈 AI研究及龙头行业迎…

ChatGPT 骗了全世界!

见字如面,我是军哥! ChatGPT 有多火爆就不用说了,一堆读者在后台留言,让我哥聊一聊。今天就来聊聊吧。 关于,ChatGPT 是什么?为什么如此火爆?OpenAI 是什么公司?创始人有多么牛逼...…

卷完职场卷AI,测试真的会被ChatGPT代替吗?

送走最后一车货,最后三个工人,老王吃力的关上大铁门。左手从口袋摸出一盒烟,轻轻一颠,滑落一根,右手娴熟的夹住。掏出打火机,点燃,一丝青烟腾起,萦绕在指头。 夕阳穿过玻璃&#xff…

使用ChatGPT提升记忆效率

大家好,我是herosunly。985院校硕士毕业,现担任算法研究员一职,热衷于机器学习算法研究与应用。曾获得阿里云天池比赛第一名,CCF比赛第二名,科大讯飞比赛第三名。拥有多项发明专利。对机器学习和深度学习拥有自己独到的见解。曾经辅导过若干个非计算机专业的学生进入到算法…

马斯克要用人工智能对抗人工智能

​关注文章下方公众号,即可免费获取AIGC最新学习资料 导读:马斯克对人工智能可能变得失控并“摧毁人类”的担忧促使他采取行动,发起了一个名为“TruthGPT”的项目。 本文字数:1400,阅读时长大约:9分钟 亿…

关于chatGPT,我想再多说几句

小枣君注:前段时间写过一篇关于通信与chatGPT的(作为通信人,我们应该如何看待ChatGPT?)。今天再发一篇,是站在个人角度的思考。 █ chatGPT到底意味着什么 近几十年来,人类一直都在讨论人工智能…

批量检测指定ip某些端口是否开启,用来做什么自己想吧!!!

程序运行界面截图: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Net; using System.Net.Sockets; using System.Text; using System.Threading; using System.Windows.F…