羅 鵬 黃 珍▲ 秦易晉 陳志軍
(1.武漢理工大學(xué)自動(dòng)化學(xué)院 武漢 430070;2.武漢理工大學(xué)智能交通系統(tǒng)研究中心 武漢 430063)
無人駕駛技術(shù)可以有效改善交通秩序,提高交通效率,減少交通擁堵,保障行駛安全。車聯(lián)網(wǎng)作為無人駕駛的重要支撐,能夠打通路測設(shè)備與網(wǎng)聯(lián)車的信息壁壘,協(xié)助車輛決策系統(tǒng)制定合理的決策行為,保障車輛在復(fù)雜場景下安全、高效的行駛。在網(wǎng)聯(lián)環(huán)境下,行駛路段周圍車輛信息的獲取能幫助車輛制定更優(yōu)的駕駛決策,從而改善行駛過程中車輛的運(yùn)行速度和車間距等微觀交通流特性,提高車輛駕駛的安全性和舒適性[1-2]。
對(duì)于車輛駕駛行為決策算法,已有很多學(xué)者做了相關(guān)研究,傳統(tǒng)的車輛駕駛行為決策研究可分為基于規(guī)則的方法和基于統(tǒng)計(jì)的方法。①基于規(guī)則的方法是根據(jù)行駛規(guī)則、經(jīng)驗(yàn)和交通法規(guī)等建立駕駛行為規(guī)則庫,依據(jù)車輛在環(huán)境中所處狀態(tài),按照規(guī)則庫確定駕駛決策行為。城市挑戰(zhàn)賽冠軍Boss[3]構(gòu)建的基于有限狀態(tài)機(jī)的決策算法,車輛通過執(zhí)行人工定義的決策狀態(tài)以實(shí)現(xiàn)準(zhǔn)確的行為決策;DARPA城市挑戰(zhàn)賽的隊(duì)伍“Annieway”[4]提出的基于分層狀態(tài)機(jī)的決策算法,解決了有限狀態(tài)機(jī)結(jié)構(gòu)相對(duì)凌亂,難以維護(hù)的問題。基于規(guī)則的方法雖然簡便,但沒有充分考慮環(huán)境的不確定性,難以滿足復(fù)雜場景的需求。②基于統(tǒng)計(jì)的方法是通過對(duì)海量車輛行駛數(shù)據(jù)分析和處理,查找其中的隱含信息、經(jīng)驗(yàn)及知識(shí),并將其概念化和形式化進(jìn)而形成決策規(guī)則[5]。Wei等[6]提出的基于單點(diǎn)馬爾科夫過程的單車道行為決策方法,加入了對(duì)前車行為不確定性的考慮,提高了系統(tǒng)的魯棒性;Ulbrich等[7]在離散狀態(tài)空間中使用部分可觀測馬爾科夫過程獲取行為決策;Aoude等[8]結(jié)合信息博弈理論,進(jìn)行了交叉口決策研究。基于統(tǒng)計(jì)的方法雖然能夠考慮場景中的不確定性因素,但需要大量訓(xùn)練數(shù)據(jù),而且存在計(jì)算效率的問題。
隨著深度學(xué)習(xí)的發(fā)展,在強(qiáng)化學(xué)習(xí)概念的基礎(chǔ)上,DeepMind團(tuán)隊(duì)通過結(jié)合Q-learning和深度學(xué)習(xí)提出了DQN算法[9],該算法采用經(jīng)驗(yàn)池(replay memory)里的隨機(jī)樣本進(jìn)行訓(xùn)練,減少訓(xùn)練樣本之間的關(guān)聯(lián)性,提高了神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)效率;DeepMind團(tuán)隊(duì)在前者的基礎(chǔ)上加入了Q-target目標(biāo)網(wǎng)絡(luò)[10],使得DQN中存在2個(gè)結(jié)構(gòu)相同但是參數(shù)不同的網(wǎng)絡(luò),提高了算法的穩(wěn)定性和泛化能力;van Hasselt[11]在其發(fā)表的Double Q-learning算法工作的基礎(chǔ)上結(jié)合了DQN的思想,提出了Double DQN算法,通過構(gòu)建2個(gè)Q值神經(jīng)網(wǎng)絡(luò),將動(dòng)作選擇和價(jià)值估計(jì)進(jìn)行解耦,進(jìn)一步提高了DQN算法的精度;Wang Z[12]提出了基于競爭網(wǎng)絡(luò)結(jié)構(gòu)的Dueling DQN算法,將Q值分解為狀態(tài)價(jià)值和優(yōu)勢函數(shù),通過減少多余的自由度,縮小Q值的范圍,提高了算法的收斂效率。Hessel M提出了整合6種改進(jìn)DQN的融合算法RainBow算法[13]。但強(qiáng)化學(xué)習(xí)存在2個(gè)問題:①樣本效率低;②長期信用分配和獎(jiǎng)勵(lì)稀疏問題。因此,強(qiáng)化學(xué)習(xí)需要較長時(shí)間的訓(xùn)練,才能具備較好的控制效果[14]。雖然以上研究通過改造DQN算法的結(jié)構(gòu)和形式,提升了算法精度和收斂速度,但是并未有效利用人類經(jīng)驗(yàn),仍面臨在訓(xùn)練的動(dòng)作選擇過程中大量無用探索的問題。
基于以上討論,本文提出一種以專家知識(shí)引導(dǎo)的DQN算法,即專家知識(shí)表征環(huán)境變量與最優(yōu)動(dòng)作之間的映射關(guān)系。在車聯(lián)網(wǎng)信息交互的基礎(chǔ)上,由V2X裝置獲取周邊車輛的狀態(tài)信息,根據(jù)專家知識(shí)決策和傳統(tǒng)DQN算法決策之間的差別確定獎(jiǎng)勵(lì)值函數(shù)的值,再由獎(jiǎng)勵(lì)值函數(shù)來引導(dǎo)估值網(wǎng)絡(luò)的訓(xùn)練,減少隨機(jī)動(dòng)作產(chǎn)生的無用探索。利用專家知識(shí)干預(yù)DQN算法的訓(xùn)練過程,加快了算法的收斂速度,降低了動(dòng)作選擇過程的隨機(jī)性,解決了傳統(tǒng)DQN算法中大量無用探索的問題。最后,在仿真平臺(tái)中對(duì)原始算法和新算法的實(shí)驗(yàn)效果進(jìn)行了比較。
高速公路行車速度快、交通構(gòu)成單一、道路設(shè)施相對(duì)完善[15],是實(shí)現(xiàn)無人駕駛較好的落地場景。高速公路一般為雙向多車道,由主道、匝道和輔助車道組成,本文根據(jù)車輛決策的適用場景和需求,將高速交通場景分為直道和并道場景分別討論,為方便敘述,將直道場景中的道路簡化為單向3車道,并道場景中的道路簡化為單向2車道和1條外側(cè)匝道,但本文方法同樣適用于多車道及其他類似場景。圖1中的方塊代表車輛,為方便討論,假設(shè)主車搭載的V2X設(shè)備能夠完全獲得周圍車輛的運(yùn)動(dòng)信息,包括車輛的縱向位置、橫向位置、縱向速度和橫向速度。
圖1 高速交通場景Fig.1 Highway traffic scene
馬爾可夫決策過程(Markov Decision Processes,MDP)是指具有馬爾可夫性的過程,馬爾可夫性表示一個(gè)隨機(jī)過程的未來狀態(tài)的條件概率只與系統(tǒng)的當(dāng)前狀態(tài)有關(guān),而與它的過去歷史或未來狀態(tài)都是獨(dú)立且不相關(guān)的[16]。面向駕駛行為決策的MDP模型可以用1個(gè)5元組表示。其中:S為車輛的狀態(tài)空間;A為車輛的動(dòng)作空間;T為狀態(tài)之間的狀態(tài)轉(zhuǎn)移函數(shù);R為在狀態(tài)S下采取動(dòng)作A所能得到的即時(shí)獎(jiǎng)賞;γ為折扣因子。車輛的MDP模型見圖2。
圖2 車輛的MDP模型Fig.2 MDP model of vehicle
車輛的MDP模型參數(shù)主要根據(jù)目標(biāo)任務(wù)構(gòu)建,針對(duì)本文的交通場景,面向駕駛行為決策的MDP模型的相關(guān)參數(shù)定義如下。
1)狀態(tài)空間S。在車輛行駛過程中,狀態(tài)空間S主要包括自車狀態(tài)和環(huán)境狀態(tài),自車狀態(tài)指車輛本身的狀態(tài),它表征了車輛的位置信息和運(yùn)動(dòng)信息。環(huán)境狀態(tài)指道路環(huán)境下的周邊車輛狀態(tài),具體包括周邊車輛的位置信息和運(yùn)動(dòng)信息。
式中:0為本車;1,2,3,4為周邊的其他車輛。
2)動(dòng)作空間A。在車輛行駛過程中,動(dòng)作空間A是車輛決策系統(tǒng)輸出的駕駛行為指令,是駕駛決策算法參與車輛控制的最重要環(huán)節(jié),也是車輛探索行為的動(dòng)作空間集合,包括左變道、直行、右變道、加速和減速。
式中:A0為左變道;A1為直行,A2為右變道;A3為加速;A4為減速。
3)狀態(tài)轉(zhuǎn)移T。在車輛行駛過程中,狀態(tài)轉(zhuǎn)移T表示狀態(tài)轉(zhuǎn)移矩陣,取決于執(zhí)行控制動(dòng)作后環(huán)境的真實(shí)狀態(tài)。
4)即時(shí)獎(jiǎng)勵(lì)R。在車輛行駛過程中,即時(shí)獎(jiǎng)勵(lì)R表示車輛在當(dāng)前狀態(tài)S下采取動(dòng)作A后得到的即時(shí)獎(jiǎng)勵(lì)R(S,A)。在實(shí)際車輛駕駛決策過程中,即時(shí)獎(jiǎng)勵(lì)R的設(shè)計(jì)應(yīng)滿足以下5點(diǎn)要求。
1)避免碰撞,保證車輛行駛安全。
2)鼓勵(lì)車輛在道路限速下高速穩(wěn)定的通行,減少車速的波動(dòng)。
3)在滿足1)和2)的條件下,應(yīng)盡可能保證車輛運(yùn)行的舒適,減少駕乘人員的不適反應(yīng),減少無效換道。
4)合理的融入交通流,減少對(duì)交通環(huán)境的影響。
5)折扣因子γ。折扣因子的取值區(qū)間為(0,1],折扣因子越接近0,未來的獎(jiǎng)勵(lì)對(duì)于現(xiàn)在狀態(tài)的價(jià)值影響越??;越接近1,未來獎(jiǎng)勵(lì)對(duì)現(xiàn)在狀態(tài)的價(jià)值影響越大。
專家知識(shí)是一類包含知識(shí)和推理的智能決策規(guī)則庫,它基于從人類專家那里獲得的知識(shí),可以解決通常需要人類專家的許多問題,而且在某些知識(shí)領(lǐng)域能夠表達(dá)和推理。復(fù)雜的專家知識(shí)庫可以滿足諸多復(fù)雜場景的需要,但是其設(shè)計(jì)過于繁瑣,需要大量的數(shù)據(jù)和實(shí)踐驗(yàn)證,且在周圍環(huán)境發(fā)生變化時(shí)不能有效的應(yīng)對(duì)。本文旨在遵守交通法規(guī)和人類駕駛習(xí)慣的基礎(chǔ)上,通過制定一系列簡單而行之有效的規(guī)則,利用DQN算法來實(shí)現(xiàn)復(fù)雜的車輛決策問題,提高車輛在高速場景上的行駛安全和通行效率。
2.1.1 專家知識(shí)庫的特征選擇
1)車輛決策問題的影響因素。在高速場景下的車輛駕駛決策問題中,人類駕駛員所關(guān)注的影響因素主要包括車輛的速度、位置和行駛安全等,根據(jù)上述信息,制定了車輛駕駛決策問題的4種一級(jí)影響因素,并對(duì)一級(jí)影響因素進(jìn)行分析獲得二級(jí)影響因素,見圖3。
圖3 影響因素分類圖Fig.3 Drawing of influencing factor's classification
上述二級(jí)影響因素雖然充分表示了高速場景下所需的狀態(tài)信息,但其中元素?cái)?shù)量較多且存在相互耦合,會(huì)增大決策樹的復(fù)雜度并降低決策樹的精度,需要根據(jù)各個(gè)影響因素的重要程度進(jìn)行選取。
2)層次分析法。層次分析法是運(yùn)籌學(xué)中的一種用于解決復(fù)雜問題定量分析的方法,可以給出相關(guān)影響因素的重要程度序列。因此,本文采用層次分析法對(duì)各個(gè)影響因素的權(quán)重進(jìn)行量化。
構(gòu)造判斷矩陣的合理性是層次分析法的關(guān)鍵,它表征2個(gè)影響因素的相對(duì)重要程度。采用1~9比例標(biāo)度法對(duì)重要度進(jìn)行賦值,重要度定義見表1。
表1 重要度定義Tab.1 The definition of importance degree
在以安全為最高優(yōu)先級(jí)的情況下,根據(jù)人類駕駛員的駕駛習(xí)慣利用比例標(biāo)度法建立了一級(jí)影響因素重要度比較結(jié)果(見表2),并構(gòu)建判斷矩陣V。
表2 一級(jí)影響因素重要度Tab.2 The importance degree of first-order influencing factors
本文利用和積法求解影響因素的權(quán)重,通過對(duì)判斷矩陣V的規(guī)范化處理,計(jì)算指標(biāo)權(quán)重和矩陣的最大特征值,然后檢測結(jié)果的隨機(jī)一致性,最后確定影響因素的權(quán)重,結(jié)果見表3。選取車輛駕駛決策問題中權(quán)重最高的4個(gè)影響因素作為主要影響因素,為專家知識(shí)庫的構(gòu)建建立基礎(chǔ)。
表3 影響因素的權(quán)重Tab.3 The weight of influencing factors
2.1.2 專家知識(shí)庫的構(gòu)建基礎(chǔ)
1)車輛最小安全距離。車輛最小安全距離直接影響高速環(huán)境下車輛的通行效率和行車安全,最小安全距離設(shè)置過大,有利于保障車輛行駛的安全性,但會(huì)降低道路的通行效率。反之,最小安全距離設(shè)置過小,能提升道路的通行效率,但又會(huì)增加追尾的風(fēng)險(xiǎn)。因此,本文采用可變車頭時(shí)距作為車輛最小安全距離,既考慮了2車碰撞的最小臨界距離,又兼顧了前后車速的變化,能夠根據(jù)車速進(jìn)行距離的實(shí)時(shí)動(dòng)態(tài)調(diào)節(jié)。2車最小安全距離D的計(jì)算公式見式(4)。
式中:T為采樣周期,s;V1為本車車速,m/s;V2為前車車速,m/s;τ為車頭時(shí)距,s,一般情況下,取τ=0.5~1.5 s,L為前后2車安全停車后的最小臨界距離,m,取L=2~5 m。
2)危險(xiǎn)車輛的判定。危險(xiǎn)車輛定義為本車執(zhí)行決策過程以及決策后調(diào)整到安全速度的這段時(shí)間內(nèi),與本車有發(fā)生碰撞風(fēng)險(xiǎn)的車輛。危險(xiǎn)車輛的判定可由狀態(tài)集中的動(dòng)態(tài)數(shù)據(jù)信息來決定,待判定車輛應(yīng)與本車處于相同車道,當(dāng)其滿足以下條件時(shí),判定為危險(xiǎn)車輛。
式中:H為本車與待判定車輛的直線距離,m;V為本車與待判定車輛的相對(duì)速度,m/s;D為2車最小安全距離,m。
3)影響因子的標(biāo)準(zhǔn)化。在車輛的駕駛行為決策問題中,影響決策的主要影響因子有車道位置、左車道危險(xiǎn)車輛、中間車道危險(xiǎn)車輛及右車道危險(xiǎn)車輛,為方便專家規(guī)則的表示,本文對(duì)影響因子進(jìn)行了標(biāo)準(zhǔn)化取值,見表4。
2.1.3 利用ID3決策樹構(gòu)建專家知識(shí)庫
依據(jù)交通規(guī)則、行駛安全,以及人類駕駛習(xí)慣制作了學(xué)習(xí)樣本,利用ID3決策樹算法構(gòu)建如下形式的駕駛行為決策專家規(guī)則庫,見表5。將影響因子中的車道位置C、左車道危險(xiǎn)車輛W0、中間車道危險(xiǎn)車輛W1及右車道危險(xiǎn)車輛W2量化為車輛的專家樣本狀態(tài)S*,利用駕駛行為決策專家規(guī)則庫確定對(duì)應(yīng)的最優(yōu)動(dòng)作A,建立專家樣本狀態(tài)和最優(yōu)動(dòng)作之間的映射關(guān)系S*→A*,由此形成的規(guī)則稱為專家知識(shí)。
車輛在實(shí)際行駛時(shí),車輛決策系統(tǒng)通過車載傳感器和V2X設(shè)備獲取周邊環(huán)境數(shù)據(jù),通過對(duì)這些數(shù)據(jù)進(jìn)行處理和標(biāo)準(zhǔn)化取值,依據(jù)駕駛行為決策專家規(guī)則庫,決策出當(dāng)前時(shí)刻車輛的駕駛行為,并按照決策出的駕駛行為進(jìn)行相應(yīng)動(dòng)作。
表4 影響因子標(biāo)準(zhǔn)化取值說明Tab.4 Explanation of standardized values of influencing factors
表5 駕駛行為決策專家規(guī)則庫Tab.5 Driving behavior decision expert rule base
2.2.1 獎(jiǎng)勵(lì)值函數(shù)的設(shè)計(jì)
Q-learning算法[17]和DQN算法都是基于值迭代與動(dòng)態(tài)優(yōu)化機(jī)制的算法,傳統(tǒng)的Q-learning算法面對(duì)高維連續(xù)的狀態(tài)空間和動(dòng)作空間時(shí)會(huì)面臨維數(shù)災(zāi)難[18]。為了解決這一問題,DQN算法利用神經(jīng)網(wǎng)絡(luò)良好的泛化能力把Q-Table的更新變?yōu)楹瘮?shù)的擬合問題,通過神經(jīng)網(wǎng)絡(luò)代替Q-Table產(chǎn)生Q值,可以獲得狀態(tài)s的最優(yōu)動(dòng)作選擇。
在估值網(wǎng)絡(luò)的訓(xùn)練階段,如果DQN算法每次都采用Q值最大的動(dòng)作,容易陷入局部最優(yōu),傳統(tǒng)DQN算法在訓(xùn)練階段一般采用ε-greedy策略,在訓(xùn)練過程中產(chǎn)生了大量無用搜索,增加了動(dòng)作選擇的隨機(jī)性。如果能夠引入專家知識(shí)引導(dǎo)動(dòng)作選擇過程,可以有效減少無用搜索,提高算法的收斂速度。由于專家知識(shí)不能直接用于算法訓(xùn)練,因此,本文采用獎(jiǎng)勵(lì)值函數(shù)來引導(dǎo)DQN的訓(xùn)練,其結(jié)構(gòu)見圖4。
獎(jiǎng)勵(lì)值函數(shù)的輸入量有3個(gè),分別是車輛決策系統(tǒng)的動(dòng)作選擇A、專家知識(shí)的動(dòng)作選擇A*和即時(shí)獎(jiǎng)勵(lì)r,當(dāng)環(huán)境狀態(tài)s屬于專家樣本狀態(tài)庫時(shí),可由獎(jiǎng)勵(lì)值函數(shù)得出新的獎(jiǎng)勵(lì)值r*,最后通過獎(jiǎng)勵(lì)值r*更新估值網(wǎng)絡(luò)的權(quán)重。為此,建立了獎(jiǎng)勵(lì)值函數(shù)的規(guī)則,如下。
圖4 獎(jiǎng)勵(lì)值函數(shù)引導(dǎo)結(jié)構(gòu)圖Fig.4 Drawing of reward function shaping
①若s?S*,采用ε-greedy策略作為網(wǎng)絡(luò)的訓(xùn)練方式。
②若s∈S*,且A*=A,則r*=r+η。
③若s∈S*,且A*≠A,則r*=r-η。
式中:s為車輛的狀態(tài),S*為專家樣本狀態(tài)庫;A*為根據(jù)專家知識(shí)的動(dòng)作;A為根據(jù)DQN算法的動(dòng)作,r*為新的獎(jiǎng)勵(lì)值;r為即時(shí)獎(jiǎng)勵(lì),η為額外的獎(jiǎng)勵(lì)值。
2.2.2 以專家知識(shí)引導(dǎo)的DQN網(wǎng)絡(luò)結(jié)構(gòu)
1938年心理學(xué)家Skinner首次提出“引導(dǎo)”(shaping)的概念[19],其思想認(rèn)為可以通過示范性的操作來引導(dǎo)動(dòng)物或是人學(xué)習(xí)相對(duì)復(fù)雜的任務(wù),當(dāng)學(xué)習(xí)對(duì)象向著人們期望的目標(biāo)方向進(jìn)步時(shí),就給學(xué)習(xí)對(duì)象一定的獎(jiǎng)勵(lì),誘導(dǎo)其不斷做相似的動(dòng)作[20]。本文通過優(yōu)化DQN網(wǎng)絡(luò)結(jié)構(gòu),利用專家規(guī)則庫來加速合引導(dǎo)DQN算法的訓(xùn)練過程。
以專家知識(shí)引導(dǎo)的DQN網(wǎng)絡(luò)結(jié)構(gòu)見圖5,相較于傳統(tǒng)DQN網(wǎng)絡(luò),新的結(jié)構(gòu)中加入了專家知識(shí)和獎(jiǎng)勵(lì)值函數(shù)。首先由估值網(wǎng)絡(luò)和專家規(guī)則庫分別根據(jù)環(huán)境信息輸出當(dāng)前狀態(tài)下的動(dòng)作A和A*,再利用獎(jiǎng)勵(lì)值函數(shù)綜合專家知識(shí)得到新的獎(jiǎng)勵(lì)值r*,并輸送給經(jīng)驗(yàn)池,最后完成對(duì)估值網(wǎng)絡(luò)的權(quán)重更新。估值網(wǎng)絡(luò)與目標(biāo)網(wǎng)絡(luò)由2個(gè)具有相同結(jié)構(gòu)的神經(jīng)網(wǎng)絡(luò)構(gòu)成,其中只有估值網(wǎng)絡(luò)參與訓(xùn)練,估值網(wǎng)絡(luò)在訓(xùn)練中更新參數(shù),提高其預(yù)測能力,而目標(biāo)網(wǎng)絡(luò)只負(fù)責(zé)保存訓(xùn)練過程中估值網(wǎng)絡(luò)的參數(shù)[21]。由于2個(gè)神經(jīng)網(wǎng)絡(luò)的參數(shù)在預(yù)測Q值時(shí)會(huì)出現(xiàn)差異,通過這個(gè)差異值來更新估值網(wǎng)絡(luò)中的權(quán)重,完成算法的學(xué)習(xí)。由于BP神經(jīng)網(wǎng)絡(luò)具有結(jié)構(gòu)簡單、泛化能力強(qiáng)和容錯(cuò)能力高等優(yōu)點(diǎn),故本文采用BP神經(jīng)網(wǎng)絡(luò)作為估值網(wǎng)絡(luò)和目標(biāo)網(wǎng)絡(luò)的擬合函數(shù),具體結(jié)構(gòu)見圖6。
圖5 以專家知識(shí)引導(dǎo)的DQN網(wǎng)絡(luò)結(jié)構(gòu)圖Fig.5 Drawing of DQN network guided by expert knowledge
圖6 BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)圖Fig.6 Drawing of BP neural network
2.2.3 算法流程
將專家知識(shí)引入DQN算法,實(shí)現(xiàn)對(duì)DQN算法的引導(dǎo),減少訓(xùn)練的隨機(jī)性,加快了訓(xùn)練過程。以專家知識(shí)引導(dǎo)的DQN算法的具體流程如下。
輸入:狀態(tài)s。
輸出:估值網(wǎng)絡(luò)權(quán)重θ。
1)根據(jù)流體彈塑性內(nèi)摩擦侵徹理論,系統(tǒng)提出了超高速動(dòng)能武器打擊侵深、成坑及地沖擊效應(yīng)最小安全防護(hù)層厚度計(jì)算方法,為建立防護(hù)工程抗超高速動(dòng)能武器打擊的防護(hù)設(shè)計(jì)提供理論基礎(chǔ)。
參數(shù):經(jīng)驗(yàn)池容量N,訓(xùn)練次數(shù)M,常數(shù)C。
1)初始化經(jīng)驗(yàn)池D,容量為N。
2)初始化估值網(wǎng)絡(luò)和目標(biāo)網(wǎng)絡(luò)的權(quán)重。
3)迭代開始t=1,輸入狀態(tài)st。
4)判斷狀態(tài)st是否屬于專家樣本狀態(tài)庫S*。
5) 若st∈S*,根據(jù)專家知識(shí)選擇動(dòng)作a*。
6)若st?S*,根據(jù)ε-greedy策略選擇動(dòng)作a。
8)獲得即時(shí)獎(jiǎng)勵(lì)r和下一時(shí)刻的狀態(tài)st+1。
9)根據(jù)即時(shí)獎(jiǎng)勵(lì)r和動(dòng)作a*,由獎(jiǎng)勵(lì)值函數(shù)獲得新獎(jiǎng)勵(lì)值r*。
10)將(st,a,r,st+1)存入經(jīng)驗(yàn)池。
11)判斷經(jīng)驗(yàn)池D中的數(shù)據(jù)數(shù)量是否達(dá)到N,若達(dá)到N,則更新估值網(wǎng)絡(luò)的權(quán)重θ,并在C個(gè)時(shí)間步數(shù)后更新目標(biāo)網(wǎng)絡(luò)的權(quán)重θ’;若未達(dá)到N,重復(fù)步驟4)~11)。
12)判斷迭代次數(shù)是否達(dá)到額定次數(shù)M,若未到達(dá)M,重復(fù)步驟3)~12),若到達(dá)M,則訓(xùn)練結(jié)束。
為了驗(yàn)證專家知識(shí)引導(dǎo)的DQN算法的有效性,本文基于OpenAI的pygame選取高速場景作為測試實(shí)例并搭建實(shí)驗(yàn)環(huán)境,將以專家知識(shí)引導(dǎo)的DQN算法應(yīng)用于車輛駕駛行為決策中,測試算法在典型交通場景中的有效性和收斂速度,并與傳統(tǒng)DQN算法進(jìn)行對(duì)比。實(shí)驗(yàn)仿真環(huán)境如下:操作系統(tǒng)為WIN10操作系統(tǒng),CPU為Inter Core i7-7700處理器,內(nèi)存為8GB,GPU為 NVIDIA GeForce GTX 1060,編程語言為Python,深度學(xué)習(xí)工具為 Pytorch。
1)高速直道場景設(shè)置。本文選取的高速直道場景為1條單向3車道場景,車道總長度為1 000 m,狀態(tài)空間S為包括本車在內(nèi)的周邊5輛車的位置信息和運(yùn)動(dòng)信息,場景中的車輛均可自由、隨機(jī)選擇動(dòng)作,其具體環(huán)境模型的參數(shù)見表6。
表6 直道場景的環(huán)境模型參數(shù)Tab.6 Environment model parameters for straight scenarios
2)高速并道場景設(shè)置。本文選取的高速并道場景為1條單向2車道場景,另外還有1條為外側(cè)匝道,車道總長度為400 m,狀態(tài)空間S為包括本車在內(nèi)的周邊5輛車的位置信息和運(yùn)動(dòng)信息,場景中的車輛均可自由、隨機(jī)選擇動(dòng)作,其具體環(huán)境模型的參數(shù)見表7。
表7 并道場景的環(huán)境模型參數(shù)Tab.7 Environment model parameters for merge scenarios
3)動(dòng)作空間設(shè)置。車輛的動(dòng)作空間包括左變道、直行、右變道、加速和減速。
4)神經(jīng)網(wǎng)絡(luò)參數(shù)設(shè)置。本文的估值網(wǎng)絡(luò)和目標(biāo)網(wǎng)絡(luò)采用BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),隱藏層由600個(gè)神經(jīng)元組成;輸入層和隱藏層之間、隱藏層和輸出層之間采用ReLU激活函數(shù)。
5)即時(shí)獎(jiǎng)勵(lì)設(shè)置。本文的即時(shí)獎(jiǎng)勵(lì)r由動(dòng)作獎(jiǎng)勵(lì)action-reward和狀態(tài)獎(jiǎng)勵(lì)state-reward 2個(gè)部分組成,其中動(dòng)作獎(jiǎng)勵(lì)action-reward是針對(duì)車輛的動(dòng)作A給予的獎(jiǎng)勵(lì),狀態(tài)獎(jiǎng)勵(lì)state-reward是根據(jù)車輛的狀態(tài)S給予的獎(jiǎng)勵(lì),具體表示見式(6)。
式中:r為即時(shí)獎(jiǎng)勵(lì);action-reward為動(dòng)作獎(jiǎng)勵(lì)值;state_reward為狀態(tài)獎(jiǎng)勵(lì)值;vehicle-crashed為車輛碰撞的獎(jiǎng)勵(lì)值;velocity-reward為車輛行駛速度獎(jiǎng)勵(lì)值;velocity為車輛的行駛速度。
3.3.1 DQN算法仿真結(jié)果分析
1)高速直道場景。以車輛能夠穩(wěn)定通過高速直道場景為目標(biāo),利用上述建立的Python仿真平臺(tái),以專家知識(shí)引導(dǎo)的DQN算法訓(xùn)練車輛的行為決策。仿真過程中車輛的行駛過程見圖7。
如圖7所示,深色的方塊代表自主車(白色方框標(biāo)示),淺色的方塊代表其他車輛。為初始時(shí)刻的環(huán)境狀態(tài),包括1輛自主車和10輛環(huán)境車輛,~為車輛行駛過程。在初始時(shí)刻時(shí),自主車位于中間車道,且縱向位移為0 m,起始速度為25 m/s;時(shí)刻時(shí),由于前方車輛進(jìn)入最小安全距離,自主車選擇左變道超車,速度為25 m/s時(shí)刻時(shí),自主車保持直行狀態(tài)并加速行駛,速度增加為30 m/s;時(shí)刻時(shí),遇到前方2輛障礙車,由于無法換道,自主車選擇減速跟隨前方車輛,速度降為20 m/s;時(shí)刻時(shí),自主車右變道超車,速度為20 m/s;時(shí)刻時(shí),自主車保持直行狀態(tài)并加速行駛,速度為25 m/s;時(shí)刻時(shí),由于前方車輛進(jìn)入最小安全距離,自主車選擇左變道超車,速度為25 m/s;時(shí)刻時(shí),自主車保持直行狀態(tài)并加速行駛,速度為30 m/s,直至行程結(jié)束。
圖7 車輛在高速直道場景的行駛狀態(tài)Fig.7 The driving state of vehicle in the highway straight scene
2)高速并道場景。以車輛能夠穩(wěn)定通過高速并道場景為目標(biāo),利用上述建立的Python仿真平臺(tái),以專家知識(shí)引導(dǎo)的DQN算法訓(xùn)練車輛的行為決策。仿真過程中車輛的行駛過程見圖8。
圖8 車輛在高速并道場景的行駛狀態(tài)Fig.8 The driving state of vehicle in the highway merge scene
如圖8所示,深色的方塊代表自主車(白色方框標(biāo)示),淺色的方塊代表其他車輛。為初始時(shí)刻的環(huán)境狀態(tài),包括1輛自主車和7輛環(huán)境車輛,~為車輛行駛過程。在初始時(shí)刻時(shí),自主車位于外側(cè)車道,且縱向位移為0 m,起始速度為25 m/s;時(shí)刻時(shí),自主車保持安全距離跟隨前車行駛,速度為25 m/s;時(shí)刻時(shí),自主車保持直行狀態(tài)開始減速行駛,并等待左側(cè)車道空出,速度降為20 m/s;時(shí)刻時(shí),由于左側(cè)車道空出,自主車選擇左變道,速度為20 m/s;時(shí)刻時(shí),由于前方存在障礙車輛,自主車選擇左變道超車,速度為20 m/s;時(shí)刻時(shí),自主車保持直行狀態(tài)并加速行駛行駛,速度為30 m/s,直至行程結(jié)束。
3.3.2 與傳統(tǒng)DQN算法的對(duì)比分析。
相同仿真交通場景以及參數(shù)設(shè)定條件下,對(duì)比以專家知識(shí)引導(dǎo)的DQN算法與傳統(tǒng)DQN算法的訓(xùn)練效果。
1)高速直道場景。在有效仿真時(shí)間內(nèi)車輛在高速直道場景下2種不同算法的訓(xùn)練結(jié)果和車輛運(yùn)動(dòng)參數(shù)曲線的變化情況見圖9~10。
由圖9可知:①在前100次訓(xùn)練中,2種算法均處于初始學(xué)習(xí)階段,動(dòng)作選擇策略具有較大的隨機(jī)性,因此成功次數(shù)和獎(jiǎng)勵(lì)值均較低;②在完成200次訓(xùn)練時(shí),基于專家知識(shí)引導(dǎo)的DQN開始根據(jù)專家知識(shí)得出正確的決策,成功次數(shù)和獎(jiǎng)勵(lì)值均迅速增高,成功率到達(dá)92%,獎(jiǎng)勵(lì)值也逐步增加,達(dá)到42.52,展示出算法快速的學(xué)習(xí)能力,此時(shí)傳統(tǒng)DQN算法仍然處于探索階段,動(dòng)作選擇策略的隨機(jī)性較大,成功率和獎(jiǎng)勵(lì)值均較低;③在完成300次訓(xùn)練時(shí),系統(tǒng)持續(xù)學(xué)習(xí)與環(huán)境交互產(chǎn)生的經(jīng)驗(yàn)知識(shí),基于專家知識(shí)引導(dǎo)的DQN獲得的駕駛決策越來越接近專家水平,成功率和獎(jiǎng)勵(lì)值仍處于穩(wěn)定上升階段,此時(shí)傳統(tǒng)DQN算法也開始學(xué)習(xí)到正確的動(dòng)作決策,動(dòng)作選擇策略的隨機(jī)性減小,成功率和獎(jiǎng)勵(lì)值持續(xù)上升;④在完成400次訓(xùn)練時(shí),2種算法都已經(jīng)學(xué)習(xí)到最優(yōu)策略,車輛決策系統(tǒng)進(jìn)入穩(wěn)定期,獲得的駕駛決策已經(jīng)能夠滿足高速直道場景的需求。
圖9 2種算法的訓(xùn)練結(jié)果比較圖Fig.9 Comparison of two methods' training results
圖10 2種算法下車輛的運(yùn)動(dòng)曲線Fig.10 Comparison of two methods' motion curve
由圖10可知,與傳統(tǒng)DQN相比,基于專家知識(shí)引導(dǎo)的DQN平均車速略高,換道次數(shù)較少,但是加減速也更頻繁,考慮到獎(jiǎng)勵(lì)引導(dǎo)因素的影響,其總獎(jiǎng)勵(lì)值高于傳統(tǒng)DQN算法。
2)高速并道場景。在有效仿真時(shí)間內(nèi)車輛在高速并道場景下2種不同算法的訓(xùn)練結(jié)果和車輛運(yùn)動(dòng)參數(shù)曲線的變化情況見圖11~12。
圖11 2種算法的訓(xùn)練結(jié)果比較圖Fig.11 Comparison of two method's training results
圖12 2種算法下車輛的運(yùn)動(dòng)曲線Fig.12 Comparison of two method's motion curve
由圖11可知:①在前100次訓(xùn)練中,2種算法均處于初始學(xué)習(xí)階段,動(dòng)作選擇策略具有較大的隨機(jī)性,因此成功次數(shù)和獎(jiǎng)勵(lì)值均較低,相對(duì)而言,傳統(tǒng)DQN算法的成功率略高一些;②在完成200次訓(xùn)練時(shí),由于基于專家知識(shí)引導(dǎo)的DQN開始根據(jù)專家知識(shí)得出正確的決策,成功次數(shù)和獎(jiǎng)勵(lì)值均迅速增高,展示出快速的學(xué)習(xí)能力,成功率到達(dá)96%,獎(jiǎng)勵(lì)值也逐步增加,達(dá)到25.18,此時(shí),傳統(tǒng)DQN算法仍處于探索階段,隨機(jī)性較大;③在完成300次訓(xùn)練時(shí),基于專家知識(shí)引導(dǎo)的DQN獲得的駕駛決策越來越接近專家水平,成功率和獎(jiǎng)勵(lì)值處于穩(wěn)定階段,此時(shí)傳統(tǒng)DQN算法也開始學(xué)習(xí)到正確的動(dòng)作決策,動(dòng)作選擇策略的隨機(jī)性減小,成功率和獎(jiǎng)勵(lì)值持續(xù)上升中;④在完成400次訓(xùn)練時(shí),基于專家知識(shí)引導(dǎo)的DQN已經(jīng)學(xué)習(xí)到最優(yōu)策略,決策系統(tǒng)進(jìn)入穩(wěn)定期,駕駛決策已經(jīng)能夠滿足高速并道場景需求,此時(shí),傳統(tǒng)DQN算法的動(dòng)作決策也越來越接近專家水平,進(jìn)入穩(wěn)定階段。
由圖12可知,與傳統(tǒng)DQN相比,基于專家知識(shí)引導(dǎo)的DQN具有平均車速更高,換道次數(shù)較少的優(yōu)點(diǎn),但是加減速也更頻繁,且存在人為設(shè)定的獎(jiǎng)勵(lì)引導(dǎo)因素下,其總獎(jiǎng)勵(lì)值高于傳統(tǒng)DQN算法。
3.3.3 與Double-DQN算法的對(duì)比分析
由于DQN算法在進(jìn)行動(dòng)作選擇和動(dòng)作評(píng)估時(shí)均采取貪婪策略,雖然可以快速讓Q值向可能的優(yōu)化目標(biāo)靠攏,但是模型在學(xué)習(xí)過程中容易產(chǎn)生值函數(shù)過估計(jì)的問題,即估計(jì)的值函數(shù)比真實(shí)的值函數(shù)更大,導(dǎo)致得到的算法模型與實(shí)際產(chǎn)生較大的偏差,影響訓(xùn)練的效果。為了解決這個(gè)問題,Hasselt提出了Double DQN的方法,通過解耦目標(biāo)Q值動(dòng)作的選擇和評(píng)估,將動(dòng)作的選擇和動(dòng)作的評(píng)估分別用不同的值函數(shù)來實(shí)現(xiàn),以達(dá)到消除過度估計(jì)的目的。
為了進(jìn)一步驗(yàn)證以專家知識(shí)引導(dǎo)的DQN算法的優(yōu)化效果,選取Double-DQN算法進(jìn)行仿真對(duì)比,二者的仿真場景相同,參數(shù)設(shè)定也相同。在有效仿真時(shí)間內(nèi)車輛在高速場景下2種不同算法的訓(xùn)練結(jié)果見表8~9。
表8 直道場景下的訓(xùn)練結(jié)果Tab.8 The training results of straight scenarios
表9 并道場景下的訓(xùn)練結(jié)果Tab.9 The training results of merge scenarios
由表5可知,相較于傳統(tǒng)DQN算法,在高速直道下達(dá)到80%成功率的平均訓(xùn)練次數(shù)減少了100次,平均獎(jiǎng)勵(lì)值提高了4.7,達(dá)到95%成功率的平均訓(xùn)練次數(shù)減少了100次,平均獎(jiǎng)勵(lì)值提高了4.02,有效的減少了動(dòng)作的隨機(jī)性,加快了訓(xùn)練的過程。相較于Double-DQN算法,達(dá)到80%成功率和95%成功率所用的平均訓(xùn)練次數(shù)大體相同,由于專家DQN存在人為設(shè)定的獎(jiǎng)勵(lì)引導(dǎo)因素,其總獎(jiǎng)勵(lì)值高于Double-DQN算法。
由表6可知,相較于傳統(tǒng)DQN算法,在高速并道下達(dá)到80%成功率的平均訓(xùn)練次數(shù)減少了100次,平均獎(jiǎng)勵(lì)值提高了0.69,達(dá)到95%成功率的平均訓(xùn)練次數(shù)減少了200次,平均獎(jiǎng)勵(lì)值提高了1.34,有效的減少了動(dòng)作的隨機(jī)性,加快了訓(xùn)練的過程。相較于Double-DQN算法,達(dá)到80%成功率的平均訓(xùn)練次數(shù)大體相同,到達(dá)95%成功率所用平均訓(xùn)練次數(shù)減少了50次,由于專家DQN存在人為設(shè)定的獎(jiǎng)勵(lì)引導(dǎo)因素,其總獎(jiǎng)勵(lì)值高于Double-DQN算法。
1)在遵守交通法規(guī)和人類駕駛習(xí)慣的基礎(chǔ)上,通過制定一系列簡單而行之有效的規(guī)則,構(gòu)建了高速場景下車輛決策系統(tǒng)的專家知識(shí)庫。同時(shí),通過優(yōu)化DQN算法的結(jié)構(gòu),制定不同的獎(jiǎng)勵(lì)機(jī)制下的獎(jiǎng)勵(lì)值函數(shù),引導(dǎo)DQN算法來實(shí)現(xiàn)復(fù)雜的車輛決策問題,提高車輛在高速場景上的行駛安全和通行效率。
2)相較于傳統(tǒng)DQN算法,在高速直道下達(dá)到95%成功率的平均訓(xùn)練次數(shù)減少了100次,平均獎(jiǎng)勵(lì)值提高了4.02;在高速并道場景下達(dá)到95%成功率的平均訓(xùn)練次數(shù)減少了200次,平均獎(jiǎng)勵(lì)值提高了1.34,有效地加快DQN算法的動(dòng)作選擇,降低探索過程中的動(dòng)作隨機(jī)性。
3)加入專家知識(shí)的DQN算法雖然在高速場景下使得車輛決策系統(tǒng)的安全性和高效性上有明顯提高,但是仍未改變強(qiáng)化學(xué)習(xí)算法大多適用于仿真環(huán)境的現(xiàn)狀,距離真正的落地仍然遙遠(yuǎn),因此后續(xù)工作中會(huì)進(jìn)一步研究如何實(shí)現(xiàn)算法的在線更新和決策,讓算法獲得更好的即時(shí)性和適用性。