这是arxiv上最新发表的一篇前沿交叉综述报告。主要讨论了如何使用深度强化学习方法解决智能交通系统问题,特别是智能信号灯控制问题。本公众号将分4次发布本综述报告的翻译,仅供大家参考学习。
获取英文原论文"强化学习智能交通"。
系列预告
- 深度强化学习智能交通 (I) :深度强化学习概述
- 深度强化学习智能交通 (II) :交通信号灯控制表示为 Deep RL 问题
- 深度强化学习智能交通 (III) :Deep RL 在交通信号灯控制中的应用
- 深度强化学习智能交通 (IV) : 自动驾驶、能源管理与道路控制
到目前为止,我们已经讨论了 AI 对交通系统的重要性以及强化学习的理论背景。Deep DL 在智能交通系统中的一个主要应用领域之一为交叉口信号控制。大部分已有工作都是面向应用的,因此提出的方法在许多方面会有所不同,例如用应用 deep DL 使用不同的技术提出不同的交叉口模型来监控交通,使用不同的状态-行动-奖励表示来刻画 RL 模型,以及使用不同的神经网络结构等。因此,对不同的方法直接做性能对比通常十分困难。
在这些应用中,在交通信号控制中心实现一个学习算法(deep RL)控制交通信号适应交通流。首先,控制单元收集状态信息。状态信息可以是不同的格式,例如排队长度,汽车位置,车速等。然后,控制单元基于 deep RL 方法给出的策略采取行动。最后,智能体(控制单元)获得一个奖励信号。通过这些步骤智能体尝试找到能够最小化交叉口拥堵的最优策略。
在模拟器使用 RL 算法解决 TSC 问题需要一个好的问题形式化,包括状态、行动、奖励的定义,以及神经网络结构的设计。在本节,我们讨论在交通模拟器中这些主要的 deel RL 配置。
1 状态
学习性能与准确和具体的状态定义高度相关。在用 RL 应用于交通信号灯时,已有工作提出了很多不同的状态表示。文献[28]和[29]使用最初的 DQN [19]相同的方法,将原始的 RGB 图像作为状态表示。另一种类图像的状态表示方法是获取受控交叉口的快照,以形成车辆的位置和速度[30]。
在 TSC 应用中,类图像表示格式,称为离散交通状态编码(DTSE),是最流行的状态定义方法[29,31-39]。研究人员之所以喜欢使用 DTSE,是因为它能从交叉口获得最高的可用分辨率和一组现实的信息。假设交叉口有 n 条车道,每个交叉口被划分为几个单元,每个单元的大小平均为一辆车,从交叉口的停车点开始到 m 米后。车辆的速度、位置、信号相位和加速度在 DTSE 中以单独的阵列显示。不同的研究者使用上述四种输入类型的变种。例如,一些研究中同时选择速度和位置[31,33],另一些研究者只选择上述四种输入中的一种(例如汽车位置)[23,29]。
DTSE 只考虑车道属性,文献[30]在输入状态定义中考虑完整的摄像头视角,包括路侧信息。如今,许多交叉口都有高质量的摄像头监控交叉口的交通。为了增强 DTSE 类型的状态表示,可以很容易地扩展这些设备来监控连接到交叉口的道路。
另一种常用的状态表示方法是使用一个基于特征的值向量。在值向量状态表示与基于车的状态表示不同的是,每个车道特定信息的平均值和总和表示在一个向量中。队列长度、相位周期中的累积等待时间、车道上的平均速度、相位持续时间(绿色、红色、黄色)和每条车道上的车辆数是用于状态表示的一些常见特征。这些信息的组合也是从交叉口中收集而来[40-43]。使用这些信息的一个优点是它们可以很容易地被道路传感器或环路检测器收集。还有一些其他研究人员不常用的独特交通特征,例如基于车道检测器最大速度的评分[41]、信号控制阈值指标[44]和左转侵占[45]等。
DTSE 和特征向量这两种常见的状态表示如图3所示。
图3 两种主要的状态表示:DTSE 矩阵(中)和基于特征的向量(右)。左图显示的用对应的基于汽车的状态数组的交通模型。每一个格子表示一辆车。中图中的矩阵显示的是一个交叉口的完整矩阵,每条路用不同颜色表示。右图表示基于特征的状态向量,每一个格子表示一个车道。
对于有多个交叉口的 TSC 模型,状态定义还包括临近交通信号灯信息,例如信号相位,汽车数量和平均车速等[34,44,46]。
2 行动
RL 算法在接收到状态后从一组可能的行动中采取某个行动对学习有着至关重要的影响。在单个四路交叉口,每一个方向都由红灯、绿灯和黄灯控制。有很多单交叉口的行动选择,最常用的选择其中一个可能的绿灯相位。另一个二元行动可以设置为保持当前相位还是改变其方向。第三个不太常用的行动模型是根据预先定义的长度来更新相位时长。
对于单交叉口,主要有四种可能的绿灯相位:North-South Green (NSG),East-West Green (EWG),North-South Advance Left Green (NSLG) 和 East-West Advance Left Green (EWLG)。在某个相位的绿灯相位期间,汽车向交叉口允许的方向前进。如果行动设置为选择其中一个可能会的绿灯相位, deep RL 智能体在每个时间 t 选择四个绿灯相位中的一个。在黄灯和红灯转移后,选择的行动在交通灯上执行。
早期的应用将相位定义简化为 NSG 和 EWG 两种,而不考虑左转[32,40]。在另一种二元行动模型中,绿灯相位时长是预先定义的,例如NSG→EWG→NSLG→EWLG,智能体决定是保持在当前相位还是转移到下一相位。如果智能体决定改变相位,则黄灯和红灯转换需要先执行完,以确保交通流的安全[33,37,38,42,47]。
大部分应用考虑的是离散的行动,即从一组行动集合中选择某个行动。当然,也有少量工作考虑连续的输出,仅仅控制下一个相位的时长[20]。这种类型的行动定义适合多交叉口的情形。基于预先定义的最小和最大相位时长,算法为当前的相位预测一个合适的时间长度[41,48]。
3 奖励
在强化学习中,状态可以是一个特征向量或高维矩阵,行动可以是连续值或者离散选择的向量。然而,奖励总是标量值,且为交通数据的函数。在强化学习中奖励的作用是分析某个状态下采取某个行动的质量,也即对智能体采取特定行动的惩罚或奖赏。
等待时间、累积延迟和队列长度是 TSC 中最常见的奖励定义。等待时间可以所有汽车停留时间的总和来表示。延迟是指连续绿灯相位中等待时间的差。队列长度针对交叉口中每个车道进行计算。
美国公共道路局(BPR)在交通规划中定义的一个特殊拥堵函数也被一些工作用来作为奖励的定义[34,47]。在另一些工作中,交通数据的绝对值被用来定义奖励,其他工作也使用交通数据的负值和平均值来定义奖励。
4 神经网络结构
在 deep RL 中,深层神经网络的结构也对学习有着重要的影响。在 TSC 领域,研究者提出了很多不同的网络结构。多层感知机(MDP),即标准的全连接前馈神经网络模型,在传统数据分类中是一个有用的工具。卷积神经网络(CNN)是 MDP 使用核滤波器的一个扩展,在将图像映射为输出方面取得了很好的效果。
标准的 DQN 使用 CNN 网络结构,将连续的原始像素帧作为状态定义。有很多 TSC 领域的论文在 DTSE 状态定义下使用 CNN 作为网络结构(见图3,[31,33,49])。
残差网络(ResNet)通常用来解决基于 CNN 的深层网络结构的过度拟合问题[34]。另外一种在图中进行操作的基于卷积的网络结构是图卷积网络(GCN)。
循环神经网络(RNN),例如长短期记忆(LSTM)常常用户时间序列数据。由于 TSC 控制通常是时序进行,RNN 也被用于深度强化学习场景中[35,37]。另外一种神经网络模型是自编码器,可以为高维数据数据学习低维子空间表示,通常被用于清洗输入数据中的噪音[40]。
5 模拟环境
早期的一个交通模拟器是基于 Java 的 Green Light District (GLD) 模拟器[51],最开始提出来解决基于强化学习的 TSC 问题。许多研究论文在 GLD 上进行实验(见表II)。
最流行的开源交通模拟器是 SUMO (Simulation Urban Mobility)[52]。开源平台允许用户按照他们自己的目的自由地修改模拟器。SUMO 支持用户通过 Python 中的交通控制接口库 TraCI 来与环境进行交互。不同的交通模型可以动态地模拟,包括私家车、公共汽车和行人等。
AIMSUN 是一个商业交通模拟器,由西班牙交通模拟系统公司设计和销售[53]。Paramics 是最流行的交通模拟器之一,是英国 Quadstone Paramics 公司发布的[54]。研究人员更喜欢使用 VISSIM, 因为它和 AIMSUN 类似,与 MATLAB 的交互更好。