当前位置: 首页 > news >正文

综述 | 深度强化学习在自动驾驶中的应用

本文是2020年的综述论文《Deep Reinforcement Learning for Autonomous Driving: A Survey》的部分内容节选。翻译稿全文共2万6千字,本文略掉了第3、4节强化学习理论的介绍及扩展部分。

摘要

随着深度表征学习(deep representation learning)的发展,强化学习(RL)领域已经形成一个强大的学习框架,并且如今已经具备在高维环境中学习复杂策略的能力。本综述总结了深度强化学习(DRL)算法,并且对采用了(深度)强化学习方法的自动驾驶任务进行了分类,同时指出了自动驾驶智能体在现实世界的部署中遇到的关键计算性挑战。本文也描述了一些相关的领域,如行为克隆、模仿学习、反向强化学习。这些领域与强化学习相关,却不是经典的强化学习算法。本文还讨论了模拟器在训练智能体的过程中发挥的作用,以及如何验证、测试现有的强化学习解决方案。

1. 引言

自动驾驶系统包含多个感知级别任务。受益于深度学习架构,这些感知任务目前已经实现了高精度。除了感知,自动驾驶系统还涉及多个不再适用经典监督学习的任务。其中,第一种任务的情况是,对智能体动作的预测会改变从自动驾驶智能体操作的环境中接收而来的未来传感器观测值,例如,城市区域的最优行驶速度的任务。第二种任务的情况是,诸如碰撞时间(TTC)、相对于智能体最优轨迹的横向误差之类的监督信号用于表示智能体的动力学以及环境的不确定性。此类问题需要定义一个目标最大化的随机成本函数。其三种任务对应的情况下,智能体需要学习环境的新配置,同时需要在驾驶时预测每个时刻的最佳决策。此类问题对应一个给定了被观测的智能体和环境的特定配置的高维空间。从排列组合的角度考虑,配置的总数是巨大的。在所有这些情境中,我们的目标都是:在经典的强化学习的问题形式下,求解一个顺序决策过程,其中强化学习的智能体需要学习和表示其环境,同时在每个时刻做出最优动作[1]。我们将最优动作称作策略。

在这篇综述中,我们介绍了强化学习的概念和任务分类。对于这些任务,尤其是驾驶策略、预测感知、路径和运动规划以及低级别控制器设计,强化学习是很有希望的解决方案。我们还从我们的会议论文[2]出发,重点回顾了自动驾驶领域中强化学习的不同现实部署,因为此前还从未有学术综述讨论过它们的部署。最后,我们通过演示应用当前强化学习算法(例如模仿学习、深度Q学习等)时存在的关键计算性挑战和风险来激励用户。我们还从图2的论文发表趋势中注意到,强化学习或深度强化学习在自动驾驶领域的应用是一个新兴领域。这归功于强化学习/深度强化学习算法领域在近期的广泛应用,后者在实现和部署算法方面留下了诸多现实挑战。我们将在本文第六节指出这些问题。

本文的主要贡献总结如下:

(1)汽车领域的强化学习背景的独立概述,因为它并不广为人知。

(2)将强化学习应用于不同自动驾驶任务的详细文献综述。

(3)强化学习应用于现实世界自动驾驶的关键挑战和机遇的讨论。

本文的剩余篇幅如下:第2节概述了经典自动驾驶系统的组成部分;第3节介绍了强化学习,并简要讨论了其关键概念;第4节在基本的强化学习框架之上,讨论了更复杂的扩展;第5节概述了自动驾驶问题中强化学习的应用;第6节讨论了在现实世界自动驾驶系统中部署强化学习算法时存在的挑战;第7节总结全文,并做出一些结语评价。

2. 自动驾驶系统的组成部分

图1. 现代自动驾驶系统的流程,其中列出了各种任务的标准组成部分。这些模块解决的关键问题是场景理解、决策和规划。

图1描绘了自动驾驶系统的标准模块,并展示了从传感器流到控制驱动的流程。现代自动驾驶系统中的传感器架构主要包括多组相机,雷达,激光雷达(LIDARs),用于绝对位置定位的GPS-GNSS系统,以及提供车辆在空间中的三维姿态的惯性测量单元(IMUs)。

感知模块的目标是创建环境状态的中间级表示(例如所有障碍物和智能体的俯视图),用于下游的决策系统,以最终得到一个驾驶策略。环境状态需要包括车道位置、可行驶区域、智能体(如车辆和行人)的位置、交通信号灯状态等。感知中的不确定性将传播到信息链的其他部分。因此,鲁棒感知对于安全至关重要,故而使用冗余的感知源以提高检测的置信度。这是通过几个感知任务的组合实现的,例如语义分割[3][4]、运动估计[5]、深度估计[6]、污损检测[7]等。这些任务可以有效地被统一为一个多任务模型[8][9]。

2.1 场景理解

这个关键模块将从感知模块获得的感知状态的抽象中间级表示映射到高级动作或决策模块。从概念上讲,本模块囊括了三个任务:场景理解、决策和规划,如图1所示。本模块建立在检测或定位的算法任务之上,旨在提供对场景的更高层次的理解。随着场景内容变得更加抽象,本模块的目标是通过融合不同的传感器源能够更鲁棒地概括各种场景情况。这种信息融合为决策部分提供了一个通用和简化的背景条件。

融合提供了对环境的、来自传感器的不可知表示,同时对多个模态(如激光雷达、相机、雷达、超声波)的传感器噪声和检测不确定性进行了建模。这在根本上需要有原则地对不同任务的预测进行加权。

2.2 定位和建图

建图是自动驾驶的关键模块之一[10]。一旦一个区域被建图,我们就可以在构建的地图中定位车辆的当前位置。谷歌公司进行的首次可靠的自动驾驶演示主要依赖于对预先绘制的区域进行定位。由于问题的规模,传统建图技术通过语义对象检测来增强,以实现可靠的消歧。此外,局部的高清地图(HD maps)可以用作对象检测的先验。

2.3 规划和行驶策略

轨迹规划是自动驾驶系统中的另一个关键模块。给定高清地图或基于GPS地图的一个路线级别的规划,此模块需要生成运动级别的指令,以引导智能体的行驶。

经典的运动规划忽略了动力学和可微分约束,同时利用到了将智能体从起点位姿移动到目标位姿所需的平移和旋转[11]。一个能够控制6个自由度(DOF)运动的机器人智能体被称为是完整的(holonomic),而一个可控的自由度个数少于自身自由度个数的机器人智能体被称为是非完整的(non-holonomic)。经典的算法(例如基于Dijkstra算法的A*算法)在自动驾驶的非完整情况下无法被应用。快速探索随机树(RRT)[12]是一个非完整算法,其通过随机采样和生成无碰撞路径的方法来探索构形空间(configuration space / C-space)。目前,RRT的各种变体被应用于自动驾驶的运动规划模块。

2.4 控制

控制器定义了从预先选定的地图(如谷歌地图)中获得的路径上的每个点所需的速度、转向角和制动动作,或是每个路径点/航点(waypoint)上具有相同数值的专家驾驶记录。相比之下,轨迹跟踪涉及车辆动力学的时间模型,用于按照时间顺序依次查看路径点。

目前的车辆控制方法遵照经典最优控制理论,可以被描述为求解一个最小化成本函数的问题,后者定义在一组系统状态和控制动作上。控制输入往往被定义在一个有限区间内,并限制在一个可行的状态空间中[14],比如方向盘最大转角等。速度控制基于经典的闭环控制方法,例如PID(比例-积分-微分)控制器和MPC(模型预测控制)。PID算法的目标是最小化一个由三项组成的成本函数,即具有比例项的当前误差、具有积分项的过去误差、以及具有导数项的未来误差。而MPC算法的目标是,在跟踪指定路径的同时,稳定车辆的行为[15]。本综述为感兴趣的读者提供了关于控制器、运动规划和基于学习的方法的综述[16]。最优控制和强化学习密切相关,其中最优控制可以被视为基于模型的强化学习问题,其中车辆/环境的动力学被建模为一个被良好定义的微分方程。强化学习方法用于处理随机控制问题以及具有未知回报和状态转移概率的不适定(ill-posed)问题。自主车辆随机控制是一个大领域,我们建议读者阅读[17]的作者在对该领域的综述。

图2. 三个关键词的相关文献发表趋势:(1)强化学习,(2)深度强化,(3)强化学习和自动驾驶汽车/自动驾驶车辆/自动驾驶。

3. 强化学习(略)

4. 强化学习的拓展(略)

5. 自动驾驶任务中的强化学习

可以应用强化学习的自动驾驶任务包括:控制器优化;路径规划和轨迹优化;运动规划和动态路径规划;复杂导航任务的高级驾驶策略开发;面向高速公路、交叉口、合流道和分流道的基于场景的策略学习;利用来自专家数据的反向强化学习的奖励学习(以便对行人、车辆等交通参与者进行意图预测);确保安全并执行风险评估的策略学习。在讨论深度强化学习在自动驾驶任务中的应用之前,我们将简要回顾自动驾驶情景中的状态空间、动作空间和奖励方案。

5.1 状态空间、动作空间和奖励

为了将深度强化学习成功应用于自动驾驶任务,设计适当的状态空间、动作空间和奖励函数是非常重要的。Leurent等人[75]对自动驾驶研究中使用的不同状态表示和动作表示进行了全面综述。自动驾驶车辆常用的状态空间特征包括:自主车辆/自我车辆(ego-vehicle)的位置、航向和速度,以及自主车辆传感器视野范围内的其他障碍物。为了避免状态空间的维度的变化,经常使用自主车辆周围的笛卡尔或极坐标占位栅格(occupancy grid),并进一步通过车道信息来增强,包括车道编号(自我车道(ego-lane)或其他车道)、路径曲率、自主车辆的过去和未来轨迹、纵向信息(例如碰撞时间(TTC))以及场景信息(例如交通规则和信号位置)。

原始传感器数据(如相机图像、激光雷达、雷达等)的使用提供了更精细的上下文信息,而使用压缩的抽象数据降低了状态空间的复杂性。在这两者之间,中间层表示(例如二维俯视图/鸟瞰图(BEV))是传感器不可知的,但仍然接近场景的空间组织。图4是一个自顶向下的视图,显示了占位栅格、历史轨迹和投影轨迹以及场景的语义信息(例如交通灯的位置)。这种中间级格式保留了道路的空间布局,而基于图的表示则无法保留。一些模拟器提供了这种视图,如Carla或Flow(参考表格2)。

图4. 驾驶场景的俯视/鸟瞰图(BEV)的二维表示。左图展示了一个占位栅格,右图展示了语义信息(红绿灯)与历史轨迹(红色)和投影轨迹(绿色)的组合。在两幅图片中,自主汽车都用绿色矩形表示。

车辆策略必须要控制多个不同的执行器。用于车辆控制的、具有连续值的执行器包括转向角、油门和刹车。其他执行器(如档位变化)的数值是离散的。为了降低复杂度并允许仅适用于离散动作空间的深度强化学习算法(例如DQN)在自动驾驶场景中的应用,可以通过将连续执行器(例如转向角、油门和制动器)的取值范围划分为若干个等大小分箱(equal-sized bins),来均匀地离散化动作空间(参考第6-C节)。由于在实践中选择的许多转向角都接近中心[76],因此也有建议在对数空间中进行离散化。然而,离散化确实存在缺点:如果动作之间的步长太大,离散化将导致忽动忽停或不稳定的轨迹。此外,为执行器的离散化选择分箱的个数时,也需要做出权衡:足够的离散步数可以带来更平滑的控制,但是过多的离散步数将使得动作的选择变得难以评估。作为离散化的替代方案,执行器的连续值也能由直接学习策略的深度强化学习算法处理(例如DDPG)。时间抽象选项框架[77]也可以用于简化选择动作的过程,这里智能体选择的是选项(options)而不是低级动作。每个选项分别表示一个子策略,后者可以在经历多个时间步长后扩展为一个基本动作(primitive action)。

为用于自动驾驶的深度强化学习智能体设计奖励函数仍然是一个悬而未决的问题。自动驾驶任务的标准示例包括:向目的地行驶的距离[78]、自主车辆的速度[78-80]、保持自主车辆的静止[81]、与其他道路使用者或场景对象的碰撞[78][79]、人行道上的违规行为[78]、保持车道、保持舒适性和稳定性,同时避免急剧的加速、制动或转向[80][81],并遵守交通规则[79]。

5.2 运动规划和轨迹优化

运动规划的任务是确保目标点和终点之间存在路径。这对于在通常使用语义信息增强的先验地图上规划车辆轨迹来说是必要的。动态环境和变化的车辆动力学中的路径规划是自动驾驶中的一个关键问题,例如在交叉路口协商通行权[87],又例如并入高速公路。最近的工作[89]包含了各种交通参与者在不同的交互驾驶场景中观察到的真实世界运动。另一项最近的工作[90]使用真实尺寸的自动驾驶汽车演示了深度强化学习(DDPG)在自动驾驶中的应用。在这项工作中,系统首先经过了模拟训练,然后使用车载计算机进行了实时训练,最终能够学会沿着车道行驶,并成功在250米的路段上完成了真实的试验。基于模型的深度强化学习算法也已经被用于直接从原始像素输入中学习模型和策略[91][92]。在[93]中,DNN已被用于在数百个时间步长的模拟环境中生成预测。强化学习也适用于控制。在[94]中,将经典的最优控制方法(如LQR/iLQR等)与强化学习方法进行了比较。经典的强化学习方法用于在随机设置中执行最优控制,例如在线性状态中使用线性二次调节器(LQR),而在非线性状态中使用迭代LQR(iLQR)。一项最新研究[95]表明,对参数进行随机搜索的策略网络的性能与LQR相同。

5.3 模拟器和场景生成工具

自动驾驶数据集利用包含各种模式的图像-标签对的训练集,解决了监督学习的设置问题。强化学习需要一个环境,在该环境中,我们可以重新构建状态-动作对,同时对车辆状态和环境的动力学、以及环境和智能体在运动和动作中的随机性分别进行建模。各种模拟器被广泛地应用于训练和验证强化学习算法。表格 2 总结了能够模拟摄像机、激光雷达和雷达的各种高保真度感知模拟器。一些模拟器还能够提供车辆的状态和动力学。读者可以参考[105],其中完整地综述了自动驾驶社区中使用的传感器和模拟器。学习到的驾驶策略首先在模拟环境中进行压力测试,随后在现实世界中进行成本昂贵的评估。在[106]中,提出了多保真度强化学习(MFRL)框架,适用于多种模拟器。其中使用一系列保真度不断提高的模拟器来表示状态动力学(并进而可以表示计算成本),从而实现强化学习算法的训练和验证,同时使用一辆远程遥控的汽车,从而可以使用较少数量的来自真实世界的昂贵样本,来为真实世界的场景找到接近于最优的策略。CARLA挑战赛(CARLA Challenge)[107]是一项基于Carla模拟器的自动驾驶竞赛,它提供了美国国家公路交通安全管理局报告[108]中描述的预碰撞场景。这些系统在关键场景中进行评估,例如:自主车辆失去控制、自主车辆对看不见的障碍物做出反应、变道以躲避行驶缓慢的前方车辆等。智能体的分数根据在不同环道中行驶的总距离进行评估,如果发生违规现象,则从总分中进行扣除。

5.4 自动驾驶应用中的示范学习和反向强化学习

早期的工作研究了用于车辆驾驶的行为克隆(BC),参考[109][110]。其中展示了示范学习(LfD)智能体,后者试图模仿专家的行为。行为克隆通常被实现为一种监督学习,因此很难适应新的看不见的情况。在[111][112]中,提出了一种自动驾驶汽车领域的架构,其中端到端地训练一个CNN,用于将单个前置相机的原始像素直接映射为转向命令。通过使用来自人类或专家的相对较小的训练集,该系统学会在有或没有车道标记的局部路段和高速公路上驾驶车辆。该网络学习能成功检测道路的图像表示,而无需显式地训练。在[113]中提出使用最大熵反向强化学习,以通过人类驾驶员的专家演示来学习用于实现舒适驾驶的轨迹优化。在[114]中使用DQN作为反向强化学习中的提炼步骤来推导奖励,以学习类似人类的驾驶变道行为。

表格1. 利用(深度)强化学习来学习策略或行为的自动驾驶任务

6. 现实世界的挑战和未来展望

在本节中,我们介绍并讨论在现实世界自动驾驶中进行强化学习所存在的挑战,以及解决这些挑战的相关研究方法。

6.1 验证RL系统

Henderson等人[115]描述了验证强化学习方法所存在的挑战。这些方法侧重于连续控制算法(例如PPO、DDPG和TRPO)的策略梯度方法以及基准线的再现。他们用真实的例子证明,算法的实现通常具有不同的代码基础和不同的超参数值,而通过无原则的方法来估计前个展开轨迹可能会导致对强化学习算法性能的不一致解释,并会进一步影响对算法的泛化能力的解读。作者得出的结论是,评估可以在定义良好的通用设置上进行,也可以在真实世界的任务上进行。在[116]中,作者提出了在高保真照片逼真模拟器中自动生成具有挑战性的罕见驾驶场景的方法。通过参数化道路上的行人和其他车辆的行为,可以自动发现这些对抗式场景。此外,研究表明,通过将这些场景添加到模仿学习的训练数据中,算法的安全性获得了提升。

6.2 弥合模拟与现实之间的差距

从模拟到现实世界的转移学习是一个活跃的领域,因为模拟是具有完美注释的大型廉价数据源。在[117]中,作者通过在特征级别和像素级别上执行从模拟到现实的域自适应,训练机械臂来抓取现实世界的物体。基于视觉的抓取系统实现了可观的性能,并且相比传统方法,使用的真实世界样本数量减少了倍。在[118]中,作者对训练期间的模拟器的动力学进行了随机化,由此产生的策略能够泛化到不同的动力学模型,而不需要在真实系统上进行再训练。在自动驾驶领域,[119]的作者使用驾驶环境的从模拟到真实的翻译图像来训练一个A3C智能体,随后在真实世界的驾驶数据集上评估训练后的策略。

在[120]中,作者解决了在模拟环境中执行模仿学习所存在的问题,这种模仿学习可以很好地转移到来自真实世界的图像上。他们通过在模拟和真实世界图像之间进行无监督的域转换来实现这一点,这使得智能体能够仅使用来自模拟域的基本事实,来学习真实世界域中的转向预测。作者指出,模拟训练集中的图像与未标记的真实世界图像集合之间不存在成对的对应关系。类似地,在[121]中,作者通过域的自适应,将真实世界图像映射到模拟图像。与“从模拟到真实”(sim-to-real)的方法不同,他们通过将真实相机流与合成模态相适应,从而将真实图像中不熟悉或不可见的特征映射回模拟环境和状态,来应对在真实场景中部署智能体的过程中所存在的现实差距。智能体已经在模拟中学习了策略。

表格2. 高级驾驶辅助系统(ADAS)和自动驾驶中强化学习应用的模拟器

6.3 样本效率

动物通常能仅通过几次试验就学会新的任务,这得益于它们对环境的先验知识。然而,强化学习的关键挑战之一是样本效率:其学习过程需要数量过多的样本才能学习到合理的策略。当获取有价值的经验变得昂贵、甚至充满风险时,这一问题就更加值得关注。在机器人控制和自动驾驶领域,由于经典的问题设置中总是存在延迟奖励和稀疏奖励,并且在大状态空间中的观测服从不平衡的分布,因此样本效率是一个困难的问题。

奖励设计(Reward Shaping)通过设计更频繁的奖励函数来鼓励智能体从更少的样本中更快地学习,从而使智能体能够学习中间级的目标。在[122]中,作者设计了第二个“创伤”重放记忆,该记忆只包含碰撞情况,以便在每个训练步长时汇集积极和消极的经验。

模仿学习助力的强化学习(IL bootstrapped RL):一种可以更多提升样本效率的思路是,智能体首先从专家提供的展开演示中进行模仿学习,来离线地学习一个初始策略,然后再应用强化学习、同时与环境交互,以获得更多的自我提升。

参与者-评价者与经验回放结合(Actor Critic with Experience Replay,ACER)[123]是一种样本高效的策略梯度算法。它利用了重放缓冲区,使其能够利用每一段采样的经验以及信任域策略优化方法来执行多次梯度的更新。

迁移学习(Transfer Learning)是提高样本效率的另一种方法,它允许重用源任务中先前训练的策略,以初始化目标任务的学习。在[124]中提出了策略组合,它建议组合先前学习到的基础策略,以便能够将这些策略重新用于新任务,从而更快地学习新策略。在[125]中,对强化学习中的迁移学习进行了综述。多保真强化学习(MFRL)框架[106]表明,可以迁移启发式方法,以指导在高保真模拟器中的探索,并使用更少的真实世界样本,来为真实世界找到接近最优的策略。在[126]中,作者将学习到的、用于处理模拟交叉口情景的策略迁移到了DQN智能体之间的真实世界示例。

元学习(Meta-learning)算法使得智能体能够快速地从少量经验中适应新任务并学习到新技能。这受益于它们对世界的先验知识。在[127]中,作者通过在相关任务的训练集上训练递归神经网络(RNN)来实现这个目标,其中网络的输入包括选择的动作以及在前一个时间步中接受的奖励。相应地,智能体被训练用以学习如何动态地利用问题的结构,以及如何通过调整其隐藏状态来解决新的问题。在[128]中,提出了一种用于设计强化学习算法的相似方法。该方法并非设计一个“快速”的强化学习算法,而是表示为一个RNN,并从数据中学习。在[129]中,提出了模型不可知元学习(MAML)。其思路是,元学习器试图找到神经网络参数的一种初始化,以便仅使用少量示例即可快速适应新任务。爬行动物(Reptile)[130]算法含有一个相似的模型。在[131]中,作者提出了简单的基于梯度的元学习算法。

有效的状态表示(Efficient State Representations):在[132]中提出的世界模型使用变分自编码器(VAEs)来学习一个对环境的压缩的空间和时间表示,并进一步地,直接从压缩的状态表示中得到一个紧凑而简单的策略。

6.4 模仿学习的探索问题

在模仿学习中,智能体使用专家提供的轨迹。然而,专家遇到的状态分布通常不可能包括被训练的智能体在测试期间可能遇到的所有状态。此外,模仿学习假设动作是独立同分布的(i.i.d.)。一种解决方案是使用数据聚合(DAgger)方法[133],该方法采取通过端到端方式学习到的策略,并由专家再次标记提取的观测-动作对,随后将后者聚合到原始的专家观测-动作数据集。因此,从参考和经过训练的策略中反复收集训练示例可以使智能体探索到更有价值的状态,并解决这种探索不足的问题。在“基于搜索的结构化预测”(SEARN)[133]的工作之后,学者提出了随机混合迭代学习(SMILE),后者在多次迭代中训练一个随机平稳策略,然后使用所有被训练的策略的几何随机混合。在标准的模仿学习场景中,演示者需要覆盖足够的状态,以避免在测试过程中出现不可见的状态。这种要求导致了昂贵的成本,并且需要频繁的人为干预。最近,Chauffeurnet [134]证明了模仿学习的局限性:即使拥有三千万个状态-动作对的样本,也不足以使智能体学习到一个能将俯视图像(即状态)映射到控制(即动作)的最优策略。因此,文章的作者建议使用模拟示例,后者引入了扰动以及更多样性的场景,例如碰撞场景和/或偏离道路的场景。在这项工作中,“特征网络(featurenet)”包括一个RNN智能体,后者在每次迭代时输出路径点、智能体的位置和航向。在[135]中,作者确定了模仿学习的极限,并使用输入原始图像上的自主车辆以及相邻车辆的二维和三维位置,对DNN进行端到端的训练,以同时预测自主车辆的动作以及相邻车辆的轨迹。

6.5 内在(intrinsic)奖励函数

在受控的模拟环境(如游戏)中,显式的奖励信号连同其传感器流一起提供给智能体。然而,在现实世界的机器人和自动驾驶的场景中,设计一个好的奖励函数是至关重要的,这样才能学习到期望的行为。最常见的解决方案是奖励设计[136],包括向智能体提供额外的精心设计的奖励,以鼓励朝最优策略的方向进行优化。正如本文前面指出的,奖励可以通过反向强化学习(IRL)[137]来估计,这取决于专家演示。在不存在显式的奖励设计和专家演示的情况下,智能体可以使用内在奖励或内在动机[138]来评估他们的动作是否良好。在[139]中,作者将好奇心(curiosity)定义为智能体在视觉特征空间中预测其自身动作后果的能力存在的误差,这些动作通过自监督的逆动力学模型来学习。在[140]中,智能体从其经验中学习下一个状态的预测模型,并使用预测的误差作为内在奖励。这使智能体即使没有外在奖励时也能确定哪种行为可能是有用的。

6.6 将安全纳入深度强化学习

训练后直接在真实环境中部署自动驾驶汽车可能会很危险。本节将介绍将安全性纳入深度强化学习算法的不同方法。对于基于模仿学习的系统,安全性Dagger(Safe Dagger)[141]引入了一种安全策略,该策略学习预测主策略所产生的错误,其中主策略最初使用监督学习的方法训练而不查询参考策略。一个额外的安全策略将对状态的部分观测和主策略作为两个输入,并返回一个二进制标签,后者指示在不查询参考策略的情况下,主策略是否可能偏离参考策略。在[142]中,作者提出了一种自动驾驶的多智能体强化学习中的安全性的解决方案。该方案留意其他驾驶员或行人的意外行为,同时注意避免生成过于防御性的策略,使二者保持平衡,从而实现正常的交通流。在保留了硬约束以确保驾驶的安全性的同时,该问题被分解为两个愿望的策略组合,即实现舒适驾驶和完成轨迹规划。在[143]中,作者结合了用于控制的深度强化学习算法,如DDPG和基于安全的控制,包括广泛用于机器人路径规划的人工势场方法。在TORCS环境中,首先应用DDPG,以在稳定和熟悉的环境中学习一种驾驶策略,然后将策略网络和基于安全的控制相结合以避免碰撞。结果发现,深度强化学习和基于安全的控制的结合在绝大多数场景中表现优异。为了使深度强化学习能够逃离局部最优,同时加快训练过程并避免危险的情况或事故,在[144]中提出了面向生存的强化学习(SORL)模型,其中通过将自动驾驶问题建模为带约束的MDP并引入从先前的失败中进行学习的负回避函数(Negative-Avoidance Function),来实现“生存优于最大化总回报”的问题设定。结果发现,SORL模型对奖励函数并不敏感,且可以使用不同的强化学习算法,例如DDPG。此外,感兴趣的读者可以参考[145]中关于安全强化学习的全面综述。

6.7 多智能体强化学习(MARL)

自动驾驶根本上是一项多智能体任务:除了由智能体控制的自主车辆,在模拟和现实世界的自动驾驶环境中还会存在许多其他参与者,例如行人、骑自行车的人和其他车辆。因此,继续开发明确的多智能体方法来学习驾驶自主车辆是未来的一个重要研究方向。早前的一些方法已经使用多智能体强化学习的观点来解决自动驾驶问题,例如[142]和[146-149]。

多智能体强化学习技术可能发挥积极作用的一个重要领域是自动驾驶车辆组之间的高层决策和协调,例如在高速公路场景中超车[149]的场景,或在没有信号控制的情况下通过十字路口的场景。多智能体强化学习方法可能发挥作用的另一个领域是开发对抗性智能体,用于在部署前测试自动驾驶策略[148],即在模拟环境中控制其他车辆的智能体。后者通过不规则或违反道路规则的行为来学习如何暴露自动驾驶策略的在行为上的弱点。最后,如前所述,多智能体强化学习方法可能在制定自动驾驶安全策略的方面发挥重要作用[142]。

表格3. 用于最先进强化学习/深度强化学习算法和评估的开源框架和包

7. 结论

在现实世界的自动驾驶应用中,强化学习仍然是一个活跃的新兴领域。尽管已经出现了一些成功的商业应用,但是可用的文献或大型公共数据集仍然很少。因此,我们有必要使自动驾驶中的强化学习应用有固定体系并将其有效地组织起来。自动驾驶场景涉及智能体的交互,因此需要适用于强化学习的协商和动态决策方案。然而,要获得我们详细讨论的成熟解决方案,还需要解决许多挑战。在这项工作中,我们提出了详细的理论化的强化学习,以及关于将强化学习应用于自动驾驶任务的全面文献综述。

在第6节中,我们讨论了存在的挑战、未来的研究方向和机遇。它们包括:基于强化学习的系统性能的验证、模拟和现实之间的差距、样本效率、良好的奖励函数的设计、将安全性纳入面向自主智能体的强化学习决策系统。

强化学习的结果通常很难复现,并且它们对超参数的选择非常敏感,然而发表的论文中通常没有详细报告如何选择超参数。研究人员和从业者都需要有一个可靠的起点,以便复现、记录并测试知名的强化学习算法。表格 3 中涵盖了这些框架。

针对自动驾驶问题的显式多智能体强化学习方法的开发也是未来的一个重要挑战,但是迄今为止尚未获得大量关注。多智能体强化学习技术有可能使自动驾驶车辆组之间的协调和高级决策更容易,并为测试和验证自动驾驶政策的安全性提供新的机会。

此外,强化学习算法的实现对于研究人员和从业者来说是一项具有挑战性的任务。这项工作提供了众所周知的、活跃的开源强化学习框架的示例。这些框架提供了有充分文档记录的复现,从而使我们有机会使用、评估和扩展不同的强化学习算法。最后,我们希望这篇综述能够鼓励进一步的研究和应用。

表格4. 强化学习(RL)相关的首字母缩略词

8. 参考文献

详见paper原文,paper链接:Deep Reinforcement Learning for Autonomous Driving。

相关文章:

  • wordpress音乐网/做免费推广的平台
  • 陕西外贸英文网站建设/建设网站的网站首页
  • 做程序教程网站赚钱吗/百度站长工具排名
  • 做网站需要多大空间/全球搜索引擎排名2021
  • 可以用服务器做网站/宁波网站制作优化服务公司
  • 网络设计的约束要素是什么/网站推广和优化系统
  • win10搜索大文件
  • iOS-OC实现定时器
  • diff算法-h函数-虚拟dom
  • 【运维心得】正确的校正mysql-slave及mysqldump
  • Python 协程学习有点难度?这篇文字值得你去收藏
  • 锂离子电池热失控预警资料整理(三)
  • make_blobs函数
  • 51单片机——点亮LED
  • Quartz认知篇 - 初识分布式任务调度Quartz
  • 论文解读 - 城市自动驾驶车辆运动规划与控制技术综述 (第2部分)
  • Puppeteer之Pyppeteer——定位页面元素的正确方法(3)
  • 简述团队模式和团队的开发模式