【论文笔记·RL】InitLight: Initial Model Generation for Traffic Signal Control Using AIRL

InitLight: Initial Model Generation for Traffic Signal Control Using Adversarial Inverse Reinforcement Learning

摘要

当前基于强化学习的TSC方法基于试错,会导致较长的训练时间和对其他复杂交通环境较差的适应性。

本文提出了基于模仿学习的预训练方法InitLight,能够有效生成初始模型。InitLight仅基于多个单交叉路口和对应的专家轨迹训练一个初始模型。由于InitLight学习的奖励函数能够还原各个路口最优状态下TSC的真实奖励,因此预训练模型能够被用来作为初始模型加速RL训练。

实验表明InitLight生成的初始模型能够加速收敛,同时能够泛化能力强,能够适应各种复杂交通环境。

介绍

当前基于RL的TSC方法都是基于特定环境训练的,难以应用于其他交通环境。本文问题在于:如何有效提高学习效率和泛化能力

image-20230815141507549

InitLight由两个部分组成,包括生成器(Generator)和鉴别器(Discriminator)。与传统基于RL的TSC方法在特定交通路网训练一批Agent不同,InitLight则是基于多个单交叉路口环境和其对应的专家轨迹进行预训练。

InitLight采用了PPO算法作为Generator中的Agent,并在Discriminator的引导下进行训练。Discriminator的功能是区分Agent的轨迹和专家轨迹,此处指的轨迹是 < s , a , s ′ > <s,a,s'> <s,a,s>

Discriminator可以学习到一个奖励函数,用以在任何交通环境中还原真正的奖励函数。因此通过InitLight预训练的Agent能够部署在任何复杂的交通环境中,作为初始模型,加速训练。

本文贡献:

  • 提出了一种模仿学习框架,能够快速为各种多路口环境生成通用有效的模型,加速RL训练。
  • 引入对抗学习机制,来支持RL模型和奖励函数同时学习,采用Discriminator可以还原真实最优奖励。
  • 采用Cityflow,将InitLight在真实和模拟数据集上进行实验,效果很好。

实现方法

image-20230815160404603

上图是InitLight的详细构成,其对抗框架包括一个Generator、一个Discriminator和三个Buffer。通过PPO Agent和环境交互,Generator生成轨迹数据 < s , a , s ′ > <s,a,s'> <s,a,s>,存储到Agent Trajectory Buffer,用以迷惑Discriminator。Discriminator通过辨别专家轨迹和Agent轨迹,从而学习到一个奖励函数,从而指导PPO Agent的学习。

Generator设计

Generator由PPO Agent和单路口环境构成,Agent与环境交互获得轨迹数据 < s , a , r , s ′ > <s,a,r,s'> <s,a,r,s>。其中轨迹数据 < s , a , r , s ′ > <s,a,r,s'> <s,a,r,s>将会被存储到Agent Replay Buffer中用以训练Agent, < s , a , s ′ > <s,a,s'> <s,a,s>被存储到Trajectory Buffer中,通过Discriminator获得奖励。

路口建模

image-20230815193031832

驶入车道 L a = { l i 1 , l i 2 , … , l i 12 } L_a=\{l_i^1,l_i^2,\dots,l_i^{12}\} La={li1,li2,,li12},驶出车道 L d = { l o 1 , l o 2 , … , l o 12 } L_d=\{l_o^1,l_o^2,\dots,l_o^{12}\} Ld={lo1,lo2,,lo12}

车辆的行驶轨迹(车流运动)可以表示为 ( l i , l o ) (l_i,l_o) (li,lo),例如图中所示 ( l i 10 , l o 10 ) (l_i^{10},l_o^{10}) (li10,lo10) ( l i 11 , l o 11 ) (l_i^{11},l_o^{11}) (li11,lo11)

由于右转不受信号灯控制,故有八相位 P = { p 1 , … , p 8 } P=\{p_1,\dots,p_8\} P={p1,,p8},图中所示为相位 p 5 p_5 p5

压力

采用压力机制设计Agent。

**定义1:**车流运动压力。
P ( l i , l o ) = N ( l i ) − N ( l o ) P_{(l_i,l_o)}=N(l_i)-N(l_o) P(li,lo)=N(li)N(lo)
**定义2:**路口压力。
P I = ∣ ∑ l i ∈ L a N ( l i ) − ∑ l o ∈ L d N ( l o ) ∣ P_I=|\sum_{l_i\in L_a}N(l_i)-\sum_{l_o\in L_d}N(l_o)| PI=liLaN(li)loLdN(lo)
压力机制表示了到达和离开车辆的不平衡程度。通过最小化压力可以最大化路口吞吐量。

Agent设计

**状态:**所有车流运动的压力 ( P ( l i 1 , l o 1 ) , P ( l i 2 , l o 2 ) , … , P ( l i 12 , l o 12 ) ) (P_{(l_i^1,l_o^1)},P_{(l_i^2,l_o^2)},\dots,P_{(l_i^{12},l_o^{12})}) (P(li1,lo1),P(li2,lo2),,P(li12,lo12))和当前相位 p c u r p_{cur} pcur

**动作:**八相位。

**奖励:**使用 r = − P I r=-P_I r=PI表示奖励,其中 P I P_I PI是路口压力。本文中使用Discriminator学习从专家轨迹和Agent轨迹样本中学习奖励函数。

image-20230815193113953

PPO Agent为AC架构,其中Actor参数为 A θ A_\theta Aθ,Critic参数为 C θ C_\theta Cθ。Actor用于学习动作策略,Critic用于评价优化Actor。采用Replay Buffer收集了连续的轨迹样本。

Critic模型

Critic损失函数:
L c = E [ ∣ C θ ( s t ) t a r g e t − C θ ( s t ) ∣ ] L_c=\mathbb{E}[|C_\theta(s_t)_{target}-C_\theta(s_t)|] Lc=E[Cθ(st)targetCθ(st)]
其中采用TD算法计算 C θ ( s t ) t a r g e t C_\theta(s_t)_{target} Cθ(st)target
C θ ( s t ) t a r g e t = r t + 1 + γ ⋅ C ( s t + 1 ) C_\theta(s_t)_{target}=r_{t+1}+\gamma\cdot C(s_{t+1}) Cθ(st)target=rt+1+γC(st+1)
Critic采用的梯度下降算法为Adam:
θ C ′ = θ C − η C ∇ L C \theta'_C=\theta_C-\eta_C\nabla L_C θC=θCηCLC
其中 ∇ L C \nabla L_C LC是Critic的损失, θ C \theta_C θC是模型参数, θ C ′ \theta'_C θC是更新后的模型参数, η C \eta_C ηC是学习率。

Actor模型

Actor原始损失函数:(需推导)
L A = E [ l o g ( A θ ( a t ∣ s t ) ) A t ] L_A=\mathbb{E}[log(A_\theta(a_t|s_t))A_t] LA=E[log(Aθ(atst))At]
其中 A t A_t At是时间步 t t t优势函数估计的价值,其根据GAE进行计算:( λ = 1 \lambda=1 λ=1时,退化为原始优势函数)
A t = δ t + ( γ λ ) δ t + 1 + ( γ λ ) 2 δ t + 2 + ⋯ + ( γ λ ) ∣ B ∣ − t + 1 δ ∣ B ∣ − 1 A_t=\delta_t+(\gamma\lambda)\delta_{t+1}+(\gamma\lambda)^2\delta_{t+2}+\dots+(\gamma\lambda)^{|B|-t+1}\delta_{|B|-1} At=δt+(γλ)δt+1+(γλ)2δt+2++(γλ)Bt+1δB1
其中 γ ∈ [ 0 , 1 ] \gamma\in[0,1] γ[0,1]是折扣因子, γ ∈ [ 0 , 1 ] \gamma\in[0,1] γ[0,1]是GAE参数, ∣ B ∣ |B| B是batch_size, δ t = r t + γ C θ ( s t + 1 ) − C θ ( s t ) \delta_t=r_t+\gamma C_\theta(s_{t+1})-C_\theta(s_t) δt=rt+γCθ(st+1)Cθ(st)

在本模型中,不再使用Actor原始损失函数,而使用重要性抽样来获得新Actor模型 A θ A_\theta Aθ产生的样本期待。则其损失函数为:(可推导)
L A = E [ A θ ( a t ∣ s t ) A θ o l d ( a t ∣ s t ) A t ] L_A=\mathbb{E}[\frac{A_\theta(a_t|s_t)}{A_\theta^{old}(a_t|s_t)}A_t] LA=E[Aθold(atst)Aθ(atst)At]
使用KL散度能够在限制下优化 L A L_A LA
E [ K L ( A θ ( ⋅ ∣ s t ) , A θ o l d ( ⋅ ∣ s t ) ) ] ≤ ϵ \mathbb{E}[KL(A_\theta(\cdot|s_t),A^{old}_\theta(\cdot|s_t))]\le\epsilon E[KL(Aθ(st),Aθold(st))]ϵ
其中 ϵ \epsilon ϵ是一个较小的值。

为了简化实现,提高采样效率,使用了PPO-clip给出损失函数(代替KL散度):
L A = E [ m i n ( R t , c l i p ( R t , 1 − σ , 1 + σ ) ) A t ] L_A=\mathbb{E}[min(R_t,clip(R_t,1-\sigma,1+\sigma))A_t] LA=E[min(Rt,clip(Rt,1σ,1+σ))At]
其中, R t = A θ ( a t ∣ s t ) A θ o l d ( a t ∣ s t ) R_t=\frac{A_\theta(a_t|s_t)}{A_\theta^{old}(a_t|s_t)} Rt=Aθold(atst)Aθ(atst) σ \sigma σ是裁剪参数用于约束 c l i p ( ⋅ ) clip(\cdot) clip()函数上下界。PPO-clip可以有效避开负优势,而不会贪婪选择正优势。

Discriminator设计

image-20230815222711941

Discriminator用于从专家轨迹中学习奖励函数,从而能够指导模型预训练。Discriminator包括两个神经网络 R R R V V V。Agent生成的轨迹表示为 < s , a , s ′ > <s,a,s'> <s,a,s>,专家轨迹表示为 s e , a e , s e ′ s_e,a_e,s_e' se,ae,se

根据轨迹中心公式,Discriminator D θ D_\theta Dθ被定义为:(1/2最优)
D θ ( τ ) = e x p { f θ ( τ ) } e x p { f θ ( τ ) } + π ( τ ) D_\theta(\tau)=\frac{exp\{f_\theta(\tau)\}}{exp\{f_\theta(\tau)\}+\pi(\tau)} Dθ(τ)=exp{fθ(τ)}+π(τ)exp{fθ(τ)}
其中 τ \tau τ是策略生成的状态和动作, f θ f_\theta fθ是函数 f f f的可学习参数, π \pi π是Agent的策略(最大化学习奖励 R ( τ ) = l o g D θ ( τ ) − l o g ( 1 − D θ ( τ ) ) R(\tau)=logD_\theta(\tau)-log(1-D_\theta(\tau)) R(τ)=logDθ(τ)log(1Dθ(τ)))( D = 1 2 D=\frac{1}{2} D=21时,为0)。

Discriminator更新被视作奖励函数更新,策略更新被视作采样分布更新。

若训练到最优,可以证明Discriminator可以提取到最优奖励函数 f ∗ ( τ ) = R ∗ ( τ ) + c f^*(\tau)=R^*(\tau)+c f(τ)=R(τ)+c,并且策略 π \pi π能够还原最优策略。但由于使用所有轨迹 τ \tau τ相较于只使用状态奖励对会导致高方差,故本文使用下式代替 D θ D_\theta Dθ
D θ ( s , a ) = e x p { f θ ( s , a ) } e x p { f θ ( s , a ) } + π ( a ∣ s ) D_\theta(s,a)=\frac{exp\{f_\theta(s,a)\}}{exp\{f_\theta(s,a)\}+\pi(a|s)} Dθ(s,a)=exp{fθ(s,a)}+π(as)exp{fθ(s,a)}
又由于 f θ ∗ ( s , a ) f^*_\theta(s,a) fθ(s,a)与最优策略的优势函数 A ∗ ( s , a ) A^*(s,a) A(s,a)相同:
f θ ∗ ( s , a ) = l o g π ∗ ( a ∣ s ) = A ∗ ( s , a ) f^*_\theta(s,a)=log\pi^*(a|s)=A^*(s,a) fθ(s,a)=logπ(as)=A(s,a)
优势函数根据最优策略的动作监督每个动作,对环境状态不具有鲁棒性。

为解耦奖励函数和优势函数,Discriminator:
D θ ( s , a , s ′ ) = e x p { f R θ , V θ ( s , a , s ′ ) } e x p { f R θ , V θ ( s , a , s ′ ) } + A θ ( a ∣ s ) D_\theta(s,a,s')=\frac{exp\{f_{R_\theta,V_\theta}(s,a,s')\}}{exp\{f_{R_\theta,V_\theta}(s,a,s')\}+A_\theta(a|s)} Dθ(s,a,s)=exp{fRθ,Vθ(s,a,s)}+Aθ(as)exp{fRθ,Vθ(s,a,s)}
其中策略 π \pi π是Actor A θ A_\theta Aθ f R θ , V θ f_{R_\theta,V_\theta} fRθ,Vθ由奖励近似函数 R θ R_\theta Rθ和整形项 V θ V_\theta Vθ组成:
f R θ , V θ ( s , a , s ′ ) = R θ ( s , a ) + γ V θ ( s ′ ) − V θ ( s ) f_{R_\theta,V_\theta}(s,a,s')=R_\theta(s,a)+\gamma V_\theta(s')-V_\theta(s) fRθ,Vθ(s,a,s)=Rθ(s,a)+γVθ(s)Vθ(s)
其中 V θ V_\theta Vθ能够减轻奖励近似函数 R θ R_\theta Rθ不必要的影响,在最优条件下其可以恢复一个只有状态的真值奖励。
R θ ∗ = R ∗ ( s ) + c V θ ∗ = V ∗ ( s ) + c R^*_\theta=R^*(s)+c\\ V^*_\theta=V^*(s)+c Rθ=R(s)+cVθ=V(s)+c
其中 R ∗ ( ⋅ ) R^*(\cdot) R()是真正的奖励函数, V ∗ ( ⋅ ) V^*(\cdot) V()是最优价值函数。

根据 f θ ∗ ( s , a ) f^*_\theta(s,a) fθ(s,a)与最优策略的优势函数 A ∗ ( s , a ) A^*(s,a) A(s,a)相同:
f ∗ ( s , a , s ′ ) = A ∗ ( s , a ) = Q ( s , a ) − V ( s ) = R ∗ ( s ) + γ V ∗ ( s ′ ) − V ∗ ( s ) f^*(s,a,s')=A^*(s,a)=Q(s,a)-V(s)=R^*(s)+\gamma V^*(s')-V^*(s) f(s,a,s)=A(s,a)=Q(s,a)V(s)=R(s)+γV(s)V(s)
f ∗ ( s , a , s ′ ) f^*(s,a,s') f(s,a,s)可视作随机环境中 A ∗ ( s , a ) A^*(s,a) A(s,a)的单样本估计, Q ( ⋅ ) Q(\cdot) Q()是Q函数。

使用二元交叉熵作为损失函数:
L D = L e + L a L e = − 1 N ∑ i = 1 N y e i l o g ( D G , H ( x e i ) ) + ( 1 − y e i ) l o g ( 1 − D G , H ( x e i ) ) L a = − 1 N ∑ i = 1 N y a i l o g ( D G , H ( x a i ) ) + ( 1 − y a i ) l o g ( 1 − D G , H ( x a i ) ) L_D=L_e+L_a\\ L_e=-\frac{1}{N}\sum^N_{i=1}y_{e_i}log(D_{G,H}(x_{e_i}))+(1-y_{e_i})log(1-D_{G,H}(x_{e_i}))\\ L_a=-\frac{1}{N}\sum^N_{i=1}y_{a_i}log(D_{G,H}(x_{a_i}))+(1-y_{a_i})log(1-D_{G,H}(x_{a_i})) LD=Le+LaLe=N1i=1Nyeilog(DG,H(xei))+(1yei)log(1DG,H(xei))La=N1i=1Nyailog(DG,H(xai))+(1yai)log(1DG,H(xai))
其中, x e i , x a i x_{e_i},x_{a_i} xei,xai是专家轨迹和Agent轨迹, y e i , y a i y_{e_i},y_{a_i} yei,yai是轨迹判断结果(0,1)。

image-20230816143205302

实验

实验设置

软硬件配置:

系统CPU内存GPU模拟器
Ubuntu3.7GHz Intel32GNVIDIA RTX 3080Cityflow

参数设置:

  • Actor:三层MLP,分别为13、32、8;
  • Critic:三层MLP,分别为13、64、1;
  • V、R:拥有相同结构,三层MLP,分别为13、32、1。
  • optim:Adam
  • lr:0.0003
  • 折扣因子 γ \gamma γ:0.99
  • GAE参数 λ \lambda λ:0.95
  • batch_size:20
  • PPO-clip裁剪参数 ϵ \epsilon ϵ:0.2

实验将从对专家轨迹学习的有效性,预训练模型的泛化性等方面进行介绍。

**Baseline:**略

数据集:

  • 真实单路口数据集:11个真实单路口数据集(S1-S11),来自杭州摄像头。基于杭州出租车数据统计,转向率为10%、60%和30%。
  • 模拟多路口数据集:4个模拟多路口数据集(Syn1-Syn4),包括1×3、2×2、3×3和4×4。数据集车辆到达率是500辆/小时,符合高斯分布。
  • 真实多路口数据集:5个真实多路口数据集(Hangzhou1、Hangzhou2、Jinan1、Jinan2、Jinan3),杭州数据集拥有16个路口,济南数据集有12个路口。

模仿学习性能

对每个Baseline在S1-S11上每个路口训练20个Episode,共220个Episode。专家轨迹则使用MP机制在每个路口生成的轨迹。

image-20230816153636941

7 11 \frac{7}{11} 117的数据集上取得了最优或次优的效果。A2C和FedLight相同是由于FedLight在单路口数据集上退化为A2C。

image-20230816153812270

InitLight最快收敛并且平均行驶时间最小,其他3个Baseline则需要更多的Episode才能收敛,并且波动更加显著(无专家轨迹指导)。

迁移学习性能

在不同的多路口数据集上进行了9个迁移任务,每个路口设置一个Agent。对特定的多路口数据集,训练200个Episode。

image-20230816160250526

除InitLight在所有多路口数据集上使用相同的预训练模型,其他模型都是随机初始化。InitLight在几乎所有数据集上都取得了最好效果。

image-20230816161100950

InitLight在5个Episode内就取得了收敛。

image-20230816161347343

上表表示了模型收敛时的平均行驶时间和收敛的轮数。

可学习奖励函数质量

本文比较了Discriminator学习到的奖励和通过MP机制计算的真实奖励。

image-20230816214051093

上图比较了单路口数据集在最后一个episode的奖励,每个episode包含360步(最小动作时间为10s,3600/10),奖励趋势相似。

image-20230816214554959

轨迹趋势也相似。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值