Model-free Deep Reinforcement Learning for Urban Autonomous Driving


郑重声明:原文参见标题,如有侵权,请联系作者,将会撤销发布!

2019 IEEE INTELLIGENT TRANSPORTATION SYSTEMS CONFERENCE (ITSC), (2019): 2765-2771

Abstract

  由于复杂的道路几何形状和多智能体交互,城市自动驾驶决策具有挑战性。当前的决策方法大多是手动设计驾驶策略,这可能导致次优解决方案,并且大规模开发、推广和维护成本高昂。另一方面,通过强化学习(RL),可以自动学习和改进策略,而无需任何手动设计。然而,当前的RL方法通常不适用于复杂的城市场景。在本文中,我们提出了一个框架,以在具有挑战性的城市自动驾驶场景中实现无模型深度强化学习。我们设计了一个特定的输入表示并使用视觉编码来捕获低维潜在状态。我们的框架中实现了几种最先进的无模型深度RL算法,并采用了一些技巧来提高它们的性能。我们在高清驾驶模拟器中使用密集的周围车辆在具有挑战性的环形交叉路口任务中评估我们的方法。结果表明,我们的方法可以很好地解决任务,并且明显优于基线。

I. INTRODUCTION

  高度智能的决策系统对于周围密集动态物体的城市自动驾驶至关重要。它必须能够处理复杂的道路几何和拓扑结构、复杂的多智能体交互,并准确地遵循路由信息等高级命令。

  当前的自动驾驶决策系统专注于基于非学习模型的方法,这通常需要手动设计驾驶策略[12][21]。尽管在人类先验知识的帮助下设计合格的驾驶策略可能并不困难,但手动设计的策略可能存在以下几个缺点:1)准确性:预定义的运动启发式和模型会导致偏差,尤其是对于高度交互的环境。2)通用性:对于不同的场景和任务,模型可能需要手动重新设计。

  机器学习的最新进展使基于学习的自动驾驶决策方法成为可能。最流行的方法是模仿学习,它可以从专家驾驶数据中自动学习驾驶策略[3][7][2][6]。然而,模仿学习也存在一些缺点:1)需要在现实世界中实时收集大量专家驾驶数据,成本高昂且耗时。2)它只能学习数据集中展示的驾驶技能。这可能会导致严重的安全问题,因为专业驾驶员通常不会提供危险演示,因此自动驾驶汽车无法学习如何处理这些危险情况。3)由于人类驾驶员专家充当学习的监督者,因此模仿学习策略不可能超过人类水平的表现。

  结合深度学习技术,强化学习(RL)近年来带来了一系列突破。通过深度强化学习训练的智能体在Atari游戏[19][20]、围棋[25][27]和复杂的战略游戏[30][1]中实现了超人类水平的表现。通过强化学习,无需任何专家数据即可自动学习策略。它可以模拟各种不同的情况,包括一些危险的情况。也有可能获得比人类专家更好的性能。因此,用于自动驾驶决策的模仿学习的一个很好的替代方法是使用深度强化学习。

  然而,深度强化学习在自动驾驶中的成功应用并不多,尤其是在复杂的城市驾驶场景中。这是由于:1)大多数方法直接使用前视图图像作为输入并端到端学习策略。极其复杂的高维视觉特征极大地扩大了学习的样本复杂度。2)深度强化学习是一个快速发展的研究领域,但其在自动驾驶中的应用相对滞后。大多数研究人员仍在使用深度Q网络等基本的深度强化学习算法,无法解决一些复杂的问题。近年来开发了更强大的深度RL算法,但很少有人将它们应用于自动驾驶任务。

  在本文中,我们设计了一种特定的输入表示来降低样本复杂度,而不是直接使用前视图图像。然后,我们使用视觉编码来捕获城市自动驾驶任务的低维潜在状态,这使得强化学习的问题更容易处理。实施了几种最先进的无模型深度RL算法,以在多辆周围车辆运行的复杂环形交叉路口场景中学习驾驶策略。开发了一些技巧来提高算法的性能,包括修改探索策略、跳帧、网络架构和奖励设计。最终结果表明,我们的方法可以稳健地学习能够在复杂的城市驾驶场景中导航的驾驶策略。

II. RELATED WORKS

  随着深度学习的最新进展,基于学习的方法在自动驾驶中得到了应用,无论是在现实世界中还是在模拟中。NVIDIA使用深度卷积神经网络从字体视图图像[3][4]中端到端地学习遵循策略的车道。Waymo还使用模仿学习从大量人类驾驶员数据中学习城市驾驶策略[2]。基于用于自动驾驶研究的开源模拟器CARLA,[7][6]应用深度模仿学习来学习在复杂的虚拟城市环境中导航的策略。

  研究人员还尝试了自动驾驶的强化学习方法。Wolf et al. [32]使用深度Q网络来学习在模拟中驾驶自动驾驶汽车。动作空间是离散的,只允许粗略的转向角。Lillicrap et al. [17]开发了一种连续控制深度强化学习算法,该算法能够学习深度神经策略以在模拟赛道上驾驶汽车。Sallab et al. [22]提出了一种用于自动驾驶的深度RL框架,并将其应用于模拟中的保持车道任务。Chen et al. [5]提出了一种分层深度RL方法,该方法能够解决一些复杂的时间延迟问题,例如红绿灯通过。尽管如此,上述方法要么是针对没有复杂道路几何形状和多智能体交互的简单场景开发的,要么是使用手动设计的特征表示或策略模型。

  最近提出了用于自动驾驶决策的鸟瞰表示,以降低视觉特征的复杂性[8][2][6]。它们通常将地图和目标的信息压缩为光栅化图像。直接RGB图像的维数非常高,可以使用变分自动编码器(VAE)[16][9]进行降维,它通过无监督的方式学习图像的低维潜在表征。

  无模型深度强化学习是一个丰富的研究领域,并且正在迅速发展。相关算法包括基于Q学习的方法,如DQN [19][20]和双重DQN [29],A3C [18]、DDPG [17]和TD3 [11]等actor-critic方法,策略优化方法,如TRPO [23]和PPO [24],以及最大熵方法,如soft actor-critic [13][14]。

III. PROBLEM FORMULATION

  直接在原始传感器输入上应用强化学习算法很难很好地解决城市自动驾驶问题。因此,我们提出了一个框架来降低问题的复杂性,从而可以通过当前的无模型深度强化学习技术很好地解决。

  图1显示了所提出的框架。我们的智能驾驶智能体接收来自驾驶环境的感知和路线信息。然后它将信息处理成鸟瞰图像作为输入表示。然后将图像编码为低维潜在状态。然后采用强化学习算法来训练深度神经策略,该策略将编码状态作为输入并生成控制命令,例如加速度和转向角。

A. Input Representation

  自动驾驶智能体的输入需要涵盖足够的城市驾驶场景信息。直接的输入表示是直接使用原始传感器数据,例如前视图图像。然而,原始传感器数据包含极高维度的信息,例如道路和物体的外观和纹理、天气条件和光照条件。为了获得良好的泛化性,数据集必须涵盖原始传感器信息的每个维度的足够数据。

  借助感知模块,可以大大降低上述复杂度。例如,我们可以使用物体检测来获取每个周围物体的位置、航向和速度;我们可以获得车道相关的特征,例如到特定车道标记的纵向和横向距离;我们还可以将高级路由信息表示为一组轨迹点。然而,尽管这种表示已经广泛用于基于模型的策略,但它给基于学习的策略带来了问题:1)周围物体的数量是变化的;2)关于道路几何和拓扑的信息是高度结构化的。这些信息极难转换为具有固定形状的张量,可用作基于学习的神经网络策略的输入。

  为了缓解这个问题,我们建议将感知模块(目标检测和定位)的输出以及路由信息转换为鸟瞰表示,作为我们策略的输入。这种鸟瞰图表示包含足够的决策信息,是对原始传感器数据的复杂视觉和空间信息的极大简化。如图2所示,我们的鸟瞰输入表示由以下四个部分组成:

  1) Map: 地图包含道路几何信息。在此,我们将可行驶的道路渲染为灰色多边形,将其他不可行驶的区域部分渲染为黑色。

  2) Routing: 路线信息由路线规划器计算。它包含自我车辆应遵循的一系列路径点的信息。它被渲染为一条粗的蓝色折线。

  3) Historical Detected Objects: 在过去的滑动窗口中检测到的周围物体(例如,车辆、自行车、行人)的历史边界框被渲染为绿色框,亮度水平降低意味着更早的时间步骤。

  4) Historical Ego States: 与检测到的对象类似,历史自我状态表示为亮度降低的框。框的颜色设置为红色。

  最终的鸟瞰图像以256×256像素大小渲染并调整为64×64,并且始终与自我车辆视图对齐。视野的实际大小为(40m, 40m),其中自我车辆位于(20m, 8m)。

B. Latent State Encoding

  即使我们用处理后的信息替换了复杂的原始传感器信息,输入仍然是高维鸟瞰图。用这种高维输入学习一个好的策略是非常困难的。同时,复杂的输入很容易在强化学习过程中过拟合。

  为了进一步降低输入复杂度,我们建议使用变分自动编码器(VAE)[16]来学习低维潜在表征。VAE由两部分组成,编码网络qΦ(x|o)将原始高维观察 o 编码为低维潜在状态 x,以及解码网络pθ(o|x)将 x 解码为 o。这里Φ和θ分别表示编码器和解码器的参数。为了获得参数,需要最大化以下目标:

其中DKL表示kullback-leibler (KL)散度。先验分布通常是多元高斯分布pθ(s) = N(0, I)。编码结果的一些样本如图3所示,其中第一行显示原始输入图像,第二行显示重建图像。我们可以看到重建的图像非常接近原始图像,无论是道路几何形状还是物体。这表明编码的低维潜在状态 s 成功地保留了原始图像输入的核心信息。

C. Reinforcement Learning

  通过访问状态 s 和奖励函数 r,强化学习的目标是找到优化期望未来总奖励的最优策略π*:

其中 γ 是奖励的折扣因子。然后,解决方案π*(at|st)可以用作我们智能体的控制器,它采用当前输入状态st并输出控制命令at以应用于车辆。下一节将介绍我们如何获取策略。

 

IV. ALGORITHMS

  我们的框架中应用了三种最先进的无模型深度强化学习算法来学习驾驶策略。我们将在本章中简要介绍它们。

A. Double Deep Q-Network (DDQN)

B. Twin Delayed Deep Deterministic Policy Gradient (TD3)

C. Soft Actor Critic (SAC)

V. EXPERIMENTS

A. Simulation Environment and scenario

  我们在CARLA模拟器[10]上训练和评估我们的方法,这是一个用于自动驾驶研究的高清开源模拟器。图4(a)显示了我们使用的驾驶模拟环境的示例视图。它包括各种城市场景,例如十字路口和环形交叉路口。地图的范围是400m×400m,包含大约6km的道路总长度。

  我们选择最具挑战性的场景,即这张地图中的中央环形交叉路口来训练和测试我们的方法。如图4(b)所示,任务是从环岛的一个入口出发,安全高效地进入环岛,通过前两个出口,开到所需的出口,到达最终目标点。全图初步采样了100辆车,其中近一半是在环岛附近采样的,交通相当繁忙。采样车辆在遇到多条路线选择时会随机选择一个方向,然后按照路线走,如果有前方车辆则减速。

B. Network Architectures

  我们在50k鸟瞰图像上训练我们的变分自动编码器(VAE),这些图像是通过使用简单的控制器在环岛周围行驶而生成的。请注意,我们不需要训练数据集中的任何标签,例如车辆的动作命令或地面实况位置,而只需要原始鸟瞰图像。我们也不要求控制器开得好,不管车辆是否驶出车道或与其他物体发生碰撞。VAE模型有4个3×3核大小的卷积层,分别有32、64、128和256个通道。步幅设置为2。每个conv层之后是ReLU激活。然后,大小为64的潜在空间层完全连接到最后一个卷积层。VAE模型是使用Adam优化器[15]从头开始??训练的,学习率为10-4,持续100个epoch。图3给出了一些经过训练的VAE结果示例。

  在强化学习过程中,所有网络都具有相同的卷积层和从预训练的VAE模型复制的第一个密集层,这里表示为视觉编码层。为了保持视觉编码的稳定,视觉编码层的权重是固定的,没有更新。现在我们介绍三种强化学习算法中使用的网络的其余层如下:

  1) Double Deep Q-Network (DDQN): DDQN有一个Q网络和一个具有相同架构的目标Q网络。在视觉编码层之后,网络之后是5个密集层,隐藏层范围从256到32个节点。输出大小等于可能动作的数量,每个动作代表对应动作的Q值。网络使用Adam优化器进行训练,学习率为10-3

  2) Twin Delayed Deep Deterministic Policy Gradient (TD3): TD3有一个策略网络和两个Q网络。在视觉编码层之后,所有这些网络都有4个密集层,分别有64、200和20个隐藏单元,然后是每层的批量归一化和leaky ReLU。leaky ReLU的负斜率设置为0.01。策略网络的最后一个密集层,对应动作输出,有2个单元,带有一个tanh激活函数来限制动作范围。Q网络有点不同,它们来自视觉编码的潜在状态首先与相应的动作连接,最后一层只有一个单元表示Q值。此外,Q网络中没有使用批量归一化和tanh激活。所有网络都使用Adam优化器进行训练。策略网络和Q网络分别以10-4和10-3的学习率进行训练。

  3) Soft Actor Critic (SAC): SAC有两个Q网络、一个价值网络和一个策略网络。Q和价值网络具有相同的架构,只有一个输出单元。视觉编码层之后是5个密集层,隐藏单元从256到32不等。策略网络的架构是相同的,除了最后一层,它分为两个分支。这是因为SAC的策略网络是随机的。第一个分支代表动作的均值,第二个分支代表其方差。所有网络都使用Adam优化器进行训练,学习率为3×10-4

C. Implementation Details

  为了提高提议任务的性能,我们设计了特定的奖励函数并添加了一些技巧,例如跳帧和新的探索策略。

  1) Rewards Design: 在测试了各种奖励组合后,我们提出了一个运行良好的五项奖励函数。 奖励函数如下:

其中rv是鼓励前进以取得进展的项。它被设置为等于自我车辆的速度。此外,我们设置rv ← 10 - rv,如果rv > 5来惩罚超速。rα是惩罚转向角大小 α 以提高驾驶平稳性的项,其中rα = 0.5α2。rc是惩罚与周围其他车辆发生碰撞的项,如果发生碰撞,则rc = -10,否则rc = 0。ro是惩罚跑出车道的项,如果自我车辆的路线基线之间的距离 d 大于2m,则ro = -1,否则ro = 0 (注意我们也尝试将ro设置为连续的,例如与距离 d 或 d成线性,但事实证明离散的效果更好)。最后一项 c 是一个设置为-0.1的小常数,用于惩罚停止静止的自我车辆。

  2) Frame Skip: 我们在训练过程中使用跳帧技巧,在 k 个连续帧中保持动作不变。换句话说,在训练过程中,自我车辆做出的每个动作都会持续 k 帧,直到新动作开始生效。这种技术大大降低了训练的复杂性,可以将其视为将搜索深度降低了 k 倍。

  但是,k 不应该设置太大。如果 k 太大,正确的动作空间可能太小甚至不存在。例如,当我们设置k = 10时,自我车辆很难成功转弯。在我们的实验中,我们使用k = 4。

  3) Exploration Strategies: 我们在实施过程中提出了不同的探索策略。对于DDQN,我们使用了一种不同的epsilon贪婪策略。通常,epsilon贪婪从均匀分布中选择随机动作。然而,均匀分布不包含启发式信息,这是低效的。因此,我们建议根据每个动作的Q值对随机动作进行采样,其中Q值越大的动作将被更频繁地采样。该策略引入了期望未来奖励的信息,因此效率更高。

  对于TD3,我们添加了具有特定方差 σ 的零均值高斯动作噪声:

其中,加速度和转向分别设置 δ 为0.5和0.1。λt = max(0.5, 1 - t/T),其中 t 是当前训练步骤,T 是设置为100k的总衰减时间。λd = max(1 - t/T, 0.2 + tp/Tp),其中tp是单个探索路径中的当前路径步骤,Tp是设置为500的最大路径长度。我们还引入了周期系数,λp = 1 + sin(5πt/T + π/2)。

  对于SAC,探索策略实际上包含在随机策略中,在训练过程中学习和适应,因此我们不需要为其添加任何特定的探索策略。

VI. RESULTS

  我们使用进入和通过环形交叉路口的度量(平均回报和成功率)来评估我们提出的框架。这些方法在两种情况下进行评估:不添加和添加周围车辆。

A. Roundabout without Vehicles

  我们首先在环形交叉路口场景中测试我们不同的RL方法,而不添加任何周围的车辆。我们还实现了DDPG方法并直接在前视图图像上进行训练,具有与[17]中相同的输入大小、网络架构、探索策略和超参数。这种DDPG方法被设置为基线。

  图5显示了每种方法的平均回报。每个检查点(入口、第一个/第二个/期望的出口、目标点)的回报的粗略估计被绘制为水平虚线。正如我们所看到的,在我们提出的框架下的实现中,SAC算法具有最佳性能,经过训练的自我车辆可以在100个epoch后大部分时间通过环岛并到达目标点(参见图4)。虽然DDQN和TD3在自我车辆绕过前两个出口后进展缓慢(参见图4),但所有三种算法在第二个出口前的回旋处都表现良好。由于我们的计算资源有限,我们在140个epoch时停止,此时我们的SAC策略已经可以稳定地达到最终目标点。我们相信,给予更长的训练时间和更多的计算资源,这些算法可以表现得更好。另一方面,基线的平均回报非常低,几乎不能学到任何东西。实际上,车辆只是一直右转并驶出车道。该策略陷入局部最优,无法取得任何进展。

B. Roundabout with Dense Surrounding Vehicles

  在环境中添加密集的周围车辆后,任务变得更加复杂。在这种情况下,我们只实现了我们提出的框架下的三种RL算法,而不是DDPG基线,因为即使没有任何周围的车辆,它也什么都学不到。

  如图6所示,SAC仍然是所有方法中最好的,它经常在大约200个epoch后达到最终目标。使用SAC训练的模型不仅可以学习保持车道技能,还可以学习如何在繁忙的环形交叉路口与其他车辆进行适当的交互。DDQN、TD3往往能顺利进入环岛或到达第一个出口,但勉强到达第二个出口。这可能是由于SAC的自适应探索的优势。

  然后,我们对这三种RL算法分别测试了50次,并总结了它们在周围密集车辆的环形交叉路口任务下的成功率。成功率记录在五个检查点:入口、第一个出口、第二个出口、所需出口和目标点(图4)。结果示于表 I 中。我们可以看到,经过三种方法训练的自我车辆都可以成功进入环岛,成功率超过80%,说明他们在进入环岛时已经学会了正确的行为,比如让行即将到来的车辆。当距离增加时,DDQN和TD3的成功率急剧下降。这主要是因为他们容易遭受探索不足的困扰。由于探索和利用的良好平衡,SAC表现最好,并且可以经常达到目标点。

  当我们查看故障案例时,我们发现几乎所有故障都来自后端到前部车辆。这是因为我们没有在输入中明确包含车辆的速度,这对于与前车保持安全距离至关重要。相反,我们使用褪色的框来绘制历史车辆状态,它只隐含地包含速度信息。当输入通过编码网络时,这个问题会更加严重。如图3所示,我们在重建图像中几乎看不到某些车辆的褪色。

VII. CONCLUSIONS

  在本文中,我们提出了一个框架,可以在具有挑战性的城市自动驾驶场景中实现无模型深度强化学习。我们设计了一种鸟瞰输入表示来降低样本复杂性,并使用视觉编码来捕获低维潜在状态。然后,我们将三种最先进的无模型深度RL算法(DDQN、TD3、SAC)应用到我们的框架中,并采用了一些技巧来提高性能。我们在具有挑战性的环形交叉路口场景中评估我们的方法,在高清驾驶模拟器中周围车辆密集。结果表明,我们的方法有能力很好地解决任务。尽管我们的方法明显优于基线,但它并不能完美地解决任务。未来,我们将使用更多的计算资源来挖掘我们方法的极限,同时也提高学习效率。此外,我们将探索对其他场景的泛化能力。