End-to-End Model-Free Reinforcement Learning for Urban Driving using Implicit Affordances
郑重声明:原文参见标题,如有侵权,请联系作者,将会撤销发布!
CVPR 2020
参考链接:[2020CVPR]使用隐性潜在动作的城市驾驶的端到端无模型强化学习 - 知乎 (zhihu.com)
Abstract
强化学习(Reinforcement Learning, RL)的目的是从自身的实验中学习一个最优的行为策略,而不是基于规则的控制方法。然而,目前还没有一种RL算法能够处理像城市驾驶这样困难的任务。我们提出了一种新的技术,即隐性启示(implicit affordances),以有效地利用RL来处理城市驾驶,从而包括车道保持、行人和车辆避让以及交通灯检测。据我们所知,我们是第一个提出成功的RL智能体处理如此复杂的任务,尤其是在交通灯检测方面。此外,我们已经通过赢得CARLA挑战赛的“仅用照相机”赛道来证明我们方法的有效性。
1. Introduction
城市驾驶可能是自主汽车最难解决的情况之一,尤其在与十字路口与交通灯,行人过马路,以及汽车在不同的可能车道上行驶的互动问题上。解决这个任务仍然是一个开放性的问题,用经典的基于规则(rules-based)的方法来处理如此困难和高度可变的情况显得很复杂。这也是为什么自动驾驶领域[20, 4, 5]的相当一部分技术状况集中在端到端(end-to-end)系统上,即从数据中学习驾驶策略,而不依赖手工制定的规则。
模仿学习(Imitation Learning, IL)[27]的目的是通过学习模仿人类驾驶员在相同情况下应用的控制方式,重现专家(自动驾驶的人类驾驶员)的行为,这充分利用了人工驾驶标注的大量数据,大多数汽车制造商和供应商都可以相对容易地获得这些数据。另一方面,由于人类驾驶员总是处于近乎完美的情况下,IL算法存在分布不匹配(distribution mismatch)的问题,即算法永远不会遇到失败的情况,因此在这些情况下不会做出适当的反应,而确实存在用这种失败案例来扩大数据库的技术,但目前主要限于车道保持(lane keeping)和横向控制(lateral control)[1, 32]。
深度强化学习(Deep Reinforcement Learning, DRL)则让算法通过在智能体(agent)采取的每一个动作(action)时提供一个奖励(reward)信号来进行自我学习,因此不会受到分布不匹配的影响。这个奖励可以是稀疏的,并不能准确描述智能体应该做什么,而只是描述所采取的行动在局部的好坏。智能体的最终目标是使累积的奖励总和最大化,因此智能体需要考虑的是执行动作的顺序,而不是即时的动作。DRL的主要缺点之一是,它可能需要比监督学习(supervised learning)更多的数据量才能收敛,这可能导致在训练具有许多参数的大型网络时遇到困难。此外,许多RL算法依赖于回放缓存(replay buffer)[21, 24, 12],允许从过去的实验中学习,但这种缓存可能会限制使用的输入大小(例如图像的大小)。这就是为什么DRL中的神经网络和图像大小与监督学习中使用的神经网络和图像大小相比通常很小的原因。因此,它们的表达能力可能不足以解决城市驾驶等复杂任务。因此,目前的自动驾驶DRL方法被应用于较简单的情况下,例如,在赛车游戏中,只有转向控制以保持车道或尽可能快的速度行驶。DRL的另一个缺点是,算法看起来像一个黑箱,很难理解决策是如何做出的(也存在于IL)。
解决数据效率(尤其是DRL)和黑盒问题的一个很有希望的方法是使用特权信息作为辅助损失,而最近的一些论文中也提出了启示(affordance)[2, 29]。其思想是训练网络以预测高级信息,如语义分割图、车道中心距离、红绿灯状态等。然后,可以通过多种方式使用此预测,或者如Sauer等人[29]中经典控制器的用法,作为辅助损失来帮助发现主要模拟任务损失的更好特征(如Mehta等人[22]所述),或者作为基于模型的RL方法(如Pan等人[26]最近的工作),同时也提供了一些关于如何做出决策的可解释反馈。
在这项工作中,我们将介绍我们的RL方法,用于从视觉到端到端城市驾驶的情况,包括车道保持(lane keeping),交通灯检测(traffic light detection),行人和车辆避让(pedestrian and vehicle avoidance)以及处理有来车的交叉路口(handling intersection with incoming traffic)。为了实现这一目标,我们引入了一种新的技术,我们称之为隐性启示(implicit affordances)。其想法是将训练分为两个阶段:首先训练编码器主干(Resnet-18 [11]),以预测交通灯状态或车道中心距离等启示。然后,该编码器的输出特征被用作RL状态,而不是原始图像。因此,RL信号仅用于训练网络的最后一部分。此外,这些特征直接用于回放缓存,而不是原始图像,这相当于节省了大约20倍的所需内存。
将我们的主要贡献总结如下:
- 首个在城市环境中从视觉方向实现驾驶的RL智能体,包括路口管理和交通灯检测。
- 引入一种新的技术,称为隐性启示,允许训练基于回放存储(replay memory)的RL,其网络和输入大小比以前RL工作中使用的大多数网络大得多。
- 广泛的参数和隐性启示的消融性分析(ablation studies)以及奖励设计(reward shaping)。
- 通过在CARLA自动驾驶挑战赛中赢得 "仅限摄像头 "赛道,展示我们的能力或方法。
2. Related Work
2.1. End-to-End Autonomous Driving with RL
由于RL依赖试错,出于安全和数据效率的考虑,大部分应用于自主汽车的RL工作都是在仿真中进行的。其中使用最多的模拟器是TORCS [34],因为它是一个开源且简单易用的赛车游戏。研究者们用它来测试他们的新的actor-critic算法,以控制一辆汽车的离散动作(Mnih等[23])和连续动作(Lillicrap等[21])。但由于TORCS是一款赛车游戏,这些作品的目标是尽可能快地到达赛道的终点,因此并没有处理路口也没有处理红绿灯。
最近,许多论文使用新的CARLA模拟器[7]作为一个开源的城市模拟,包括行人、交叉路口和交通灯。在最初的CARLA论文[7]中,研究人员发布了一个驾驶基准(一个模仿学习和一个RL基线)。RL基线是使用离散动作的A3C算法[23],其结果远远落后于模仿基线。Lang等人[20]使用RL(连续动作的DDPG [21])来微调智能体。但他们主要依靠模仿学习,并没有明确解释RL微调带来的改进有多少。此外,他们也没有处理交通灯的问题。
最后,在真车中应用的RL方法还是很少。第一个是Learning to Drive in a Day [18],在该方法中,智能体直接在真实的汽车上进行转向训练。最近的一项工作[25]也是将RL集成化用于真实的汽车上,并比较了在CARLA中学习的知识在真实世界中转移的不同方式。即使他们的研究真的很有趣,但他们的结果是初步的,而且也是很难的。只应用在少数特定的实际场景中。这两项工作都只能处理转向角以保持车道,并且在城市环境中使用RL的汽车同时实现油门和转向控制之前,还有很长的路要走。
2.2. Auxiliary Tasks and Learning Affordances
UNREAL智能体[15]是研究辅助任务对DRL影响的第一篇文章之一。他们表明,增加损失(如预测即将到来的奖励)可以提高Atari游戏和迷宫探索的数据效率和最终性能。
Chen等人[2]介绍了用于自动驾驶的启示预测:训练一个神经网络来预测高层次的信息,如与车道的右、中、左部分的距离或与前车的距离。然后,他们将这些启示作为基于规则的控制器的输入,在赛车模拟器TORCS上达到了良好的性能。Sauer等人在其Conditionnal Affordance Learning [29]论文中对此进行了改进,以处理更多的城市驾驶等复杂场景。为了达到这个目的,他们还预测了城市驾驶的特定信息,如最大允许速度和进站交通灯状态。如Chen等人,他们最终在基于规则的控制器中使用了这些信息,并在CARLA基准[7]测试中展示了城市驾驶的性能。这两项工作都没有包含任何RL,而是依赖于基于规则的控制器。紧接着,Mehta等人[22]将启示作为辅助任务使用到他们的模仿学习智能体中,并表明可以提高数据效率和最终的性能。但他们不处理交通灯,并且仅依靠模仿。
最后,最近有两篇真正与我们密切相关的文章。第一篇是由Gordon等人[10]提出的SplitNet,他们在SplitNet上明确分解了从感知任务中寻找特征的学习方案,并使用了这些特征作为其无模型RL智能体的输入。但他们的方案应用于完全不同的任务,机器人导航(robot navigation)和场景探索(scene exploration)。第二篇是Pan等人[26]训练了一个网络,从观察和动作的序列中预测高级信息,如碰撞的概率或在不久的将来处于非公路的状态。他们在基于模型的RL方案中使用这个网络,通过评估不同的轨迹,最终应用生成的轨迹给出最低的成本。然而,他们使用的是基于模型的方法,并没有处理交通灯信号。

3. The CARLA Challenge
CARLA挑战[28]是一项基于CARLA模拟器的自动驾驶公开竞赛。这场比赛专门针对城市驾驶问题。其目标是驾驶从传感器到控制的不可见地图,确保车道保持,使用高级别导航命令(右、左、直行)处理十字路口,处理车道变化、行人和其他车辆避让,最后同时处理美国和欧盟的红绿灯(欧洲和美国的红绿灯位置不同,见图1)。这比最初的CARLA基准[7]更具挑战性。CARLA挑战赛由4个不同的赛道组成,唯一不同的是可用的传感器,从相机到全栈感知。我们将只处理“仅摄像头”跟踪,事实上,我们甚至只使用了一个前置摄像头来完成所有工作。
4. Method
在本节中,我们描述了我们的一般方法(RL设置、构造奖励和网络结构)。在下一节中,我们将描述为了使这种方法在自动驾驶环境中可用,需要进行哪些调整。
4.1. RL Setup: Rainbow-IQN Ape-X
无模型RL主要有两个系列:基于价值(value-based)的方法和基于策略(policy-based)的方法。我们选择使用基于价值的RL,因为它是目前Atari上最先进的方法,而且众所周知,它比基于策略的方法更有效率。然而,它的缺点是只能处理离散动作。在城市驾驶中比较基于价值的RL和基于策略的RL(或actor-critic RL,它是一种两者的结合)超出了本文的范围,但对未来的工作肯定是有趣的。我们从我们先前工作[31]中采用的Rainbow-IQN Ape-X [12, 6, 13](最初为Atari)的开源实现开始。我们从Rainbow中删除了对偶网络(dueling network),因为我们发现它在使用更多参数的情况下也能达到同样的性能。Rainbow-IQN的分布式版本对我们的使用是强制性的:CARLA对于RL来说太慢了,如果只使用一个实例,就无法产生足够的数据。此外,这使得我们可以同时在CARLA的多张地图上进行训练,在训练数据中产生更多的差异性,更好的探索,并提供了一种简单的方法来处理美国和欧盟的交通灯(训练中使用的一些城镇是美国的,而其他城镇是欧盟的)。

4.2. Reward Shaping
训练中使用的奖励主要依靠最新版本CARLA(CARLA 0.9.X)中的waypoints(航点)API。该API允许获取当前城镇中所有车道的连续航点位置和方向。这对于决定智能体必须遵循的路径是非常重要的。此外,该API还提供了每个十字路口的不同可能性。在一个回合(episode)的开始,智能体会在城市的随机航点上进行初始化,然后通过航点API可以计算出智能体应该遵循的最佳轨迹。当到达一个十字路口时,我们随机选择一个可能的操作方式(左转、直行、右转),并给智能体相应的顺序。奖励主要取决于三个部分:期望的速度、期望的位置和期望的旋转。
当智能体处于期望速度时,期望速度奖励最大(且等于1),如果智能体速度较低或较高,则期望速度奖励线性下降到0。图2上所示的期望速度是适应情况的:当智能体到达红绿灯附近时,期望速度线性地降到0(智能体离红绿灯最近),当红绿灯变成绿色时,又回到最大允许速度。当到达障碍物、行人、自行车或车辆后面时,也采用同样的原理。在所有其他情况下,所需速度被设置为一个恒定的最高速度(这里是40km/h)。
奖励的第二部分,即期望位置,与距离车道中间的距离成反比(我们使用上面提到的航点计算这个距离)。当智能体正好在车道中间时,这个奖励最大等于0,当达到与车道的最大距离Dmax时,这个奖励就会变为-1。当智能体比Dmax更远时,该回合终止。对于我们所有的实验,Dmax被设置为2米:这是从车道中间到边界的距离。其他的终止条件是与任何东西相撞,闯红灯和无缘无故被卡住(即没有在障碍物后面,也没有停在红色交通灯前)。对于所有这些终止条件,智能体获得的奖励为-1。
在只有前面两个奖励成分的情况下,我们观察到训练后的智能体并没有直行,因为靠近车道中心的摆动与直行的奖励几乎是一样的。这就是为什么我们加入了第三个奖励成分,期望的旋转。这个奖励与智能体和距离最佳轨迹最近的航点的方向之间的角度差异成反比(详见图3)。关于奖励设定的消融性研究可以在6.3节找到。

4.3. Network Architecture
与监督学习中常用的网络[30, 11]相比,无模型RL中使用的大多数网络以图像作为输入,训练的网络特别小[7, 12]。用于Atari的无模型RL的一个较大的网络是IMPALA [8]的大型架构,它包括15层卷积层和160万个参数。相比之下,我们的架构有18个卷积层和30M个参数。此外,IMPALA使用了超过1B帧,而我们只使用了20M。最常见的架构(例如[23, 6])是最初的DQN论文[24]中介绍的架构,以84×84的灰度图像作为输入。我们的第一个观察是,在这么小的图像上无法看到交通灯状态(尤其是美国交通灯较远)。因此,我们选择了一个更大的输入尺寸(大约40倍):4×288×288×3,通过连续4帧的拼接,作为一种简单而标准的方式[24, 7],在输入中增加一些时序。我们选择这个大小,因为这是我们测试过的最小的一个尺寸,在这个尺寸上我们对交通灯检测的准确率还是很高的(使用传统的监督训练)。我们选择使用Resnet-18 [11]作为一个相对较小的网络(与监督训练中使用的网络相比),以确保测试时间小。事实上RL需要大量的数据来收敛,所以每一步都必须尽可能快,以减少整体训练时间。然而,即使Resnet-18是用于监督学习的最小网络之一,它在卷积层中包含的权重是DQN [24]的140倍左右。此外,Resnet-18还包含了监督学习中的大部分先进技术,如残差连接和批归一化。最后,我们使用Codevilla等[4]的条件网络来处理6种不同的操作方式:跟随车道、左/右/直行、左/右变道。完整的网络架构描述在图4中。

5. Challenges and Solutions to apply RL to Complex Autonomous Driving Tasks
在本节中,我们将提出建议,以解决使用RL的大型网络时出现的问题,以及如何处理离散动作。
5.1. Training RL with high complexity input size: Implicit Affordances
How to train a larger network with larger images for RL? 使用更大的网络和输入大小会引发两个主要问题。第一,这样的网络要长得多,训练起来也更难。第一个问题是,这样的网络需要更长的时间和更难训练。事实上,众所周知,即使使用小网络,训练一个DRL智能体也是很消耗数据的。第二个问题是回放存储。与基于策略的方法相比,基于价值的RL [24, 12]的主要优势之一是异策(off-policy),这意味着用于学习的数据可以来自另一个策略。然而存储35倍大的图像会带来存储同样多的转换的问题(通常存储1M个转换,对应84×84图像的6GB,因此对于288×288×3的图像将是210GB,这是不实际的)。
我们的主要思想是对网络的卷积编码器部分进行预训练,以预测一些高级信息,然后在训练RL时将其冻结。直觉是RL信号太弱,无法训练整个网络,但能用于训练全连接的部分。此外,这解决了回放存储问题,因为我们现在可以直接在回放内存中存储特征,而不是原始图像。我们将此方案视为隐式启示,因为RL智能体不使用显式预测,而只能访问隐式特征(即我们的初始监督网络预测显式启示的特征)。
Which high level semantic information/affordances to predict? 预先训练我们的编码器的最简单的想法是使用自动编码器[19],即通过尝试从一个较小的特征空间预测完整的图像来压缩图像。这在Learning to Drive in a Day的工作[18]中使用过,并允许在他们的真车上进行更快的训练。我们认为,这对于我们更难的使用案例,尤其是关于交通灯检测,是行不通的。事实上,交通灯状态只代表了图像中的几个像素(红灯或绿灯),但这些像素与驾驶行为最相关。
为了确保作为RL状态的特征中有相关的信号,我们选择依赖CARLA中可用的高级语义信息。我们在监督阶段主要使用2个损失:交通灯状态(二分类)和语义分割。事实上,除了交通灯状态外,所有相关信息都包含在我们的语义分割中。我们为语义掩码(semantic mask)使用了6个类:移动的障碍物、交通灯、路标、道路、人行道和背景。我们还预测了一些其他的启示,以帮助监督训练,例如与进站红绿灯的距离,我们是否在十字路口,与车道中央的距离以及与道路的相对旋转。最后两个估计来自于我们的视点增强(viewpoint augmentation)(如果没有它,自动驾驶仪总是完全在车道中间,没有旋转)。我们的监督训练与我们所有的损失在图5中表示。在第6.2节中介绍了用于估算这些启示估计影响的消融研究。

Viewpoints Augmentation 监督阶段的数据是在CARLA模拟器中使用现有的自动驾驶仪驾驶时收集的。然而这个自动驾驶仪始终保持在车道中间,所以在RL训练中,被冻结的预训练编码器不能很好地泛化,特别是当智能体开始偏离车道中间时:用仅从自动驾驶仪驾驶中收集的数据训练的编码器,RL智能体性能很差。 这与IL的分布不匹配的想法完全相同,图6上解释了其背后的直觉。为了解决这个问题,我们提出通过在自动驾驶仪周围移动摄像头来增加视点增强。有了这种增强,在RL智能驾驶和探索时,编码器的性能要好得多,因此我们认为这是RL训练阶段获得良好性能的必经之路。
综上所述,用精心挑选的监督任务训练一个大型编码器,并将得到的特征图、隐性启示作为RL训练的输入状态,解决了输入、网络和回放存储的问题。在监督训练阶段应该注意对数据进行适当的增强,以确保编码在RL训练的探索过程中能够适应。

5.2. Handling Discrete Actions
如前所述,标准的基于价值的RL算法,如DQN ,Rainbow和Rainbow-IQN意味着使用离散动作。用较少的离散动作(只有5个转向动作)进行初步实验,结果导致智能体振荡且不能保持在车道上。通过使用更多的转向动作,如9个或27个不同的转向值,可以获得更好的结果。油门是一个较小的问题:使用3个不同的油门值,加上一个刹车值。这导致我们的实验总共有36(9×4)或108(27×4)个动作。我们还尝试预测转向角的导数:网络的预测被用来更新之前的转向(作为输入),而不是直接使用预测作为当前的转向。这些选择的影响将在6.3节研究。
为了达到更细粒度的离散动作,我们强烈建议使用多个预测的打包(bagging),并对它们进行平均。为了做到这一点,我们可以简单地使用同一训练的连续快照(consecutive snapshots),这避免了再次训练,而且是免费的。这一办法是持续改善行为,大限度地减少振荡,获得更好的最终性能。此外,由于编码器是冻结的,可以共享,所以对同一训练的多个快照进行平均的计算成本几乎可以忽略不计(平均3个预测的总前向时间的不到10%)。因此,我们报告的所有结果都是将同一训练的3个连续快照平均在一起得到的(例如,10M步时的结果是8M、9M和10M时快照的打包)。
综上所述,离散动作可以通过增加动作的数量,对几个离散预测进行平均来弥补。
6. Experiments and Ablation Studies
6.1. Defining a Common Test Situation and a Metric for Comparison
我们首先定义了一套通用的方案和一个衡量标准来进行公平的比较。事实上,CARLA挑战赛的地图并没有公开,而旧的CARLA基准也只能在一个废弃的CARLA版本(0.8.X)上使用,其渲染和物理学与CARLA挑战赛中使用的CARLA版本(0.9.X)不同。此外,如前所述,这个CARLA基准的任务比CARLA挑战赛简单得多。
Defining test scenarios 我们选择了CARLA现有地图中最难的环境。Town05包括最大的城区,主要是多车道和美国风格:红绿灯在马路对面,更难发现。我们还随机生成了在智能体前方过马路的行人,以验证我们的模型对这种情况的刹车。此外,我们还设置了变化的天气,以使任务尽可能的困难。这样一来,即使是单个城镇训练,我们也有一个具有挑战性的设置。单一城镇训练是必要的,以使我们所有的实验和消融研究在一个合理的时间。所有这些实验都是在CARLA上进行20M次迭代,有3个actor(所以每个actor有6.6M步),帧率为10 FPS。因此,20M步相当于大约20天的模拟驾驶(作为比较,用于训练Atari游戏的RL的最标准时间是200M帧,对应大约40天,可以达到5年以上的游戏时间)。我们在整个Town05环境中定义了10个城市情况的场景,每个场景由10个连续的路口组成。我们还定义了一些高速公路上的场景,但这些情况要简单得多,因此也不那么苛刻。例如,我们最好的模型在高速公路上每100公里的处于非公路状态次数少于一次。高速公路场景主要用于评估我们不同智能体的振荡情况。
Defining a metric to compare different model and ablation studies 我们在每个场景上测试我们的模型10次,改变天气状况并重置所有其他智能体的位置。与训练阶段相反,我们只在智能体离开道路时终止回合,因为这可以跟踪遇到的违规次数。我们的主要指标是成功穿越路口的平均百分比(Inters.,越高越好),例如,50%的完成度对应于每个场景中平均穿越5个路口。我们还跟踪了交通灯无违规通过的百分比(TL,越高越好)和行人无碰撞通过的百分比(Ped.,越高越好)。请注意,最后两项的相关性略低,因为一辆不行驶的汽车绝不会闯红灯,也不会撞到行人。这就是为什么Inters.是我们比较的主要指标。而TL和Ped. 则用于更精细的比较。我们还引入了一个衡量振荡的指标:回合内智能体和道路之间的平均旋转的绝对值(Osc.,越低越好)。

6.2. Ablations Studies on the Supervised Phase
在本节中,我们将详细介绍我们关于启示的监督学习阶段的消融研究。RL的设置是完全相同的,以确保公平的比较。首先,在没有任何监督阶段的情况下进行一些实验,即在RL阶段从头开始训练整个网络。比较了三种不同的架构:来自DQN的初始网络(84×84图像),DQN网络的简单升级(将288×288×3张图像作为输入),最后是我们使用Resnet-18编码器的模型。
图7显示,如果没有启示学习,智能体学习失败,甚至平均不能成功通过一个交叉点(通过交叉口不到10%)。此外,需要注意的是,训练更大的图像编码器(完整的Resnet-18)比训练我们的隐性启示方案多花了50%(resp. 200%)的时间,即使考虑到监督阶段所用的时间。因此,这些实验在10M步后就停止了。这些网络也需要更多的内存,因为完整的图像被存储在重放内存中。正如预期的那样,这些实验证明了仅使用RL信号训练一个大型网络是很难的。
第二阶段的实验涉及Resnet18编码器的训练。首先,作为合理性检验,编码器被冻结为随机特征。然后,在监督阶段去除交通灯状态或分割的损失。这些实验表明,在我们的监督训练中,预测交通灯状态和语义分割的兴趣。图7说明了相应智能体的性能。
表1显示,去除交通灯状态对最终的性能有巨大的影响。正如预期的那样,使用没有交通灯损失的编码器训练的RL智能体在运行更多的红色交通灯。有趣的是,这个比例比随机选择要好得多(随机选择会有25%的交通灯成功率,因为交通灯只有25%的时间是绿色的)。这意味着智能体还是成功检测到了特征中的一些交通灯状态信号。我们猜测,由于语义分割包括了交通灯类(但不是它的实际状态),特征中包含了一些交通灯状态的信息。去除编码器训练中的语义分割损失对最终性能也有影响。正如预期的那样,在行人碰撞上的表现比其他任何训练都要差,这意味着网络在检测行人和车辆时有困难(这些信息只包含在语义图中)。

6.3. Ablations Studies on the RL Setup
为了公平比较,所有实验都使用相同的预训练编码器,用5.1节中提到的所有隐性启示进行训练。这里使用的编码器与CARLA挑战赛中使用的编码器相同,并且与之前消融研究中使用的编码器相比,在更多的数据和更多的时间段上进行了训练。
用不同的奖励进行了两个实验来衡量奖励塑造的影响。在第一个实验(恒定期望速度)中,期望速度不适应情况:智能体需要仅从终止信号了解到在红色交通灯上刹车和避免碰撞。在第二个实验中,去掉了角度奖励部分,以查看该奖励对振荡的影响。还评估了两种不同的动作设置。首先,预测转向角的导数,而不是当前的转向。最后研究了转向角的离散化,从27个转向绝对值减少到9个转向绝对值。结果总结在表2中。
这些实验中最有趣的结果是来自恒定期望速度的实验。事实上,该智能体在红绿灯或行人过马路这两种情况下的制动完全失败:它的性能比任何其他智能体都要差很多。将期望速度设置为恒定进行训练的智能体违规通过交通灯的比例为70%,这非常接近于随机选择。它还与60%的行人相撞。这个实验显示了速度奖励部分对于学习制动行为的重要性。
令人惊讶的是,我们发现,计算转向的导数会导致更多的振荡,甚至比去掉期望的旋转奖励成分时更多。最后,采取9个或27个不同的转向值并没有任何显著的影响,这两种智能体都在低振荡的情况下达到了最佳性能。

6.4. Generalization on Unseen Towns
最后,我们按照CARLA挑战赛的实际设置,进行泛化实验。为此,我们同时在3个不同的城镇上进行训练(一个是欧盟的红绿灯,另外2个是美国的),并在2个未见过的城镇上进行测试(一个欧盟,一个美国)。我们还测试了我们最好的单一城镇智能体作为泛化基线。
结果在表3中列出。我们可以看到,对于只在单一的美国小镇上训练的智能体来说,在未见的欧盟小镇上的表现确实很差,证实了同时在欧盟和美国小镇上训练的兴趣。在未见的美国城镇上,两种训练的性能大致相似。这些实验表明,我们的方法可以通用于未见环境。

6.5. Comparison on CARLA Benchmark
最近,Learning by Cheating (LBC)[3]在最新版本的CARLA 0.9.6上开源重新实现了CARLA基准。由于时间有限,我们在提交时没有时间更改关于天气状况的训练设置,所以只在表4中报告了训练天气结果(测试天气结果可以在补充中找到)。
使用IL的LBC是唯一一个在CoRL2017基准的最难任务(即Nav.动态)上表现优于我们的RL智能体。在更难的NoCrash基准上,我们的结果也与LBC基线相似。需要注意的是,我们只能与LBC进行比较,因为其他工作还没有在有行人的NoCrash基准上进行测试(只有LBC的开源实现中才有)。最后,我们的工作以巨大的优势超越了唯一的RL基线。这也是RL方法在CARLA基准上首次达到甚至超过IL方法。

7. Conclusion
在这项工作中,我们提出了第一个成功的RL智能体,实现端到端的城市驾驶视觉方案(包括交通灯检测),使用一个基于价值的Rainbow-IQN-Apex对适当的奖励和大型条件网络架构进行训练。为了在具有挑战性的自动驾驶背景下解决这个问题,我们引入了隐性提示,它使用一个大型编码器在监督环境中为自动驾驶相关任务进行训练。我们用消融研究验证了我们的设计选择,并通过在CARLA挑战赛中赢得 "仅用照相机"赛道展示了我们的性能。
在未来的工作中,将我们的隐性提示方案应用于基于策略的或者actor-critic,并在真实图像上训练我们的启示编码器,以便将这种方法应用于真实的汽车上,这可能是有趣的。

1. Implementation details
在本节中,我们将详细介绍监督和强化学习训练的超参数和架构。
1.1. Supervised phase of affordances training: architecture and hyperparameters
我们的编码器架构主要基于Resnet-18 [5],有两个主要区别。首先,我们改变了第一个卷积层,将12个信道作为输入(我们堆叠4个RGB帧)。其次,我们将下采样卷积层的核大小从1x1更改为2x2。事实上,正如论文Enet [7]所述,当下采样时,卷积分支的第一个1x1投影在两个维度上以2的步长执行,这有效地丢弃了75%的输入。将过滤器大小增加到2x2可以考虑全部输入,从而提高信息流和准确性。我们还删除了最后两个层:平均池化层和最后一个全连接层。最后,我们添加了最后一个下采样层,将512x7x7个特征图作为输入,并输出大小为512x4x4的RL状态。
对于损失计算,我们为红绿灯状态检测周围的损失部分添加权重10,为所有其他损失添加权重1。

对于语义解码器,每一层由具有最近邻插值的上采样层组成,然后是具有批归一化的2个卷积层。所有其他损失都是用一个尺寸为1024的隐藏层的全连接层构建的。有关监督阶段中使用的其他超参数的更多详细信息,请参见表1。
为了训练我们的编码器,我们使用了大约1M帧的数据集以及相关的地面真相标签(例如语义分割、交通灯状态和距离)。该数据集主要在CARLA[4]模拟器的两个城市收集:Town05(美国)和Town02(欧盟)。
1.2. Reinforcement Learning phase: architecture and hyperparameters
在我们的所有RL训练中,我们使用了我们的基于启示学习的编码器作为冻结图像编码器:实际RL状态是来自这个冻结编码器的8162个特征。然后,我们将此状态赋给一个大小为8162x1024的全连接层。然后,根据这1024个与之前的4个速度和转向角值连接的特征,我们使用门控网络来处理CIL [2]中所示的不同顺序。所有6个头(head)具有相同的结构,但权重不同,它们都由2个全连接层构成,其中一个隐藏层的大小为512。

我们Rainbow IQN训练中使用的所有超参数与开源实现[10]中使用的超参数相同,但用于回放存储大小和优化器。我们使用最新的Radam [6]优化器,因为它在标准监督训练方面提供了一致的改进。与Adam优化器进行了一些比较,但没有显示出任何显著差异。对于我们所有的单镇实验,我们使用Town05(美国)作为环境。对于我们的多城镇训练,我们使用了Town02(欧盟)、Town04(美国)和Town05(美国)。表2详细说明了RL训练中使用的超参数。
2. Experiments
2.1. Stability study
在Nvidia 1080 Ti上进行一次20M步的RL训练需要一周多的时间。这就是为什么我们没有时间也没有计算资源对所有实验的稳定性进行广泛研究的原因。此外,评估我们保存的快照也需要花费时间,大约2天的时间来评估每百万步的性能,如主论文的图7所示。尽管如此,我们对表1所示的3个实验进行了多次运行:无TL状态、无分割和所有可承受性。我们在10M和20M步长下对这些种子进行了评估,结果(平均值和标准偏差)见下表3。

即使我们只有几次不同的运行,这些关于稳定性的实验也支持这样一个事实,即我们的训练大致稳定,结果也很重要。在20M步处,无TL状态的“最佳”种子比无分割的两个种子表现更差。更重要的是,“无”分割的两个种子的性能都比“所有启示”的两个更差。
2.2. Additional experiments
我们做了一个实验,4输入1输出,以了解只预测一个语义分割而不是同时预测4个语义分割的影响。事实上,我们将4个帧作为我们的输入,我们认为如果我们使用所有4个语义分割进行训练,它将提供更多的信息来学习。我们还试图去除输入中的时间性:只将一帧作为输入,因此只预测一个语义分割,一个输入一个输出。最后,我们做了一个实验,U-net Skip连接,在此基础上,我们使用了标准的类似U-net的架构[8]进行语义预测。事实上,我们在所有实验中都没有使用跳过连接来阻止语义信息在跳过连接中流动。我们的直觉是,如果使用跳过连接,语义信息不可能出现在我们的最终RL状态(4x4的最后一个特性图)中。
这3个实验的结果描述在表4中。从这一结果中我们可以看出,仅使用一帧作为输入对最终性能有很大影响(从与我们的标准方案“所有启示”通过交叉口的64%降低到仅使用一幅图像作为输入时的29%)。仅预测一个而不是4个语义分割对我们的主要度量(Inters.)的影响很小,但我们可以看到,交通灯(TL)和行人(Ped.)的性能稍低。最后,使用类似U-net的跳跃连接对交叉口数量的影响似乎相对较小。然而,与我们的正常系统仍然存在差异,特别是在行人度量方面。
作为结论,这些额外的实验证实了我们的直觉,首先是将时间性作为编码器的输入和输出,其次是不使用标准的U-net跳过连接,这是我们的语义分割解码器,以防止语义信息从我们的最终RL状态流出。然而,这些直觉的影响相对较小,我们只进行了一次种子试验,这可能不够具有代表性。

2.3. Description of our test scenario
我们的每一个场景都由一个起始航点和10个交叉路口定义。图1显示了我们10个场景中的一个例子。在测试期间,我们还在整个Town05中产生了50辆车。最后,我们每20/30秒在智能体前面随机产生一个行人。

2.4. Comparison on CARLA Benchmark: Implementation Details and Test Weathers Results
2.4.1 Test weathers results (train and test town)
正如在主要论文中所提到的,我们没有时间重新实现最近发布的[1]CARLA基准在新版CARLA (0.9.6)上的实现,特别是在天气条件方面。在提交时,我们的所有训练都是在所有可能的天气条件下进行的。这就是为什么我们在主要论文中只报道了训练天气的结果。验收后,我们只有时间在CARLA基准的准确条件下对整个流水线进行训练(即,只有Town01和训练天气用于训练,Town02和测试天气用于测试)。这就是为什么我们只在补充材料中给出测试天气的结果。

从表5中我们可以看出,我们是在测试天气下所有任务中获得完美分数的唯一方法。然而,我们可以看到,在测试天气下,我们在NoCrash基准上的结果远远落后于LBC [1]基线(即使我们在训练天气下的结果相似)。我们发现,NoCrash基准上的测试天气实际上与训练天气不同,特别是在地面上的太阳反射方面。我们发现,我们只在Town01/训练天气条件下训练的冻结编码器预测太阳反射是“移动障碍物”,因此在这种情况下,RL智能体只是永远刹车,就像汽车在前面一样。我们在NoCrash基准测试天气下的大多数失败实际上都是超时的,因为当我们的智能体面对地面上的阳光反射时,它不再移动了。处理不同的天气条件是感知算法的一个已知问题,我们认为改进我们的监督性能(尤其是语义分割)可能会解决这个问题,但这将留待未来工作。
2.4.2 Implementation Details for the CARLA benchmark
为了在CARLA基准的精确条件下训练我们的新编码器,我们使用了大约500K帧的新数据集以及相关的地面真相标签(例如语义分割、交通灯状态和距离)。该数据集仅在Town01和训练天气下收集。然后,我们使用这个新编码器的隐性启示(9个actor)训练我们的RL智能体大约40M步,其中所有actor都在训练天气下的Town01。我们使用了略大的视野(从90°到100°),并裁剪了天空(从288x288x3图像到288x168x3),因为欧盟交通灯的高度低于美国交通灯(CARLA基准仅包含欧盟交通灯)。最后,我们删除了所有变更车道命令,因为CARLA基准中的所有城镇都是单行道(CARLA基准设置实际上比本文最初针对的CARLA挑战更简单)。
2.5. Training infrastructure
智能体的训练分为几台计算机和GPU,总共包括:
- 3 Nvidia Titan X and 1 Nvidia Titan V (训练电脑)
- 1 Nvidia 1080 Ti (本地工作站)
- 2 Nvidia 1080 (本地工作站)
- 3 Nvidia 2080 (训练电脑)
浙公网安备 33010602011771号