賴晨光,楊小青,胡 博, 龐玉涵, 鄒 宏
(1.重慶理工大學(xué) 汽車零部件制造及檢測(cè)技術(shù)教育部重點(diǎn)實(shí)驗(yàn)室, 重慶 400054; 2.重慶理工大學(xué) 車輛工程學(xué)院, 重慶 400054)
近年來(lái),汽車領(lǐng)域迎來(lái)了重大變革,由原始的機(jī)械制造朝著智能化方向發(fā)展,全球許多知名汽車生產(chǎn)制造企業(yè)大量投資到智能駕駛技術(shù)領(lǐng)域。而大多數(shù)的智能駕駛系統(tǒng)采用高度模塊化的設(shè)計(jì)方法,其優(yōu)點(diǎn)是擁有很強(qiáng)的可解釋性,不過(guò),對(duì)于復(fù)雜的城市道路,控制器的參數(shù)數(shù)目龐大,即使采取自適應(yīng)的參數(shù)調(diào)節(jié),通常也受限于模型的表達(dá)能力,魯棒性難以得到保證。
2016年,Nvidia團(tuán)隊(duì)通過(guò)監(jiān)督學(xué)習(xí)首次實(shí)現(xiàn)了智能駕駛的端到端控制輸出,該算法以RGB視頻圖像作為輸入,省略了中間感知、決策、控制等環(huán)節(jié),直接輸出方向、油門、制動(dòng)等動(dòng)作[1]。雖然使用監(jiān)督學(xué)習(xí)訓(xùn)練的模型在大部分的環(huán)境下有良好的行駛表現(xiàn),但需要體量龐大的人工標(biāo)注的數(shù)據(jù)。
本文同樣針對(duì)智能駕駛提出了一個(gè)端到端的控制方法,不同的是,采取深度強(qiáng)化學(xué)習(xí)算法,避免了大量的人工標(biāo)注數(shù)據(jù)的工作。除此之外,鑒于強(qiáng)化學(xué)習(xí)算法在訓(xùn)練的過(guò)程中會(huì)采取大量的隨機(jī)動(dòng)作來(lái)探索環(huán)境,從而導(dǎo)致小車時(shí)常處于比較危險(xiǎn)的狀態(tài)[2]。因此,本文在深度強(qiáng)化學(xué)習(xí)算法的基礎(chǔ)上添加了一個(gè)干預(yù)智能體危險(xiǎn)動(dòng)作的監(jiān)督器,從而減少?gòu)?qiáng)化學(xué)習(xí)危險(xiǎn)的試錯(cuò)行為,同時(shí)提升訓(xùn)練效率。
基本的強(qiáng)化學(xué)習(xí)過(guò)程如圖1所示,不同于監(jiān)督學(xué)習(xí),它通過(guò)試錯(cuò)的機(jī)制,使智能體與外界環(huán)境進(jìn)行交互獲得獎(jiǎng)勵(lì)來(lái)指導(dǎo)每一步行為動(dòng)作,從而最大化累積獎(jiǎng)勵(lì)[3]。
圖1 強(qiáng)化學(xué)習(xí)過(guò)程示意圖
根據(jù)優(yōu)化的目標(biāo)分類,強(qiáng)化學(xué)習(xí)可以分為基于值函數(shù)的優(yōu)化算法和基于策略的優(yōu)化算法[4]?;谥岛瘮?shù)的算法以最大化狀態(tài)值函數(shù)或動(dòng)作值函數(shù)為優(yōu)化目標(biāo),最終找到最優(yōu)策略;基于策略搜索的強(qiáng)化學(xué)習(xí)算法直接將策略參數(shù)化,并對(duì)策略函數(shù)求導(dǎo),利用梯度法最大化累積回報(bào)[5]?;谥岛瘮?shù)的強(qiáng)化學(xué)習(xí)難以處理輸出為連續(xù)值的問(wèn)題,而優(yōu)點(diǎn)是能找到全局最優(yōu);基于策略搜索的強(qiáng)化學(xué)習(xí)盡管可以解決連續(xù)動(dòng)作輸出問(wèn)題,但容易陷入局部最優(yōu)[6]。
1.1.1馬爾可夫決策過(guò)程概述
馬爾可夫性是指在知道過(guò)去和現(xiàn)在一切狀態(tài)的條件下,對(duì)將來(lái)的狀況僅僅決定于當(dāng)前的狀態(tài)。若存在一個(gè)狀態(tài)序列,該序列中的每個(gè)狀態(tài)都滿足了馬爾可夫性質(zhì),則該狀態(tài)序列被稱為馬爾可夫過(guò)程[7]。綜上所述,馬爾科夫決策過(guò)程(markov decision process,MDP)便可以用元組(S,A,P,R,γ)來(lái)描述,其中:S代表有限狀態(tài)序列集;A代表有限動(dòng)作序列集;P為狀態(tài)轉(zhuǎn)移概率;R為獎(jiǎng)勵(lì)函數(shù);γ為折扣系數(shù)。
在與環(huán)境交互的過(guò)程中,智能體從時(shí)刻t開始到未來(lái)執(zhí)行的所有動(dòng)作之后,能獲得的累積獎(jiǎng)勵(lì)Gt為:
(1)
1.1.2基于值函數(shù)的優(yōu)化算法
值函數(shù)分為狀態(tài)值函數(shù)vπ(s)和動(dòng)作值函數(shù)
Qπ(s),在遵循策略π,狀態(tài)值函數(shù)的定義為:
vπ(s)=Επ[Gt|St=s]
(2)
動(dòng)作值函數(shù)的定義為:
Qπ(s,a)=Επ[Gt|St=s,At=a]
(3)
根據(jù)狀態(tài)的馬爾可夫性,最優(yōu)狀態(tài)值函數(shù)和最優(yōu)動(dòng)作值函數(shù)分別為:
(4)
(5)
在已知最優(yōu)狀態(tài)值函數(shù)或者最優(yōu)動(dòng)作值函數(shù)之后,可以通過(guò)最大化最優(yōu)狀態(tài)值函數(shù)或最優(yōu)動(dòng)作值函數(shù)獲得最優(yōu)策略。
1.1.3基于策略的優(yōu)化算法
基于策略的優(yōu)化算法廣泛應(yīng)用于連續(xù)空間的強(qiáng)化學(xué)習(xí)問(wèn)題中。其主要思想是將策略π參數(shù)化,計(jì)算出關(guān)于動(dòng)作的策略梯度,然后沿著梯度的方向,反復(fù)以小幅度調(diào)整動(dòng)作,經(jīng)過(guò)多次訓(xùn)練,最終得到最優(yōu)策略[8]。
策略分為隨機(jī)性策略和確定性策略。隨機(jī)性策略是指:在狀態(tài)s下,動(dòng)作a是一個(gè)概率分布函數(shù)。因此,即使是在相同的狀態(tài)下,也可能會(huì)有不同的動(dòng)作;而確定性策略則是每個(gè)狀態(tài)只對(duì)應(yīng)唯一的動(dòng)作[9]。
同樣地,策略梯度也分為隨機(jī)性策略梯度和確定性策略梯度。Sutton等[10]推導(dǎo)出了隨機(jī)性策略梯度的公式:
▽?duì)萀(πθ)=Εs~ρπ,a~πθ[▽?duì)萳ogπθ(a|s)Qπ(s,a)]
(6)
而后,Silver等[11]提出并證明了確定性策略梯度的公式:
▽?duì)萀(μθ)=Εs~ρμ[▽?duì)圈苔?s)▽aQμ(s,a)|a=μθ(s)]
(7)
此后,確定性策略梯度方法得以流行。
1.1.4深度確定性策略梯度算法
深度確定性策略梯度算法(deep deterministic policy gradient,DDPG)結(jié)合了強(qiáng)化學(xué)習(xí)中基于值函數(shù)和基于策略的求解方法,是深度Q網(wǎng)絡(luò)(deep Q network,DQN)的延伸[12],其包含了actor網(wǎng)絡(luò)和critic網(wǎng)絡(luò),兩者都是深度神經(jīng)網(wǎng)絡(luò),actor網(wǎng)絡(luò)的作用是生成動(dòng)作,將狀態(tài)s映射為動(dòng)作a[13];critic網(wǎng)絡(luò)的作用是評(píng)價(jià)動(dòng)作的好壞,其輸入有狀態(tài)s和動(dòng)作a,輸出的是動(dòng)作值函數(shù)Q,其功能類似于DQN網(wǎng)絡(luò)[14]。與DQN一樣,DDPG同樣采用了經(jīng)驗(yàn)回放打破樣本之間的相關(guān)性,也復(fù)制了一個(gè)目標(biāo)網(wǎng)絡(luò)作為原網(wǎng)絡(luò)的逼近對(duì)象[15],其算法偽代碼如下:
Algorithm DDPG
1 初始化actor網(wǎng)絡(luò)參數(shù)θμ和critic網(wǎng)絡(luò)θQ;
2 初始化目標(biāo)網(wǎng)絡(luò)θμ′、θQ′;
3 初始化經(jīng)驗(yàn)回放池R,初始化狀態(tài)s0;
4 For episode=1,…,Mdo:
5 Fort=0,…,T:
6 Fort=0,…,Tdo:
(1) 選擇動(dòng)作at,執(zhí)行動(dòng)作at,獲取rt、at+1;
(2) 將經(jīng)驗(yàn)〈st,at,rt,st+1〉存到經(jīng)驗(yàn)池R;
(3) 從R中采樣大小為N的經(jīng)驗(yàn)數(shù)據(jù)transition:〈st,at,rt,st+1〉;
(4) 根據(jù)transition計(jì)算TD target:
yi=ri+γQ′(si+1,μ′(si+1|θμ′)|θQ′)
(6) 計(jì)算策略梯度:
▽?duì)圈苔?s|θμ)|s=si)
(7) 更新actor網(wǎng)絡(luò);
(8) 更新目標(biāo)網(wǎng)絡(luò);
7 End for
8 End for
本文以Carla模擬器作為實(shí)驗(yàn)的仿真環(huán)境,并通過(guò)DDPG算法對(duì)虛擬無(wú)人車的控制策略展開了研究,不同于傳統(tǒng)感知-決策-控制的方案,本文提供了一種端到端的無(wú)人車控制方法[16]。
2.1.1仿真環(huán)境介紹
Carla是一款城市環(huán)境的無(wú)人駕駛仿真器,由Intel Labs、Toyota Research Institute和UBA Computer Vision Center聯(lián)合開發(fā),支持無(wú)人駕駛系統(tǒng)的開發(fā)、訓(xùn)練和驗(yàn)證[17]。
Carla添加了各種天氣特征到仿真環(huán)境中,并且考慮了真實(shí)的光照情況,最大限度還原真實(shí)駕駛過(guò)程。另外,開發(fā)者還能夠按照自己的實(shí)際需要靈活選擇地圖、汽車、行人、交通標(biāo)志等。除此之外,Carla還提供了許多常見(jiàn)的傳感器,如廣角攝像機(jī)、激光雷達(dá)、GPS等,且開放了Python接口供開發(fā)者完成各項(xiàng)配置。
Carla系統(tǒng)為評(píng)價(jià)算法提供了一個(gè)標(biāo)準(zhǔn)的評(píng)估框架,便于開發(fā)者對(duì)各種算法進(jìn)行統(tǒng)一評(píng)測(cè)。評(píng)估標(biāo)準(zhǔn)(driving benchmark)包括算法(Agent)和實(shí)驗(yàn)包(experiment suite)組成。該算法由研究者自我封裝,然后在實(shí)驗(yàn)包的環(huán)境上進(jìn)行測(cè)試實(shí)驗(yàn),測(cè)試過(guò)程中可以根據(jù)需要記錄待評(píng)估選項(xiàng)的分?jǐn)?shù)(recording)以及進(jìn)行性能計(jì)算(metrics)。
性能計(jì)算包括任務(wù)完成的分?jǐn)?shù)、任務(wù)平均完成度以及違反駕駛行為的分?jǐn)?shù)。成功完成任務(wù)的分?jǐn)?shù)根據(jù)指定了任務(wù)回合的數(shù)量計(jì)算;任務(wù)平均完成度根據(jù)每一個(gè)回合已經(jīng)行駛的距離計(jì)算;違規(guī)駕駛考慮了偏離道路(offroad)、偏離車道(otherlane)、碰撞(collision)等情況。
2.1.2研究方案設(shè)計(jì)
本文通過(guò)DDPG算法在Carla仿真器中完成虛擬無(wú)人車自動(dòng)駕駛的車道保持決策控制任務(wù),車道保持是指虛擬無(wú)人車沿著一條車道駕駛,在交叉路口時(shí),隨機(jī)選擇行駛方向。該任務(wù)的要求是:保證無(wú)人車在本車道內(nèi)行駛,并最低限度地發(fā)生違規(guī)駕駛。仿真訓(xùn)練的地圖Town01如圖2。
圖2 Carla環(huán)境Town01地圖
訓(xùn)練過(guò)程中,每一個(gè)新回合,小車都被放置在Town01中的一個(gè)隨機(jī)的開始位置,其他車輛和行人也位于新的隨機(jī)位置。環(huán)境中的車輛數(shù)目為20,行人數(shù)量為40,天氣為晴朗(weather TD=1)。
DDPG算法中一共包含4個(gè)神經(jīng)網(wǎng)絡(luò),與DQN一樣,分為在線網(wǎng)絡(luò)和目標(biāo)網(wǎng)絡(luò),且2種網(wǎng)絡(luò)結(jié)構(gòu)一致;同時(shí),DDPG采用的是actor-critic架構(gòu),因此,在線網(wǎng)絡(luò)包含actor在線網(wǎng)絡(luò)和critic在線網(wǎng)絡(luò),目標(biāo)網(wǎng)絡(luò)同樣如此。其中,actor在線網(wǎng)絡(luò)和critic在線網(wǎng)絡(luò)模型如圖3、4所示。
圖3 actor在線網(wǎng)絡(luò)示意圖
圖4 critic在線網(wǎng)絡(luò)示意圖
Actor在線網(wǎng)絡(luò)的輸入狀態(tài)包含圖像信息和測(cè)量信息,圖像信息來(lái)自無(wú)人車正前方的廣角攝像機(jī),測(cè)量信息包括轉(zhuǎn)向值steer∈[-1,1]、加速值/制動(dòng)值throttle/brake∈[-1,1]、當(dāng)前車速、偏離車道線值otherlane∈[0,1]、偏離道路值offroad∈[0,1];輸出為二維動(dòng)作控制向量[action_0, action_1],action∈[-1,1],其中,action_0時(shí),表示轉(zhuǎn)向;action_1>0時(shí),表示油門;action_1<0時(shí),表示剎車。
Critic在線網(wǎng)絡(luò)除了輸入狀態(tài)外,還包含由actor網(wǎng)絡(luò)輸出的動(dòng)作;輸出為該狀態(tài)下采取某一動(dòng)作的Q值,即動(dòng)作值函數(shù)。
由于強(qiáng)化學(xué)習(xí)通過(guò)試錯(cuò)機(jī)制探索環(huán)境,因此,智能體在前期的訓(xùn)練中,時(shí)常會(huì)在已經(jīng)偏離車道線或道路的情況下,依然采取與上一時(shí)刻相同的轉(zhuǎn)向值,這樣的無(wú)效訓(xùn)練使智能體在訓(xùn)練前期花更多時(shí)間去探索。為了提高智能體前期的訓(xùn)練效率,盡可能減少?gòu)?qiáng)化學(xué)習(xí)的試錯(cuò)成本,在原DDPG算法的基礎(chǔ)上,對(duì)其進(jìn)行改進(jìn),其中,仿真環(huán)境、網(wǎng)絡(luò)結(jié)構(gòu)與原DDPG算法保持一致,如圖5所示。
圖5 監(jiān)督式DDPG示意圖
智能體的actor網(wǎng)絡(luò)輸出控制動(dòng)作,監(jiān)督器會(huì)根據(jù)前一時(shí)刻的狀態(tài)來(lái)判斷是否對(duì)智能體輸出的動(dòng)作進(jìn)行強(qiáng)制干預(yù),其具體規(guī)則為:
1) 若上一時(shí)刻狀態(tài)測(cè)量信息中的偏離車道線值或偏離道路值大于0,則轉(zhuǎn)向值將變?yōu)椋?/p>
action_0′=action_0-0.5×prev_action[′steer′]
(8)
其中,pre_action[′steer′]為上一時(shí)刻的轉(zhuǎn)向值。
2) 若上一時(shí)刻狀態(tài)測(cè)量信息中的速度小于0,則加速值和制動(dòng)值分別為:
throttle′=throttle+0.5
(9)
brake′=0
(10)
2.2.1超參數(shù)設(shè)置
實(shí)驗(yàn)中的超參數(shù)設(shè)置如表1所示。
表1 超參數(shù)設(shè)置
MAX_EPISODES為訓(xùn)練的總回合數(shù);MAX_STEPS_EPISODE 為一回合訓(xùn)練的最大步數(shù);WARMUP_STEPS為熱身的步數(shù),即在這之前為數(shù)據(jù)收集階段,熱身步數(shù)之后開始訓(xùn)練網(wǎng)絡(luò)的參數(shù);GAMMA為計(jì)算累積回報(bào)值時(shí)的折扣系數(shù);TAU為target 網(wǎng)絡(luò)更新時(shí)的參數(shù);BUFFER_SIZE為回放經(jīng)驗(yàn)池的尺寸大??;OU_THETA、OU_MU、OU_SIGMA為OU噪聲的參數(shù);MINI_BATCH_SIZE為批訓(xùn)練的數(shù)據(jù)量;EVAL_PERIODS為算法評(píng)估的頻率,即每隔100個(gè)回合評(píng)估一次算法;EVAL_EPISODES為評(píng)估持續(xù)的時(shí)間,即每次評(píng)估持續(xù)10個(gè)回合。EXPLORATION_EPISODES為探索階段,即在這之前會(huì)在actor網(wǎng)絡(luò)輸出的動(dòng)作上加入OU噪聲,以增加動(dòng)作輸出的多樣性。
2.2.2圖像預(yù)處理
圖像來(lái)自于安裝在車輛正前方的廣角攝像機(jī),本文選擇的圖像類型是Carla中的Scene Final圖像。本小節(jié)首先將圖像剪裁為800×280,去掉了圖像中的無(wú)關(guān)要素,然后進(jìn)行像素重采樣,重采樣后的大小為88×200。
2.2.3獎(jiǎng)勵(lì)函數(shù)的設(shè)計(jì)
在強(qiáng)化學(xué)習(xí)中,獎(jiǎng)勵(lì)函數(shù)的作用不言而喻,不僅影響著算法的收斂速度,也是該算法能否成功的關(guān)鍵一環(huán)。獎(jiǎng)勵(lì)函數(shù)引導(dǎo)著智能體做出正確的決定,直接決定了智能體能否學(xué)習(xí)到正確策略。自動(dòng)駕駛中的獎(jiǎng)勵(lì)函數(shù)應(yīng)該根據(jù)各種駕駛狀況的優(yōu)劣來(lái)定義獎(jiǎng)勵(lì)函數(shù),從而使智能體能更快更好地學(xué)習(xí)到好的駕駛策略。針對(duì)本次駕駛?cè)蝿?wù),本文獎(jiǎng)勵(lì)函數(shù)設(shè)置如下:
1) 碰撞項(xiàng)Rc。包括碰撞車、行人、建筑物等其他物體,都會(huì)給予一個(gè)大的負(fù)向獎(jiǎng)勵(lì):
Rc=-100Ct
(11)
式中:Ct=0代表沒(méi)有碰撞情況發(fā)生,Ct=1代表有碰撞情況發(fā)生。
2) 車速項(xiàng)Rv。該項(xiàng)因素是為了獎(jiǎng)勵(lì)能在限制速度以內(nèi)向前行駛,同時(shí)對(duì)負(fù)向速度和超速的行為給予一個(gè)負(fù)向獎(jiǎng)勵(lì):
(12)
式中:Vt代表無(wú)人車的當(dāng)前速度;此實(shí)驗(yàn)中設(shè)置了一個(gè)限速的變量Vlimit,當(dāng)無(wú)人車的行駛速度小于當(dāng)前道路的限速時(shí),會(huì)得到一個(gè)正向的獎(jiǎng)勵(lì)值,該獎(jiǎng)勵(lì)值與當(dāng)前的速度一致;當(dāng)然,若該速度值為負(fù)時(shí),則獎(jiǎng)勵(lì)值相應(yīng)也會(huì)變成負(fù)向的獎(jiǎng)勵(lì)值;當(dāng)無(wú)人車的行駛速度大于當(dāng)前道路的限制速度時(shí),則會(huì)給予一個(gè)負(fù)向值的獎(jiǎng)勵(lì),該值等于行駛速度與限速之差。
3) 偏離當(dāng)前道路項(xiàng)Rs。該項(xiàng)因素是為了對(duì)超出道路這一狀況給予負(fù)向的獎(jiǎng)勵(lì)值,同時(shí),對(duì)于完全行駛出道路之外的情況,會(huì)強(qiáng)制終止這一回合的訓(xùn)練:
(13)
式中:St代表無(wú)人車偏離道路的量,St∈[0,1],當(dāng)該值小于1時(shí),會(huì)給予一個(gè)負(fù)向的獎(jiǎng)勵(lì),該獎(jiǎng)勵(lì)值與偏移的量成正比;當(dāng)該值等于1時(shí),即無(wú)人車已經(jīng)完全開出道路以外,會(huì)給予一個(gè)大的負(fù)向獎(jiǎng)勵(lì),并且強(qiáng)制結(jié)束這一回合的訓(xùn)練。
4) 偏離車道線Ro。該項(xiàng)因素是考慮到無(wú)人車行駛過(guò)程中偏離車道線的情況:
Ro=-5Ot
(14)
式中:Ot代表無(wú)人車偏離車道線的量,Ot∈[0,1],其獎(jiǎng)勵(lì)值與偏移車道線的量成正比。
5) 當(dāng)前時(shí)刻與上一時(shí)刻行駛距離差項(xiàng)Rd。該項(xiàng)因素是為了防止無(wú)人車停滯不前,鼓勵(lì)小車向前行駛:
Rd=-5dt
(15)
式中:dt=1代表距離當(dāng)前時(shí)刻與上一時(shí)刻之間行駛的距離差小于0.1 m,dt=0代表距離差大于 0.1 m。
6) 轉(zhuǎn)向項(xiàng)Rsteer。此向獎(jiǎng)勵(lì)函數(shù)則是出于舒適性的考量:
Rsteer=-10abs(steer)2
(16)
式中:steer代表無(wú)人車的轉(zhuǎn)向值,steer∈[-1,1],由于大的轉(zhuǎn)向值會(huì)造成較低的舒適性,因此該項(xiàng)獎(jiǎng)勵(lì)值為一個(gè)負(fù)向獎(jiǎng)勵(lì),其值與轉(zhuǎn)向值的平方成正比。
綜上所述,實(shí)驗(yàn)中的獎(jiǎng)勵(lì)函數(shù)一共包含6項(xiàng),具體為:
R=Rc+Rt+Rs+Ro+Rd+Rsteer
(17)
2.2.4回合終止的條件設(shè)置
回合終止的條件設(shè)置主要考慮2種情況:① 發(fā)生了實(shí)際行車中難以承受的錯(cuò)誤和完成了指定任務(wù)。如無(wú)人車撞上了建筑物而停滯不前,使得智能體一直存儲(chǔ)一些無(wú)用的狀態(tài)轉(zhuǎn)移(transition)數(shù)據(jù),且難以探索新的環(huán)境,導(dǎo)致后續(xù)的訓(xùn)練難以進(jìn)行。② 達(dá)到了訓(xùn)練的回合數(shù)也會(huì)停止訓(xùn)練。具體終止條件設(shè)置如下:
1) 車輛發(fā)生碰撞情況。
2) 整個(gè)車處于非行駛區(qū)域(道路以外)。
3) 當(dāng)reward_time≥100。每一次新的回合會(huì)初始化reward_time=0,當(dāng)前進(jìn)速度小于0時(shí),會(huì)增加值為5的reward_time,當(dāng)上一時(shí)間步與當(dāng)前時(shí)間步距離之差小于0.1 m時(shí),會(huì)增加值為1的reward_time。當(dāng)該值大于等于100時(shí),會(huì)終止該回合的訓(xùn)練,這樣的設(shè)置是為了防止小車長(zhǎng)時(shí)間無(wú)明顯的位移變化。
4) 達(dá)到一回合訓(xùn)練的最大步數(shù)MAX_STEPS_EPISODE=5 000。
DDPG智能體以及監(jiān)督式DDPG智能體在地圖Town01中分別訓(xùn)練了70 000個(gè)回合,其實(shí)驗(yàn)條件與實(shí)驗(yàn)設(shè)置均保持一致,最終訓(xùn)練結(jié)果如圖6、7所示。
圖6 平均獎(jiǎng)勵(lì)變化曲線
圖6中的2條曲線分別表示2種算法每一回合平均回報(bào)的變化。從圖中可以看出,在訓(xùn)練的初始階段,監(jiān)督式DDPG算法的平均回報(bào)明顯高于原始DDPG算法,而隨著訓(xùn)練次數(shù)的增加,兩者逐漸靠近,最后均收斂于同一平均值。圖7的2條曲線為2種算法每一回合的累積回報(bào)的變化,其中,監(jiān)督式DDPG算法在30 000回合以前,累積回報(bào)值均在0以下,表明這時(shí)的獎(jiǎng)勵(lì)值以負(fù)向獎(jiǎng)勵(lì)居多, 而原DDPG算法的負(fù)向獎(jiǎng)勵(lì)持續(xù)到了 38 000回合。在訓(xùn)練初期,小車還處于環(huán)境摸索中,時(shí)常發(fā)生碰撞、越線、原地不動(dòng)等情況,這些不好的狀態(tài)都會(huì)使小車得到比較大的負(fù)向獎(jiǎng)勵(lì)。不過(guò),一旦小車開始得到正向獎(jiǎng)勵(lì),其訓(xùn)練效果便會(huì)發(fā)生質(zhì)的提升。
圖7 累積獎(jiǎng)勵(lì)變化曲線
根據(jù)訓(xùn)練得到的網(wǎng)絡(luò)模型,分別在地圖Town01和地圖Town02中制定了不同駕駛?cè)蝿?wù)的測(cè)試實(shí)驗(yàn)來(lái)對(duì)該模型進(jìn)行測(cè)評(píng),如圖8所示。
圖8 任務(wù)位置點(diǎn)示意圖
測(cè)試場(chǎng)景包含地圖Town01和地圖Town02,從地圖上的A點(diǎn)行駛到B點(diǎn),駕駛?cè)蝿?wù)的變量有天氣和環(huán)境中的汽車和行人數(shù)量。2個(gè)地圖測(cè)試路線均包含了2個(gè)直角拐彎。由于第1個(gè)地圖也是訓(xùn)練場(chǎng)景,因此,測(cè)試實(shí)驗(yàn)中的行駛路線比第2個(gè)地圖的行駛路線更為苛刻一些,根據(jù)圖8(a)所示,除了兩者都包含的2個(gè)直角拐彎之外,中間還包括了3個(gè)岔路口。考慮到未在Town02中進(jìn)行訓(xùn)練,因此,其行駛路線只有2個(gè)直角拐彎。
在地圖Town01中,天氣為晴朗(weather ID=1)和雨后(weather ID=3),DDPG和監(jiān)督式 DDPG的測(cè)試結(jié)果如表2、3所示。
表2 DDPG Town01測(cè)試結(jié)果
表3 監(jiān)督式 DDPG Town01測(cè)試結(jié)果
根據(jù)表2、3,監(jiān)督式 DDPG與DDPG在地圖Town01中的總體表現(xiàn)相差不大,均能在靜態(tài)的環(huán)境中出色地完成駕駛?cè)蝿?wù)。即使天氣有所改變,駕駛效果也沒(méi)有明顯變化;然而,當(dāng)環(huán)境中出現(xiàn)行人和車輛這樣的動(dòng)態(tài)因素時(shí),兩者的表現(xiàn)均有明顯下降,尤其在增加車輛行人且改變天氣之后,2種算法的駕駛表現(xiàn)均出現(xiàn)了顯著下滑,可以看出,相比于天氣,智能體對(duì)環(huán)境中的動(dòng)態(tài)因素變化更敏感。
而在地圖Town02中,天氣為晴朗(weather ID=1)和雨后(weather ID=3),DDPG和監(jiān)督式 DDPG的測(cè)試結(jié)果如表4、5所示。
表4 DDPG Town02測(cè)試結(jié)果
表5 監(jiān)督式DDPG Town02測(cè)試結(jié)果
根據(jù)表4、5所示,同樣地,監(jiān)督式 DDPG和DDPG算法在Town02中總體表現(xiàn)無(wú)明顯優(yōu)劣。不過(guò),在面對(duì)新的環(huán)境時(shí),2種算法的智能體均未能得到適應(yīng),在新環(huán)境中幾乎無(wú)法正常駕駛,駕駛違規(guī)頻頻發(fā)生,危險(xiǎn)的碰撞行為也層出不窮。其原因可歸結(jié)為神經(jīng)網(wǎng)絡(luò)表征能力不夠,算法泛化能力不足,導(dǎo)致無(wú)法有效地遷移到陌生的駕駛環(huán)境中。
采用深度強(qiáng)化學(xué)習(xí)算法,以端到端的方式實(shí)現(xiàn)了對(duì)虛擬無(wú)人車的控制。訓(xùn)練結(jié)果表明,原始DDPG算法以及監(jiān)督式DDPG算法最終均能達(dá)到一致的效果,能夠有效避開障礙,在沒(méi)有違規(guī)駕駛的條件下保持在車道內(nèi)行駛。并且監(jiān)督式DDPG算法能有效提升前期訓(xùn)練效果,降低初期試錯(cuò)風(fēng)險(xiǎn),能更早地收斂。測(cè)評(píng)結(jié)果表明,環(huán)境中動(dòng)態(tài)因素對(duì)無(wú)人車駕駛效果的影響遠(yuǎn)遠(yuǎn)大于天氣因素。其次,當(dāng)將該模型遷移到新的環(huán)境中進(jìn)行駕駛仿真時(shí),小車幾乎不能正常行駛,因此,模型的遷移能力不足。
本文改進(jìn)的基于監(jiān)督式的DDPG算法只提供了粗略的動(dòng)作矯正,意在改善提升其前期的訓(xùn)練效率,而并非最終的效果。
由于強(qiáng)化學(xué)習(xí)是通過(guò)不斷試錯(cuò)尋找最優(yōu)解,所以在游戲等虛擬場(chǎng)景中能大放異彩,然而,在實(shí)際環(huán)境中,讓車采取隨機(jī)策略、通過(guò)試錯(cuò)得到正確的控制策略顯然不可能。因此,智能駕駛中使用強(qiáng)化學(xué)習(xí)技術(shù)一般情況下會(huì)事先在仿真環(huán)境下進(jìn)行模擬訓(xùn)練。本文完成了在仿真環(huán)境下的自動(dòng)駕駛實(shí)驗(yàn), 而通過(guò)加入監(jiān)督器干預(yù)智能體的危險(xiǎn)動(dòng)作這一方法,可為端到端的智能駕駛控制提供一些參考價(jià)值,以及對(duì)強(qiáng)化學(xué)習(xí)從虛擬到現(xiàn)實(shí)提供一定的借鑒意義。
同時(shí),本文的研究還存在一些不足之處:首先,小車感知力不足,模糊了障礙物和陰影的區(qū)別,會(huì)出現(xiàn)將陰影錯(cuò)當(dāng)成障礙物規(guī)避的現(xiàn)象;其次,控制效果比較生硬,導(dǎo)致舒適性一般。最后,模型遷移到新環(huán)境中時(shí)難以正常行駛。因此,進(jìn)一步提高小車的感知能力與舒適性,以及提高算法的泛化能力將是以后的研究方向。