Reinforcement Learning Approaches for Traffic Signal Control under Missing Data
摘要
真实城市场景中会由于传感器的缺失造成交通状态缺失的情况,进而导致现有的强化学习方法无法适应缺失观测的路网。本文旨在缺失部分观测的路网中,进行交通信号控制。
本文提出了两种解决方法:
- 输入交通状态实现自适应控制;
- 同时输入状态和奖励实现自适应控制和Agent训练。
本文在模拟数据集和真实数据集上进行实验,本文模型优于传统方法并在不同缺失率下表现一致。
介绍
当前大多数工作都集中于提升强化学习方法的性能,但强化学习不能直接部署在交通状态数据缺失的环境中,而许多城市的传感器又只部署在主要路口上,无传感器的路口不能利用强化学习方法进行提前规划以适应动态交通。
本文工作如下:
- 本文是第一个在数据缺失场景下使用基于强化学习的交通信号控制方法,提高了在现实场景中的适应性。
- 在缺失观测的情况下,测试了多种控制路口的方法。提出首先计算状态和奖励,然后实现强化学习训练的两步法。
- 提出的方法能够在无数据缺失和部分数据缺失的情况下获得更好的效果。
- 本文在不同缺失率的模拟和真实数据集进行了实验,结果显示很好。同时将提出的方法拓展到异构数据集上并验证了方法的有效性。
本文采用插补的方法来推断缺失路口的当前状态。
理论
本文中每个路口设置一个Agent,仅部分Agent拥有其所在路口的观测并将观测作为状态。模型设计的目标是决定所有路口的交叉路口相位,从而最小化平均排队长度。问题能够形式化表示成 < S , S ^ , A , r , Π , γ > <\mathcal{S},\hat{\mathcal{S}},\mathcal{A},r,\Pi,\gamma> <S,S^,A,r,Π,γ>。
- **观测状态空间 S \mathcal{S} S和插补状态空间 S ^ \hat{\mathcal{S}} S^。**设系统由交叉路口集合 N = N o ∪ N m \mathcal{N}=\mathcal{N_o}\cup\mathcal{N_m} N=No∪Nm组成,其中 N o {\mathcal{N_o}} No是Agent能够观测到所在路口状态 s ∈ S \mathcal{s}\in\mathcal{S} s∈S的路口集合, N m \mathcal{N_m} Nm是Agent不能观测到所在路口状态的路口集合。将 s t j \mathcal{s_t^j} stj定义为Agent j ∈ N o j\in\mathcal{N_o} j∈No在时刻 t t t时的状态,包括时刻 t t t时的相位和每个车道上的车辆数。
- **动作集合 A \mathcal{A} A。**在时刻 t t t,Agent i i i需要从候选集合 A i \mathcal{A_i} Ai中选择一个动作 a t i a^i_t ati,来决定后续 Δ t \Delta t Δt时间片的交通信号。
- **奖励 r r r。**各Agent i i i能够奖励函数 R \mathbb{R} R获得一个即时奖励 r t i r_t^i rti,本文目标是最小化路网中所有车辆的行驶时间,因此将奖励 r t i = − ∑ l u t i , l r_t^i=-\sum_l{u_t^{i,l}} rti=−∑luti,l作为奖励,其中 u t i , l u_t^{i,l} uti,l是车道 l l l在时刻 t t t的队列长度。此外,将 r t j r^j_t rtj设为Agent j ∈ N o j\in\mathcal{N}_o j∈No在时刻 t t t获得的可观测奖励,将 r t k ^ \hat{r^k_t} rtk^设为Agent k ∈ N m k\in\mathcal{N}_m k∈Nm在时刻 t t t获得的不可观测奖励。
- **策略 Π \Pi Π和折扣因子 γ \gamma γ。**Agent根据特定的策略 π : S → A \pi:\mathcal{S}\rightarrow\mathcal{A} π:S→A选择动作,并且 π θ ∈ Π \pi_\theta\in\Pi πθ∈Π,其中 θ \theta θ是参数。采用策略的目标是最大化全局奖励 G t i = ∑ τ = t T γ τ − t r t i G_t^i=\sum^T_{\tau=t}\gamma^{\tau-t}r_t^i Gti=∑τ=tTγτ−trti,其中 T T T是总时间步, γ ∈ [ 0 , 1 ] \gamma\in[0,1] γ∈[0,1]。
基于强化学习的交通信号控制方法可分为训练和执行两步。
方法
当前的最大压力控制理论和基于强化学习的方法不能有效在路口集合 N m \mathcal{N}_m Nm缺失的情况下运行。本文提出了两种有效的插补方法来解决该问题。
传统方法
- 预设控制
- 预设控制与强化学习控制混合使用
- 邻近强化学习控制:将邻居观测的状态和奖励作为自己的状态和奖励,该方法遵循了部分可观察马尔可夫决策过程(POMDP),并且假设从邻居路口观测到的交通状态能够反映无法观测到的交通状态。这种方法在缺失路口过多或交通复杂时无法使用。
解决方法1:对无法观测到的状态进行插补
一种解决方法是对路口集合 N m \mathcal{N}_m Nm无法观测到的状态 s ^ t k \hat{\mathcal{s}}_t^k s^tk进行插补。插补完成后,即可使用动态控制方法。
插补
本文预训练了一个状态插补模型并在不同无观测的路口间进行共享,即当前每条车道的车辆都是由上一个时间段的相关车道计算得到的。设邻居路口集合的状态为
V
k
\mathcal{V}^k
Vk,
k
∈
N
m
k\in \mathcal{N}_m
k∈Nm,则对路口
k
k
k的状态插补可以表示为:
s
^
t
k
=
f
(
V
t
−
1
k
)
\hat{s}_t^k=f(\mathcal{V}^k_{t-1})
s^tk=f(Vt−1k)
f
f
f可以是任何插补模型。本文使用了两种与训练模型,包括基于规则的存储转发模型(SFM)和一种神经网络模型。
控制
完成插补后,本文探究了两种控制方法。
方法1:自适应控制方法 例如MaxPressure。
方法2:迁移RL模型 在可观测路口 N o \mathcal{N}_o No训练RL方法策略 π θ \pi_\theta πθ,并在缺失路口使用。因为所有Agent都采用同种策略,所有将这些共享模型的Agent称为SDQN。执行过程中:
- 对于可观测路口,Agent j ∈ N o j\in\mathcal{N}_o j∈No能够直接利用所在路口的状态 s t j s_t^j stj做出动作决策 π θ ( a t j ∣ s t j ) \pi_{\theta}(a^j_t|s^j_t) πθ(atj∣stj);
- 对于不可观测路口,Agent k ∈ N o k\in\mathcal{N}_o k∈No首先插补状态 s ^ t k \hat{s}_t^k s^tk,然后做出动作决策 π θ ( a t j ∣ s ^ t j ) \pi_{\theta}(a^j_t|\hat{s}^j_t) πθ(atj∣s^tj)。
- 在该方法中,本文采用可观测路口 j ∈ N o j\in \mathcal{N}_o j∈No产生的经验 ( s t j , r t j , a t j , s t + 1 j ) (s^j_t,r^j_t,a^j_t,s^j_{t+1}) (stj,rtj,atj,st+1j)用于训练RL模型,并在所有路口间共享。
方法2能够提高采样效率,并且所有的样本都来自真实环境。但根据可观测路口样本训练的模型可能无法处理缺失路口的场景,从而导致策略的损失。
解决方法2:对无法观测到的状态和奖励进行插补
另一种方法是对路口集合 N m \mathcal{N}_m Nm无法观测到的状态 s ^ t k \hat{\mathcal{s}}_t^k s^tk和 r ^ t k \hat{\mathcal{r}}_t^k r^tk都进行插补,这样就可以利用缺失路口获得插补经验 ( s ^ t j , r ^ t j , a ^ t j , s ^ t + 1 j ) (\hat{s}^j_t,\hat{r}^j_t,\hat{a}^j_t,\hat{s}^j_{t+1}) (s^tj,r^tj,a^tj,s^t+1j)。
插补
状态插补过程与上述过程类似。在奖励插补过程中,将状态和动作作为输入来输出缺失路口的奖励 r ^ t k \hat{r}_t^k r^tk,并且在训练之前进行预训练。
在预训练阶段,采取传统方法(包括RL)在可观测路口 j ∈ N o j\in\mathcal{N}_o j∈No进行控制和采样,获得样本 ( s t j , r t j , a t j ) (s_t^j,r_t^j,a_t^j) (stj,rtj,atj)。从而使用样本并采用MSE Loss来训练奖励插补模型 g ψ g_{\psi} gψ。
在RL训练阶段,可观测路口
N
o
\mathcal{N}_o
No的状态
s
t
j
s_t^j
stj通过状态插补获得缺失路口的状态
s
^
t
k
\hat{s}^k_t
s^tk。再将状态
s
^
t
k
\hat{s}^k_t
s^tk和动作
a
t
k
a_t^k
atk喂给奖励插补模型
g
ψ
g_{\psi}
gψ:
r
^
t
j
=
g
ψ
(
s
^
t
k
,
a
t
k
)
\hat{r}^j_t=g_{\psi}(\hat{s}^k_t,a_t^k)
r^tj=gψ(s^tk,atk)
控制
完成状态和奖励插补后,即可使用普通的TSC方法进行解决。
方法1:并发学习 每个Agent从自己所在路口中学习自己的策略。使用插补后的状态和奖励来进行RL训练。这种方法能够在收敛的情况下实现各个路口的局部最优。但该方法会由于插补数据的不准确而导致难以获得稳定的模型。
方法2:参数共享 为提高采样效率,降低训练时的不稳定性,可采用参数共享。训练时,模型采用可观测路口和插补的数据同时作为样本。执行阶段,训练好的RL策略被所有路口共享。该方法易于收敛,能从异构数据集中收集经验。
方法3:参数共享+假想推出 在插补时,会使用基于规则的SFM和预训练的神经网络来插补状态或者状态和奖励。但是由于不同的策略引起的样本分布偏移会对预训练模型造成影。因此,本文将基于模型的强化学习方法与奖励插补模型和共享的Dyna-Q方法结合。
-
在该方法中,参数共享的Agent会根据可观测的经验和插补的经验来更新Q函数,每步奖励插补模型都会对可观测路口的奖励 r ^ j \hat{r}^j r^j进行预测,从而来计算loss。
-
每一轮的假想推出都会将可观测路口的样本 ( s c j , a c j , s c ′ j ) (s^j_c,a^j_c,s'^j_c) (scj,acj,sc′j)和缺失路口的样本 ( s ^ c k , a ^ c k , s ^ c ′ k ) (\hat{s}^k_c,\hat{a}^k_c,\hat{s}'^k_c) (s^ck,a^ck,s^c′k)进行采样,并使用奖励插补模型对奖励进行插补,用于更新Q函数:
Q θ ( s c i , a c i ) : = r ^ c i + γ max a ′ i Q θ ( s c ′ i , a ′ i ) Q_{\theta}(s_c^i,a_c^i):=\hat{r}_c^i+\gamma \text{max}_{a'^i}Q_{\theta}(s'^i_c,a'^i) Qθ(sci,aci):=r^ci+γmaxa′iQθ(sc′i,a′i)
实验
实验初始化
数据集
本文将两种插补方法在一个模拟数据集和两个真实数据集上进行了测试。包括 D S Y N , D H Z , D N Y D_{SYN},D_{HZ},D_{NY} DSYN,DHZ,DNY。
实现
- **强化学习设定:**探索率 ϵ = 0.1 \epsilon=0.1 ϵ=0.1,折扣因子 γ = 0.95 \gamma=0.95 γ=0.95,最小探索率 ϵ m i n = 0.01 \epsilon_{min}=0.01 ϵmin=0.01,探索衰减率 ϵ d e c a y = 0.995 \epsilon_{decay}=0.995 ϵdecay=0.995,模型学习率 r = 0.0001 r=0.0001 r=0.0001。
- **状态插补模型:**对于SFM模型,计算缺失路口状态 f ( V t − 1 k ) = 1 V t − 1 k ∑ l s t − 1 l , l ∈ V t − 1 k f(\mathcal{V}^k_{t-1})=\frac{1}{\mathcal{V}^k_{t-1}}\sum_ls^l_{t-1},l\in \mathcal{V}^k_{t-1} f(Vt−1k)=Vt−1k1∑lst−1l,l∈Vt−1k,其中 ∣ V t − 1 k ∣ |\mathcal{V}^k_{t-1}| ∣Vt−1k∣是路口 k k k的邻居路口数量。对于神经网络模型,本文使用了GraphWN用于插补状态,但发现SFM方法拥有更加稳定的性能。
- **奖励插补模型:**本文采用了四层的前馈神经网络并在并行方法下模拟了100轮,从而对模型进行预训练。训练样本被分为训练集和测试集(8:2),采用平均行驶时间作为奖励。
对比方法
前一方法代表在可观测路口使用的方法,后一方法代表在缺失路口使用的方法。
传统方法1:Fix-Fix。采用Webster方法计算固定配时时间并进行调整。
传统方法2:IDQN-Fix。可观测路口使用DQN,缺失路口使用固定配时。
传统方法3:IDQN-Neighboring。可观测路口和缺失路口都采用DQN,缺失路口采用邻居路口的状态和奖励,不可观测的邻居路口使用0填充。
方法1.1:IDQN-MaxP。仅插补状态。
方法1.2:SDQN-SDQN(transffered)。所有路口共用一个策略。仅插补状态。
方法2.1:IDQN-IDQN。拥有公共的奖励插补模型,每个路口拥有一个策略。包括状态插补和奖励插补。
方法2.2:SDQN-SDQN(all)。共享同一策略。包括状态插补和奖励插补。
方法2.3:SDQN-SDQN(model-based)。该方法拥有假想推出阶段,使用奖励插补模型对奖励进行预测。包括状态插补和奖励插补。