第9章 强化学习和深度神经网络在自动驾驶中的应用

沙万·塔哈·穆罕默德*,安德烈亚斯·比廷*,格尔德·阿舍德*和古多·达尔特曼†
*亚琛工业大学通信技术与嵌入式系统研究所(ICE),德国亚琛, †特里尔应用技术大学 软件系统研究所,德国特里尔

1 引言

1.1 动机

近年来,自动化驾驶领域 increasingly 成为研究的焦点。例如,汽车制造商 already 提供多种辅助程序,可在 long distances 上接管驾驶员的工作。自动驾驶分类分为六个阶段(国际,2017年)(图1)。

目前,汽车行业正处于3级水平。这意味着汽车可以自主行驶一定距离,驾驶员只需处于观察位置,并在发生故障时进行干预。汽车制造商的目标是达到至少4级水平。在此级别,汽车能够完全自主驾驶,驾驶员可同时从事其他活动。辅助程序的设计不仅旨在使驾驶更加舒适,也更安全。最近的分析表明,超过90%的事故是由人为失误造成的。解决这一社会问题的一个可行途径是人工智能(AI)。构建一种能够在各种场景中始终保持100%警觉并具备专业技能的自动驾驶人工智能,将是一大进步。此外,车辆应能够通过传感器和车辆间通信实现超越人类感知能力的行为。同时,未来的智慧城市借助物联网和新型传输和存储系统为我们打开了一个全新的世界。这些城市可以在仿真环境中建模,并通过真实世界数据进行输入,从而使仿真更加逼真。利用大数据进行真实世界仿真,交通拥堵、交通状况或工作负载等场景便可模拟。

能够被真实地模拟出来。这使得在仿真环境中训练用于自动驾驶的人工智能变得容易。这提供了许多优势,例如某些场景在现实世界中无法得到充分训练。仿真还可以加速并具有可扩展性,从而节省大量时间和资金。目前研究处于开发阶段,正在探讨人工智能的局限性以及在仿真中进行训练的可行性。

1.2 目标

汽车行业中对安全性和舒适性的追求催生了应对自动驾驶挑战的多种解决方案。其中一种可能的方法体现在Mohammed 等人 (2018)的硕士学位论文中。该研究探讨了强化学习与深度神经网络在自动驾驶中的应用。

基于此项研究,将开发一种用于自动驾驶的行为决策模型。同时,也探讨了人工智能在多大程度上能够评估复杂交通状况,从而最终实现自主驾驶的问题。为此,正在开发一个尽可能真实地模拟车辆进入环岛过程的仿真系统。所有道路使用者均配备合适的驾驶员模型,道路交通中也遵循常规的规则和法规。学习模型应能够对不同类型的驾驶员和周围交通做出响应。该模型应在仿真中的环岛场景下运行,且设计时需确保其具备向现实世界中其他环岛场景推广的基本可迁移性。车辆(智能体)应能够自主地驶入和驶出环岛。综上所述,对自动驾驶汽车有以下要求:

示意图0

  1. 智能体应能够通过驾驶行为区分汽车。智能体将汽车分为激进型驾驶员和防御型驾驶员,从而能够为自己推导出适当的反应。
  2. 应尽快完成路线行驶,并且必须始终维持允许的最高速度。
  3. 应始终与周围所有汽车保持安全距离。该安全距离与智能体的速度相关。

1.3 相关工作

“自动驾驶的机器学习”这一课题并非新鲜事物。不仅在仿真环境中存在不同的实现,也在现实世界中得到了应用。DAVE项目是最早开发出用于驾驶汽车的端到端解决方案的项目之一(DARPA,2004年)。为此,通过监督学习训练了一个神经网络。数据通过人为操作采集,该汽车能够在无事故的情况下行驶20米。多年后,英伟达的一组开发人员在马里乌什·博亚尔斯基(2016年)的研究基础上开发了DAVE‐2。该项目使用了现代硬件,创建了一个能够在城市环境中驾驶完整车辆的自主代理。DAVE‐2中的神经网络仅以车辆摄像头拍摄的摄像头图像作为输入。

DAVE和DAVE‐2均基于人类驾驶员的数据采用监督学习。数据采集是一个耗时的过程,需要大量人力,并且数据必须可靠且正确地收集。特斯拉训练人工智能的方法就是这一点的一个很好例子。每天,世界各地的数千辆汽车都在收集需要标注和处理的数据,参见特斯拉人工智能总监卡帕西(2018年)的演讲。因此,在机器学习过程开发中,仿真环境的优势巨大。仿真可以随时扩展或修改。为此,需要一个足够真实的仿真环境。这可以通过向仿真系统输入来自物联网设备和其他传感器的大数据来实现。来自亚琛工业大学(2018年)的CERM项目提供了一个小规模实施的示例。由各种建筑模型组成的交叉路口构建套件将能够对城市环境中的交通和基于通信的功能进行真实研究。实际测试中获得的数据被映射到仿真环境中,并外推至更大交通区域。在仿真中进行人工智能训练并在实际应用中使用的可行性基本证明,可由萨迪吉和莱文( 2016年)提出的(CAD)2RL项目提供。他们展示了令人鼓舞的结果:在一个仿真环境中,使用名为Q学习的离散强化学习算法训练四旋翼直升机的避障功能。有趣的是,他们仅使用合成数据进行训练,并将智能体直接应用于现实世界,而无需对网络参数进行任何微调即取得了成功。

来自米尼等人(2013年)的深度Q网络(DQN)是对Q学习的扩展。他们在

2013年提出了基于图像的深度Q学习,当时DeepMind团队成功使用卷积神经网络(CNN)学习Q函数,使其在多种Atari游戏中的表现超过了专业人类玩家水平。他们的DQN算法的唯一输入是游戏状态图像和奖励函数值。最令人印象深刻的是,这篇论文使用单一学习范式成功学会了多种游戏——这种方法的通用性非常强大。2016年,Shalev‐Shwartz等人(2016年)提出了“借助强化学习方法实现自动驾驶”的问题。与普遍观点相反,Shalev Shwartz教授认为强化学习的弱点在于其假设具有 “马尔可夫”性质。所有常见的强化学习类型都基于马尔可夫决策过程 (MDP)的优雅描述。在此假设下,决策只需基于当前状态和动作即可做出,过去的所有状态和动作在当前决策中不再需要考虑。Shalev Shwartz教授重新表述了该问题,并采用了一种使用两个网络的解决方案。一个网络学习环境行为,并被训练用于预测下一步;另一个网络则借助第一个网络进行训练,旨在产生可靠的动作。这一切都在仿真环境中训练完成,输入包括物体的数据坐标、速度和加速度值。根据 Shalev‐Shwartz等人(2016年)的说法,他们的解决方案最可靠地解决了自动驾驶的问题。

2 信号模型

2.1 场景

本研究的目的是在仿真环境中利用强化学习方法学习一种用于行为决策的模型。该学习模型应能够对不同类型的驾驶员和周围交通做出反应。

该模型应在仿真中的环岛场景下正常工作。为此,正在开发一个尽可能真实地模拟进入环岛过程的仿真系统。所有道路使用者均具有相应的驾驶员模型,交通中遵循德国交通规则。

示意图1

当智能体进入道路时,回合立即开始,如图2右上角的白色圆圈所示。图2中所示。当智能体到达指定目的地时,回合结束,以图2中的白色十字标记。图2中所示。当智能体引发事故或经过固定步数后,回合也会结束。成功回合主要通过智能体在环岛内与其他所有车辆的安全距离来衡量。只有当智能体无事故地抵达目的地时,回合的完成才算成功。第1.2节中对智能体的其他要求也以奖励的形式加以考虑。该奖励是一个参考值,用于评估智能体通过地图的表现“好坏”。

由于智能体会以负奖励的形式受到“惩罚”

对于任何不符合我们要求的第3.2.2节。在仿真开始时,地图上没有汽车,既没有智能体也没有其他道路使用者。在回合开始之前,有一个初始阶段,用于在环岛及其周边区域建立交通流。然后将智能体放置在地图上,回合正式开始。构成交通的所有汽车都已具备完整的驾驶员模型,能够独立地在交通中行驶。驾驶员建模由Python库SUMO‐TraCI提供。

示意图2 )

示意图3 )

图3A显示了一张没有交通和智能体的空地图。白色圆圈标记了感应线圈。这些“板”是被动元素,稍后在编程中会变得重要,但现在应忽略它们。图3B显示了一张有许多道路使用者的地图。回合开始后,智能体必须在交通中移动。它必须在不发生事故且遵守交通规则的情况下到达目的地。为了增加对智能体的要求,已实现了一些“困难”。从图 3B可以看出,交通由两种不同类型的汽车组成。白色圆圈中的汽车表示具有激进型驾驶员建模的汽车,白色矩形中的汽车表示具有防御型驾驶员建模的汽车。基于Shalev‐Shwartz等人(2016)的Mobileeye论文,我们的仿真得到了扩展,因为强化学习算法在处理此类任务时存在非常大的困难。此任务并非基于马尔可夫结构的显式建模。

示意图4 )

示意图5 )

示意图6 )

这在第3.2节中有更详细的解释。这两种不同的驾驶员类型使智能体进入环岛的难度显著增加。原因是智能体必须首先评估环岛中的驾驶员属于哪种类型。考虑到仅将周围汽车的加速度、速度和位置值传递给智能体,这一判断相对困难,参见第2.2节。根据驾驶员类型的不同,智能体的理想行为如下:如果在环岛中检测到激进型驾驶员。

智能体接近由图4A中的白色圆圈标记的环岛。在环岛内靠近智能体的位置有一辆激进型车辆,由

白色矩形。激进型驾驶员“看到”智能体想要进入环岛,于是加速行驶,希望智能体在其后方进入环岛。智能体识别出该车辆为激进型驾驶员,因此降低速度,在即将进入环岛前停下(图4B)。在激进型驾驶员通过且无其他交通阻碍之前,智能体不会进入环岛(图4C)。当遇到防御型驾驶员时,智能体因拥有通行权而无需停车直接进入环岛。

2.2 传感器信号模型

任何行为决策模型的基础都是“良好的输入”。对于自动驾驶系统而言,正确地感知环境至关重要。所使用的传感器的质量和数量对系统的性能具有决定性影响。因此,在总体规划的早期阶段就充分考虑不同传感器类型及其数量的设计显得尤为重要。无论是现实世界中的驾驶还是仿真环境中的驾驶,准确获取环境及周围交通状况都是必不可少的。在本硕士学位论文的范围内,我们仅限于在仿真环境中对智能体进行训练和评估。因此,本文并未过多关注物理上的传感器技术,而是更多基于仿真传感器数据开展工作。仿真传感器数据由仿真过程中获得的直接信息生成。仿真中的每个道路使用者都具有唯一的坐标x,y(单位:米)、尺寸(单位:米)以及行驶方向 ϕ(单位:度)。此外,还可以通过仿真精确设置并读取其速度。

首先,必须明确仿真中的哪些信息应作为输入传递给模型。在本例中,模型的输入表示为自主驾驶系统生成的传感器数据。该问题目前尚无明确的解决方案。为了与其他先前的研究实现更好的可比性,本文参考了Shalev‐Shwartz等人(2016)的研究方法。仅将周围汽车的加速度、速度和位置信息传递给智能体。物体位置的传递有两种基本方式:第一种是笛卡尔坐标系(x‐、y坐标);第二种是极坐标(到物体的距离 r和角度 ϕ)。在此,我们对Shalev‐Shwartz等人(2016)的方法进行了部分调整,以实现向实际场景更好的通用可迁移性。该研究中使用极坐标将位置值传递给智能体,这意味着智能体接收到的是移动物体的欧几里得距离r和角度 ϕ。考虑到自动驾驶汽车通过激光雷达、雷达和摄像头识别周围交通,因此传递距离和角度值的方式最接近这些传感器的实际工作方式。这样,我们的模型实现了向现实应用的良好通用可迁移性。此外,这种传递方式也最接近直觉性的人类驾驶行为。周围汽车的位置将以相对极坐标的形式传递给模型,即坐标原点始终位于

智能体是。总之,可以说该模型将接收关于一个物体的四条信息。(1)将其描述为一个向量x!object,包含四个元素。

$$
\vec{x}_{\text{object}} = \begin{bmatrix} a \ v \ r \ \phi \end{bmatrix}
$$

with
a:目标物体的加速度
v:目标物体的速度
r:到目标物体的距离
ϕ:到目标物体的角度
角度 ϕ 表示前方车辆相对于智能体“行驶方向”的偏差。简单来说,它指出了智能体需要向左或右转多少度才能看到对应的车辆。 ϕ 的精确计算如下所示:

$$
\phi = \theta_C - \theta_D
$$

with
θC:前车的角度
θD:智能体行驶方向的角度

$$
\theta_C = \cos^{-1} \left( \frac{y_c}{r_c} \right)
$$

$$
y_c = y_{\text{car}} - y_{\text{agent}}
$$

with
yagent:智能体的绝对y坐标
ycar:被观测车辆的绝对y 坐标
rc:智能体与被观测车辆之间的欧几里得距离

了解仿真中的哪些信息作为输入传递给模型以及以何种形式提供这些信息非常重要。在本研究中,“分配”各个模型输入显得尤为重要。因此,我们仅考虑仿真中的部分车辆,并将智能体周围的区域划分为“固定区域”。图5 显示了线性函数g(x)(虚线),该函数将空间划分为两个半区。

此时,智能体具有前部区域和后部区域。并非仿真中所有周围的车辆都作为输入传递给模型,而是仅将前三辆前方车辆和后方最近一辆车传递给模型。

此外,为了增强与实际的关联性,对测量和传感器噪声进行了建模。

汽车行业中距离测量中的噪声范围在论文 Goehring和Co. (2011) 和 Dominik Kellner等人(2013)中得到了广泛研究。在论文 Dominik Kellner等人(2013) 中还研究了不同的方法及其噪声

在仿真中评估了幅值。基于之前这两项研究,假设观测到的汽车的速度、加速度、距离和位置具有以下噪声值: 为了将噪声添加到仿真中的测量值中,首先以零均值 μ高斯分布的形式计算标准差为 σ的噪声g(x),参见公式(4)。 σ各个噪声的值来自表 1 且 μ所有噪声值的均值假设为0。

$$
g(x) = \frac{1}{\sqrt{2\pi\sigma^2}} e^{-\frac{(x-\mu)^2}{2\sigma^2}}
$$

示意图7

标准差
速度 0.25米/秒
加速度 0.6米/秒²
距离 0.07米
角度 2.5°

然后将噪声 g(x) 添加到相应的值(公式 1)中,之后才作为输入传递给模型。这可以用以下公式 (5)、(6)描述:

$$
\vec{\hat{v}} = \vec{x} + \vec{g}(x)
$$

$$
\vec{\hat{v}} = \begin{bmatrix} \hat{a} \ \hat{v} \ \hat{r} \ \hat{\phi} \end{bmatrix} = \begin{bmatrix} a \ v \ r \ \phi \end{bmatrix} + \begin{bmatrix} g(x) {\text{acceleration}} \ g(x) {\text{speed}} \ g(x) {r} \ g(x) {\phi} \end{bmatrix}
$$

3 机器学习

3.1 深度学习和神经网络

深度学习是机器学习的一个领域,涉及深度神经网络。神经网络是受人类大脑启发的非线性函数。神经网络也可被视为一种“黑箱”模型,因为输入值和输出值之间的关系是基于给定的实验数据形成的。对网络进行“训练”的目的是尽可能准确地将给定的输入向量映射到给定的输出向量。

3.1.1 前馈网络

神经元,也称为单元或节点,通过权重相互连接。在前馈网络中,信息的流动从输入层神经元经过隐藏层传递到输出层神经元。图6展示了一个多层前馈网络。由于信息、信号或刺激的传递仅在一个方向上进行,因此该网络被称为前馈网络。这也被称为多层感知机(MLP),因为它至少包含三层。

示意图8

处理单元,即神经元,接收来自外部世界(网络输入)或内部世界 (前一个神经元)的信号,并通过四个步骤对其进行处理,如图7(本吉奥,2009)所示。

3.1.2 循环神经网络

神经网络的另一种变体是循环神经网络(RNNs)。与前馈网络不同,这类网络具有反馈连接。在这种情况下,某一层的神经元会连接到同一层或前一层的神经元。这种网络的示意图如图8所示。

  1. 直接反馈 (Wd):神经元将其自身的输出再次用作额外的输入。

示意图9

示意图10

  1. 间接反馈(Wi):神经元的输出作为额外输入提供给后一层的神经元。
  2. 横向反馈(Wl):神经元的输出作为额外输入提供给同一层的邻近神经元(克里斯·V·尼科尔森,2018)。
3.1.3 损失函数

损失函数是神经网络的基础,也是训练人工神经网络的算法。训练或学习的目标是通过这些算法最小化计算输出值与期望的目标输出之间的差异。这通过调整神经元之间的权重来实现,称为学习过程。这是因为知识或已学习的内容存储在连接各个神经元的权重中。权重的改变即为学习过程。学习算法的目标是根据连接权重最小化总体误差,从而训练人工神经网络。例如,可以通过使用反向传播学习规则来实现。通过反复输入训练数据,利用最小二乘法公式(7)方法,最小化期望输出与计算输出之间的误差,从而修改权重。权重的改变分为三个步骤:

  1. 前向传递:信息(或刺激和信号)从前向传递,从输入层通过隐藏层传输到输出层。
  2. 误差确定:确定误差,即期望输出与计算输出之间的差异。然后,误差信号从输出层通过隐藏层传回输入层。如果误差足够小且未超过阈值,则可以停止训练阶段。
  3. 反向传递:误差信号向输入层传播,并依次调整神经元之间的权重以减少误差。

示意图11

在给定的公式中,变量按如下方式赋值: 误差:是期望输出与目标输出之间的误差,n:呈现给网络的模式数量,ti:目标期望输出,oi:计算得到的实际输出。

损失函数对于训练至关重要。针对不同的任务和网络结构,存在多种损失函数。

3.2 强化学习

开发各类模型最有用的方法之一是使用神经网络的机器学习。这些方法可以以三种方式实现:监督学习、无监督学习和强化学习。后者是本文的研究主题。其基本思想是独立学习一种策略。智能体不会被告知在何种情况下哪种动作最佳,而是在某些时间点获得“奖励”。最优策略(策略)的学习是在仿真中完成的。强化学习需要一个与环境交互并希望达到特定目标的学习代理。该智能体应始终在考虑环境的情况下行动,并关注原始问题中最关键的方面。核心始终是动作分析,以达到特定状态,参见图10。与环境的交互对智能体非常重要,因为他无法自行评估自己的动作。但在一次

示意图12

动作执行后,环境对动作进行评估并将其返回给学习代理。这使得任何现有的估值都可以包含在所执行动作的加权中。随着时间的推移,智能体学会以最佳方式评估其动作,从而以最优的方式实现其目标(萨顿和巴托,2017)。

仿真可用于为强化学习提供输入的两种不同方式。

  1. 图像作为输入:从仿真的图形表示中分支出一个“快照”,并将其作为输入传递给神经网络。目前Atari游戏最流行的深度学习解决方案就是采用这种方式(刘,2017)。
  2. “物理值”网络:另一种方法是在“物理”层面进行操作。在训练过程中,可以传输物体坐标、速度信息或距离值等物理值,而不是图像(仿真的“快照”)(Shalev‐Shwartz 等人,2016)
3.2.1 马尔可夫决策过程

如 萨顿和巴托,2017 所述,强化学习基于 MDP (S,A,R,P),其定义如下:

  • S:有限状态集
  • A:有限动作集
  • P:转移概率
    $$
    P(s_{t+1}|s_t, a_t) \quad s_t,s_{t+1} \in S, a_t \in A
    $$
  • R:期望奖励。描述立即获得的收益/奖励。
    $$
    R: S \times A \rightarrow \Re
    $$
  • γ:折扣因子。
    $$
    0 \leq \gamma \leq 1
    $$
  • π:策略将确定性稳态映射到动作。
    $$
    \pi: S \rightarrow A
    $$
  • 随机策略:状态在动作分布中的函数。
  • 目标:找到一个策略 π,使其最大化期望累积奖励。
    $$
    E_{\pi, P} \left[ \sum_{t=0}^{\infty} \gamma^t R(s_t, \pi(s_t)) \right]
    $$

如果到达某个后继状态的概率仅取决于当前状态和所选动作,则我们称之为马尔可夫决策过程。决策仅基于当前状态,所有先前的状态都被忽略。例如双陆棋或国际象棋就属于这种情况。所有相关信息均由棋子的当前位置描述,而达到该局面的先前走法并不重要。当满足以下方程时,即存在一个马尔可夫决策过程:

$$
P(s_{t+1}|s_t, a_t, s_{t-1}, a_{t-1}, …, s_0, a_0) = P(s_{t+1}|s_t, a_t)
$$

$$
R(s_{t+1}|s_t, a_t, s_{t-1}, a_{t-1}, …, s_0, a_0) = R(s_t, a_t)
$$

马尔可夫性质并不总是成立,但通常会被假设,因为这通常是强化学习算法的关键前提条件。

3.2.2 奖励

如前所述,智能体的目标是长期最大化其奖励。因此,不仅要选择在下一步获得最大奖励的动作,还需要考虑未来更远的奖励。对于具有一个或多个终止状态的阶段性任务,长期奖励可以简单地定义为所有后续奖励的总和。因此,时间t的长期奖励Rt由以下公式给出

$$
R_t = r_t + r_{t+1} + r_{t+2} + r_{t+3} + …
$$

然而,对于连续性任务来说,这是不可能的。与阶段性任务不同,连续性任务没有最终状态,因此奖励将无限增长。为此,通过参数 $0 \leq \gamma \leq 1$ 削弱未来动作的奖励。

$$
R_t = r_t + \gamma r_{t+1} + \gamma^2 r_{t+2} + \gamma^3 r_{t+3} + … = \sum_{k=0}^{\infty} \gamma^k r_{t+k}
$$

3.3 策略

智能体根据其当前策略 $\pi_t$ 选择动作。该策略是状态到动作的映射。更准确地说,它决定了在状态 $s$ 中选择动作 $a$ 的概率。

$$
\pi(s, a) = P(a = a_t | s = s_t)
$$

这样的策略在最简单的情况下可以用一个表格表示,但也可能是一个复杂的函数,例如神经网络或决策树。

3.3.1 价值函数

在强化学习中,通常尝试估计某个状态的价值或某个动作的价值。该价值描述了某个特定状态的好坏程度。该价值通常被定义为期望奖励,如前一节所述。这个奖励取决于当前使用的策略。因此,针对该策略的状态价值函数描述如下:

$$
V_\pi(s) = E_\pi[R_t | s_t = s] = E_\pi\left[\sum_{k=0}^{\infty} \gamma^k r_{t+k} | s_t = s\right]
$$

$E_\pi$ 是在始终遵循策略 $\pi$ 的情况下的期望值。动作价值函数的定义看起来类似:

$$
Q_\pi(s, a) = E_\pi[R_t | s_t = s, a_t = a] = E_\pi\left[\sum_{k=0}^{\infty} \gamma^k r_{t+k} | s_t = s, a_t = a\right]
$$

借助贝尔曼期望方程,价值函数也可以表示如下(Lillicrap 等,2015):

$$
V_\pi(s) = E_\pi[r_t + \gamma V_\pi(s_{t+1}) | s_t = s]
$$

$$
Q_\pi(s, a) = E_\pi[r_t + \gamma Q_\pi(s_{t+1}, a_{t+1}) | s_t = s, a_t = a]
$$

3.3.2 时序差分学习

时序差分(TD)学习是一种强化学习方法。与普通的强化学习不同,采用TD学习算法的智能体不会仅在收到奖励时才进行调整,而是在每次动作后基于估计值进行更新。更准确地说,TD方法在每次动作后,利用当前估值函数对奖励 $r_{t+1} + \gamma V(s_{t+1})$ 的估计来更新其估值函数。蒙特卡洛和 TD 方法对状态价值函数做出不同的估计。蒙特卡洛使用对实际奖励的估计:

$$
V(s_t) \leftarrow V(s_t) + \alpha [r_t - V(s_t)]
$$

公式(24)中的目标是时间之后的实际奖励(目标:$r_t$)。参数 $\alpha$($0 < \alpha \leq 1$)被称为学习率。它决定了当前观测值在新估计中的权重大小。

Elena(2017)使用TD方法对状态价值函数的更新规则如下:

$$
V(s_t) \leftarrow V(s_t) + \alpha [r_{t+1} + \gamma V(s_{t+1}) - V(s_t)]
$$

公式(25)中的目标是对奖励的估计(目标:$r_{t+1} + \gamma V(s_{t+1})$)。在文献中,表达式 $r_{t+1} + \gamma V(s_{t+1}) - V(s_t)$ 通常被用作TD误差。由于在时间t时奖励$r_{t+1}$和后继状态$V_{t+1}$未知,因此首先执行一个动作$a_t$,然后在时间$t+1$进行更新。

示意图13

图11展示了一个使用公式(25)进行强化学习训练的例子。蓝色区域是智能体的起始位置。绿色区域标记了目的地。当智能体进入该区域时,它将获得 100的奖励。所有其他区域不提供奖励,即零。训练的目标是为所有区域(状态)分配一个值,以便智能体知道每个区域(状态)的好坏程度。这使得智能体能够采取恰好能导向最佳状态的动作(Jan Peters, 2016)。

类似于状态价值函数,动作价值函数也可以与TD方法结合使用。这被称为Q学习,是强化学习领域最重要的方法,由Watkins(1989)提出。

$$
Q(s_t, a_t) \leftarrow Q(s_t, a_t) + \alpha [r_{t+1} + \gamma \min_{a_{t+1}} Q(s_{t+1}, a_{t+1}) - Q(s_t, a_t)]
$$

Q学习的一种同策略变体由SARSA算法提供。与Q学习类似,该算法也使用动作价值函数。它在估计中使用公式(27)中的更新规则(Jan Peters, 2016)。

$$
Q(s_t, a_t) \leftarrow Q(s_t, a_t) + \alpha [r_{t+1} + \gamma Q(s_{t+1}, a_{t+1}) - Q(s_t, a_t)]
$$

3.3.3 策略梯度方法

策略梯度方法第3.3.1和3.3.2节中使用的算法略有不同。通常,需要尝试估计一个价值函数,然后从中推导出一个策略 $\pi$。与其他算法相比,策略梯度方法在处理稳态和动作空间方面表现良好。对于在高维空间中使用函数逼近的算法,其收敛保证非常少。即使是仅有两个状态的非常简单的例子,也可能导致算法振荡甚至发散。然而,策略梯度方法更加稳定,即使在困难条件下也能收敛。这之所以可行,是因为基于当前的权重,网络会直接利用回报持续调整其权重。

策略 $\pi$ 由参数向量$\theta$控制。$J(\theta)$ 是当前策略的性能度量,称为$\pi_\theta$(萨顿和巴托,2018)。

$$
J(\theta) = E_\pi\left[(1-\gamma)\sum_{t=0}^{\infty} \gamma^t r_t | \theta\right]
$$

$$
= \int_S (1-\gamma)\sum_{t=0}^{\infty} \gamma^t \Pr(s_t = s) \int_A \pi(a|s) r(s, a) ds da
$$

试图估计梯度 $\nabla_\theta J(\theta)$,然后根据该梯度改变参数向量 $\theta$。

$$
\theta_{t+1} = \theta_t + \alpha_t \nabla_\theta J(\theta)
$$

策略梯度算法采用一种迭代逼近的形式。从一个策略开始,基于累积奖励计算梯度,然后将其乘以学习率并加到当前参数上。

3.3.4 执行者‐评论家算法

策略梯度方法、价值函数和时序差分学习的优缺点在前面的章节中已作说明。所有单个算法的优点可以在一个单一方法中结合,而无需继承其缺点。Actor‐Critic方法正具备这样的前景。它具有良好的收敛行为,适用于连续动作空间,并且其核心采用确定性方法。与将智能体作为一个整体的方法不同,该方法被描述为两个组成部分:执行器和评论家。

其结构示意图如图12所示。

  1. 演员网络(生成策略函数):执行器根据环境的当前状态生成一个动作。这也被称为行为策略 $\mu(s)$。

  2. 评论家网络(生成价值函数):评论家基于时序差分或蒙特卡洛方法学习评估状态。为此,它需要状态和相应的奖励。也可以使用Q学习方法进行训练。在这种情况下,评论家网络必须获得演员网络的所选动作。

示意图14

从图12可以看出,评论家网络在学习过程中起着决定性作用。评论家网络也被称为估计策略。

这种演员‐评论家网络的优势在于可以同时学习两个不同的任务领域。因此,估计未来状态对于理解动作与状态之间的关系至关重要。另一方面,对于行为策略 $\mu(s)$,重要的是它能够选择连续且非强确定性的动作。在此处的具体步骤并未固定,可以根据评论家所获得的知识,采用多种方法来训练执行器(托马斯·德格里斯等人,2013)。

3.3.5 同策略与异策略

同策略算法在训练期间直接使用估计的策略来获取轨迹。这类方法的一个例子是策略梯度方法。被标记为异策略的强化学习算法通常使用自身独立于待优化策略的行为策略;该行为策略用于生成轨迹。例如,Q学习就是一种离策略算法。Q学习仅学习在哪个状态下哪个动作能够获得最佳值。然后将采取具有最高值的动作,参见第3.3.2节。

3.3.6 探索与利用

如第3.1.2节所述,策略是将状态映射到动作的方法。然而,在某些情况下,并不总是选择最佳动作才是合理的。例如在神经网络训练的初期阶段,其输出尚不可靠。此时有必要尝试尽可能多的不同动作以寻找较优的动作。但何时才算尝试足够、何时可以利用已获得的知识,则并不容易判断。这一问题在研究中被称为探索‐利用困境。通常,异策略算法(如Q学习)比同策略算法面临的问题更少,这是由于它们的学习算法会根据Q值函数和计算出的回报,每次独立调整网络的权重。第3.4节中的DDPG方法也利用了异策略算法的这一优势:评论家网络通过Q学习进行训练,而演员网络则可以独立尝试所有可能的动作(Lillicrap 等,2015)。

在 马蒂亚斯·普拉珀 和 马尔钦·安德里乔维茨(2018年) 的研究中证明,噪声对智能体的学习行为具有非常积极的影响。以下是马蒂亚斯·普拉珀研究的主要设置:

  1. 自适应参数噪声,
  2. 相关动作噪声,
  3. 不相关动作噪声, 以及
  4. 无噪声。

对于 DQN 和 DDPG 算法,在几乎所有环境中都表明,自适应噪声对学习行为具有积极影响。解决探索‐利用困境的一个良好方案是使用随时间递减的自适应噪声。这确保了在初期可以在各种状态下采样大量动作;随着过程推进,智能体应基于其经验进行决策,从而找到良好策略。

3.4 深度确定性策略梯度

Lillicrap 等(2015)提出的深度确定性策略梯度(DDPGs)方法基于著名的执行者‐评论家算法(Emami,2016),参见第3.3.4节。但它为演员网络引入了一种特殊的更新规则,称为“确定性策略梯度定理”。该内容将在第3.4.3节中详细讨论。Emami(2016)的博客中提供了非常好的总结。此处我们仅介绍最重要的细节,以限制本章节的范围并保持清晰。感兴趣的读者可在Emami(2016)处找到关于最新技术的非常详尽且有帮助的总结。

3.4.1 经验回放

基于神经网络的确定性策略梯度方法性能差,且常常无法收敛。作为对David Silver 等(2014)提出的DPG方法的补充,进行了一些关键改变,并重命名为DDPG。这些改进在训练神经网络时能够确保更好的收敛性,而这对于策略梯度算法来说是不常见的。其中一项创新是回放缓冲区。

回放缓冲区本质上是一个用于存储智能体收集的数据(状态、动作、奖励)的缓冲区。在存储了足够的数据后,缓冲区会按批次进行打乱,然后再从中批量提取数据用于训练。回放缓冲区具有固定大小,当达到该大小时,旧数据将被新数据覆盖。这种训练方式能够提供更好的收敛性,因为它防止了网络持续使用连续的数据进行训练。

3.4.2 分离的目标网络

另一个重要的改进是引入目标网络,以确保在使用DDPG方法进行神经网络训练时更具收敛性。目标网络是执行器和评论家网络的副本。其核心思想是,网络不应直接根据其输出(Q值 -> TD误差)来更新权重。

例如,评论家的目标网络与实际的评论家网络保持一定的距离,参见图 13。目标网络用于返回Q值以进行TD目标计算。然后使用当前的评论家网络计算并更新损失函数。这种方法可防止放大或反馈效应。该技术早前已在DQN学习中提出,用于稳定训练过程(Mnih 等,2013)。

3.4.3 神经网络权重的更新规则

具体而言,DDPG中的权重更新规则分为两个步骤:
1. 首先更新评论家网络的权重。这是通过TD目标$y_i$(公式31)和损失函数(公式32)完成的。从图13可以看出,在计算TD目标时,使用了目标评论家网络的输出。

$$
y_i = r_i + \gamma Q’(s_{i+1}, \mu’(s_{i+1}|\theta_{\mu’})|\theta_{Q’})
$$

$$
L = \frac{1}{N} \sum_i (y_i - Q(s_i, a_i|\theta_Q))^2
$$

从小批量回放缓冲区中取出一个样本,然后根据公式31计算TD目标。接着,使用正确的评论家网络中的Q值来计算TD误差(公式32)。注意,公式32使用索引$i$和小批量大小$N$而不是时间索引$t$,因为使用了回放缓冲区。

  1. 下一步将更新执行者网络。为此,DDPG/DPG 提供了一个特殊的更新规则,即所谓的“确定性策略梯度定理”,见公式33。公式(33)由大卫·银证明,并发表于论文David Silver 等(2014)中。因此,策略性能的梯度等价于DPG。

$$
\nabla_{\theta_\mu} J \approx E_{\mu’}[\nabla_a Q(s, a|\theta_Q)| {s=s_t,a=\mu(s_t)} \nabla {\theta_\mu} \mu(s|\theta_\mu)|_{s=s_t}]
$$

$$
\nabla_{\theta_\mu} J \approx \frac{1}{N} \sum_i [\nabla_a Q(s, a|\theta_Q)| {s=s_i,a=\mu(s_i)} \nabla {\theta_\mu} \mu(s|\theta_\mu)|_{s=s_i}]
$$

公式(34)展示了采样策略梯度。如第3.3.3节所述,梯度第3.3.3节 $\nabla_\theta J(\theta)$被估计,然后基于该梯度更新参数向量$\theta$(见公式30)。

示意图15

4 仿真

对于强化学习而言,拥有一个良好的仿真环境来进行训练至关重要。它不仅为网络提供作为输入的训练数据,还为损失函数提供奖励。

SUMO‐TraCI 库为此问题提供了一个快速且有效的解决方案。

  1. 仿真城市移动性:是核心仿真。其目的是模拟一个定义的场景。它用于汽车的交通与驾驶员建模。加速度、制动、距离的正确保持等都被适当设置。
  2. 交通控制接口:TraCI 使用基于TCP的客户端/服务器架构来提供对 SUMO 的访问。通过访问 SUMO,可以获取仿真对象的值,并在其运行期间操纵其行为dlr(2017)。

4.1 开发场景

SUMO中的Netedit工具非常适合创建地图。可以创建带有速度限制、十字路口、环岛等的道路,参见图14。

示意图16

随后会生成一些XML文件,用于确定仿真中存在多少辆汽车以及它们应在地图上的何处出现,参见公式(15)。SUMO的一个主要缺点是,汽车出现的时间及其行驶路线必须预先确定。此外,不同的驾驶员类型也必须事先定义,然后由SUMO相应地对汽车进行建模。可以设置多种驾驶特性,例如对最小距离的遵守、制动和加速行为、反应时间以及驾驶员的错误行为。许多可设置的参数对于实现真实仿真非常重要。特别是 SUMO库中的驾驶员模型非常出色,提供了真实且高质量的驾驶建模。

4.2 动态环境

在 第4.1节中,假设SUMO静态运行。所有信息必须以XML文件的形式提前传递给SUMO(图15)。这并不代表动态且灵活的真实仿真。例如可以通过Python来解决这一问题。为了弥补这些缺点,可以通过 Python生成xml文件,然后由SUMO导入。这样xml文件可以基本上随机生成,从而使车辆数量、出现时间或驾驶特性具有随机性。

4.3 测试平台

将使用十张不同的地图进行训练,尽可能真实地模拟进入环岛的场景。完整的训练限制为2000轮次。由于时间限制,训练无法继续进行。但 2000轮次应足以对训练进行可靠评估。通过绘制各回合的平均奖励值来表示训练过程。在本研究中,奖励使用智能体与周围物体之间的距离。此外,如果智能体未遵守速度限制或行驶过程中测量到过大的加速度变化率,则会受到负奖励。由此生成一个图表,用于指示智能体在训练期间的表现,见图16。该图表用作判断智能体是否遵循良好策略以及是否应继续训练的指标。为了了解智能体与“完美”驾驶行为之间的差距,改为与“理想”驾驶员进行比较。这可用于获得参考值,以比较当前训练距离最优奖励值还有多远。为了获得此参考值,访问了SUMO的驾驶模型。使用TraCI引导基于驾驶员模型的智能体完成仿真。执行了十轮次实验,并基于奖励函数计算了平均值。该值在相应图形中以直线形式绘制,参见图16中的浅灰色直线。SUMO的驾驶模型从2000年至 2012年持续扩展和改进Krajzewicz 等人(2012)。自2000年以来,已有18篇以上论文探讨SUMO及驾驶员建模。因此,驾驶员建模不断得到改进,可认为其适合作为参考模型。此外,DDPG方法有许多可设置的参数。表2 列出了所使用的部分超参数。

超参数 说明
小批量大小 32/64 两种批量大小的效果相当好
执行器网络学习率 10⁻⁴ 使用时权重更新的步长 ADAM优化器
评论家网络学习率 10⁻³ 使用时权重更新的步长 ADAM优化器
目标更新率 10⁻³/10⁻⁴ 两个批量大小都相当好
回放缓冲区大小 50,000 取决于剧集长度
预热阶段 64 取决于剧集长度
折扣因子 0.99 根据批量大小和任务

5 结论和未来工作

在本研究中表明,借助深度强化学习,可以生成用于环岛场景下自动驾驶功能行为决策过程的模型。具体而言,采用DDPG方法训练了一个智能体,使其能够针对不同类型的驾驶员和周围交通做出正确反应。该模型通过仿真的传感器数据进行训练,且所学习到的模型对噪声具有较强的鲁棒性。仅经过150轮训练后,该智能体获得的负奖励已少于SUMO驾驶行为建模,参见图17。尽管该智能体表现出良好的性能,但仍有许多方面可以进一步测试和改进。最基本的是将训练轮次扩展至 30,000–50,000回合。只有这样,智能体才能学会关注加速度变化率或速度限制等细节问题。

长短期记忆网络 :其他可能带来改进的因素包括使用长短期记忆网络。长短期记忆网络是本身由多个神经元组成的单元,具有记忆信息(即输入)的能力,即使这些信息来自过去。未来应研究长短期记忆网络对DDPG方法的影响。

SUMO仿真 : 所采用的SUMO仿真非常稳定且强大。因此,应进一步扩展SUMO仿真并延伸地图。也可以测试其他更具现实性且对人工智能更难理解的仿真。可能的仿真包括 Carla(2018)或 SynCity(2018)。重要的是要确定深度强化学习的边界在哪里。因此,了解是否有可能训练一个能够在整个城市地图上无错误运行的智能体将非常有趣。它应注意交通信号灯、行人、人行横道或环岛。

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐