随着城市化建设的进一步推进和经济的飞速发展, 汽车数量在不断飙升.据上海交通出行网统计, 截至2018年底, 上海市实有小客车规模突破500万[1].与此同时, 城市的交通需求与道路设施之间的矛盾日益突出, 交通拥堵也成为了城市发展过程中一个不可忽视的问题.近年来, 随着物联网与人工智能技术的发展, 智能交通系统成为了现代交通发展的方向[2, 3], 越来越多的人开始尝试从智能算法中寻求解决城市交通问题的方案, 利用物联网技术获取车辆状态以及道路设备状态信息, 然后再使用各种智能算法对获取到的信息进行分析, 给出缓解交通压力的操作建议[4, 5].
在城市交通中, 位于道路交叉路口处的交通灯是指引车辆通行的关键设备, 对出行效率起着至关重要的作用.合理的交通灯控制方案能够有效地缓解路口交通压力, 提高通行效率.传统的交通灯控制策略基本都是采用固定的时间间隔以及固定的相位序列来调整交通灯信号[6], 这种方式虽然简单, 但却无法适应不同的交通路况: 比如, 可能在某个十字路口只有一辆车或者只有一个方向上有车, 但它却不得不等待一轮红绿灯之后才能通过, 或者是等到了绿灯, 但绿灯时间不足以通过路口.因此, 如何设计一套智能交通灯控制算法, 使其能够根据路况动态改变交通灯相位, 就是一个非常有意义的研究课题.
近年来, 车联网技术的发展使得交通灯智能控制成为了可能: 通过GPS、传感器等设备, 车辆可以完成自身环境和状态信息的采集, 这些信息将通过互联网技术汇聚到中央处理器, 经过各种智能算法分析处理, 进而控制交通灯相位切换.强化学习完成的目标就是让智能体在与环境交互的过程中学习策略, 以达成回报最大化或实现某个特定目标[7].它根据实时反馈来调整动作的特征, 使其尤为适合解决智能交通灯控制问题.自从Thorpe等人[8]于1997年首次将强化学习方法应用于交通信号最优化控制以来, 各种基于强化学习的交通灯控制算法层出不穷[9-13].但对于大部分目前已有的工作而言, 它们的目标定位都是如何缓解道路交通压力, 即缩短车辆等待时间以及队列长度, 或者是提高路口吞吐率等.但是在实际场景中, 某些执行任务的特殊车辆, 比如警车、消防车或者救护车等, 它们对通行效率的要求更高, 相比于普通汽车, 应该具有更高的优先级来通过路口[14].在车联网场景下, 传统的控制特殊车辆优先通行的方法大多是基于信号抢占策略, 通过识别路网中特殊车辆的位置、速度与周围车流信息, 切换交通灯相位, 使其能够尽快通过路口.但这种方式往往会对路口的整体流量造成过大的干扰, 可能会导致道路发生大范围拥堵, 进而引起整个道路交通网崩溃.所以, 如何在强化学习算法中引入优先级策略, 平衡特殊车辆与普通车辆的通行效率, 是本文重点关注与解决的问题.
基于以上现状, 为了适应动态交通流变化, 并在控制特殊车辆优先通行的同时减少对普通车辆的干扰, 本文提出一种面向优先车辆感知的交通灯优化控制方法, 使用强化学习方法学到能够适应动态交通流变化的交通灯控制策略.为了实现优先车辆感知, 在设置状态时, 用不同的值对特殊车辆与普通车辆进行区分, 并在计算奖励时赋予特殊车辆更大的权重, 以实现对特殊车辆的优先处理.此外, 本文使用了Dueling DQN[15]结构来提高模型的学习效果, 并在训练过程中使用Double DQN[16]方法来避免过度估计问题.为了验证本文方法的有效性, 使用城市交通模拟器SUMO[17]分别在单路口场景与多路口场景中进行实验.结果表明, 本方法能够有效地提升路口通行效率, 在优先降低特殊车辆的等待时间的同时, 也能对普通车辆的等待时间有一定的优化, 并且能够应用于多路口场景中.
本文第1节主要介绍目前已有的利用深度强化学习方法控制交通灯以及控制特殊车辆优先通行的相关工作.第2节从问题定义和算法模型两方面详细阐述本文提出的面向优先车辆感知的交通灯优化控制方法, 详细阐述状态、动作、奖励函数设置, 以及本文所使用的Q网络结构、模型架构与算法.第3节通过在城市交通模拟器SUMO上进行对比实验, 验证本文方法能够在提高车辆通行效率的同时, 体现出对特殊车辆的优先处理, 并且能够扩展应用于多路口场景.第4节对本文工作做出总结并给出未来的工作展望.
1 相关工作智慧交通灯控制是构造智慧城市、解决城市交通问题的一个重要研究方向.在众多研究方法中, 深度强化学习以其根据实时反馈来调整动作的特征得到了广泛的应用.这类方法通常把路口交通灯抽象成一个智能体, 控制对象为道路交通网络上的时变交通流, 并且将智能体与控制对象的闭环交互过程抽象成马尔可夫决策过程(Markov decision process, 简称MDP)[18]: 智能体将目标优化过程按照时间进程划分为状态相互联系的多个阶段, 并在每个阶段通过观察交通环境的实时状态, 提取交通灯控制所需的交通状态信息和反馈奖励信息进行最优决策.Wei等人[19]提出一种使用深度Q神经网络的交通信号控制方法, 它综合使用队列长度、车辆数量、车辆等待时间、路口图像表示以及当前相位作为状态输入, 以是否切换相位作为输出, 其优化目标在于缩减车辆队列长度以及等待延迟, 缩短旅行时间; Joo等人[20]提出一种能够处理多种路口结构的基于Q表的强化学习方法, 它将队列长度和路口吞吐量作为评价指标, 其优化目标在于缩短车辆在路口的延迟; Zhang等人[21]将基于值的元强化学习方法应用于交通灯控制场景中, 它利用从已有的场景中学来的知识来加快在新场景中的学习过程, 提高了训练效率.以上方法的关注点都在通行效率上, Yan等人[22]则认为, 效率和公平性都应该被考虑到.因此, 他们在设计奖励函数时添加了公平性考量, 以降低各辆车之间的旅行时间差异.但总体而言, 以上这些方法都只针对于普通车辆通行的路口场景, 它们将所有种类的车都一视同仁, 没有考虑到特殊车辆的优先通行性.
现有的控制特殊车辆优先通行的方法大多都是通过数学计算预测特殊车辆到达路口的时间, 然后更改交通灯相位使其无需停车等待通过路口.比如Qin等人[23]提出的控制策略, 在传感器检测到特殊车辆到达时, 切换交通灯为紧急车辆抢占(emergency vehicle preemption, 简称EVP)模式, 即打断正常的交通灯相位, 为特殊车辆提供绿灯指引, 直至特殊车辆离开路口才恢复到正常模式; Kang等人[24]提出一种交通信号协调方法, 通过修改路口之间的相位偏移量来为特殊车辆构建绿波带, 保证了特殊车辆在一段区域内的无障碍通行; Noori等人[25]则提出一种基于连接车辆的控制策略, 在特殊车辆到达路口之前就抢占交通灯相位, 清除该方向的车流队列, 确保特殊车辆不被其前面的车阻塞; Mei等人[26]则利用公交信号优先与动脉信号协调相结合的方法, 适用于带有公交专用道的道路场景; Younes等人[27]使用一种动态交通灯调度算法, 能够应对多辆特殊车从不同方向驶入路口的情况, 选择更拥堵的车流通过路口.然而这些方法在设计过程中都只着眼于满足特殊车辆的通行需求, 而不顾普通车辆的通行效率, 所以很有可能引起普通车辆的大范围阻塞, 从而使得路网瘫痪.而这也会进一步影响到特殊车辆的通行, 降低了路口的总体通行量.此外, 这些方法也只适用于特殊车辆偶尔出现的情况, 若是对于诸如消防局、医院、警局附近的路口, 特殊车辆出现的频率相对较高, 这些方法就无能为力了.
基于以上情况, 为了能够赋予特殊车辆优先通行权, 并且尽可能地减小对普通车流的影响, 本文采用基于Q值的强化学习方法, 在设置状态和奖励函数时增加特殊车辆的权重, 使其在与环境不断交互的过程中学到一种能够平衡特殊车辆与普通车辆通行效率的策略.
2 提出的方法 2.1 问题定义在基于强化学习的交通灯控制方法中, 将交叉路口中结合了控制算法的交通灯抽象为智能体(agent), 被控对象为道路交通网络中的环境(environment).如图 1所示, 在任意时刻t, 智能体从环境中获取当前环境的状态st, 并执行一个动作at, 在下一时刻t+1, 环境在动作at的作用下会产生新的状态st+1; 同时, 智能体也会接收到一个回报rt+1.在这个不断交互的闭环系统中, 强化学习模型跟踪评测智能体所选择动作的控制效果, 并以累积奖励值最大化为目标来优化信号控制策略.将这一过程抽象为一个马尔可夫决策过程, 用一个五元组(S, A, P, R, γ)表示.其中,
● S: 表示环境中的状态集合.st∈S表示环境在t时刻的状态;
● A: 表示智能体能够执行的动作集合.at∈A表示智能体t时刻采取的动作;
● P: 表示状态转移概率.假设t时刻系统的状态为st, 智能体执行的动作为at, 系统将根据状态转移概率P(st+1|st, at)到达下一个状态st+1;
● R: 表示奖励.rt表示在执行完动作at之后得到的即时奖励;
● γ: 表示奖励衰减因子.γ∈[0, 1)表明了未来的回报相对于当前回报的重要程度.
强化学习的目标是给定一个马尔可夫决策过程, 寻找最优策略.策略π即是一连串的状态到动作的映射, 它是指给定状态s时, 动作集上的一个分布, 如式(1)所示.
$ \pi (a{\rm{|}}s) = P\left( {{a_t} = a{\rm{|}}{s_t} = s} \right) $ | (1) |
在策略π中, 状态-行为值函数(也被称为Q函数), 即累积奖励在状态s及动作a处的期望可用式(2)表示.
${Q^\pi }(s,a) = E[{r_t} + \gamma \cdot {r_{t + 1}} + {\gamma ^2} \cdot {r_{t + 2}} + ...|{s_t} = s,{a_t}] = E[\sum\nolimits_{k = 0}^\infty {{\gamma ^k} \cdot {r_{t + k}}} |{s_t} = s,{a_t} = a,\pi ]$ | (2) |
根据上式, 如果智能体知道后续状态的最优Q值, 即后续状态选哪个动作能够使得Q函数输出最大, 那么最优策略仅需要选择能够获得最高累积奖励的动作.用贝尔曼(Bellman)方程[28]表示如式(3)所示, 最优策略π*可以通过递归计算获得.
${Q^{{\pi ^ * }}}({s_t},{a_t}) = {E_{{s_{t + 1}}}}[{r_t} + \gamma \cdot \mathop {\max }\limits_{{a_{t + 1}}} {Q^{{\pi ^ * }}}({s_t},{a_t})|s,a]$ | (3) |
在状态空间有限的情况下, 该公式可以通过动态规划求解.但在本文场景中, 路口状态空间复杂, 因此采用神经网络拟合函数f(θ)来近似计算Q(s, a).具体过程是: 定义一个深度神经网络——Q网络, 输入是状态s, 输出是包含每一个动作的Q值的向量.此时, 智能体根据Q值的输出选择某个动作执行, 并从环境中得到当前动作获得的奖励.Q网络根据奖励计算损失函数反向传播对参数θ进行训练, 直至收敛.
综上所述, 状态、动作、奖励是Q网络设计与实现过程中不可或缺的三要素.其中, 状态是从环境中获取的信息, 它作为Q网络的输入; 动作是智能体的行为表征, 它决定了Q网络的输出维度; 奖励是环境对于动作的反馈, 它用于辅助Q网络的训练.下文将分别介绍本文场景中的状态、动作及奖励设置.
2.1.1 状态设置参考目前大多数的路口场景, 本文所讨论的道路交叉口如图 2左图所示, 路口是四路交叉路口, 分别是东、西、南、北这4个方向.每个方向上的入向道路分为3个车道, 按图中指向箭头所示, 最右边车道允许直行和右转, 中间车道仅允许直行, 最左边车道仅允许左转, 即每个方向上的入向车道有4种方向的车流.每个交通灯有红、绿、黄这3种状态, 每个交通灯只能控制一个方向的车流, 因此, 控制图 2所示的路口需要4×4=16个交通灯.对各个入向道不同方向所显示的不同灯色的组合构成一个信号相位.在道路中行驶的汽车用图中所示的不同形状表示, 其中, 普通车辆由三角形表示, 特殊车辆由矩形表示, 它们都遵循统一的交通规则, 即按照红绿灯指示行驶.
本文根据车辆在路口的位置以及速度来定义状态信息.通过车载网络以及其他道路传感器等设备, 车辆的位置以及速度很容易就能获得[29].把每条进入路口方向的车道划分成一个个小格子, 格子的宽度即为车道宽度, 格子的长度即为每辆车的长度加相邻车辆之间的最短距离, 这样就可以保证每个格子上最多只能放下一辆车.对于每个格子, 使用一个二元组(p, s)来表示该格子上的小车状态, 其中,
● p表示该格子上是否存在小车以及存在哪种类型的小车, 取值集合为{0, 1, 10}: 如果格子上的车为普通车辆, 那么p=1;如果格子上的车为特殊车辆, 那么该格子上p=10;否则, 如果格子上没有车, 那么p=0;
● s表示该格子中小车的速度, 单位为m/s.当p=0时, s也等于0, 否则为该格子上小车的当前速度.
根据以上定义, 图 2左图的路口环境对应的状态如右图所示.
2.1.2 动作设置动作就是智能体所采取的行为.在本文的问题定义中, 交通灯作为智能体, 它所执行的动作就是设置不同的信号灯相位.针对图 2所示的路口场景, 一共存在4种不冲突的相位, 如图 3所示, 分别是: (1) 南北方向直行及右转; (2) 南北方向左转; (3) 东西方向直行及右转; (4) 东西方向左转.因此, 智能体的动作空间为{0, 1, 2, 3}.为了使红绿灯状态更稳定, 每隔10s来计算一次动作, 当新选择的相位与当前相位不同时, 会在4s的黄灯时间后再切换到下一相位.此外, 设置每个相位的持续时间不得超过60s, 保证其他方向的车辆及行人的等待时间在可容忍的范围内.
2.1.3 奖励设置
设置奖励的作用是向强化学习模型提供动作执行结果的反馈.恰当的奖励设置能够正确地指导学习过程, 以使智能体学习到最佳的行动策略.衡量路口通行效率的指标通常有队列长度、路口吞吐量、车辆通行时间和车辆等待时间.其中, 队列长度是指某一时刻路口各个车道上等待的车队长度, 路口吞吐量是指单位时间内通过路口的车辆数目.这两种指标在计算过程中没有对不同车辆进行区分, 更适合衡量路口整体效率, 无法体现出特殊车辆与普通车辆的差异.车辆通行时间是指车辆从驶入路网到驶出路网所用的时间, 它虽然可以针对特殊车辆与普通车辆分别计算, 但它适用于在一轮训练结束后来计算, 如果作为奖励函数指标每步计算的话, 会有许多车辆并没有驶出路网, 此时计算结果就会有比较大的偏差.而车辆等待时间既可以对特殊车辆和普通车辆分别计算, 并且它不需要车辆驶出路网后才能计算, 可以在智能体每一次执行动作后更新, 因此本文采用车辆等待时间作为奖励函数指标.同时, 为了消除普通车辆与特殊车辆在数量上的差异所带来的影响, 分别使用两种车辆的平均等待时间作为优化指标.
令Nt, normal表示在第t次动作执行结束后路口相连的入向道路上所有普通车辆的数量, Nt, special表示在第t次执行结束后路口相连的入向道路上所有特殊车辆的数量,
$AVG\_W_{{\rm{normal}}}^t = \frac{1}{{{N_{t,{\rm{normal}}}}}} \cdot \sum\nolimits_{i = 1}^{{N_{t,{\rm{normal}}}}} {W_{i,{\rm{normal}}}^t} $ | (4) |
$AVG\_W_{{\rm{special}}}^t = \frac{1}{{{N_{t,{\rm{special}}}}}} \cdot \sum\nolimits_{i = 1}^{{N_{t,{\rm{special}}}}} {W_{i,{\rm{special}}}^t} $ | (5) |
智能体在执行完第t次动作后得到的奖励就可以用式(6)计算得到, 其中, α代表特殊车辆所占的权重, 取值区间为(0, 1).
${r_t} = \alpha \cdot (AVG\_W_{{\rm{special}}}^{t - 1} - AVG\_W_{{\rm{special}}}^t) + (1 - \alpha ) \cdot (AVG\_W_{{\rm{normal}}}^{t - 1} - AVG\_W_{{\rm{normal}}}^t)$ | (6) |
根据公式可以看出, 如果在执行完一次动作之后, 发现车辆的平均等待时间比上一次要小, 这就意味着有部分等待的车辆通过了路口, 智能体将得到一个正值的reward.强化学习算法的目标是使reward最大化, 这就会使平均等待时间朝着更小的方向优化.参数α可以用来调节特殊车辆与普通车辆在优化过程中所占的权重.
2.2 本文算法 2.2.1 Q网络结构根据第2.1.1节的状态设置, 每一时刻随着交通灯相位的改变及车辆的行驶, 状态都会发生变化, 所以状态空间是无限的.因此, 本文采用深度神经网络即Q网络来近似计算Q值, 其结构如图 4所示.其中, n代表场景中的路口个数.
模型的输入是从环境中获得的各个路口的状态, 维度为(n, 360, 2), 其中, 360=12×30, 12代表 12条入向车道, 30表示对每条车道, 本文仅考虑距离路口最近的30个格子; 2代表每个格子上的(p, s)二元组.输出是当前状态下各个路口不同动作对应的Q值, 维度为(n, 4), 其中, 4对应第2.1.2节定义的4种动作.
在设计网络结构时, 本文采用了Dueling DQN[15]的思想, 它与传统DQN的不同之处在于, 它把Q值的计算分为两部分: 一部分是价值网络, 它只与当前状态s有关, 而与具体要采取的动作无关, 所以它的维度是(n, 1), 用V(s; ω, α)表示; 另一部分是优势网络, 它表示执行每种动作的优势值大小, 因此它不仅与当前状态s有关, 也与具体要执行的动作a相关, 所以它的维度应该与输出层的维度相同, 都是(n, 4), 用A(s, a; ω, β)表示.其中, ω表示公共部分的网络参数, α表示价值网络独有部分的参数, β表示优势网络独有部分的参数.
此时Q值的输出由价值网络的输出和优势网络的输出线性组合得到, 在状态s下, 每个动作a的Q值等于状态s的价值V与动作a的优势值之和.此外, 为了使结果更加稳定, 这里对优势值A做了一个中心化处理: 对于每种动作, 都将它的A值减去所有动作的平均A值.计算公式如式(7)所示.
$Q(s,a;\omega ,\alpha ,\beta ) = V(s;\omega ,\alpha ) + \left[ {A(s,a;\omega ,\beta ) - \frac{1}{{|A|}}\sum\nolimits_a {A(s,a;\omega ,\beta )} } \right]$ | (7) |
其中, 价值网络V(s; ω, α)体现了当前状态对Q值的影响; 优势网络A(s, a; ω, β)体现了在当前状态下, 不同的动作对Q值的影响.综合使用二者, 能够使Q值的计算结果更准确.
2.2.2 模型架构本文提出的算法模型架构如图 5所示, 其中最核心的两个组件分别是预测网络Q和目标网络Q', 二者都采用图 4所示的Q网络结构.其中, 预测网络是我们要训练的网络, 它始终持有最新参数, 用来计算预测Q值Qeval.目标网络的作用是用来指引训练方向, 每隔一定的训练轮数, 会将预测网络的参数都赋值给目标网络.
在动作选择过程中, 首先从环境中获得当前状态st, 并将其输入到预测网络Q中, 计算得到当前状态下各个动作的Q值, 最后利用ε-greedy算法[30]选择出要执行的动作at.ε-greedy算法是一种加入了随机因子的贪心算法, 目的是增加智能体的探索尝试.智能体在选择动作时, 会以概率ε随机在动作空间中选择一个动作, 以概率1-ε按照预测网络预测的最优Q值选择动作.在训练初始阶段, 由于Q网络还不稳定, 此时给ε赋一个较大的值能够帮助智能体做出更多的探索尝试; 随着训练的进行, Q值的预测结果会越来越准确, ε的值也会随之减小, 让智能体逐步相信预测Q网络的判断.
在模型训练过程中, 本文采用了Double DQN[16]的思想, 将目标Q值动作的选择与目标Q值的计算这两步解耦开.传统的DQN在计算目标Q值Qtarget时, 直接在目标网络输出中找出各个动作的最大Q值, 这样虽然可以快速让Q值朝着可能的优化目标靠拢, 但很容易导致过度估计问题.而Double DQN在计算目标Q值时, 先在预测网络Q中找到最大Q值对应的动作, 然后再利用这个选择出来的动作在目标网络Q'中去计算Qtarget, 降低动作选择与目标Q值计算之间的相关性, 能够有效地避免过度估计问题.在Double DQN中, 目标Q值的计算方式如式(8)所示.
${Q_{{\rm{target}}}}({s_t},{a_t}) = {r_t} + \gamma \cdot Q'\left( {{s_{t + 1}},\mathop {\arg \max }\limits_{a'} (Q({s_{t + 1}},a';\theta ));{\theta ^ - }} \right)$ | (8) |
其中, st和at分别代表当前的状态和动作, rt代表当前这步行为获得的即时奖励, st+1和a'分别代表下一步的状态和选择的行为, γ代表奖励衰减因子.在计算目标Q值时, 先在当前网络中获得最大Q值对应的动作, 再将该动作放到目标网络中计算Q值, 最后与衰减因子相乘后, 加上当前奖励作为目标Q值.
在计算出Qtarget之后, 本文算法的损失函数参照Huber损失函数[31], 定义如式(9)所示.
$Loss({Q_{{\rm{target}}}},{Q_{{\rm{eval}}}}) = \left\{ {\begin{array}{*{20}{l}} {\frac{1}{2}{{({Q_{{\rm{target}}}} - {Q_{{\rm{eval}}}})}^2},{\rm{ for }}|{Q_{_{{\rm{target}}}}} - {Q_{{\rm{eval}}}}| \leqslant 1} \\ {|{Q_{{\rm{target}}}} - {Q_{{\rm{eval}}}}| - \frac{1}{2}{\rm{, otherwise}}} \end{array}} \right.$ | (9) |
若目标Q值与预测Q值差值不大于1, 损失值等于目标Q值与预测Q值差值平方的1/2;否则, 损失值等于目标Q值与预测Q值差值绝对值减去1/2.
在选择样本进行训练时, 本文采用了经验回放机制[32].之所以采用这一方法, 是因为在学习过程中得到的样本前后之间是有依赖关系的, 样本之间关联性过大.而深度神经网络作为有监督学习模型, 要求数据满足独立同分布, 经验回放机制通过“存储-采样”操作能够很好地打破相邻样本之间的数据关联性.具体做法是, 从以前的经验回放池中随机采样进行训练.这样不仅能够提高样本利用率, 使一个样本能够被多次使用, 也能减少参与训练的样本之间的相关性.
2.2.3 算法描述本文所使用的模型训练算法伪代码如下所示.
算法1. 模型训练算法.
输入: 经验回放大小M, 批大小B, 动作选择系数εmax, εmin, εdecay, 奖励衰减系数γ, 训练轮数E, 每轮最大步数T, 目标网络更新频率F.
1 初始化网络参数θ, θ-为随机值; 初始化经验回放池m容量为M; 初始化动作选择系数ε=εmax
2 For episode=1, E do:
3 获得路口初始状态s
4 For step=1, T do:
5 以概率ε选择一个随机动作a∈{0, 1, 2, 3};否则,
6 执行动作a, 得到奖励r以及下一状态s'
7 存储状态转移四元组(s, a, r, s')进m
8 更新状态s←s'
9 更新动作转移系数ε←max(εmin, ε·εdecay)
10 从m中随机获取B个状态转移元组m'
11 For (sj, aj, rj, sj+1) in m' do
12 计算Qeval(sj, aj)=Qeval(sj, aj; θ)
13 计算
14 计算Loss(Qtarget, Qeval)
15 根据Loss值, 利用Adam优化器更新参数θ
16 End For
17 End For
18 If episode%F==0 then
19 更新目标网络参数θ-←θ
20 End If
21 End For
在每一轮开始, 先从环境中获得初始状态, 再利用ε-greedy算法, 以概率ε随机在动作空间中选择一个动作, 以概率1-ε, 按照预测网络预测的最优Q值选择动作.在智能体执行完动作a之后, 会得到环境反馈的即时奖励r以及下一状态s'.此时, 本文会采取基于“存储-采样”操作的经验回放机制, 将状态转移四元组(s, a, r, s')存储进经验回放池, 再从池中随机获取B个样本.对于每个样本, 分别利用预测网络和目标网络计算出它的预测Q值Qeval以及目标Q值Qtarget; 最后, 根据第2.2.2节定义的损失函数, 使用Adam优化器[33]反向传播更新预测网络参数θ.预测网络的参数每步都会更新, 而目标网络的参数每隔F轮才更新.
3 实验为了验证本文方法的有效性及可用性.需要进行实验回答以下几个问题.
● 问题1:本文方法是否能够提高车辆的通行效率?即在同一车流场景下, 使用本文方法控制的交通灯与使用传统固定时长控制的交通灯对比, 对车辆的通行效率是否有明显提升?
● 问题2:本文方法是否能够体现出对特殊车辆的优先性?即在区分车辆优先级的情况下, 特殊车辆的平均等待时间是否会比不区分车辆优先级情况下的平均等待时间更短?
● 问题3:本文方法是否能应用于不同的路口场景?即本文方法是否能够有效地扩展到多路口场景中?
3.1 实验设计实验使用城市交通模拟器SUMO来完成, 它能够协助我们设计和实现道路设施的自定义配置与功能, 并能在仿真运行期间提供关于车辆及交通灯的实时数据.本文把训练过程分为多轮进行, 每轮3 600步, 每步代表现实场景中的1s, 所以说, 每轮相当于现实场景中的1h.为了更好地模拟现实场景中的随机车流, 在实验中设置车流以固定比例及流量随机插入网络, 即特殊车辆与普通车辆的比例与流量固定, 但车辆驶入的位置与行驶路线由SUMO随机生成.
为了回答以上3个问题, 本文进行了如下的实验设计.
● 针对问题1, 需要进行对比实验1.
在同一路口场景下, 分别使用两种红绿灯控制方案: 一个是本文方法训练的模型, 另一个是使用固定时长控制.对比两种控制方式下, 普通车辆与特殊车辆的平均等待时间差异.在实验中, 路口环境使用图 2所示的四路交叉路口结构, 每个方向的入向道路有3个车道, 每条车道的长度设为300m.车流由SUMO随机生成, 为了更符合实际场景中特殊车辆的数目一般都远小于普通车辆的事实, 本实验设置特殊车辆与普通车辆的比例为1:200, 设置普通车辆每秒驶入两辆, 特殊车辆每100s驶入一辆.设置固定时长交通灯每隔30s切换相位, 切换顺序为“南北方向直行及右转→南北方向左转→东西方向直行及右转→东西方向左转”循环.
● 针对问题2, 需要进行对比实验2.
在同一路口场景下, 使用同一种模型结构, 对比区分车辆优先级的模型与不区分车辆优先级的模型对特殊车辆的等待时间的影响.本实验采用实验1相同的路口设置与车流设置.区分车辆优先级的模型使用的状态和奖励设置参照前文第2.1.1节及第2.1.3节的定义.不区分车辆优先级的模型在设置状态时, 只要格子上有车, 不区分该车的类别, 均将该格子上的二元组(p, s)中的p值设为1.在定义奖励时, 统一计算特殊车辆与普通车辆的平均等待时间, 修改奖励计算公式如式(10)所示.
${r_t} = AVG\_W_{{\rm{all}}}^{t - 1} - AVG\_W_{{\rm{all}}}^t$ | (10) |
其中,
● 针对问题3, 需要进行对比实验3.
在同一个多路口场景中, 分别使用本文方法训练的模型与固定时长方法控制交通灯, 对比两种控制方式下车辆的通行效率.在本实验中, 使用3×3一共9个交通灯控制路口的环境设置, 相邻路口之间相互连通.每个路口的环境设置与对比实验1相同.与实验1类似, 本实验的车流也由SUMO随机生成, 但本实验的车流均从边界驶入路网, 并且经由边界驶出路网.设置特殊车辆与普通车辆的比例为1:500, 令普通车辆每秒驶入5辆, 特殊车辆每100s驶入一辆.固定时长交通灯控制的设置与实验1相同.
实验所使用的CPU型号为Intel i7-8700k, 使用的图形处理器型号为GeForce GTX 1080Ti, 操作系统为Ubuntu 18.04, Python版本为3.7, 机器学习平台为Tensorflow v1.14.0以及Keras v2.1.0.使用的城市交通模拟器为SUMO v1.6.0.实验参数设置如下: 模型训练采用Adam优化器, 学习率设为0.000 1.设置经验回放池大小为2 000, 训练批次大小batch_size为64.设置奖励衰减系数γ为0.8.设置初始最大动作选择系数εmax为1, 动作系数衰减率εdecay为0.95, 最小动作选择系数εmin为0.01.
3.2 实验结果分析 3.2.1 实验1:单路口场景中本文算法与固定时长方法的结果对比为了回答问题1, 我们在单路口进行实验, 对比在同一种环境下, 使用本文提出的方法控制交通灯与使用固定时长逻辑控制交通灯对车辆通行效率的影响.在本实验中, 设置奖励平衡系数α为0.6.本实验主要评价两个通行效率指标.
● 一是平均等待时间, 以s为单位, 它的值等于在一轮训练过程中所有经过路口的车在该路口的等待时间的总和除以车的数量.这里, 为了区分对不同优先级的车辆的效果, 分别计算特殊车辆与普通车辆的平均等待时间.
● 二是平均队列长度, 以辆为单位, 它是指在这一轮训练过程中, 每一步各个入向车道排队总长度的平均值[34].
对比实验1训练了150轮, 实验结果如图 6所示.
左图表示特殊车辆与普通车辆的平均等待时间对比, 可以看出, 在使用固定时长逻辑控制交通灯时, 特殊车辆的平均等待时间为170s左右, 普通车辆的平均等待时间为135s左右.之所以出现特殊车辆的平均等待时间大于普通车辆的情况, 原因有两点: 一是排在前面的普通车辆影响了在其后面的特殊车辆的通行; 二是特殊车辆总体数量较少, 单个车辆对平均等待时间的影响较大.在使用本文方法训练的模型对交通灯进行控制之后, 特殊车辆的平均等待时间降到了65s左右, 普通车辆的平均等待时间降到了90s左右.与固定时长逻辑相比, 特殊车辆的平均等待时间降低了105s左右, 普通车辆的平均等待时间降低了45s左右.
右图表示随着训练轮数的增加, 路口处平均队列长度的变化.在使用固定时长逻辑时, 每一轮路口的平均队列长度为125辆左右; 但在使用经本文方法训练的模型之后, 可以将平均队列长度降低到100辆左右.因此, 图 5的实验结果可以证明, 本文方法能够显著提高车辆的通行效率, 并且对特殊车辆的优化效果要好于普通车辆.
3.2.2 实验2:单路口场景中考虑优先级与不考虑优先级的结果对比为了回答问题2, 我们对比不考虑优先级与考虑优先级的情况下, 特殊车辆和普通车辆的平均等待时间的差距.本实验使用的路口环境与对比实验1相同, 在考虑优先级的方法中, 设置奖励平衡系数α为0.6.实验结果如图 7所示, 左右两图分别表示特殊车辆和普通车辆的平均等待时间在不考虑优先级与考虑优先级的情况下的结果对比, 其中, 黄色线条表示在采用不考虑优先级的方法下的实验结果, 绿色线条表示采用本文方法, 即考虑车辆优先级的方法控制下的实验结果.对比可以看出, 在训练趋于稳定之后, 对于特殊车辆而言, 本文设计的优先级控制策略的确能够降低其平均等待时间, 对比数值降低幅度大概在35s左右; 对于普通车辆而言, 使用本文设计的优先级控制策略虽然使得其平均等待时间有小幅度上升, 但其大概15s左右的上升于特殊车辆35s的下降而言是值得的, 因为在实际场景中, 特殊车辆对通行时间的要求更高, 对等待时间的容忍力更低.此外, 虽然普通车辆的平均等待时间相比于不考虑优先级的方法有小幅度上升, 但与实验1中使用固定时长控制方法对比还是有明显下降的.因此, 图 7的实验结果表明, 本文所设计的优先级控制策略能够体现出对特殊车辆的优先性.
3.2.3 实验3:多路口场景中本文算法的表现
为了回答问题3, 我们将本文方法扩展到3×3的联通路口场景中, 并进行了与单路口场景下类似的对比实验.通过对比使用固定时长与使用本文方法的交通灯控制策略对特殊车辆和普通车辆的平均等待时间的影响, 验证本文方法对多路口场景的有效性, 该实验的结果如图 8左图所示; 通过对比不考虑优先级与考虑优先级的方法对特殊车辆的平均等待时间的影响, 验证本文的优先级控制策略对多路口场景的有效性, 该实验的结果如图 8右图所示.在本实验中, 设置奖励平衡系数α为0.65.在本实验中, 评价指标平均等待时间是指在一轮训练过程中, 各个路口的平均等待时间的平均值.
对比实验3训练了200轮, 实验结果如图 8所示.
● 图 8左图显示, 在使用固定时长逻辑的交通灯控制下, 各路口特殊车辆与普通车辆的平均等待时间均为150s左右; 在使用本文方法训练之后, 各路口普通车辆的平均等待时间降至125s左右, 特殊车辆的平均等待时间降至90s左右.可以看出, 在多路口场景中, 本文方法也能显著提高车辆的通行效率.
● 此外, 右图结果也显示, 本文的优先级设置策略在多路口场景下也能显示出一定的有效性.
因此, 图 8的实验结果表明, 本文方法能够扩展应用到多路口场景中.
3.2.4 实验分析与总结由于本文算法根据实时的车辆位置、类型以及速度信息作为状态, 以这些实时信息作为输入的神经网络计算出的Q值是与当前的环境状态相关的, 因此本文算法所做的决策能够适应动态交通流变化, 相较于传统的固定时长控制方法能够显著提高车辆的通行效率: 分别使特殊车辆和普通车辆的平均等待时间降低68%和22%左右; 与此同时, 也使路口队列长度降低了20%左右.本文所设计的优先级机制主要体现在两个方面.
● 一是在设计状态时将各个入向道路以固定长度划分为不重合的一个个小格子, 并且给特殊车辆与普通车辆设置不同的值, 使得Q网络能够根据状态识别出车辆的位置以及类型;
● 二是在奖励设置时分别计算特殊车辆与普通车辆的平均等待时间, 并设置了奖励平衡系数α来平衡特殊车辆与普通车辆的权重, 使得Q网络在训练过程中朝着更大幅度地缩小特殊车辆的等待时间的方向收敛; 同时, 为了使奖励最大化, 也不会使普通车辆的等待时间过大.
因此, 使用本文所设计的优先级策略对比不使用优先级, 在训练趋于稳定之后, 能够使特殊车辆的平均等待时间降低35%左右.
多路口场景与单路口类似, 将各个路口的实时状态信息聚合起来统一输入到Q网络中, 输出针对各个路口上不同动作的Q值.在训练过程中, 各个路口利用自己的历史状态动作转移元组, 能够学到适用于自己场景的决策, 因此, 本文方法能够扩展应用到多路口场景中: 对比固定时长控制方法, 在训练趋于稳定之后, 分别使特殊车辆和普通车辆的平均等待时间降低40%和17%左右; 同时, 对比不考虑优先级的方法, 特殊车辆的平均等待时间也降低了10%左右.
4 结论与展望在城市交通网络中, 具有特殊任务的特殊车辆对于通行效率的要求更高.尽管传统的信号抢占方法考虑到了特殊车辆的优先性, 但对于普通车辆的通行干扰过大.基于以上情况, 本文提出了一种面向车辆优先级感知的交通灯优化控制方法, 使用Dueling DQN结构来提高模型的学习效果, 并在训练过程中使用Double DQN方法来避免过度估计问题.为了实现对特殊车辆的优先控制, 在设置状态时, 用不同的值来区分特殊车辆与普通车辆, 并在计算奖励时赋予特殊车辆更大的权重, 使得本文方法能够在不干扰普通车辆通行的同时, 大幅度降低特殊车辆在路口的等待时间, 帮助其更快到达目的地.此外, 本文方法也能接收多个路口的状态输入, 并给出各个路口的动作决策, 能够扩展应用于多路口场景中.但由于多路口场景各个路口都是联通的, 相邻路口之间的车流有一定的相关性, 而本文方法没有考虑到相邻路口之间的信息交互, 在多路口场景中的表现不如单路口场景中好.因此在今后的工作中, 我们会将多智能体协同控制强化学习方法应用于多路口控制, 以提升多路口场景下的优化效果.此外, 如何高效地为不同的路口交通流路口寻找奖励平衡系数α, 也是未来亟需解决的问题.
[1] |
2018 annual report of traffic operation. 2018(in Chinese). http://www.jtcx.sh.cn/trafficanalyse.html
|
[2] |
Li MW, Li L. Intelligent transportation system in China: The optimal evaluation period of transportation's application performance. Journal of Intelligent & Fuzzy Systems, 2020, 38(6): 6979-6990.
http://www.researchgate.net/publication/341257047_Intelligent_transportation_system_in_China_The_optimal_evaluation_period_of_transportation's_application_performance |
[3] |
Wu LB, Nie L, Liu BY, Wu N, Zou YF, Ye LY. An intelligent traffic signal control method in VANET. Chinese Journal of Computers, 2016, 39(6): 1105-1119(in Chinese with English abstract).
https://www.cnki.com.cn/Article/CJFDTOTAL-JSJX201606003.htm |
[4] |
Chang W, Roy D, Zhao S, Annaswamy A, Chakraborty S. CPS-oriented modeling and control of traffic signals using adaptive back pressure. In: Proc. of the Design, Automation & Test in Europe Conf. & Exhibition (DATE). IEEE, 2020. 1686-1691.
|
[5] |
Zhang ZK, Pang WG, Xie WJ, Lü MS, Wang Y. Deep learning for real-time applications: A survey. Ruan Jian Xue Bao/Journal of Software, 2020, 31(9): 2654-2677(in Chinese with English abstract).
http://www.jos.org.cn/1000-9825/5946.htm [doi:10.13328/j.cnki.jos.005946] |
[6] |
Diakaki P, Kotsialos D, Wang Y. Review of road traffic control strategies. Proc. of the IEEE, 2003, 91(12): 2041-2042.
[doi:10.1109/JPROC.2003.819606] |
[7] |
Sutton RS, Barto AG. Introduction to Reinforcement Learning. Cambridge: MIT Press, 1998.
|
[8] |
Thorpe TL. Vehicle traffic light control using sarsa. 1997. http://citeseer.ist.psu.edu/thorpe97vehicle.html
|
[9] |
Xu Y, Zhang YL, Sun TT, Su YF. Agent-based decentralized cooperative traffic control toward green-waved effects. Ruan Jian Xue Bao/Journal of Software, 2012, 23(11): 2937-2945(in Chinese with English abstract).
http://www.jos.org.cn/1000-9825/4307.htm [doi:10.3724/SP.J.1001.2012.04307] |
[10] |
Lee J, Chung J, Sohn K. Reinforcement learning for joint control of traffic signals in a transportation network. IEEE Trans. on Vehicular Technology, 2020, 69(2): 1375-1387.
[doi:10.1109/TVT.2019.2962514] |
[11] |
Guo MY, Wang P, Chan CY, Askary S. A reinforcement learning approach for intelligent traffic signal control at urban intersections. In: Proc. of the IEEE Intelligent Transportation Systems Conf. (ITSC). 2019. 4242-4247.
|
[12] |
Yu D, Wei SG, Rong DC, Chai LG. RA-TSC: Learning adaptive traffic signal control strategy via deep reinforcement learning. In: Proc. of the IEEE Intelligent Transportation Systems Conf. (ITSC). 2019. 3275-3280.
|
[13] |
Rizzo SG, Vantini G, Chawla S. Reinforcement learning with explainability for traffic signal control. In: Proc. of the IEEE Intelligent Transportation Systems Conf. (ITSC). 2019. 3567-3572.
|
[14] |
Cao M, Shuai QQ, Li V. Emergency vehicle-centered traffic signal control in intelligent transportation systems. In: Proc. of the IEEE Intelligent Transportation Systems Conf. (ITSC). 2019. 4525-4531.
|
[15] |
Wang Z, Schaul T, Hessel M, Hasselt H, Lanctoc M, Freitas N. Dueling network architectures for deep reinforcement learning. In: Proc. of the Int'l Conf. on Machine Learning (ICML). 2016. 1995-2003.
|
[16] |
Van Hasselt H, Guez A, Silver D. Deep reinforcement learning with double Q-learning. In: Proc. of the 30th AAAI Conf. on Artificial Intelligence (AAAI). 2016. 2094-2100.
|
[17] |
Behrisch M, Bieker L, Erdmann J, Krajzewicz D. Sumo-Simulation of urban mobility: An overview. In: Proc. of the SIMUL. 2011. https://elib.dlr.de/71460/
|
[18] |
Singh T. Constrained Markov decision processes for intelligent traffic. In: Proc. of the Int'l Conf. on Computing, Communication and Networking Technologies (ICCCNT). 2019. 1-7.
|
[19] |
Wei H, Zheng G, Yao H, Li ZH. Intellilight: A reinforcement learning approach for intelligent traffic light control. In: Proc. of the 24th ACM SIGKDD Int'l Conf. on Knowledge Discovery & Data Mining (KDD). 2018. 2496-2505.
|
[20] |
Joo H, Ahmed SH, Lim Y. Traffic signal control for smart cities using reinforcement learning. Computer Communications, 2020, 154: 324-330.
[doi:10.1016/j.comcom.2020.03.005] |
[21] |
Zang X, Yao H, Zheng GJ, Xu K, Li ZH. MetaLight: Value-based meta-reinforcement learning for traffic signal control. In: Proc. of the AAAI Conf. on Artificial Intelligence (AAAI), Vol. 34. 2020. 1153-1160.
|
[22] |
Yan S, Zhang J, Buescher D, Burgard W. Efficiency and equity are both essential: A generalized traffic signal controller with deep reinforcement learning. arXiv preprint arXiv: 2003.04046, 2020.
|
[23] |
Qin X, Khan AM. Control strategies of traffic signal timing transition for emergency vehicle preemption. Transportation Research Part C: Emerging Technologies, 2012, 25: 1-17.
[doi:10.1016/j.trc.2012.04.004] |
[24] |
Kang W, Xiong G, Lv Y, Dong X, Zhu F, K QJ. Traffic signal coordination for emergency vehicles. In: Proc. of the 17th IEEE Int'l Conf. on Intelligent Transportation Systems (ITSC). IEEE, 2014. 157-161.
|
[25] |
Noori H, Fu L, Shiravi S, Noori H, Fu L, Shiravi S. A connected vehicle based traffic signal control strategy for emergency vehicle preemption. In: Proc. of the Transportation Research Board 95th Annual Meeting. 2016.
|
[26] |
Mei Z, Tan Z, Zhang W, Wang D. Simulation analysis of traffic signal control and transit signal priority strategies under arterial coordination conditions. Simulation, 2019, 95(1): 51-64.
[doi:10.1177/0037549718757651] |
[27] |
Younes MB, Boukerche A. An efficient dynamic traffic light scheduling algorithm considering emergency vehicles for intelligent transportation systems. Wireless Networks, 2018, 24(7): 2451-2463.
[doi:10.1007/s11276-017-1482-5] |
[28] |
Sutton RS, Barto AG. Reinforcement Learning: An Introduction. MIT Press, 1998.
|
[29] |
Liang X, Du X, Wang G, Han Z. A deep reinforcement learning network for traffic light cycle control. IEEE Trans. on Vehicular Technology, 2019, 68(2): 1243-1253.
[doi:10.1109/TVT.2018.2890726] |
[30] |
Kim CH, Watanabe K, Nishide S, Guoko M. Epsilon-greedy babbling. In: Proc. of the 2017 Joint IEEE Int'l Conf. on Development and Learning and Epigenetic Robotics (ICDL-EpiRob). 2017. 227-232.
|
[31] |
Esmaeili A, Marvasti F. A novel approach to quantized matrix completion using Huber loss measure. IEEE Signal Processing Letters, 2019, 26(2): 337-341.
[doi:10.1109/LSP.2019.2891134] |
[32] |
Adam S, Busoniu L, Babuska R. Experience replay for real-time reinforcement learning control. IEEE Trans. on Systems, Man, and Cybernetics, Part C (Applications and Reviews), 2011, 42(2): 201-212.
http://datamin.ubbcluj.ro/semi/pdfs/Busoniu12.pdf |
[33] |
Kingma DP, Ba J. Adam: A method for stochastic optimization. In: Proc. of the 3rd Int'l Conf. on Learning Representations (ICLR). San Diego, 2015.
|
[34] |
Wu T, Zhou P, Liu K, Yuan Y, Wang X, Huang H, Wu DO. Multi-Agent deep reinforcement learning for urban traffic light control in vehicular networks. IEEE Trans. on Vehicular Technology, 2020, 69(8): 8243-8256.
[doi:10.1109/TVT.2020.2997896] |
[1] |
2018年交通运行年报. 2018. http://www.jtcx.sh.cn/trafficanalyse.html
|
[3] |
吴黎兵, 聂雷, 刘冰艺, 吴妮, 邹逸飞, 叶璐瑶. 一种VANET环境下的智能交通信号控制方法. 计算机学报, 2016, 39(6): 1105-1119.
https://www.cnki.com.cn/Article/CJFDTOTAL-JSJX201606003.htm |
[5] |
张政馗, 庞为光, 谢文静, 吕鸣松, 王义. 面向实时应用的深度学习研究综述. 软件学报, 2020, 31(9): 2654-2677.
http://www.jos.org.cn/1000-9825/5946.htm [doi:10.13328/j.cnki.jos.005946] |
[9] |
徐杨, 张玉林, 孙婷婷, 苏艳芳. 基于多智能体交通绿波效应分布式协同控制算法. 软件学报, 2012, 23(11): 2937-2945.
http://www.jos.org.cn/1000-9825/4307.htm [doi:10.3724/SP.J.1001.2012.04307] |