施賽江,陳 鋒
(中國(guó)科學(xué)技術(shù)大學(xué) 信息科學(xué)技術(shù)學(xué)院,安徽 合肥 230027)
隨著我國(guó)經(jīng)濟(jì)的快速發(fā)展,交通擁堵問題已經(jīng)非常嚴(yán)重,對(duì)國(guó)家造成了很大的經(jīng)濟(jì)損失。大力發(fā)展智能交通,利用人工智能領(lǐng)域的知識(shí),加強(qiáng)對(duì)城市交通信號(hào)的有效控制,可以有效緩解城市擁堵。調(diào)查統(tǒng)計(jì)發(fā)現(xiàn),大部分交通擁堵發(fā)生在交叉口,所以對(duì)城市交叉口采用更加智能的控制策略尤為關(guān)鍵。
采用強(qiáng)化學(xué)習(xí)方法對(duì)交叉口進(jìn)行優(yōu)化配時(shí)已經(jīng)取得了很好的效果[1-3]。為了加快Q學(xué)習(xí)的收斂速度,引入模糊學(xué)習(xí)[4]對(duì)Q函數(shù)進(jìn)行初始化,減少了Q學(xué)習(xí)的訓(xùn)練時(shí)間。但是強(qiáng)化學(xué)習(xí)的狀態(tài)空間不能太大,否則會(huì)出現(xiàn)維度爆炸的問題,所以狀態(tài)都采用低維人工特征,遺失了有用信息。
隨著近年深度學(xué)習(xí)的快速發(fā)展,MNIH V等人[5]最初提出深度Q學(xué)習(xí)(Deep Q Network,DQN),之后又對(duì)DQN進(jìn)行完善,在DQN的訓(xùn)練過程中引入了經(jīng)驗(yàn)池回放技術(shù)和目標(biāo)網(wǎng)絡(luò)的概念[6]。
已經(jīng)有研究將DQN應(yīng)用于交叉口的配時(shí)中,文獻(xiàn)[7]采用SAE網(wǎng)絡(luò)去估計(jì)Q值;文獻(xiàn)[8]和文獻(xiàn)[9]用深度卷積神經(jīng)網(wǎng)絡(luò)表示Q值,將交叉口車輛的位置、速度用矩陣表示;文獻(xiàn)[10]除了使用車輛的位置和速度矩陣外,還加入了車輛的加速度矩陣作為交叉口的狀態(tài),取得了一定的效果。但是,文獻(xiàn)[11]證明了單交叉口的狀態(tài)是部分可觀測(cè)馬爾科夫的(Partially Observable MDP,POMDP),本文為了進(jìn)一步降低交叉口的POMDP特性對(duì)深度Q學(xué)習(xí)性能的影響,對(duì)深度神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行改進(jìn),將深度循環(huán)Q學(xué)習(xí)(Deep Recurrent Q Network,DRQN)引入交叉口的配時(shí)中,同時(shí)本文針對(duì)上述研究中動(dòng)作空間較小的缺陷,增大了動(dòng)作空間。實(shí)驗(yàn)表明,改進(jìn)動(dòng)作空間后的DRQN表現(xiàn)要比DQN好,并且優(yōu)于傳統(tǒng)的交叉口控制方法定時(shí)控制和Q學(xué)習(xí)控制。
Q學(xué)習(xí)由如下過程來描述:智能體在環(huán)境中,狀態(tài)空間為S,可以采用的動(dòng)作空間為A,根據(jù)概率轉(zhuǎn)移矩陣P使得狀態(tài)從當(dāng)前狀態(tài)轉(zhuǎn)移到下一個(gè)狀態(tài),同時(shí)得到獎(jiǎng)賞R,狀態(tài)到動(dòng)作的Q值用Q(s,a)表示。
假設(shè)智能體在時(shí)刻t的狀態(tài)是st,智能體采取的動(dòng)作是at,智能體執(zhí)行動(dòng)作后狀態(tài)轉(zhuǎn)移到下一個(gè)t+1時(shí)刻,狀態(tài)為st+1,得到的獎(jiǎng)賞是rt,那么智能體根據(jù)所有的記錄(st,at,rt,st+1)更新Q(s,a)的值,從而找到最優(yōu)策略。
本節(jié)針對(duì)本文研究的單交叉口,將分別定義Q學(xué)習(xí)中的狀態(tài)、動(dòng)作和獎(jiǎng)賞函數(shù)。
考慮如圖1所示的四相位的單交叉口,以當(dāng)前路口四個(gè)相位的車輛的位置、速度、加速度矩陣作為輸入。
圖1 四相位交叉口示意圖
以圖1中入口道a為例,假設(shè)當(dāng)前路口車輛如圖2所示,考慮離停車線的距離為L(zhǎng)的路段,將道路劃分為多個(gè)小路段,稱為Cell,每個(gè)Cell的長(zhǎng)度是C,那么當(dāng)前路口車輛的位置、速度、加速度矩陣如表1~表3所示。當(dāng)某一輛車跨過兩個(gè)Cell時(shí),選擇占用比例大的那個(gè)Cell,速度矩陣、加速度矩陣和位置矩陣對(duì)應(yīng),矩陣的值經(jīng)過歸一化得到。
圖2 入口道a車輛位置示意圖
000000010100010011111000010011
表2 入口道a車輛速度矩陣
表3 入口道a車輛加速度矩陣
當(dāng)智能體觀測(cè)到狀態(tài)之后,需要在動(dòng)作空間中選擇一個(gè)動(dòng)作去執(zhí)行,在每個(gè)時(shí)刻選擇最優(yōu)的動(dòng)作即為交叉口的信號(hào)控制優(yōu)化,交叉口的信號(hào)控制優(yōu)化可以分為相序優(yōu)化和配時(shí)優(yōu)化兩種[1]。
當(dāng)前將深度Q學(xué)習(xí)應(yīng)用于單交叉口信號(hào)優(yōu)化的研究都采用的是相序優(yōu)化[8-10],本文將相序優(yōu)化和配時(shí)優(yōu)化結(jié)合,在優(yōu)化相序的同時(shí)使得每個(gè)相位的時(shí)間可選。本文假設(shè)右轉(zhuǎn)車輛常綠的情況下,四個(gè)相位分別是東西相位直行、東西相位左轉(zhuǎn)、南北相位直行、南北相位左轉(zhuǎn),同時(shí),增加這四個(gè)相位的配時(shí)時(shí)間,考慮到實(shí)際中配時(shí)不能太短也不能太長(zhǎng),故本文選擇配時(shí)為10 s~49 s 之間任意整數(shù)值,這樣動(dòng)作空間將是160維。
固定配時(shí)時(shí)間的方案中,僅僅是對(duì)相序進(jìn)行調(diào)整,最終配時(shí)將會(huì)是設(shè)定的固定配時(shí)的整數(shù)倍,會(huì)遺漏最優(yōu)動(dòng)作解。采用本文的配時(shí)方案,增加了動(dòng)作空間,在四相位不變的基礎(chǔ)上對(duì)每個(gè)相位增加可選時(shí)間,此時(shí)Agent不會(huì)錯(cuò)過最優(yōu)動(dòng)作解,同時(shí)160維動(dòng)作空間大小也符合神經(jīng)網(wǎng)絡(luò)的輸出層的大小要求。
Q學(xué)習(xí)會(huì)根據(jù)獎(jiǎng)賞函數(shù)來迭代訓(xùn)練,平均延誤能夠表示當(dāng)前路口的擁堵情況,故本文采用平均延誤作為獎(jiǎng)賞函數(shù)的評(píng)價(jià)指標(biāo),這里平均延誤用D表示,假設(shè)t時(shí)刻的平均延誤為dt,t+1時(shí)刻的平均延誤為dt+1,獎(jiǎng)賞函數(shù)為rt+1,則:
rt+1=-(dt+1-dt)
(1)
延誤變小,則rt+1>0,代表獎(jiǎng)賞;延誤變大,則rt+1<0,代表懲罰。
Q學(xué)習(xí)方法采用表格或者函數(shù)逼近器來表示Q(s,a)的值,深度Q學(xué)習(xí)采用更深層的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)表示Q(s,a|θ)的值,這里θ代表神經(jīng)網(wǎng)絡(luò)的權(quán)值,本節(jié)將會(huì)介紹具體的網(wǎng)絡(luò)結(jié)構(gòu)。
當(dāng)前的研究采用卷積神經(jīng)網(wǎng)絡(luò)和全連接神經(jīng)網(wǎng)絡(luò)結(jié)合的方式構(gòu)建DQN,但是由于路口的POMDP特性導(dǎo)致DQN的性能降低,定義POMDP中觀測(cè)狀態(tài)是O,那么O和真實(shí)狀態(tài)S是不同的,即Q(s,a|θ)!=Q(o,a|θ)。
本文引入DRQN,DRQN已經(jīng)被證明可以很好地處理POMDP問題[12]。DRQN中包含了循環(huán)神經(jīng)網(wǎng)絡(luò)層LSTM(Long Short-Term Memory),LSTM細(xì)胞狀態(tài)的設(shè)計(jì)可以記住時(shí)間軸上長(zhǎng)期的歷史信息,所以LSTM已經(jīng)在處理時(shí)間序列的問題中取得了很大的成功。
利用LSTM能夠記憶時(shí)間軸信息的特性,通過記憶前幾個(gè)時(shí)刻的輸入狀態(tài),而不是僅僅通過當(dāng)前時(shí)刻的狀態(tài),盡可能完全地表示當(dāng)前交叉口的輸入狀態(tài),減少Q(mào)(s,a|θ)和Q(o,a|θ)之間的差距,從而可以處理部分可觀測(cè)馬爾科夫問題,提高DQN算法的性能。
接下來介紹DRQN的網(wǎng)絡(luò)結(jié)構(gòu),使用卷積神經(jīng)網(wǎng)絡(luò)和循環(huán)神經(jīng)網(wǎng)絡(luò)相結(jié)合來表示Q函數(shù),將狀態(tài)矩陣連接具有兩層卷積層的卷積神經(jīng)網(wǎng)絡(luò),激活函數(shù)采用ReLU,后面是用ReLU激活的LSTM層,LSTM層的層數(shù)和每層神經(jīng)元的個(gè)數(shù)需要經(jīng)過實(shí)驗(yàn)確定,最后的輸出層是全連接層,用于將前面網(wǎng)絡(luò)提取的高維特征空間映射到低維的動(dòng)作空間,輸出的是所有動(dòng)作的Q值。網(wǎng)絡(luò)結(jié)構(gòu)如圖3所示。
圖3 DRQN網(wǎng)絡(luò)結(jié)構(gòu)
如第1節(jié)所述,強(qiáng)化學(xué)習(xí)在狀態(tài)轉(zhuǎn)移過程中產(chǎn)生很多組紀(jì)錄(st,at,rt,st+1),根據(jù)這些紀(jì)錄構(gòu)建深度神經(jīng)網(wǎng)絡(luò)的訓(xùn)練樣本,神經(jīng)網(wǎng)絡(luò)的輸入為st,輸出是目標(biāo)Q值:
yt=rt+γmaxat+1Q(st+1,at+1|θ)
(2)
式中γ是折扣因子,θ是深度Q網(wǎng)絡(luò)的權(quán)值。
定義誤差是均方根誤差MSE:
L(θ)=E[(rt+γmaxat+1Q(st+1,at+1|θ)-Q(st,at|θ))2]
(3)
采用Adam算法進(jìn)行網(wǎng)絡(luò)的訓(xùn)練。
為了使得深度神經(jīng)網(wǎng)絡(luò)能夠更快地收斂,在訓(xùn)練過程中采用目標(biāo)網(wǎng)絡(luò)和經(jīng)驗(yàn)池回放技術(shù)[6],同時(shí)為了避免算法陷入局部最優(yōu),采用ε貪心策略。ε會(huì)隨著訓(xùn)練次數(shù)而逐漸衰減:
(4)
其中,N是總的訓(xùn)練次數(shù),n是當(dāng)前訓(xùn)練次數(shù)。
DRQN算法步驟如下:
1: 初始化DRQN網(wǎng)絡(luò)結(jié)構(gòu),參數(shù)為θ;初始化目標(biāo)網(wǎng)絡(luò),參數(shù)為θ′=θ
2: 初始化ε,γ,N
3: for 1 到Ndo
4: 初始化交叉口狀態(tài)s0,初始化動(dòng)作a0
5: for 1 到Tdo
6: 以1-ε的概率選擇at=argmaxaQ(st,a|θ),以ε的概率隨機(jī)選擇一個(gè)動(dòng)作at
7: 執(zhí)行選擇的動(dòng)作at,得到獎(jiǎng)賞rt和下一個(gè)狀態(tài)st+1
8: 將此經(jīng)驗(yàn)(st,at,rt,st+1)存入經(jīng)驗(yàn)池M中
9: 如果經(jīng)驗(yàn)池中樣本數(shù)目達(dá)到batch:
10: 隨機(jī)從經(jīng)驗(yàn)池中取出batch大小的樣本,對(duì)每一條記錄,根據(jù)目標(biāo)網(wǎng)絡(luò)得到:
y=rt+γmaxat+1Q(st+1,at+1|θ′)
11: 用隨機(jī)梯度下降法Adam更新θ
12: 達(dá)到一定步數(shù)后更新θ′
13: 當(dāng)前狀態(tài)=新狀態(tài)
14: end for
15: end for
實(shí)驗(yàn)平臺(tái)選擇中國(guó)科學(xué)技術(shù)大學(xué)微觀交通仿真平臺(tái)2.1(USTC Microscopic Traffic Simulator2.1,USTCMTS2.1),利用Python實(shí)現(xiàn)的深度學(xué)習(xí)庫(kù)Keras搭建DRQN網(wǎng)絡(luò),兩者的通信采用IronPython庫(kù)。
參數(shù)設(shè)置:Q學(xué)習(xí)中折扣因子γ=0.95,循環(huán)次數(shù)N=200次,仿真中的T為0.1 h,L設(shè)置為224 m,C設(shè)置為7 m,經(jīng)驗(yàn)池大小M=2 000,batch為32,兩層卷積層的卷積核數(shù)目分別是32個(gè)和64個(gè),卷積核大小為3*3,神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)率為0.001。
路口流量設(shè)置:流量采用無錫市濱湖區(qū)梁清路和鴻橋路交叉口2017年7月3日的流量數(shù)據(jù),取其中有代表性的時(shí)間點(diǎn)08:00、11:00和23:00,此時(shí)的流量分別對(duì)應(yīng)過飽和度流量、近飽和度流量和低飽和度流量,具體數(shù)值見表4。
表4 三種飽和度流量各個(gè)進(jìn)口道流量值
3.2.1不同流量情況下網(wǎng)絡(luò)結(jié)構(gòu)確定
針對(duì)3.1節(jié)中典型的3種不同飽和度流量,本小節(jié)為這3種飽和度流量分別確定LSTM層的層數(shù)和神經(jīng)元個(gè)數(shù)。根據(jù)深度學(xué)習(xí)中的參數(shù)設(shè)置經(jīng)驗(yàn),選擇網(wǎng)絡(luò)的層數(shù)從1到3層,神經(jīng)元個(gè)數(shù)分別是{64,128,256,512},采用網(wǎng)格搜索,得到3種流量在不同的網(wǎng)絡(luò)參數(shù)下的平均延誤如表5~表7所示。
表5 低飽和度流量不同網(wǎng)絡(luò)參數(shù)下平均延誤表(s)
表6 近飽和度流量不同網(wǎng)絡(luò)參數(shù)下平均延誤表(s)
表7 過飽和度流量不同網(wǎng)絡(luò)參數(shù)下平均延誤表(s)
從表中可以看出,低飽和度流量下最優(yōu)的網(wǎng)絡(luò)結(jié)構(gòu)是2層LSTM層,每層包含128個(gè)神經(jīng)元,近飽和度流量下最優(yōu)的網(wǎng)絡(luò)結(jié)構(gòu)是1個(gè)LSTM層,每層包含256個(gè)神經(jīng)元,而過飽和度流量下最優(yōu)的網(wǎng)絡(luò)結(jié)構(gòu)是2個(gè)LSTM層,每層256個(gè)神經(jīng)元。
3.2.2不同網(wǎng)絡(luò)結(jié)構(gòu)下性能對(duì)比
以圖1所示的交叉口為實(shí)驗(yàn)對(duì)象,以表4中近飽和度流量為例,分析本文提出的DRQN的表現(xiàn)。網(wǎng)絡(luò)結(jié)構(gòu)采用3.2.1小節(jié)中表6所示的最優(yōu)的網(wǎng)絡(luò)結(jié)構(gòu),得到原始DQN的平均延誤為19.22 s,DRQN的平均延誤為18.04 s,發(fā)現(xiàn)DRQN的平均延誤比原始DQN減少了6.1%。圖4是DRQN和Q學(xué)習(xí)(Q Learning,QL)以及定時(shí)控制(Fixed Timing,FT)的對(duì)比,橫坐標(biāo)是仿真時(shí)間T,縱坐標(biāo)是平均延誤D,Q學(xué)習(xí)和定時(shí)控制的平均延誤是20.88 s和21.24 s,DRQN與這兩種算法相比,平均延誤分別減少了13.6%和15.1%,說明循環(huán)神經(jīng)網(wǎng)絡(luò)記錄的歷史信息確實(shí)使得觀測(cè)的狀態(tài)更加符合真實(shí)交叉口狀態(tài)。
圖4 三種算法平均延誤對(duì)比圖
接下來通過實(shí)驗(yàn)確定改進(jìn)動(dòng)作空間后的DRQN(用DRQN-A表示)和DRQN的對(duì)比。從圖5可以看到,增大動(dòng)作空間后,在相同的網(wǎng)絡(luò)結(jié)構(gòu)下平均延誤降低了6.7%,說明交叉口從動(dòng)作空間中選擇了更好的動(dòng)作。
圖5 DRQN和DRQN-A平均延誤對(duì)比圖
以上是對(duì)近飽和流量的情況下進(jìn)行的對(duì)比試驗(yàn),對(duì)3.1小節(jié)中其他兩種飽和度流量進(jìn)行實(shí)驗(yàn),網(wǎng)絡(luò)結(jié)構(gòu)均為3.2.1小節(jié)中最優(yōu)的網(wǎng)絡(luò)結(jié)構(gòu),平均延誤見表8。
表8 低飽和度和過飽和度平均延誤對(duì)比表 (s)
當(dāng)取另外兩種不同的飽和度時(shí),結(jié)果與近飽和時(shí)類似,原始DQN的平均延誤都要比定時(shí)控制和Q學(xué)習(xí)的平均延誤小,DRQN算法平均延誤也比原始DQN小,改進(jìn)動(dòng)作空間后,DRQN的性能也有提升,故本文提出的算法是有效的。
本文針對(duì)單交叉口的部分可觀測(cè)馬爾科夫特性對(duì)深度Q學(xué)習(xí)性能的影響,通過引入循環(huán)神經(jīng)網(wǎng)絡(luò),對(duì)深度Q學(xué)習(xí)網(wǎng)絡(luò)進(jìn)行改進(jìn),利用LSTM記憶時(shí)間軸信息的特性,使得交叉口的狀態(tài)更接近于完全可觀測(cè)馬爾科夫,同時(shí)考慮到動(dòng)作空間太小不利于交叉口找到最優(yōu)動(dòng)作的情況,增大了動(dòng)作空間。實(shí)驗(yàn)表明,本文提出的改進(jìn)動(dòng)作空間的DRQN算法在不同飽和度流量情況下比DQN算法都有提升,也優(yōu)于傳統(tǒng)的定時(shí)控制和Q學(xué)習(xí)算法。未來的工作可以將單交叉口擴(kuò)展到局部路網(wǎng),研究DRQN在局部路網(wǎng)中的表現(xiàn)。
[1] PRABUCHANDRAN K J, AN H K, BHATNAGAR S. Decentralized learning for traffic signal control[C]//2015 7th International Conference on Communication Systems and Networks (COMSNETS). IEEE, 2015: 1-6.
[2] AREL I, LIU C, URBANIK T, et al. Reinforcement learning-based multi-agent system for network traffic signal control[J]. Intelligent Transport Systems IET, 2010, 4(2):128-135.
[3] 馬躍峰, 王宜舉. 一種基于Q學(xué)習(xí)的單路口交通信號(hào)控制方法[J]. 數(shù)學(xué)的實(shí)踐與認(rèn)識(shí), 2011, 41(24):102-106.
[4] 聶建強(qiáng), 徐大林. 基于模糊Q學(xué)習(xí)的分布式自適應(yīng)交通信號(hào)控制[J]. 計(jì)算機(jī)技術(shù)與發(fā)展, 2013, 23(3):171-174.
[5] MNIH V, KAVUKCUOGLU K, SILVER D, et al. Playing atari with deep reinforcement learning[C]//Proceedings of Workshops at the 26th Neural Information Processing Systems, 2013. Lake Tahoe, USA, 2013:201-220.
[6] MNIH V, KAVUKCUOGLU K, SILVER D, et al. Human-level control through deep reinforcement learning[J]. Nature, 2015(7540):529-533.
[7] Li Li, Lv Yisheng, Wang Fei yue, et al. Traffic signal timing via deep reinforcement learning[J]. IEEE/CAA Journal of Automatica Sinica, 2016, 3(3):247-254.
[8] GENDERS W, RAZAVI S. Using a deep reinforcement learning agent for traffic signal control[J]. arXiv preprint arXiv:1611.01142, 2016.
[9] GAO J, SHEN Y, LIU J, et al. Adaptive traffic signal control: deep reinforcement learning algorithm with experience replay and target network[J]. arXiv preprint arXiv:1705.02755, 2017.
[10] Van der Pol E. Deep reinforcement learning for coordination in traffic light control[D]. Master’s thesis, University of Amsterdam, 2016.
[11] RITCHER S. Traffic light scheduling using policy-gradient reinforcement learning[C]//The International Conference on Automated Planning and Scheduling, ICAPS, 2007.
[12] HAUSKNECHT M, STONE P. Deep recurrent Q-learning for partially observable MDPs[J]. arXiv: 1507.06527.