arXiv论文“Tackling Real-World Autonomous Driving using Deep Reinforcement Learning“,上传于2022年7月5日,作者来自意大利的帕尔马大学Vislab和安霸公司(收购Vislab)。
在典型的自主驾驶流水线中,规控系统代表了两个最关键的组件,其中传感器检索的数据和感知算法处理的数据用于实现安全舒适的自动驾驶行为。特别是,规划模块预测自动驾驶汽车在执行正确的高级操作时应遵循的路径,同时控制系统执行一系列低级操作,控制转向、油门和制动。
这项工作提出一种无模型(model- free)深度强化学习(DRL)规划器,训练一个预测加速度和转向角的神经网络,从而获得一个用自主驾驶汽车的定位和感知算法输出的数据驾驶车辆的单个模块。特别是,经过充分模拟训练的系统能够在模拟和真实(帕尔马城区)无障碍环境中平稳安全地驾驶,证明了该系统具有良好的泛化能力,也可以在训练场景以外的环境驾驶。此外,为了将系统部署在真实的自动驾驶汽车上,并减少模拟性能和真实性能之间的差距,作者还开发一个由微型神经网络表示的模块,该模块能够在模拟训练期间复现真实环境的汽车动态行为。
在过去几十年中,从简单的、基于规则的方法到实现基于AI的智能系统,车辆自动化水平的提高取得了巨大进展。特别是,这些系统旨在解决基于规则的方法的主要局限性,即缺乏与其他道路使用者的协商和交互,以及对场景动态性理解较差。
强化学习(RL)广泛用于解决使用离散控制空间输出的任务,如围棋、Atari游戏或国际象棋以及连续控制空间的自主驾驶。特别是,RL算法广泛应用于自主驾驶领域,用于开发决策和机动执行系统,如主动变道、车道保持、超车机动、十字路口和环岛处理等。
本文采用D-A3C的延迟版本,属于所谓的Actor-Critics算法家族。特别由两个不同的实体组成:Actor和Critics。Actor的目的是选择智体必须执行的动作,而Critics 估计状态值函数,即智体特定状态的良好程度。换句话说,Actor是动作上的概率分布π(a | s;θπ)(其中θ是网络参数),critics是估计状态值函数v(st;θv)=E(Rt | st),其中R是期待的回报。
内部开发的高清地图实现了仿真模拟器;场景的示例如图a所示,是在真实自动驾驶汽车测试系统的部分地图区域,而图b显示智体感知的周围视图,对应于50×50米的区域,被分为四个通道:障碍物(图c),可驾驶空间(图d)、智体应遵循的路径(图e)和停止线(图f)。模拟器中高清地图允许检索有关外部环境的多个信息,如位置或车道数、道路限速等。
专注于实现平稳安全的驾驶风格,因此在静态场景中训练智体,不包括障碍物或其他道路使用者,学习遵循路线并遵守速度限制。
使用如图所示的神经网络对智体进行训练,每100毫秒预测一次转向角和加速度。分为两个子模块:第一个子模块能够定义转向角sa,第二个子模块用于定义加速度acc。这两个子模块的输入由4个通道(可驾驶空间、路径、障碍物和停止线)表示,对应于智体的周围视图。每个视觉输入通道包含4个84×84像素的图像,以便为智体提供过去状态的历史。与此视觉输入一起,网络接收5个标量参数,包括目标速度(道路速度限制)、智体的当前速度、当前速度-目标速度比,以及与转向角和加速度相关的最后动作。
为了保证探索(exploration),采用两个高斯分布对两个子模块输出进行采样,获得相对加速度(acc=N(μacc,σacc))和转向角(sa=N(μsa,σsa))。标准差σacc和σsa在训练阶段由神经网络进行预测和调制,估计模型的不确定性。此外,该网络使用两个不同的奖励函数R-acc-t和R-sa-t,分别与加速度和转向角相关,生成相应的状态值估计(vacc和vsa)。
神经网络在帕尔马城市的四个场景进行训练。对于每个场景,创建多个实例,智体在这些实例上相互独立。每个智体遵循运动学自行车模型,取值转向角为[-0.2,+0.2],加速度为[-2.0 m,+2.0 m]。在该片段开始时,每个智体以随机速度([0.0, 8.0])开始驾驶,并遵循其预定路径,并遵守道路速度限制。该城区的道路速度限制在4 ms到8.3 ms之间。
最后,由于训练场景中没有障碍物,因此片段可以在以下一种终端状态下结束:
- 达成目标:智体达到最终目标位置。
- 驾驶出道路:智体超出其预定路径,错误地预测转向角。
- 时间到了:完成片段的时间失效;这主要是由于加速度输出的谨慎预测,驾驶速度低于道路速度限制。
为了获得能够在模拟和真实环境中顺利驾驶汽车的策略,奖励成型对实现预期行为至关重要。特别是,定义两个不同的奖励函数来分别评估两个动作:R-acc-t和R-sa-t分别与加速度和转向角有关,定义如下:
其中
R-sa-t和R-acc-t在公式中都有一个元素,用于惩罚两个连续动作,其加速度和转向角的差值分别大于某个阈值δacc和δsa。特别是,两个连续加速度之间的差值计算如下:∆acc=| acc(t)− acc(t− 1) | ,而racc_indecision的定义如下:
相反,转向角的两个连续预测之间的差值计算为∆sa=| sa(t)− sa(t− 1)|, 而 rsa_indecision定义如下:
最后,R-acc-t和R-sa-t取决于智体实现的终端状态:
- 达成目标:代理达到目标位置,因此两个奖励的rterminal设置为+1.0;
- 驾驶出道路:智能体偏离其路径,主要是由于对转向角的预测不准确。因此,将负信号-1.0指定给Rsa,t,负信号0.0给R-acc-t;
- 时间到了:完成该片段的可用时间失效,这主要是由于智体的加速预测过于谨慎;因此,rterminal假设−1.0给R-acc-t,0.0给R-sa-t。
与模拟器相关的主要问题之一在于模拟数据和真实数据之间的差异,这是由于难以在模拟器内真实再现真实世界的情况造成的。为了克服这个问题,用一个合成模拟器以简化神经网络的输入,并减少模拟数据和真实数据之间的差距。事实上,作为神经网络输入的4个通道(障碍物、驾驶空间、路径和停止线)包含的信息可以通过感知和定位算法以及嵌入在真实自动驾驶汽车上的高清地图轻松再现。
此外,使用模拟器的另一个相关问题与模拟智体执行目标动作与自动驾驶汽车执行该命令的两个方式不同有关。实际上,在时间t计算的目标动作,理想情况下可以在模拟的同一精确时刻立即生效。不同的是,这不会发生在真实车辆上,因为真实情况是,此类目标动作将以某种动态执行,从而导致执行延迟(t+δ)。因此,有必要在仿真中引入此类响应时间,以便在真正的自动驾驶汽车上训练智体去处理此类延迟。
为此,为了实现更真实的行为,首先训练智体,将低通滤波器添加到智体必须执行的神经网络预测目标动作中。如图所示,蓝色曲线表示在模拟中采用目标动作(其示例的转向角)发生的理想和瞬时响应时间。然后,引入低通滤波器后,绿色曲线识别模拟的智体响应时间。相反,橙色曲线显示自动驾驶车辆在执行相同转向动作的行为。然而,可以从图中注意到,模拟车辆和真实车辆之间的响应时间差异仍然相关。
事实上,神经网络预先设定的加速度和转向角点不是可行的命令,并且没有考虑一些因素,例如系统的惯性、执行器的延迟和其他非理想因素。因此,为了尽可能真实地再现真实车辆的动力学,开发一个由3个全连接层(深度响应)组成的小型神经网络组成的模型。深度响应行为的曲线图如上图的红色虚线所示,可以注意到与代表真实自动驾驶汽车的橙色曲线非常相似。鉴于训练场景没有障碍物和交通车辆,所描述的问题对于转向角的活动更为明显,但同样的想法已应用于加速度输出。
用自动驾驶汽车上收集的数据集训练深度响应模型,其中输入对应于人类驾驶员给车辆的命令(加速器压力和方向盘转动),输出对应于车辆的油门、制动和弯曲,可以用GPS、里程计或其他技术测量。通过这种方式,将此类模型嵌入模拟器中,获得更具可扩展性的系统,从而再现自动驾驶汽车的行为。因此,深度响应模块对于转向角的校正至关重要,但即使以不太明显的方式,对于加速度也是必要的,并且随着障碍物的引入,这一点将清晰可见。
在真实数据上测试了两种不同的策略,以验证深度响应模型对系统的影响。随后,验证车辆正确地沿着路径行驶,并且遵守高清地图得到的速度限制。最后,证明通过模仿学习(Imitation Learning)对神经网络进行预训练可以显著缩短总训练时间。
策略如下:
- 策略1:不使用深度响应模型进行训练,但使用低通滤波器模拟真实车辆对目标动作的响应。
- 策略2:通过引入深度响应模型进行训练,确保更现实的动态。
在模拟中执行的测试对这两种策略都产生了良好的结果。事实上,无论是在训练过的场景,还是在没有训练的地图区域,智体都能够在100%的情况下以平稳安全的行为达到目标。
通过在真实场景中测试策略,得到了不同的结果。策略1无法处理车辆动力学,与模拟中的智体相比,其执行预测动作的方式不同;通过这种方式,策略1将观察到其预测结果的意外状态,导致自动驾驶汽车上的含噪和不舒适行为。
这种行为也会影响系统的可靠性,事实上,有时需要人工协助以避免自动驾驶汽车驶出道路。
相反,在对自动驾驶汽车进行的所有真实测试中,策略2从未要求人类接管,因为知道车辆动态以及系统将如何演变为预测动作。唯一需要人为干预的情况是避免其他道路使用者;然而,这些情况不被视为失败,因为策略1和策略2都是在无障碍场景中训练的。
为了更好地理解策略1和策略2之间的差异,如图是神经网络预测的转向角以及在真实世界测试的短时窗口内到中心车道的距离。可以注意到这两种策略行为是完全不同的,策略1(蓝色曲线)与策略2(红色曲线)相比是嘈杂和不安全的,这证明了深度响应模块对于在真正自动驾驶汽车上部署策略至关重要。
为了克服RL的限制,即需要数百万片段才能达到最优解,通过模仿学习(IL)进行了预训练。此外,即使IL的趋势是训练大型模型,也使用相同的小型神经网络(约100万个参数),因为想法是继续使用RL框架训练系统,以确保更具鲁棒性和泛化能力。这样,不会增加硬件资源的使用,考虑到未来可能的多智体训练,这一点至关重要。
IL训练阶段使用的数据集由模拟智体生成,这些智体遵循基于规则的方法运动。特别是,对于弯曲,用pure pursuit的跟踪算法,其中智体的目的是沿着特定的航路点移动。相反,用IDM模型来控制智体的纵向加速度。
为了创建数据集,基于规则的智体在四个训练场景上运动,每100毫秒保存一次标量参数和四个视觉输入。相反,输出由pure pursuit算法和IDM模型给出。
与输出相对应的两个横向和纵向控件仅表示元组(μacc,μsa)。因此,在IL训练阶段,不估计标准差(σacc,σsa)的值,也不估计值函数(vacc,vsa)。这些特征以及深度响应模块在IL+RL训练阶段学习。
如图所示,展示从预训练阶段(蓝色曲线,IL+RL)开始训练同一神经网络,并和四种情况下RL(红色曲线,纯RL)结果比较。即使IL+RL训练需要的次数比纯RL少,并且趋势也更稳定,但这两种方法都取得良好的成功率(如图a)。
此外,图b中所示的奖励曲线证明,使用纯RL方法获得的策略(红色曲线)甚至没有达到更多训练时间的可接受解,而IL+RL策略在几个片段内达到最优解(图b中的蓝色曲线)。这种情况下,最优解由橙色虚线表示。该基线表示,用在4个场景执行50000片段的模拟智体获得的平均奖励。模拟的智体遵循确定性规则,与收集IL预训练数据集的规则相同,即用pure pursuit规则做弯曲和IDM规则做纵向加速度。这两种方法之间的差距可能更明显,训练系统执行更复杂的机动,其中可能需要智体交互。