馮 天 石朝俠 王燕清
(1.南京理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院 南京 210094)(2.南京曉莊學(xué)院信息工程學(xué)院 南京 211171)
國家統(tǒng)計(jì)局發(fā)布的中華人民共和國2019年國民經(jīng)濟(jì)和社會發(fā)展統(tǒng)計(jì)公報(bào)[1]顯示,截至年末,全國民用汽車保有量26150萬輛,比上年末增加2122萬輛,伴隨而來的道路交通問題也日益凸顯。資料顯示,中國道路交通事故萬車死亡人數(shù)已達(dá)1.80人。很大數(shù)量的交通事故是由于駕駛員的失誤造成的,自動駕駛技術(shù)的應(yīng)用,很可能讓這類交通事故大幅減少。英偉達(dá)、谷歌、特斯拉、百度等著名科技企業(yè)在自動駕駛技術(shù)上均已展開了大量的研究,現(xiàn)階段已有少量自動駕駛車輛進(jìn)行測試。美國電氣和電子工程師協(xié)會(IEEE)預(yù)測,截止至2040年,全球75%的新增汽車都會是自動駕駛汽車[2]。然而現(xiàn)階段,研究出在城市環(huán)境下能夠完全自主應(yīng)對各種復(fù)雜交通場景的自動駕駛技術(shù)仍然是一項(xiàng)巨大的挑戰(zhàn)。
迄今為止,已經(jīng)存在一些基于深度學(xué)習(xí)[3~7]或者基于強(qiáng)化學(xué)習(xí)[8~10]的自動駕駛方法。基于深度學(xué)習(xí)的方法使用大量人類駕駛員的駕駛數(shù)據(jù)訓(xùn)練神經(jīng)網(wǎng)絡(luò)[4],通過大量數(shù)據(jù)尋求駕駛環(huán)境與駕駛員動作的映射關(guān)系,進(jìn)而學(xué)習(xí)自動駕駛技術(shù)。這種方法不僅需要極大數(shù)量的駕駛數(shù)據(jù)而且缺乏對特殊情況的學(xué)習(xí),有較大的應(yīng)用難度。基于強(qiáng)化學(xué)習(xí)的自動駕駛方法可以利用自主探索環(huán)境得到的經(jīng)驗(yàn)持續(xù)學(xué)習(xí)優(yōu)化。但是,這種方法對于自動駕駛這種高輸入維度且動作空間連續(xù)的情況難以有效進(jìn)行。加之神經(jīng)網(wǎng)絡(luò)解釋性的缺乏[5],僅基于深度學(xué)習(xí)的自動駕駛算法一直沒有突破性進(jìn)展。
LeCun等[11]在2005年已經(jīng)開始探索卷積網(wǎng)絡(luò)在自動駕駛方面的應(yīng)用。Hinton等[12]在2006年提出了深度信念網(wǎng)絡(luò)(Deep Belief Networks),為深度學(xué)習(xí)方法開啟了一個新的方向。Krizhevsky[13]等在ImageNet Large Scale Visual Recognition Challenge 2013(ILSVRC 2013)中使用卷積神經(jīng)網(wǎng)絡(luò)取得了突出的成績。2016年,Bojarski等[3]提出使用深度卷積網(wǎng)絡(luò)進(jìn)行自動駕駛研究的方案。DeepMind團(tuán)隊(duì)[4]提出的affordance機(jī)制改進(jìn)了自動駕駛研究的方案。隨著深度學(xué)習(xí)方法的進(jìn)一步使用,研究者們嘗試將強(qiáng)化學(xué)習(xí)與之結(jié)合。其中,Mnih等[14]提出的DQN(Deep Q-Network)算法實(shí)現(xiàn)了在離散空間上從感知到動作的端到端算法,算法在一些游戲場景中表現(xiàn)已優(yōu)于人類。DeepMind團(tuán)隊(duì)在2016年結(jié)合演員-評論家(Actor Critic)算法[15],將DQN算法改進(jìn)為深度確定性策略梯度算法(Deep Deterministic Policy Gradient,DDPG)[16],實(shí)現(xiàn)了連續(xù)空間上的控制輸出。CARLA[17]自動駕駛仿真平臺提供了數(shù)據(jù)收集、實(shí)驗(yàn)設(shè)置、方案驗(yàn)證等功能,是一個優(yōu)秀的綜合仿真平臺。受到前人工作的啟發(fā),本文提出一種深度強(qiáng)化學(xué)習(xí)自動駕駛決策方法:首先基于適量駕駛數(shù)據(jù)預(yù)訓(xùn)練圖像降維網(wǎng)絡(luò),然后將降維后得到的圖像特征和車輛狀態(tài)特征進(jìn)行異構(gòu)融合作為強(qiáng)化學(xué)習(xí)的輸入,接著通過為自動駕駛量身定制的獎勵函數(shù)有效引導(dǎo)學(xué)習(xí),并結(jié)合經(jīng)驗(yàn)池回放技術(shù)和目標(biāo)網(wǎng)絡(luò)技術(shù)。最后,分別測試了異構(gòu)融合架構(gòu)下和未經(jīng)融合直接輸入架構(gòu)下自動駕駛的學(xué)習(xí)曲線。
強(qiáng)化學(xué)習(xí)通過智能體與環(huán)境不斷進(jìn)行交互,用獎勵或者懲罰信號試錯式的學(xué)習(xí)狀態(tài)和動作之間的某種映射規(guī)則的方法。其框架如圖1所示。

圖1 強(qiáng)化學(xué)習(xí)基本框架
在強(qiáng)化學(xué)習(xí)過程中,智能體基于某種決策方式在狀態(tài)st下做出動作at并與環(huán)境交互,獲得環(huán)境反饋改變狀態(tài)到達(dá)st+1并獲得獎勵rt,如此反復(fù)產(chǎn)生一系列狀態(tài)、動作、獎勵鏈,直到達(dá)到終止條件。智能體希望通過不斷探索環(huán)境來優(yōu)化決策以最大化得到的獎勵。下面介紹一些典型的強(qiáng)化學(xué)習(xí)算法。
DQN算法是傳統(tǒng)強(qiáng)化學(xué)習(xí)算法Q-Learning與深度學(xué)習(xí)方法的結(jié)合,強(qiáng)化學(xué)習(xí)的過程可模式化為馬爾科夫決策過程(Markov Decision Process,MDP),其中包含狀態(tài)S,動作A,獎勵R和衰減系數(shù)γ,狀態(tài)的改變和獎勵僅取決于上一步的狀態(tài)和動作。
在DQN之前,Q-learning算法是通過構(gòu)造一個Q表來存儲狀態(tài)-動作對的價(jià)值,進(jìn)而可以根據(jù)這些價(jià)值做決策。學(xué)習(xí)的目的是求出期望累計(jì)獎勵最大的策略,其形式為式(1):

DQN使用深度神經(jīng)網(wǎng)絡(luò)來擬合函數(shù)以替代Q表,學(xué)習(xí)時通過時序差分算法最小化目標(biāo)Q值和當(dāng)前Q網(wǎng)絡(luò)輸出之間的差距來更新參數(shù)θ的值。如式(2)所示:

DQN算法只適用于離散動作空間,對于自動駕駛這種連續(xù)空間并不直接適用。
DDPG是將深度神經(jīng)網(wǎng)絡(luò)融合進(jìn)Deterministic Policy Gradient(DPG)的學(xué)習(xí)算法。DPG通過確定性動作函數(shù)at=μ(st|θμ)直接選擇動作,DDPG在其基礎(chǔ)上分別采用策略網(wǎng)絡(luò)和價(jià)值Q網(wǎng)絡(luò)作為策略函數(shù)μ(st|θμ)和價(jià)值Q(st,at|θμ)函數(shù)的模擬,然后使用深度學(xué)習(xí)的方法按照式(3)、(4)、(5)分別更新網(wǎng)絡(luò)。

同時,DDPG保留了DQN的使用過的經(jīng)驗(yàn)池回放技術(shù)和目標(biāo)網(wǎng)絡(luò)技術(shù)來降低學(xué)習(xí)過程中的波動,進(jìn)一步使得學(xué)習(xí)過程收斂。經(jīng)驗(yàn)池回放技術(shù)是將系統(tǒng)探索環(huán)境得到的數(shù)據(jù)存儲起來,然后隨機(jī)采樣樣本更新深度神經(jīng)網(wǎng)絡(luò)的參數(shù)。目標(biāo)網(wǎng)絡(luò)技術(shù)通過拷貝原始網(wǎng)絡(luò)為目標(biāo)網(wǎng)絡(luò),根據(jù)延遲因子τ來軟更新在線網(wǎng)絡(luò)和目標(biāo)網(wǎng)絡(luò)的參數(shù)以穩(wěn)定學(xué)習(xí)過程,更新方式如式(6)和式(7)所示。

強(qiáng)化學(xué)習(xí)難以在高輸入維度且動作空間連續(xù)的情況下有效學(xué)習(xí),為了降低輸入狀態(tài)維度,我們使用模仿學(xué)習(xí)方法預(yù)先學(xué)習(xí)駕駛數(shù)據(jù),訓(xùn)練圖像降維網(wǎng)絡(luò)[7]。
網(wǎng)絡(luò)輸入為來自前向攝像頭分辨率為88*200的RGB圖像image,通過8層卷積網(wǎng)絡(luò)和2層全連接網(wǎng)絡(luò),最終輸出2維車輛控制信號,分別為方向盤控制量s和加減速控制量a,網(wǎng)絡(luò)結(jié)構(gòu)見圖2。

圖2 圖像降維網(wǎng)絡(luò)結(jié)構(gòu)圖
網(wǎng)絡(luò)的損失函數(shù)L定義為兩個預(yù)測控制信號量s和a的L2損失和,如式(8):

待訓(xùn)練結(jié)束后固定網(wǎng)絡(luò)參數(shù)并去掉網(wǎng)絡(luò)最末端輸出層,這樣得到從88*200*3維圖像image映射為512維度圖像特征fimg的降維網(wǎng)絡(luò),此圖像降維網(wǎng)絡(luò)將作為我們強(qiáng)化學(xué)習(xí)的部分輸入。
DDPG算法分別使用策略網(wǎng)絡(luò)和價(jià)值Q網(wǎng)絡(luò)來模擬策略函數(shù)μ(st|θμ)和價(jià)值Q(st,at|θμ)函數(shù),兩者均為多層全連接網(wǎng)絡(luò)。
為了提高系統(tǒng)對整體環(huán)境的感知,我們將對車輛描述的5維狀態(tài)特征:當(dāng)前方向盤控制量s、當(dāng)前加減速控制量a、歸一化速度v、人行道跨越rr、車道跨越ro,記為車輛狀態(tài)特征fagt,與圖像狀態(tài)fimg異構(gòu)融合后合并輸入強(qiáng)化學(xué)習(xí)網(wǎng)絡(luò)。
策略網(wǎng)絡(luò)和價(jià)值Q網(wǎng)絡(luò)的結(jié)構(gòu)如圖3、圖4所示。

圖3 策略網(wǎng)絡(luò)結(jié)構(gòu)

圖4 價(jià)值Q網(wǎng)絡(luò)結(jié)構(gòu)
我們針對自動駕駛場景量身定制了獎勵模塊。獎勵模塊分為6個部分:速度獎勵ra,方向盤約束懲罰rs,人行道跨越懲罰rr,車道跨越懲罰ro,碰撞懲罰rd以及靜態(tài)懲罰rc,最終結(jié)果為這6個部分的數(shù)值總和,如式(9)所示。

速度獎勵ra定義為

其中v的單位為km/h,本實(shí)驗(yàn)環(huán)境下vmax取值為10。
方向盤約束懲罰rs定義為

其中s為方向盤控制量,取值空間為[-1,1],本實(shí)驗(yàn)環(huán)境下λs取值為30。
人行道跨越懲罰rr、車道跨越懲罰ro觸發(fā)條件分別為當(dāng)發(fā)生人行道跨越、發(fā)生車道跨越時,觸發(fā)后獎勵數(shù)值均定義為-100。
碰撞懲罰rd觸發(fā)條件為當(dāng)發(fā)生任何碰撞時,觸發(fā)后獎勵數(shù)值定義為-100,并且會終止此次實(shí)驗(yàn)場景。
靜態(tài)懲罰rc觸發(fā)條件為當(dāng)速度小于0.1m/s時,觸發(fā)后獎勵數(shù)值定義為-5,若持續(xù)2s內(nèi)保持此狀態(tài),也將終止此次實(shí)驗(yàn)場景。
方法更新過程和DDPG算法流程相似。首先預(yù)訓(xùn)練圖像降維網(wǎng)絡(luò),然后通過降維的圖像特征和車輛狀態(tài)特征異構(gòu)融合作為輸入狀態(tài),經(jīng)驗(yàn)池采樣更新網(wǎng)絡(luò),方法整體架構(gòu)見圖5。算法流程如下:



圖5 異構(gòu)融合特征的深度強(qiáng)化學(xué)習(xí)自動駕駛決策方法
為了更好地訓(xùn)練并測試自動駕駛決策方法,本文選擇了CARLA開源自動駕駛仿真環(huán)境。CARLA是一款新穎的自動駕駛仿真軟件,其基于Unreal Engine 4引擎提供了三維可視畫面,城市環(huán)境資源(包含城市地圖和符合動力學(xué)的汽車與行人),多種類的傳感器,高仿真的光照與天氣以及符合物理動力學(xué)規(guī)律的車輛模型。
CARLA采用了服務(wù)器-客戶端架構(gòu)。服務(wù)器負(fù)責(zé)仿真相關(guān)內(nèi)容:傳感器渲染、物理計(jì)算、世界狀態(tài)及其車輛的更新等。客戶端由一組客戶端模塊組成,控制場景中車輛的邏輯,服務(wù)器與客戶端之間的聯(lián)系通過CARLA API實(shí)現(xiàn)。
CARLA仿真平臺的時間步長設(shè)置為0.1s,訓(xùn)練天氣設(shè)置為干凈的中午、有積水的中午、下雨的中午、干凈的黃昏、下雨的黃昏5種天氣隨機(jī)選擇,設(shè)置仿真環(huán)境中其他動態(tài)車輛數(shù)為20,動態(tài)行人數(shù)為40。訓(xùn)練過程中,車輛會從83個起初坐標(biāo)中隨機(jī)選擇,持續(xù)行進(jìn)直到達(dá)到終止條件,城市的地圖和仿真環(huán)境如圖6所示。

圖6 城市地圖及仿真環(huán)境
訓(xùn)練過程中,模型輸入都進(jìn)行歸一化,方向盤控制量s為[-1,1],加減速控制量a為[-1,1],其他訓(xùn)練參數(shù)設(shè)置如表4所示。

表4 訓(xùn)練參數(shù)設(shè)置
為了公平地評估異構(gòu)融合特征方法,選擇將相同的輸入信息不經(jīng)過異構(gòu)融合,直接輸入強(qiáng)化學(xué)習(xí)網(wǎng)絡(luò)以便對比。兩種方法在訓(xùn)練過程中所獲得的平均獎勵值曲線如圖7所示。

圖7 學(xué)習(xí)曲線
圖7中黑色虛線是直接輸入特征在訓(xùn)練過程中所得到的平均獎勵值曲線,黑色實(shí)線是異構(gòu)融合特征方法在訓(xùn)練過程中的平均獎勵值曲線。從圖中可以看出,在訓(xùn)練前期,隨著訓(xùn)練的進(jìn)行,車輛所獲得的獎勵值在不斷地上升,之后保持穩(wěn)定,說明了車輛很好地學(xué)習(xí)到了駕駛技術(shù)。異構(gòu)融合特征方法學(xué)習(xí)曲線上升更快,相對穩(wěn)定后的平均獎勵值也更高,表5記錄了兩種方法達(dá)到穩(wěn)定所需要的迭代次數(shù),所需的時間以及穩(wěn)定后的平均獎勵值。

表5 訓(xùn)練信息
根據(jù)圖7和表5可知,異構(gòu)融合特征方法的學(xué)習(xí)速度較快,可以很快地學(xué)習(xí)并穩(wěn)定到一個較優(yōu)的獎勵值,所需要的時間也有所減少。圖8為訓(xùn)練過程中出現(xiàn)的場景,隨著訓(xùn)練的進(jìn)行,車輛從完全無法駕駛開始逐步學(xué)會了沿道路穩(wěn)定行駛,路口轉(zhuǎn)向以及一定程度的障礙物避讓,體現(xiàn)了方法的穩(wěn)定性與魯棒性。

圖8 訓(xùn)練過程中的場景
提出了一種基于異構(gòu)融合特征的深度強(qiáng)化學(xué)習(xí)自動駕駛決策方法。首先通過模仿學(xué)習(xí)預(yù)訓(xùn)練圖像降維網(wǎng)絡(luò),然后將圖像特征和車輛狀態(tài)特征異構(gòu)融合并輸入DDPG算法框架中,結(jié)合針對自動駕駛場景量身定制的獎勵模塊有效學(xué)習(xí)。實(shí)驗(yàn)結(jié)果顯示,本文所提出的方法能夠有效且快速學(xué)習(xí)駕駛技術(shù)。同時,算法在復(fù)雜城市環(huán)境下保持了較高的穩(wěn)定性與魯棒性,具有很好的應(yīng)用潛力。