文章目录
本文对用(多智能体)深度强化学习解决Traffic Signal Control( 后文统一使用TSC简写)问题的两篇综述文章进行梳理和总结,尽可能以问题的问答方式整理,参考的文章是:
- Recent Advances in Reinforcement Learning for Traffic Signal Control: A Survey of Models and Evaluation (2021年)
- A Survey on Traffic Signal Control Methods (2020年)
两篇文章都出自于宾州州立大学的团队,重点关注的是深度强化学习如何解决TSC问题,其中2020年的综述文章最为全面,2021的这篇对上一篇进行了一些补充。此外,该方向的其他综述论文我贴到了最后。本文引用的大部分图片都出自以上两篇文章。
由于本人能力有限,本文若有任何总结不到位或存在问题的地方,欢迎指出!
1. 一些背景知识
1.1 为什么要进行TSC?
这个标题中的问题其实显而易见(但总感觉深入解决问题的方法之后会逐渐忘掉做这件事的初衷),进行TSC的目的就是为了减少交通拥堵问题,这个问题不仅影响驾驶人乘车人的心情,浪费时间,浪费燃料,车辆等待时候的多排出的CO2、尾气也会影响环境,此外,该问题也会影响城市面貌;再进一步,人们通勤时间的增加也会影响所在企业的生产效率~~(好吧,懂得都懂)~~ 。
1.2 传统方法是如何解决TSC问题的,存在哪些问题?
由于本人非交通专业,而且读这两篇综述的主要目的就是学习强化学习算法是如何与TSC问题结合的,所以与传统交通领域解决TSC问题的方法不会做具体梳理和总结,之后若用到与传统交通领域baseline方法的对比再来学习这部分。但是在这一部分我也搬运一些文章中一些交通领域的术语(翻译能力有限,还是用英文表示术语比较准确,其含义用我自己的理解来解释)。
A. 铺垫:一些交通领域相关的术语
Road Structure and Traffic Movement相关
- Approach:交叉路口的交界处,可分为incoming approach和outgoing approach,由很多条Lanes组成。
- Lane:车道,可分为驶入和驶出车道(incoming and outgoing)。
- Traffic Movement:车辆从incoming approach移动到outgoing approach,符号表示是:
r
i
→
r
o
r_i\to r_o
ri→ro,其中
r
i
r_i
ri,
r
o
r_o
ro分别表示incoming lane, outgoing lane
Traffic Signal相关
- Movement Signal:根据traffic movement进行定义,绿灯表示允许相关movement,红灯表示不允许相关movement。上图中有8种movement signal。
- Phase:是movement signals的组合。可以用conflic matrix表示。其中不冲突的组合用白色表示,冲突用灰色方格表示。phase可以分为paired-signal和single-signal两种方式,前者在单一交叉路口很有效,后者在多交叉路口中有效。
- Phase Sequence:表示phase的顺序
- Signal Plan:对于单一交叉路口来说,signal plan表示为phase的序列和对应的起始时间,如: ( p 1 , t 1 ) , ( p 2 , t 2 ) , … , ( p i , t i ) , … (p_1,t_1),(p_2,t_2),\dots,(p_i,t_i),\dots (p1,t1),(p2,t2),…,(pi,ti),…
- Cycle-based Signal Plan:是signal plan的一个特例,phase sequence是循环进行的。
Special Consideration of Traffic Light
- Yellow and All-red Time:yellow and all-red time一般存在3-6秒,目的是让车辆在有冲突的movement对应信号变成绿灯的时候,安全停止在路口或安全通过路口
- Minimum Green Time:保证行人能够安全通过路口
- Left Turn Phase:当左转弯的车流量大于某个阈值时,则添加left-turn phase
B. 传统方法如何解决TSC问题?
传统的交通工程领域解决TSC的方法思路是将其转化为一个优化问题,优化的总体目标要能反映出safe and efficient movement of vehicles at the intersection,其中safety可以通过在时间上分隔conflicting movements来实现,efficiency的量化衡量指标有以下几种:
- Travel Time:定义为车辆进入系统的时间与离开系统时间的差值。最常用的优化目标是最小化average travel time of vehicles in the network。
- Queue length:定义为在路网中的车辆数量。
- Number of stops: The number of stops of a vehicle is the total times that a vehicle experienced.
- Throughput:一段时间内,车辆通过路口的数量。(这里不知道理解准不准确,附上原文:The throughput is the number of vehicles that have completed their trip in the road network during a period.)
上述是优化问题的总体目标,而约束条件是对交通模型的一些假设,从而让整个优化问题可解,例如,车辆的速度设置为匀速。
传统方法总结:
C. 传统方法求解TSC存在哪些问题?
-
约束条件偏离现实情况:大部分假设条件都过强,与现实交通情况不一致。现实中的交通情况可能受很多其他因素的影响,例如驾驶员的偏好,受行人,骑行的人的行为影响,天气和道路本身的特点也会影响交通情况。
-
传统方法中依赖Loop sensor:loop sensor只有当车辆通过时才能获取数据,其所能获取的数据量有限。
-
工程师需要不断手动调节traffic signal timing:由于传感器获取数据的触发条件是有车辆通过,所以交通信号灯不能观测并对实时交通情况做出反应。
传统的TSC系统有:SCATS, SCOOT
1.3 为什么要用强化学习算法解决TSC,有哪些优势?
现如今,数据来源更广泛,例如路口的监控摄像头可以获取很多数据,此外,通过地图软件(例如谷歌地图等app),共享出行软件也能获取很多信息,加上之后的车联网,V2X技术,获取海量的交通数据不是难事。其次,机器学习算法(尤其是深度学习相关的算法)与算力资源在相互促进中不断发展,现在的算力资源非常充足,并且能提供强大的算力模型。而机器学习算法本身的特点就是能够让智能体直接从原始数据中自我学习,并不需要不现实的假设。
机器学习算法大概可以分为有监督,无监督,强化学习三类,文中的立场是有监督学习并不适用于TSC。原因在于现存的TSC系统都是遵循预先设定好的信号模式,所以缺乏训练数据,算法无法根据这些数据判断该模式的好坏,换句话说,算法的上限完全取决于输入数据(这其实也是有监督学习和强化学习本质的区别)。强化学习的核心思想就是在人为根据不同任务所设定的reward下不断试错,从而得到一个最优策略。用稍微形式化的语言描述传统解决方案与强化学习的解决方案的区别就是:传统方法中输入数据到traffic signal plan的映射是静态的,而强化学习中该映射是可以不断更新迭代的。
其他用于解决TSC问题的智能算法包括:fuzzy logic, swarm intelligence,RL算法是近几年的趋势。
1.4 如何将TSC问题转化为RL问题(一般思路)?
Single Intersection
单交叉路口问题中的智能体用来控制信号灯,与之交互的环境就是除了信号灯之外的路况信息,例如车流量的情况(车辆的位置,信号灯的相位,车辆的等待时间等)。智能体做出的决策要能够最大化expected return,reward函数可以是对交叉路口交通条件的描述。
MultI-Intersection
多交叉路口中的各个信号灯可以通过一个centralized agent来控制,也可以将其当作一个个decentralized agent,对信号灯进行分别控制。该问题中的环境与单交叉路口一样,都是对路况信息的描述。环境会接收多智能体的联合动作,并根据算法设定的不同给出joint reward或independent reward。其目标是智能体做出的联合决策能够最优化路况,所以与单交叉路口一样,reward要能反映路口交通情况。此外,多智能体情况下会假设每个智能体只能观测到环境的其中一部分。
更具体关于信号灯控制在RL中的建模方式文章作者推荐:《 Opportunities for multiagent systems and multiagent reinforcement learning in traffic control》
(下文对这些泛泛的概念具体展开定义和描述)
2. 深度强化学习如何应用到TSC问题,每一步如何细化?
该综述对该领域文章的分类依照深度强化学习落地过程中的流程:
- 构建强化学习问题:设计奖赏函数,状态、动作空间;
- 确定智能体学习策略的方式:通过最大化expected return更不断优化策略。
- 确定智能体的协同方式:TSC问题中需要智能体协同的原因在于城市道路中各信号灯的距离很近,车辆从一个信号灯离开后(取决于signal timing)会影响车辆到达下一个路口的情况,从而影响下一个信号灯的决策。
2.1 RL Formulation
A. Reward Function
一句话描述一般情况下reward function设计的通用思路:
A typical reward definition for traffic signal control is a weighted linear combination of several components such as queue length, waiting time and delay
最直观的设计方式是直接使用travel time of all vehicles作为奖赏函数,但是该变量同时受vehicle movements和信号灯动作的同时影响,所以存在延迟可获取的问题,无法反映当前情况下信号灯相位的好坏,从而会导致算法效率变差。
大部分文献都会使用surrogate reward训练RL算法。其包含的变量总结如下表:
上述某些变量的定义说明:
- Change of delay: the difference between the total cumulative delays of two successive decision points.
- Pressure of the intersection:直观解释是,Higher pressure意味着驶入车道与驶出车道的数量不平衡(车辆驶入车道和驶出车道的总数量不相等)。
上述变量的线性组合的系数如果发生微小变化,则算法训练后的效果也非常不同。因此,一个趋势是在reward function中包含最小数量的因子。已有的结论是若在单交叉路口中使用queue length,多交叉路口中使用pressure, a variant of queue length则其与最优化global travel time是等效的。
B. State Definitions
智能体在与环境交互的过程中会获得与环境相关的量化描述,以作为状态信息,如下表:
可以看出,不同文章对状态空间的具体设定也不同。
上述某些变量的定义说明:
- Waiting time:被定义为车辆等待的时间,“waiting state”的定义有所不同,有的定义为车辆的速度小于 0.1 m / s 0.1m/s 0.1m/s被认为是等待状态,有的是车辆速度为0是等待状态。
- Volume:某车道上所有车辆的数量。同时包含queuing and moving vehicles。
- Delay:被定义为车辆在环境中行驶的时间减去期望行驶时间 (which equals the distance divided by the speed limit)
- Congestion:可以定义为congestion of outgoing approach,也可以定义为某个车道的拥堵程度。一般存在两种定义方式:indicator function (1表示拥堵,0表示不拥堵);另一种定义方式为the level of congestion,其值等于车辆的数量除以车道上最大允许的车辆数量。
- Positions of vehicles:该变量通常用像素表示,即矩阵形式(个人目前的理解是将路网进行细粒度网格分割),数值‘1’表示车辆出现在该网格内,‘0’表示车辆不在该区域内。
如果继续增加state space的复杂程度可能会导致算法效率下降,可能的原因在于智能体很难从该复杂空间中挖掘出有用信息。
C. Action Definitions
四种action模式(Action Scheme)
- Set current phase duration:从预先定义好的time periods集合中选择一个phase duration;
- Set cycle-based phase ratio:设置的是下一个周期中某个相位所占时间的比例。一般给定total cycle length,并且预先定义好一些phase ratio;
- Keep or change the current phase in a cycle-based phase sequence:action被表示成二进制数,表示智能体是否保持当前的相位,或改变为下一个相位;
- Choose the next phase:整个phase sequence是变化的并且不是预先设定的,智能体需要决定变化到哪一种相位,该模式下,action是下一个要进行的phase index。该模式下,signal timing更加灵活,智能体不需要假设cyclic signal。
2.2 Policy Learning Approach
由于交通流是不断变化的(例如所有车辆的位置,速度,加速度,所有信号灯的行为),驾驶员的行为也因人而异,所以环境的状态转移函数很难被建模。因此,model-based RL的学习过程比较困难,该领域中的方法主要关注于model-free RL algorithm。
文章中的三种分类方式
- Model-based V.S. Model-free
- Value-based V.S. Policy-based
- Tabular V.S. Approximation
小规模的问题可以使用tabular方法求解,用表格枚举每个state-action pair,并计算对应的Q值。因此,tabular RL的缺点就在于维数灾难和很难扩展的问题。Funtion approximation一般通过神经网络来实现。
代表性的方法总结
(完整的引文方法总结见原论文)
最常见的还是采用强化学习中的value-based, policy-base, actor-critic的方式。
Value-Based V.S. Policy-Based
Value-based主要应用的算法是Q-learning, DQN及其变体,思路是用网络评估智能体的动作(例如,在当前交通条件下,信号灯进入某个相位,车流的平均速度是否增加或减小),并用 ϵ − g r e e d y \epsilon-greedy ϵ−greedy方法选择策略。其存在的问题在于动作空间必须离散化,而且随着离散化的维度增大,算法效率下降(维数灾难问题)。
Policy-Based是直接更新智能体策略的参数,并且不需要离散化动作空间,这类算法也可以学得随机策略,增加智能体的探索能力。常见用于该应用的方法是DDPG。Actor-critic方法本质上也属于Policy-based,但结合了value-based的优势,通过参数化的函数评估参数化策略函数的输出。这两类方法中的神经网络形式有:MLP, CNN, RNN, 或其他特殊的神经网络结构(为了加入先验知识)。
2.3 Coordination Strategy
A. Joint Action Learner
最直观的方法是:Single Global Agent,该方法直接用所有智能体的状态作为输入,输出动作为所有智能体的joint actions。该方法的问题就是维度灾难,随着智能体数量的增加,状态动作空间指数级增长。
Joint Action Learner是对所有智能体的joint action value进行建模,即,
Q
(
o
1
,
…
,
o
N
,
a
)
Q(o_1,\dots,o_N,\textbf a)
Q(o1,…,oN,a),但依然存在智能体数量增加joint action space增加的问题。因此,一些方法对该joint Q value进行分解操作,分解成每个智能体的Q值的线性叠加,或加权叠加(权重预先设定好):
Q
(
o
1
,
…
,
o
N
,
a
)
=
∑
i
,
j
Q
i
,
j
(
o
i
,
o
j
,
a
i
,
a
j
)
Q(o_1,\dots,o_N,\textbf a)=\sum_{i,j}Q_{i,j}(o_i,o_j,\textbf a_i, \textbf a_j)
Q(o1,…,oN,a)=i,j∑Qi,j(oi,oj,ai,aj)
Q
(
o
1
,
…
,
o
N
,
a
)
=
∑
i
,
j
w
i
,
j
Q
i
,
j
(
o
i
,
o
j
,
a
i
,
a
j
)
Q(o_1,\dots,o_N,\textbf a)=\sum_{i,j}w_{i,j}Q_{i,j}(o_i,o_j,\textbf a_i, \textbf a_j)
Q(o1,…,oN,a)=i,j∑wi,jQi,j(oi,oj,ai,aj)
智能体的更新方式通过最小化global Q和individual Q的差距的损失。
B. Independent Learners (Independent RL, IRL)
Independent RL方法中将多个信号灯当作独立的智能体,每个智能体只能观测到局部环境信息,并只能获取Individual reward,并根据其做出动作,并最终相互同步。
IRL without Communication
智能体不能用communication message解决相互的冲突,而且智能体只能获取局部信息。该方法在简单场景下:例如arterial network中可以有很好的表现,但在环境变得复杂后,该方法的表现变差。所遇到的问题就是MARL中的Non-stationarity的问题,由于其他智能体的动作(被当前智能体当作是环境的一部分)在不断变化,马尔可夫性在此场景下是不成立的,而且在频繁变化的环境中,在环境下一次变化之前智能体是没有时间去感知环境并自适应做出一些决策变化的。为了解决这个问题,有的研究提出一种特殊化的reward,该Reward描述了智能体与临近智能体的协同需求。
IRL with Communication
引入智能体之间的communication之后,智能体能最终表现成一个整体。一般方法假设当前智能体能够获取其他智能体的观测或动作。在此条件下,所有智能体可以共享一个model。也有的研究用graph convolutional network协同非邻近的交叉路口。也有使用graph attentional network学习当前智能体与其他智能体动态交互过程(指智能体的隐藏状态的相互交互)的研究。文中还提中,使用graph convolutional network学习communication与在Joint action-learner中的max-plus方法是强相关的,两种方法都能被视作学习在图中传递的信息( learn the message passing on the graph),图神经网络传递的是state observations,而max-plus传递的是reward。
coordination strategy总结如下表:
3. 算法的效果好坏如何评估?
A. 算法的评价标准
算法的总宗旨是保证通过路口车流的safety和efficiency。量化指标与reward中的指标相同。
- average travel time of all vehicles
- the average number of stops
- the average queue length in the road network
- the throughput of the road network
B. 仿真环境的选择
可供选择的仿真器如下(重点可以关注下SUMO和CityFlow):
C. 路网与车流的设定
路网的设定
在粗尺度下,路网可以被定义为有向图,其中节点和边分别表示交叉路口和道路。路网的设定一般分为人工合成的(例如在SUMO仿真器中搭建路网)和实际路网。实际路网更加复杂,例如每个车道的特征都不同,例如每个车道的限速不同,长宽可能也不同。
车流的设定
在一般的交通流数据集中,每个车辆用
(
o
,
t
,
d
)
(o,t,d)
(o,t,d)描述,其中
o
o
o,
t
t
t,
d
d
d分别表示原点位置,时间,目标位置,
o
,
d
o,d
o,d是路网中的位置。车流变化越大,RL算法越难学到最优策略。此外,车辆行为模型(vehicle behavior models)(换道模型,速度变化模型,路径规划模型)的不同也会影响交通流。但文献中一般固定上述模型。
4. 用深度强化学习解决TSC还有哪些待解决的问题?
- Benchmark Datasets and Baselines:当前用RL解决TSC问题中没有一个标准的数据集,这样不方便算法的相互对比。第二个问题是当前领域的RL算法一般都会缺少与传统方法的比较,也就是说传统求解方法是不能被忽视的。
- Learning Efficiency:sample efficiency一直是RL算法的通病,该问题也存在于解决TSC问题的算法中。一些潜在的解决方法包括:Meta-learning或Imitation learning。
- Safety Issue:safety问题也是RL算法落地的一个痛点,智能体需要安全有效地完成探索,在此过程中应该加入一些描述评估风险的约束条件,例如保护正在通过交叉路口的行人,或者是避免车辆的碰撞。
- Transferring from simulation to reality:强化学习算法落地到实际应用(游戏场景除外,这属于Game as Simulation)或多或少均存在Reality Gap的问题。一些研究提出,在应用到real-world之前学习一个可解释的策略(Interpretable policy),或者是build一个更真实的仿真器,或者是结合迁移学习(Transfer learning)的方法。
引用
本文总结的两篇综述文章:
- Recent Advances in Reinforcement Learning for Traffic Signal Control: A Survey of Models and Evaluation (2021年)
- A Survey on Traffic Signal Control Methods (2020年)
其他综述文章:
- An Experimental Review of reinforcement learning algorithms for adaptive traffic signal control
- A Survey on Reinforcement Learning Models and Algorithms for Traffic Signal Control
(以上两篇与tabular RL结合)