羅 穎,秦文虎,翟金鳳
(東南大學(xué)儀器科學(xué)與工程學(xué)院,江蘇南京 210096)
目前,交通擁堵已成為國(guó)內(nèi)各主要城市治理中最棘手的問(wèn)題之一。據(jù)相關(guān)統(tǒng)計(jì),每年因交通擁堵給我國(guó)造成的經(jīng)濟(jì)損失為1700億左右[1]。高德交通大數(shù)據(jù)所監(jiān)測(cè)的45個(gè)不同規(guī)模的城市與地區(qū)中,有44座城市的擁堵?tīng)顩r均處于持續(xù)惡化階段[1],這不僅給居民們的出行帶來(lái)了不同程度的困難,也對(duì)城市的運(yùn)轉(zhuǎn)與建設(shè)造成了極大的阻力。同時(shí),道路擁堵也意味著車輛只能低速行駛,并且需要頻繁地啟動(dòng)、剎車,這會(huì)使駕駛員變得疲勞且煩躁易怒,容易出現(xiàn)交通事故;且會(huì)大大增加車輛的尾氣排放量,從而降低城市的空氣質(zhì)量,加劇城市“熱島效應(yīng)”。
車輛跟馳是車輛行駛過(guò)程中最基本的微觀駕駛行為[2],主要描述的是車輛在單一車道上列隊(duì)行駛時(shí),前后兩車間的相互作用[3],如圖1所示。車輛跟馳行為在無(wú)法超車、換道的擁堵環(huán)境中是普遍存在的[4]?,F(xiàn)如今針對(duì)城市交通擁堵環(huán)境下的低速跟馳行為研究較少。在這一環(huán)境中,車輛時(shí)走時(shí)停、車距較小、車速較低,所以跟馳行為相對(duì)較復(fù)雜。然而,對(duì)車輛低速跟馳行為的研究有助于解決如今的城市交通擁堵問(wèn)題,提高擁堵路況下的駕駛安全性并改善駕駛體驗(yàn),因此這一研究是十分必要的。
圖1 車輛跟馳駕駛
考慮到傳統(tǒng)的車輛跟馳模型在解決實(shí)際道路環(huán)境中的行為決策問(wèn)題時(shí)存在自適應(yīng)能力較低等問(wèn)題,筆者將采用如今被廣泛關(guān)注的深度強(qiáng)化學(xué)習(xí)(Deep Reinforcement Learning)方法來(lái)進(jìn)行車輛低速跟馳行為決策問(wèn)題的研究。深度強(qiáng)化學(xué)習(xí)是強(qiáng)化學(xué)習(xí)(Reinforcement Learning)與深度學(xué)習(xí)(Deep Learning)相結(jié)合的產(chǎn)物,深度神經(jīng)網(wǎng)絡(luò)使得強(qiáng)化學(xué)習(xí)方法能夠擴(kuò)展到以往很難處理的決策問(wèn)題,即具有高維度狀態(tài)空間或連續(xù)動(dòng)作空間的環(huán)境[5]。目前,已有研究者將強(qiáng)化學(xué)習(xí)中的Q-learning算法[6]與深度強(qiáng)化學(xué)習(xí)中的DQN算法[7]進(jìn)行改進(jìn)以應(yīng)用于智能車輛的自動(dòng)駕駛控制,但是它們?cè)谔幚碥囕v跟馳行為決策這樣的連續(xù)動(dòng)作空間問(wèn)題時(shí)仍有欠缺,因此選擇深度確定性策略梯度(Deep Deterministic Policy Gradient,DDPG)算法進(jìn)行車輛低速跟馳行為決策研究,同時(shí)提出了基于屏障控制方法(Control Barrier Functions,CBF)的改進(jìn) DDPG算法以優(yōu)化決策效果。
強(qiáng)化學(xué)習(xí)的主要特點(diǎn)是試錯(cuò)與延時(shí)回報(bào),其基本結(jié)構(gòu)與流程如圖2所示,智能體(Agent)學(xué)習(xí)如何在環(huán)境中采取動(dòng)作(離散動(dòng)作或連續(xù)動(dòng)作),不需要先驗(yàn)知識(shí),僅通過(guò)不斷的交互試錯(cuò)、獲得經(jīng)驗(yàn),最終得到最優(yōu)策略。
圖2 強(qiáng)化學(xué)習(xí)基本模型
強(qiáng)化學(xué)習(xí)主要包括四大要素,分別是狀態(tài)、動(dòng)作、狀態(tài)轉(zhuǎn)移概率以及獎(jiǎng)勵(lì)值函數(shù),其學(xué)習(xí)過(guò)程主要可用馬爾可夫決策過(guò)程(Markov Decision Process,MDP)來(lái)描述[8-9],MDP 由 <S,A,P,R > 四元組來(lái)刻畫,其中,S={s1,s2,s3,…}表示狀態(tài)空間,是所有狀態(tài)的有限集合;A={a1,a2,a3,…}表示動(dòng)作空間,是所有動(dòng)作的有限集合;P為狀態(tài)轉(zhuǎn)移概率矩陣,Pass1=P[St+1=s1|St=s,At=a]表示在s狀態(tài)下采取a動(dòng)作,轉(zhuǎn)變?yōu)閟1狀態(tài)的概率;R=r(s,a)為獎(jiǎng)勵(lì)值函數(shù),表示在s狀態(tài)下采取a動(dòng)作所獲得的獎(jiǎng)勵(lì)值。智能體在與環(huán)境進(jìn)行交互的過(guò)程中,在狀態(tài)ST處的累計(jì)獎(jiǎng)勵(lì)為自T時(shí)刻起未來(lái)執(zhí)行一系列動(dòng)作后所能獲得的獎(jiǎng)勵(lì)值,即T+1,T+2,T+3,…所有時(shí)刻的獎(jiǎng)勵(lì)值之和,表達(dá)式為
式中,γ為折扣因子,用以權(quán)衡當(dāng)前獎(jiǎng)勵(lì)與長(zhǎng)期獎(jiǎng)勵(lì)的關(guān)系,取值范圍為[0,1],該值越小,則說(shuō)明越重視當(dāng)前獎(jiǎng)勵(lì),反之則越重視長(zhǎng)期獎(jiǎng)勵(lì)。
強(qiáng)化學(xué)習(xí)的最終目的是學(xué)習(xí)到最優(yōu)策略π以得到最大的累計(jì)獎(jiǎng)勵(lì)期望,即
為便于求解該最優(yōu)策略π,需要對(duì)某個(gè)狀態(tài)與動(dòng)作的優(yōu)劣進(jìn)行評(píng)估,因此,引入了狀態(tài)值函數(shù)與動(dòng)作值函數(shù)的概念,其表達(dá)式分別為
對(duì)于以上函數(shù)的求解可利用基于表的方法與基于值函數(shù)逼近的方法,前者包括動(dòng)態(tài)規(guī)劃法、蒙特卡羅方法、時(shí)間差分法等,其實(shí)質(zhì)是建立一張行值為狀態(tài)、列值為動(dòng)作的表,通過(guò)不斷的循環(huán)迭代對(duì)表中的值進(jìn)行更新,在狀態(tài)空間比較大時(shí),用這一方法求解非常困難,因此,越來(lái)越多的研究開(kāi)始關(guān)注第二種方法,即利用深度神經(jīng)網(wǎng)絡(luò)逼近值函數(shù),由此深度強(qiáng)化學(xué)習(xí)便應(yīng)運(yùn)而生。
Deep Mind于2013年提出的DQN算法是深度強(qiáng)化學(xué)習(xí)的開(kāi)山之作,該算法使用卷積神經(jīng)網(wǎng)絡(luò)對(duì)Q-learning中的動(dòng)作值函數(shù)進(jìn)行擬合,同時(shí)采用了經(jīng)驗(yàn)池機(jī)制,通過(guò)在經(jīng)驗(yàn)池中隨機(jī)均勻采樣,模糊了訓(xùn)練樣本間的相關(guān)性;并且,對(duì)過(guò)去的多個(gè)樣本做均值處理,從而平滑訓(xùn)練樣本的分布[10]。DQN算法及其衍生算法在學(xué)習(xí)離散動(dòng)作策略上取得了較為顯著的成果,可是在處理連續(xù)動(dòng)作決策問(wèn)題方面卻比較困難,雖然也可以把連續(xù)動(dòng)作進(jìn)行離散化,但離散后膨脹的動(dòng)作空間容易使算法陷入維數(shù)災(zāi)難。2015年9月,Deep Mind提出了DDPG算法,該算法在確定性策略梯度(Deterministic Policy Gradient,DPG)算法的基礎(chǔ)上發(fā)展而來(lái),屬于無(wú)模型(Model Free)方法,其核心是Actor-Critic方法[11]。前人的研究表明,DDPG算法在多種連續(xù)行為決策問(wèn)題上表現(xiàn)良好。
DDPG中建立有Critic網(wǎng)絡(luò)和Actor網(wǎng)絡(luò),其結(jié)構(gòu)分別如圖3所示。這兩個(gè)網(wǎng)絡(luò)間的聯(lián)系為:首先環(huán)境給出狀態(tài)觀測(cè)量s,智能體根據(jù)Actor網(wǎng)絡(luò)做出決策動(dòng)作a,環(huán)境接受此動(dòng)作后給出獎(jiǎng)勵(lì)值r與新的狀態(tài)s'。此時(shí)再根據(jù)r更新Critic網(wǎng)絡(luò),然后遵從Critic建議的方向更新Actor網(wǎng)絡(luò)。如此循環(huán)迭代,直至最終訓(xùn)練出最優(yōu)的 Actor網(wǎng)絡(luò)[12]。
圖3 Actor網(wǎng)絡(luò)和Critic網(wǎng)絡(luò)示意圖
與DQN相同,DDPG也使用了Target網(wǎng)絡(luò)以保證參數(shù)收斂。假設(shè)Critic網(wǎng)絡(luò)為Q(s,a|ω),其對(duì)應(yīng)的Target-Critic網(wǎng)絡(luò)則為 Q(s,a|ω*);Actor網(wǎng)絡(luò)為 π(s|θ),其對(duì)應(yīng)的 Target-Actor網(wǎng)絡(luò)為 π(s|θ*),其中 ω、ω*、θ、θ*分別為這4 個(gè)網(wǎng)絡(luò)的參數(shù)。
DDPG算法的具體流程如下:
(1)初始化Critic網(wǎng)絡(luò)與Actor網(wǎng)絡(luò)的參數(shù)ω、θ。
(2)將Critic網(wǎng)絡(luò)與Actor網(wǎng)絡(luò)的參數(shù)分別復(fù)制給對(duì)應(yīng)的 Target網(wǎng)絡(luò)的參數(shù)ω*、θ*。
(3)初始化經(jīng)驗(yàn)池。
(4)在一個(gè)時(shí)間步長(zhǎng)內(nèi)進(jìn)行如下迭代循環(huán)。
①初始化Uhlenbeck-Ornstein隨機(jī)過(guò)程(簡(jiǎn)稱UO過(guò)程),目的是引入隨機(jī)噪聲。
②Actor網(wǎng)絡(luò)根據(jù)當(dāng)前策略π和隨機(jī)UO噪聲獲得一個(gè)動(dòng)作at,并將該動(dòng)作傳達(dá)給Agent,at的表達(dá)式如下:
③ Agent執(zhí)行動(dòng)作at之后,環(huán)境返回獎(jiǎng)勵(lì)值rt及下一時(shí)刻的狀態(tài)St+1。
④ 將每一次狀態(tài)轉(zhuǎn)換過(guò)程(St,at,rt,St+1)都存儲(chǔ)到經(jīng)驗(yàn)池中,作為網(wǎng)絡(luò)訓(xùn)練的數(shù)據(jù)集。
⑤在經(jīng)驗(yàn)池中隨機(jī)采樣N個(gè)狀態(tài)轉(zhuǎn)換過(guò)程數(shù)據(jù),作為Critic網(wǎng)絡(luò)與Actor網(wǎng)絡(luò)的一個(gè)mini-batch訓(xùn)練集,其中的單個(gè)狀態(tài)轉(zhuǎn)換過(guò)程數(shù)據(jù)可表示為(Si,ai,ri,Si+1)。
⑥計(jì)算Critic網(wǎng)絡(luò)的梯度:Critic網(wǎng)絡(luò)的損失值Loss的計(jì)算公式如下,基于標(biāo)準(zhǔn)的反向傳播(Back Propagation)算法,便可以求得Loss相對(duì)于ω的梯度?ωLoss。
⑦ 更新Critic網(wǎng)絡(luò),采用Adam Optimizer更新ω。
⑧計(jì)算Actor網(wǎng)絡(luò)的策略梯度,一般根據(jù)蒙特卡羅方法使用mini-batch訓(xùn)練集數(shù)據(jù)對(duì)其期望值進(jìn)行無(wú)偏差估計(jì),具體表達(dá)式為
⑨ 更新Actor網(wǎng)絡(luò),采用Adam Optimizer更新θ。
⑩更新Target-Critic網(wǎng)絡(luò)與Target-Actor網(wǎng)絡(luò),采用如下公式對(duì)ω*、θ*進(jìn)行更新,式中 τ一般取值為0.001。
(5)時(shí)間步長(zhǎng)結(jié)束,迭代循環(huán)終止。
在應(yīng)用DDPG算法以及之后的改進(jìn)算法實(shí)現(xiàn)車輛低速跟馳決策時(shí),將狀態(tài)轉(zhuǎn)換關(guān)系做出如下假設(shè):
式中,d(St)表示未知的系統(tǒng)動(dòng)力學(xué)部分,用高斯過(guò)程(Gaussian Process,GP)模型來(lái)對(duì)其進(jìn)行估計(jì),以d^(St)表示。高斯過(guò)程是一種非參數(shù)回歸方法,在如今的機(jī)器學(xué)習(xí)領(lǐng)域內(nèi)被廣泛使用,通常用于根據(jù)數(shù)據(jù)估計(jì)函數(shù)及其不確定性分布的場(chǎng)景中,可視為一個(gè)隨機(jī)變量的集合,其中的任意有限個(gè)樣本的線性組合均服從聯(lián)合高斯分布[13]。一個(gè)高斯過(guò)程可由均值函數(shù)μd(s)和協(xié)方差函數(shù)σ2d(s)來(lái)確定,對(duì)于過(guò)程中任一狀態(tài)s*,兩函數(shù)表達(dá)式分別為
式中,K+σ2noiseIk(si,sj)為高斯過(guò)程的核矩陣,k*(s*)=[k(s1,s*),…,k(sn,s*)]。在算法的決策訓(xùn)練過(guò)程中,智能體對(duì)動(dòng)作的執(zhí)行則需要通過(guò)以上兩式進(jìn)行高斯過(guò)程模型的更新。
同時(shí),將學(xué)習(xí)過(guò)程中的獎(jiǎng)勵(lì)函數(shù)表達(dá)式設(shè)定為
式中,第1項(xiàng)對(duì)加速度進(jìn)行約束,以優(yōu)化燃油效率,第2項(xiàng)則鼓勵(lì)跟馳車輛盡量保持3 m(不考慮車長(zhǎng))的間距;k表示在模擬的跟馳車隊(duì)中選擇第k輛車為A-gent,決策其跟馳行為??紤]到交通擁堵的情況下,本文將安全邊界(Safety Boundary)設(shè)置為2 m。
CBF 方法屬于有模型(Model-based)方法[14],其關(guān)鍵在于通過(guò)一個(gè)連續(xù)可微分的函數(shù)H(s)設(shè)定了一個(gè)安全集合C,可表示為
為了保證學(xué)習(xí)過(guò)程中的絕對(duì)安全,智能體的狀態(tài)s必須始終保持在安全集合C中,換言之,學(xué)習(xí)算法應(yīng)在集合C中進(jìn)行策略的探索[15]。采用如下表達(dá)式描述本算法當(dāng)中的安全集合:
式中,A表示動(dòng)作空間;δ表示CBF方法對(duì)安全約束的強(qiáng)度,在[0,1]范圍內(nèi)取值;h(s)則需要在學(xué)習(xí)過(guò)程中不斷進(jìn)行訓(xùn)練與更新。
DDPG算法策略試圖產(chǎn)生優(yōu)化長(zhǎng)期獎(jiǎng)勵(lì)的動(dòng)作,但執(zhí)行該動(dòng)作未必安全,CBF方法作用于DDPG算法執(zhí)行動(dòng)作之前,可以視為一個(gè)小型控制器,對(duì)可能產(chǎn)生危險(xiǎn)的動(dòng)作進(jìn)行過(guò)濾,提供必需的最小干預(yù)控制,從而確保整體狀態(tài)的安全性。
CBF方法與DDPG算法的結(jié)合主要分為兩個(gè)部分:① 提供補(bǔ)償控制,如圖4(a)所示;② 指導(dǎo)策略探索,如圖4(b)所示。
圖4 基于CBF方法的強(qiáng)化學(xué)習(xí)補(bǔ)償控制和策略探索
算法的初始架構(gòu)為CBF控制器給DDPG算法提供安全補(bǔ)償,在學(xué)習(xí)過(guò)程中,CBF控制器數(shù)據(jù)同樣存儲(chǔ)為訓(xùn)練樣本,以進(jìn)行CBF安全控制策略的更新,從而對(duì)DDPG策略探索提供更有效的指導(dǎo)。DDPG-CBF改進(jìn)算法的具體流程如下。
(1)初始化DDPG算法策略π0D
DPG,狀態(tài)觀測(cè)量空間設(shè)為D,狀態(tài)動(dòng)作空間設(shè)為A。
(2)在t=1,…,T內(nèi),進(jìn)行如下步驟。
②通過(guò)CBF控制器得到控制動(dòng)作u0CBF(St);
④本次獲得獎(jiǎng)勵(lì)rt,轉(zhuǎn)換到下一狀態(tài)為St+1,將狀態(tài)動(dòng)作數(shù)據(jù)(St,u0CBF(St))存儲(chǔ)至A,狀態(tài)動(dòng)作轉(zhuǎn)換數(shù)據(jù)(St,u0(St),St+1,rt)存儲(chǔ)至 D。
(4)更新高斯過(guò)程模型與D。
(5)當(dāng)前迭代過(guò)程視為第1次策略迭代,在設(shè)定的策略迭代次數(shù)內(nèi),進(jìn)行如下循環(huán):
①通過(guò)DDPG算法并基于之前的迭代獎(jiǎng)勵(lì)產(chǎn)生第k次的策略u(píng)DkDPG(St);
③ 在t=1,…,T內(nèi),重復(fù)步驟(2),不同的是策略中需加入ubkar(St)分量;
④重復(fù)步驟(3)與步驟(4)。
(6)滿足終止條件,迭代結(jié)束。
依靠Tensorflow開(kāi)源軟件庫(kù)完成仿真實(shí)驗(yàn),同時(shí)配置了GeForce GTX TITAN Xp的Cuda環(huán)境以提供GPU并行加速運(yùn)算。實(shí)驗(yàn)中設(shè)置了一個(gè)含有5輛車的縱向行駛跟馳車隊(duì),通過(guò)決策算法控制其中第4輛車的加速與減速,期望目標(biāo)是避免碰撞,并且保證低速跟馳時(shí)的燃油效率最大化(即規(guī)避擁堵時(shí)過(guò)于劇烈的加速度振蕩)。
使用DDPG算法與DDPG-CBF改進(jìn)算法進(jìn)行策略學(xué)習(xí)的過(guò)程中最小跟車間距的變化情況以及迭代過(guò)程中的累積獎(jiǎng)勵(lì)對(duì)比,分別如圖5、圖6所示。
圖5 最小車間距對(duì)比圖
圖6 累積獎(jiǎng)勵(lì)值對(duì)比圖
從圖5可以明顯觀察到,在未結(jié)合CBF控制器的情況下,DDPG算法未能在600次迭代內(nèi)收斂于期望安全策略,即保持3 m的車間距,可見(jiàn)改進(jìn)前的算法并不能很有效地保障決策的安全性;同時(shí)從圖6所示的迭代過(guò)程中的獎(jiǎng)勵(lì)值變化情況來(lái)看,DDPG算法在學(xué)習(xí)過(guò)程中獲得獎(jiǎng)勵(lì)回報(bào)較低,并且不確定性與波動(dòng)性也比較大。而對(duì)于DDPG-CBF改進(jìn)算法而言,不僅能夠使車隊(duì)的跟車間距維持在期望車距附近,保證決策的安全性,同時(shí)具有很快的學(xué)習(xí)速度,能夠迅速地獲得較高的獎(jiǎng)勵(lì)值回報(bào),收斂于最優(yōu)策略。由此可見(jiàn),所提出的車輛低速跟馳決策算法的改進(jìn)效果比較顯著。
本文以獲得有效的車輛低速跟馳策略為研究目標(biāo),基于 DDPG算法,并結(jié)合 CBF控制器,提出了DDPG-CBF改進(jìn)算法,實(shí)驗(yàn)證明,該算法在安全保障與學(xué)習(xí)效率上均體現(xiàn)出了其優(yōu)越性。但是本文中對(duì)跟馳車隊(duì)系統(tǒng)的模擬使用的是高斯過(guò)程模型,而如何將該算法應(yīng)用于各種實(shí)際的交通仿真場(chǎng)景,并考量駕駛員駕駛習(xí)慣差異的影響,可作為后續(xù)研究的重點(diǎn)方向。