《Deep Reinforcement Learning framework for Autonomous Driving》翻译

《Deep Reinforcement Learning framework for Autonomous Driving》翻译

摘要

强化学习被认为是一种强大的人工智能范式,可以通过与环境的互动和从错误中学习来教机器。尽管它被认为是实用的,但它还没有成功地应用于汽车应用。基于Atari游戏学习的成功演示和Go by谷歌DeepMind,我们提出了一个使用深度强化学习的自主驾驶框架。这一点特别重要,因为由于自动驾驶与环境(包括其他车辆、行人和道路工程)的交互,很难将其视为监督学习问题。由于自动驾驶是一个相对较新的研究领域,我们简要介绍了深度强化学习,然后描述了我们提出的框架。它包含了用于信息集成的递归神经网络,使汽车能够处理部分可观察的场景。它还集成了最近关于attention模型的工作,将注意力集中在相关信息上,从而降低了在嵌入式硬件上部署的计算复杂度。该框架在一个名为TORCS的开源3D赛车模拟器中进行了测试。仿真结果表明,自动驾驶汽车能够较好的学习复杂道路的曲率和其他车辆简单的相互作用的场景。

介绍

自动驾驶汽车是人工智能的长期目标。驾驶汽车是需要人类驾驶员具有高水平的技能、注意力和经验。尽管电脑比人类更有能力持续集中注意力,但完全自主驾驶需要的智能水平,超过了人工智能迄今为止的水平。

创建自动驾驶代理涉及的任务可以分为3类,如图1所示
在这里插入图片描述

  1. 识别:识别周围环境的组成部分。例如行人检测、交通标志识别等。由于深度学习(DL)算法的不断发展,使得识别成为一项相对简单的任务。尽管远非一件小事,但在一些对象检测和分类问题上已经达到或超过人类水平的识别。深度学习模型能够从原始输入数据中学习复杂的特征,省去了手工制作特征[15][2][7]的需要。在这方面,卷积神经网络(CNNs)可能是最成功的深度学习模型,自AlexNet[8]以来,它已经成为ImageNet挑战赛每一个获奖作品的基础。这一成功已经在自动驾驶的车道线及车辆检测得到验证[6]。
  2. . 预测:一个自动驾驶代理识别其环境是不够的;它还必须能够建立预测环境未来状态的内部模型。此类问题的示例包括构建环境地图或目标跟踪。为了能够预测未来,整合过去的信息是很重要的。因此,递归神经网络(RNNs)是这类问题的关键。长短时记忆(LSTM)网络[5]就是应用于端到端场景标识系统[14]中的一类RNN。最近,在深度跟踪模型[13]中,RNNs也被用来提高目标跟踪性能。
  3. 规划:生成一个有效的模型,该模型包含识别和预测,以规划未来的驾驶行为序列,使车辆能够成功导航。规划是三者中最难的。难点在于整合模型理解环境(识别)及其动态(预测)的能力,使其能够规划未来的行动,从而避免不必要的情况(惩罚),并安全地驾驶到目的地(奖励)。

强化学习(RL)框架[17][20]在控制任务中应用已久。指出RL与DL的结合是[9]中最有希望实现人类控制的方法之一。在[12]和[11]中,我们使用深度Q网络(Deep Q Networks, DQN)模型在Atari游戏中演示了这种人类控制,其中RL负责规划部分,DL负责表示学习部分。后来,RNNs被整合到混合物中,以解释部分可观测场景[4]。

自动驾驶需要集成来自多个传感器的信息。其中一些是低维的,比如激光雷达,而另一些是高维的,比如相机。然而,值得注意的是,在这个特殊的例子中,尽管原始相机图像是高维的,但是实现自动驾驶任务所需的有用信息的维数要低得多。

例如,影响驾驶决策的场景的重要部分仅限于移动的车辆、前方道路上的自由空间、人行道的位置等。即使是车辆的细节也不重要,因为只有它们的空间位置才是这个问题真正需要的。因此,相关信息的内存带宽要低得多。如果能够提取出这些相关信息,同时过滤掉其他不相关的部分,将会提高自主驾驶系统的准确性和效率。此外,这将减少系统的计算和内存需求,这是包含自主驾驶控制单元的嵌入式系统的关键约束。

Attention模型很适合这种信息过滤过程。最近,这些模型成功地应用于[23]和[10]的图像识别中,其中RL与RNNs混合,得到需要处理的备份图像。这些模型易于扩展和集成到DQN[11]和深度递归Q网络(DRQN)[4]模型中。这个集成是在[16]中执行的。attention模型的成功促使我们提出从原始的传感器输入信息中提取低水平的信息来进行自主驾驶。

在本文中,我们提出了一个端到端的自主驾驶模型的框架,该模型接受原始传感器的输入,输出驱动动作。该模型能够处理部分可观察的场景。此外,我们建议整合注意力模型的最新进展,以便从接收到的传感器数据中只提取相关信息,从而使其适合于实时嵌入式系统。本文的主要贡献如下:1)综述了深度强化学习的最新进展;2)向汽车行业介绍了一个使用深度强化学习的端到端自主驾驶框架。论文的其余部分分为两部分。第一部分概述了深度强化学习算法,首先介绍了传统的MDP框架和Q-学习,然后介绍了DQN、DRQN和深度注意递归Q网络(DARQN)。论文的第二部分描述了该框架的提出,该框架描述了深度强化学习的最新进展。最后,总结并提出今后的工作方向。

强化学习回顾

关于强化学习的全面概述,请参阅Rich Sutton的教材[18]第二版。我们将在本节中简要回顾一些重要的主题。在[17]中建立了强化学习框架,作为模型来提供一个代理遵循的最好的政策(在特定状态下采取的最佳行动),这样,当代理从当前到达终端状态都遵循该策略时,累积的总奖励将最大化。

RL范式的动机

驾驶是一个多智能体交互问题。作为一名人类驾驶员,在不与其他车辆互动的情况下,保持在车道内要比在交通拥挤时换车道容易得多。后者更困难,因为其他驾驶员的行为存在固有的不确定性。交互车辆的数量、几何构型和驾驶员的行为可能存在较大的可变性,设计一个覆盖所有场景的监督学习数据集是一个挑战。人类驾驶员使用某种在线强化学习来了解其他驾驶员的行为,比如他们是防御性的还是攻击性的,有经验的还是没有经验的,等等。 这在需要协商的情况下特别有用,例如进入环状交叉路口、在没有交通灯的情况下通过路口、在交通繁忙时改变车道等。自动驾驶的主要挑战是处理即使对人类驾驶员来说也无法预料的转角情况,比如在没有GPS的情况下从未知区域迷路中恢复过来,或者处理洪水或地面出现排水口等灾难情况。RL范式为未知领域建模,并通过采取行动从自己的经验中学习。此外,RL可能能够处理不可微分的成本函数,这可能为监督学习问题带来挑战。

目前,自动驾驶的标准方法是将系统分离为孤立的子问题,典型的监督学习像目标检测、视觉里程计等,然后有一个后处理层来组合前面步骤的所有结果。这种方法存在两个主要问题:首先,所解决的子问题可能比自动驾驶更困难。例如,其中一个可能是通过语义分割来解决目标检测问题,这既具有挑战性又没有必要。人类驾驶员在驾驶时不会检测和分类所有可见的物体,只会对最相关的物体进行检测和分类。其次,孤立的子问题可能不能连贯地组合在一起以达到驾驶的目的。在RL中,这是由一个良好驾驶相对应的奖励信号显式处理的,该信号可以模拟驾驶(采取行动)和计划(开车去哪里)之间的相互作用。由于奖励是建立在稳定驾驶和不撞车的基础上的,所以用一辆真正的汽车来训练RL系统是很有挑战性的,因为其中涉及到风险。因此,目前大多数RL研究都是使用TORCS或Unity等电子游戏模拟引擎完成的。图2是一个多智能体模拟Unity游戏引擎的屏幕截图,它展示了一个艰难的驾驶场景,白色的车试图在拥挤的交通和急转弯中导航。使用RL对这个问题进行建模相对容易。
在这里插入图片描述

马尔科夫决策过程(MDP)

现在我们要利用马尔科夫决策过程进行建模。马尔科夫决策过程由元组(S,A,P,R,γ)描述。
其中:
S 为环境状态集
A 为有限的动作集
P 为状态转移概率
R 为回报函数
γ 为折扣因子,用来计算累积回报

我们首先定义一个状态S一个政策π(s),然后定义价值函数。价值函数是折扣奖励的总和的期望值,公式如下:
在这里插入图片描述
目标是找到最大化累积奖励期望的政策:
在这里插入图片描述
这样一个问题的解决方案在于找到一个政策π(s),π(s)是一个从状态S到动作a的函数,我们希望找到一个π(s),使得整个过程中累积的奖励值最大。这里有几个比较受欢迎的算法来解决有限状态空间这个问题,例如价值迭代法和政策迭代法[17]。

Q-learning

Q-learning[21]算法是解决MDP问题的常用算法之一。根据称为Q的状态-行动值函数为每个状态S获取动作a,基于贝尔曼方程的Q-learning算法为:
在这里插入图片描述
对Q-table的更新是通过时间差异增量学习(TD)来递归地完成的[17]。算法从一个初始状态开始,一直持续到事件结束,即到达一个终端状态。在进行每一步的时候,代理处于当前状态S,根据状态 π(s)确定要采取的动作,然后观察下一个状态s以及从环境中获得的奖励r。该算法一直持续到Q函数的收敛或达到一定数量的 episodes。

深度强化学习

根据问题域的不同,可能的操作空间可以是离散的,也可以是连续的,这一差异对要应用的算法的选择有着深远的影响。在本节中,我们将讨论两种算法:一种用于离散操作(DQN),另一种用于连续操作(DDAC)。

Deep Q Networks (DQN)

当状态是离散的时,Q-函数可以被看作是一个表格。如果状态数量不断增加,再用表格来表示这个就变得更加困难,甚至当状态是连续的时候也是不可能用表格来表示的。在这种情况下,Q-函数可以被表示为状态、动作的参数化函数:Q(s,a,w)。解决的方法在于找到参数w的最佳设置。利用该公式,可以用深度神经网络(DNN)逼近Q-函数。本DNN的目标是将Q值的均方误差(MSE)最小化,具体如下:
在这里插入图片描述
该目标函数的参数端到端可微,即∂ l(w)/∂w存在。因此,使用基于梯度的方法(随机梯度下降(SGD),共轭梯度(CG))等等)可以很容易地解决优化问题。。该算法被称为深度q网络(DQN)[12][11]。

Deep Deterministic Actor Critic (DDAC)

DQN算法适用于连续状态的情况,但动作选择仍然要求动作值是离散的。针对连续动作的情况,提出了几种算法:

  1. the actor:提供从状态到动作的策略映射;
  2. the critic:评估(批评)在给定状态下所采取的行动的价值。 critic函数与Q函数相同。学习这两个函数的算法都遵循策略梯度法[19]。在深度学习框架下,因为整个目标对于Q函数和策略的权重仍然是可微的。因此,Q函数(批评家)的梯度可以在DQN中得到:∂ l(w)/∂w ,而策略函数(行动者)的梯度由链式法得到:
    在这里插入图片描述

深度递归强化学习

Q-learning算法是基于MDP的马尔可夫假设。在无法完全观察到环境的情况下,这个假设不再成立了。部分可观察MDP (POMDP)出现在自动驾驶的不同场景中,例如跟踪,制图和定位过程中物体的遮挡。POMDPs是使用随时间推移的信息集成来处理的,其中环境的真实状态不是直接从单个观察中显示的,而是在不同时间戳的多个观察中逐渐形成的。递归神经网络(RNN)是解决POMDPs问题的自然框架。在[13]中,RNN被成功地应用于端到端多目标跟踪。此外,将LSTMs[5]集成到DQNs中,形成了[4]中的深度递归Q网络(Deep Q Networks, DRQN)。在[4]中将DRQN应用于Atari games并没有显示出模型的全部功能,因为MDP假设对于雅利达游戏通常已经足够了,因此作者尝试了乒乓游戏的一个变体Flickering Pong,在这个游戏中他们展示了添加递归的优势。

深度注意强化学习

在DQN模型中,通过CNN提取空间特征,并从数据中学习特征。这些特性对最终优化目标的贡献可能并不相同。与人类的识别过程相似,完成识别任务只需要有限的信息,并不是所有的高维数据。注意模型[23]试图遵循同样的概念,在分类任务中只使用CNN提取的部分特征。这部分是在原有学习过程中并行学习的。在[10]中,一个单独的网络(称为glimpse网络)被训练用于在图像的某些部分配置内核操作。通过增强算法[22]学习核函数的运动,得到核函数在输入图像上的最佳运动序列。其结果是,在输入数字图像的情况下,运动过程类似于人类的阅读过程。在[16]中利用该思想对DQN和DRQN模型进行改进,在CNN特征提取器之后加入一个filter,得到DARQN模型。DARQN 显示参加部分雅达利游戏,这具有特殊的重要性。在Sequest游戏中,代理能够把注意力集中在潜艇的氧气水平上。而在Breakout游戏中,代理能够跟踪球的位置[22]。
在这里插入图片描述

Apprenticeship learning

目前描述的强化学习算法遵循情景学习的概念,即从延迟奖励中学习[20]。在这种情况下,假设算法知道奖励函数。然而,在某些情况下,没有清晰的状态到奖励函数的映射,我们已经向代理展示了专家行为。在这种情况下,agent的目标是破译专家的意图,解码奖励函数的结构。这被称为反向强化学习[1]。奖励函数被编码为特征的线性组合,这些特征是根据一些感兴趣的特征映射状态的函数。例如,对于驾驶任务,一个特征函数可以检测到汽车离车道有多远。[3]中描述了另一种方法,其中演示的专家行为被用于监督模型中,其中专家和状态所采取的动作被视为CNN的训练示例。

提出了自主驾驶的DRL框架

按照描述的模型进行深度强化学习(DRL),我们提出了一个流水线框架,用于自动驾驶DNN的端到端训练,如图3所示。输入是环境的状态及其随时间的聚合,输出是驱动动作。我们将参照图4中的高级框图在下面详细讨论每个部分。

空间聚集

pipeline网络的第一步是空间聚集网络。这个阶段包含两个网络:(1)传感器融合(2)空间特征,描述如下。汽车的状态包括它的位置、方向、速度和加速度。在自动驾驶的情况下,还需要对周围的环境状态进行编码。环境状态可以包括目标、目标的位置、方向、运动矢量、尺寸等。传统的自主驾驶算法会利用这些状态向量来规划运动路径。周围物体的状态通常不是直接观测到的,而是通过一组传感器读数由算法推导出来的(相机,激光雷达等)。融合这些感官信息对于估计鲁棒状态至关重要,而鲁棒状态本身就是一个活跃的研究领域。另一方面,端到端深度学习系统将使用不同的状态编码。例如在[12]中,状态只是游戏的快照,默认情况下包含了许多隐式信息。这些信息并没有明确地给出给算法,而是通过DNN(更具体地说是CNN)以特征的形式推导出来的。

传感器融合

这种将原始信息呈现给DNN的方式依赖于其提取相关特征的能力,使得传感器融合成为学习过程中的一项自然任务。换句话说,可以将编码环境的所有传感器信息分组到一个原始输入向量中,并把这个交给DNN,例如,将融合任务留给DNN内部使用SGD进行权重调整的过程。梯度将根据它与最小化RL部分中讨论的总成本函数的相关性,对每个传感器特性进行加权。CNN最适合pipeline网络这一部分。

空间特征

融合的传感器表示可以进一步处理数据,重点是与驾驶任务相关的重要部分。CNN将提取更深层次的表示,然后是注意力过滤器,将卷积核指向感兴趣的数据部分。注意力模型的集成对于嵌入式系统集成具有很高的潜力。除了对原始输入数据进行的计算(卷积)数量外,注意力模型还显著降低了数据的维数。为了更好地利用注意力模型的价值,建议使用 action和 glimpse网络[10]的思想,而不是像[16]那样应用注意力过滤器。注意滤波器不会减少计算量,因为卷积核应用于所有数据。另一方面,action和 glimpse网络学会了只将内核的注视展开到数据的某些部分,从而大大减少了推理时间中的计算量。

Recurrent temporal aggregation

代理或自动汽车不能直接访问环境状态。相反,传感器读数提供了有关环境真实状态的线索。要解码真实的环境状态,仅绘制传感器读数的单个快照是不够的。。然而,随着时间的推移,信息集成是强制性的,因为状态是在您移动时显示的。一个明显的例子就是著名的机器人定位问题。解决这类问题最常用的算法是贝叶斯滤波算法,它依赖于两个概率密度函数(pdf),通常称为运动模型和传感器模型。贝叶斯滤波器是在MDP假设下推导出来的。当状态是离散的,我们有隐马尔可夫模型(HMM)。最后,卡尔曼滤波器在对两个pdfs进行高斯假设的基础上,加入了线性状态方程假设。

在这里插入图片描述
正如上一节所讨论的,在pipeline中添加递归式可以处理POMDP情况。这种情况经常在驾驶场景中遇到。传统的跟踪和定位算法,如贝叶斯过滤器,试图通过随时间的信息集成来处理这种情况。然而,这些算法仍然是在MDP框架下推导出来的。此外,传统的信号处理方法,如卡尔曼滤波器,需要手动调整其模型和参数。另外,递归神经网络(RNN)在理论上能够对当前观测结果之外的长期依赖关系进行建模。在实际中,由于梯度随时间反向传播的限制,RNN不能记忆长期依赖关系,因此提出了LSTM网络来解决这一问题[5]。LSTMs能够控制哪些信息应该保留,哪些信息应该忘记。LSTM控制从新的输入中添加哪些隐藏状态。

值得注意的是,RNNs和LSTMs在运动模型和观测模型的建模上遵循相同的Bayes filter框架,其中RNN使用其隐含状态权值和输入权值对相同的pdf进行建模。此外,所有Bayes过滤器(以及像卡尔曼过滤器这样的派生过滤器)、RNN和LSTM都对下一个隐藏状态(从旧的隐藏状态和新输入)中包含什么有类似的控制。下面给出了贝叶斯滤波的一般方程和状态函数与状态转移函数的比较表。
在这里插入图片描述

Planning

端到端pipeline网络的最后一部分是强化学习规划部分。该网络遵循与DQN相同的训练流程,与DQN部分描述的目标函数相同。在连续操作的情况下,可以使用DDAC网络,如DDAC部分所述。同样的误差通过网络结构反向传播,得到每个网络层的梯度。

结果与讨论

我们使用车道保持辅助系统算法作为一个示例应用程序,在开源赛车模拟器(Torcs)上模拟和测试所提议的框架,屏幕截图如图5所示。为了能够使用模拟传感器,我们使用了模拟赛车(SCR)插件,它可以访问汽车控制,比如转向、速度、加速度、刹车,以及汽车状态,比如位置、速度、加速度、油位等。在仿真设置方面,网络的输入为trackPos传感器输入,提供了轨道边界的位置,以及车辆在x位置的车速。输出是转向,齿轮,加速度和刹车值。该网络按照DQN的相同目标进行端到端训练。

为了将问题表示为分类问题,对动作(转向、齿轮、刹车、加速度)进行了平铺和离散化。在另一个设置中,按照DDAC的策略梯度方法将操作作为连续值执行。结果表明,两种情况下均能成功保持车道。然而,在DQN的情况下,删除记忆重放技巧(Qlearning)有助于更快地收敛和更好的性能。此外,DQN情况下动作的平铺编码使得转向动作更加突兀。另一方面,使用DDAC连续策略有助于平滑操作并提供更好的性能。
在这里插入图片描述
同时也测试了具有示范行为的学徒学习。实验装置与上面描述的DQN类似。所演示的行为是从一个比例控制器获得的,它试图保持车道,同时限制速度。监管水平逐渐降低(ε因素),所以当为0.5时,意味着50%的动作来自模型,50%来自p-controller。在ε=0时,模型完全处于控制之中。采用回归神经网络对模型进行拟合。结果是一个成功的车道保持行为与速度限制。附录部分提供了Youtube视频链接,用于演示训练和车道保持。

结论

本文综述了近年来深强化学习领域的研究进展。然后,我们提出了一个框架的建议,为自主驾驶端到端深度强化学习 pipeline网络集成RNNs考虑POMDP场景。我们将注意力模型集成到框架中,利用 glimpse 和action网络将CNN内核指向与驱动过程相关的输入区域,从而提高了计算复杂度。对车道偏离警示系统算法进行了框架测试,并提供了学习成功的测试视频。我们未来的工作包括在一个模拟环境中所提议的框架,其中传感器和执行器是人工控制的地面真相。这可能导致框架扩展到实际驾驶场景。

附录

使用DQN进行DRL培训:
https://youtu.be/hktC8sGURJQ
使用DDAC进行DRL培训:
https://youtu.be/OtuKpWew6UI
DRL驱动演示使用回归神经网络:
https://youtu.be/RxIkdKGtzTE

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值