趙克剛 石翠鐸 梁志豪 李梓棋 王玉龍
(1.華南理工大學,廣州 510641;2.湖南大學,汽車車身先進設(shè)計制造國家重點實驗室,長沙 410082)
主題詞:自適應(yīng)巡航控制 柔性演員-評論家 可遷移性 深度強化學習
自適應(yīng)巡航控制(Adaptive Cruise Control,ACC)是重要的自動駕駛輔助技術(shù),而目前的ACC 算法依賴于大量的標定工作,并且存在復雜環(huán)境下適應(yīng)性差、表現(xiàn)不佳的問題[1-2]。深度強化學習(Deep Reinforcement Learning,DRL)通過智能體與環(huán)境交互進行自學習最大化累計獎勵值,以學習到目標任務(wù)的最優(yōu)策略[3-5],在未來有望解決自動駕駛等復雜系統(tǒng)的控制決策問題,已經(jīng)在路徑規(guī)劃[6-7]、軌跡跟蹤[8-9]和跟馳控制[10-11]等自動駕駛領(lǐng)域得到了較為廣泛的研究。針對ACC算法適應(yīng)復雜工況能力差的弊端,DRL可以提供新的研究思路。
目前,在自動駕駛領(lǐng)域應(yīng)用的DRL 算法主要為無模型的確定性策略和隨機性策略。在確定性策略算法研究中:Fu 等[12]利用深度確定性策略梯度(Deep Deterministic Policy Gradient,DDPG)算法訓練緊急制動決策策略,可提高安全性;Qian 等[13]利用雙延遲深度確定性策略梯度(Twin Delayed Deep Deterministic Policy Gradient,TD3)算法并考慮拓撲路徑的特點訓練自動駕駛決策策略,解決行為決策與軌跡規(guī)劃的一致性問題。上述文獻所使用的確定性策略算法在訓練過程中雖然能夠較快地收斂到穩(wěn)定狀態(tài),但是環(huán)境探索不充分且可能得到局部最優(yōu)策略的缺點,使得模型的遷移性和泛化能力較差。
針對確定性策略算法探索能力差的問題,隨機性策略框架提供了更全面的環(huán)境探索。Liu等[14]使用異步優(yōu)勢演員-評論家(Asynchronous Advantage Actor-Critic,A3C)算法并考慮節(jié)能因素,提出一種自動駕駛決策策略;He等[15]采用近端策略優(yōu)化(Proximal Policy Optimization,PPO)算法提出一種自動駕駛多目標縱向決策方法,并通過熵約束加快模型訓練,提高算法的穩(wěn)定性。以上文獻采用的隨機性策略算法探索能力更強,有更好的環(huán)境適應(yīng)能力,但使用的是在線策略,對歷史樣本數(shù)據(jù)利用率低。
因此,本文提出一種基于柔性演員-評論家(Soft Actor-Critic,SAC)的ACC 算法。建立車輛自適應(yīng)巡航的馬爾可夫決策過程,構(gòu)建合理的演員和評論家網(wǎng)絡(luò)并加入自調(diào)節(jié)溫度系數(shù),通過設(shè)計模塊化獎勵函數(shù)以及新的樣本訓練模式進一步優(yōu)化算法。將所提出的控制算法在不同仿真環(huán)境和實車環(huán)境中進行測試,驗證算法的有效性。
本文以乘用車為研究對象,車輛自適應(yīng)巡航場景如圖1所示。

圖1 車輛自適應(yīng)巡航場景示意
主車跟隨目標車行駛過程中,目標距離作為自適應(yīng)巡航控制的重要指標,在保證行車安全和道路交通效率的同時還需兼顧駕駛員的心理預期。本文采用可變安全距離策略中的固定車頭時距(Constant Time Headway,CTH)[16]作為目標距離的計算方法。車頭時距τh定義為:
式中,d為主車與目標車的實際距離;v為主車速度。
將τh設(shè)置為固定值,則采用CTH 計算的目標距離dgoal為:
式中,d0為目標車靜止時與主車的最小安全距離。
將主車作為DRL 的智能體,其跟隨目標車的行駛過程使用馬爾可夫決策過程(Markov Decision Process,MDP)表示。MDP 由4 維數(shù)組[S,A,P,R]描述,其中,S、A分別為狀態(tài)空間和動作空間,P為狀態(tài)轉(zhuǎn)移概率,R為獎勵函數(shù)。本文將t時刻主車與目標車的實際距離與目標距離間的誤差Δdt,主車實際速度與目標速度(即目標車速度)的誤差Δvt作為狀態(tài)輸入,t時刻主車的目標速度vgoalt作為動作輸出,定義t時刻的狀態(tài)空間st和動作空間at為:
式中,ΔDL、ΔDH分別為距離誤差的下限與上限;ΔVmin、ΔVmax分別為速度誤差的最小值與最大值;Vmin、Vmax分別為目標速度的最小值與最大值。
t時刻自適應(yīng)巡航的控制過程可以描述為:智能體接收到狀態(tài)信息st,執(zhí)行DRL 產(chǎn)生的動作at,通過獎勵函數(shù)R獲得獎勵值,并根據(jù)狀態(tài)轉(zhuǎn)移概率P將狀態(tài)轉(zhuǎn)移至st+1。
本文在柔性Q學習(Soft Q-Learning,SQL)[17]基礎(chǔ)上改進獲得一種基于最大熵原理的DRL 算法,其通過離線策略的方法優(yōu)化一個隨機性策略,在連續(xù)動作空間的復雜系統(tǒng)中具有較好的適用性。如圖2 所示為基于該算法的自適應(yīng)巡航DRL 過程,其學習目標是找到累計獎勵與熵的和期望最大的策略π*:

圖2 自適應(yīng)巡航控制DRL過程
式中,E(st,at)~π為期望;r(st,at)為t時刻ACC 系統(tǒng)采取控制動作的獎勵;H(π(·|st))=-Eα[log(π(at|st))]為在策略π下動作的熵;α為溫度系數(shù),決定熵相對于獎勵的權(quán)重。
本文使用深度神經(jīng)網(wǎng)絡(luò)擬合動作值函數(shù)和動作策略函數(shù),分別組成評論家(Critic)和演員(Actor)網(wǎng)絡(luò)。
3.1.1 評論家網(wǎng)絡(luò)
對于動作值函數(shù),使用2層隱藏層的全連接層網(wǎng)絡(luò)對其進行擬合。在如圖3所示的動作值網(wǎng)絡(luò)中,以狀態(tài)st和動作at作為輸入,線性整流函數(shù)(Rectified Linear Unit,ReLU)f(x)=max(0,x)作為激活函數(shù),at的估計值作為輸出。

圖3 動作值網(wǎng)絡(luò)
動作值網(wǎng)絡(luò)的損失函數(shù)為動作值函數(shù)Qθ(st,at)和動作值目標函數(shù)的均方差:
其中:
式中,θ為動作值網(wǎng)絡(luò)參數(shù);γ為折扣因子。
具體訓練中,使用雙動作值網(wǎng)絡(luò)并選取最小的Qθ(st,at),以減少對動作值的高估。
3.1.2 演員網(wǎng)絡(luò)
與動作值函數(shù)的擬合相同,動作策略函數(shù)同樣使用2 層隱藏層的全連接層網(wǎng)絡(luò)進行擬合。如圖4 所示的動作策略網(wǎng)絡(luò)中,以狀態(tài)st作為輸入,ReLU 作為激活函數(shù),高斯分布的均值μ和方差σ作為輸出。但由于μ和σ采樣動作并不可導,無法計算損失函數(shù)的梯度。因此,本文采用重參數(shù)的方法,將反向傳播路徑中的高斯分布用標準正態(tài)分布代替,從標準正態(tài)分布中獲取采樣值εt,從而獲得對應(yīng)均值和方差高斯分布的采樣動作at:

圖4 動作策略網(wǎng)絡(luò)
動作策略網(wǎng)絡(luò)的損失函數(shù)為網(wǎng)絡(luò)估計的高斯分布與實際基于能量分布的期望KL 散度(Kullback-Leibler Divergense):
式中,φ為動作策略網(wǎng)絡(luò)參數(shù);DKL為KL散度;Zθ(st)為使分布正則化的配分函數(shù)。
另外,高斯分布中采樣得到的動作at的值域為(-∞,+∞),但在自適應(yīng)巡航場景中速度作為動作是有界的,因此需要對動作at進行變換。本文使用壓縮高斯分布,將at用tanh激活函數(shù)處理,將其值域映射到(-1,+1);然后進行換元計算,將激活值乘以自適應(yīng)巡航限制的最高速度得到真實目標速度vgoal。
車輛在自適應(yīng)巡航時,溫度系數(shù)α作為熵的權(quán)重,起到控制策略隨機性的作用。α越大,則控制策略越隨機,ACC 系統(tǒng)對環(huán)境的探索越充分,即會嘗試更多的動作。文獻[18]使用依賴先驗的固定α,但由于獎勵值不斷變化,采用固定α會導致訓練不穩(wěn)定,且容易收斂到局部最優(yōu)。因此,本文設(shè)計自調(diào)節(jié)溫度系數(shù)α,即當ACC 系統(tǒng)探索到新的區(qū)域時,最優(yōu)動作未知,將α調(diào)大鼓勵探索更多動作空間,當某一區(qū)域探索比較充分時,最優(yōu)動作基本確定,將α適當減小。
t時刻最優(yōu)溫度系數(shù)為:
式中,αt為t時刻的溫度系數(shù);H為當前狀態(tài)采用動作的熵。
溫度系數(shù)的損失函數(shù)為:
式中,H0為熵的閾值。
獎勵函數(shù)是DRL 的重要部分,對訓練效果有直接的影響,好的獎勵函數(shù)可以引導智能體快速學習到有用的知識,加快訓練效率、提高訓練效果。本文設(shè)計的獎勵函數(shù)分為基礎(chǔ)獎勵和細化獎勵。
3.3.1 基礎(chǔ)獎勵
基礎(chǔ)獎勵的作用是為智能體確立學習的基礎(chǔ)目標和具備的基本功能,其產(chǎn)生于訓練的每一個時間步??紤]到自適應(yīng)巡航汽車實現(xiàn)基本跟車功能的同時需兼顧乘坐舒適性,因此設(shè)計的基礎(chǔ)獎勵rb由狀態(tài)量與縱向加速度構(gòu)成[19]:
式中,a為縱向加速度;ξ1、ξ2、ξ3為基礎(chǔ)獎勵各變量的權(quán)重系數(shù),權(quán)重系數(shù)越大,訓練過程中越重視該變量,本文自適應(yīng)巡航DRL 控制過程側(cè)重于更快地縮小距離誤差,因此確定ξ1=8、ξ2=2、ξ3=1。
基礎(chǔ)獎勵的分布如圖5所示。

圖5 基礎(chǔ)獎勵分布
3.3.2 細化獎勵
為了解決獎勵稀疏的問題,防止智能體學習緩慢甚至無法學習的情況出現(xiàn),本文運用獎勵塑造(Reward Shaping)的思想[20]設(shè)計細化獎勵。如圖6 所示,其分為過程獎勵、安全獎勵和完成獎勵。

圖6 細化獎勵函數(shù)
過程獎勵可以使智能體在訓練過程中盡可能減小距離誤差,其產(chǎn)生在訓練的每一個時間步。距離誤差越大,智能體獲得的過程獎勵越小;當距離誤差超過50 m時,給予智能體最小的過程獎勵并使訓練終止,過程獎勵rp的表達式為:
安全獎勵rs的作用是防止主車與目標車發(fā)生碰撞,其產(chǎn)生于兩車發(fā)生碰撞訓練終止時:
完成獎勵ra的作用是促進智能體完整地執(zhí)行自適應(yīng)巡航任務(wù)。當主車走完一個回合(900個時間步)時,ra=0,當主車與目標車碰撞或|Δd|>50 m導致訓練終止時,有:
式中,k為一個訓練回合里已經(jīng)走過的時間步。
3.3.3 獎勵縮聚因子
在訓練過程中,自適應(yīng)巡航場景的環(huán)境隨機因素較多,因此狀態(tài)之間的差別較大,可能使得動作值網(wǎng)絡(luò)參數(shù)變化劇烈,導致神經(jīng)網(wǎng)絡(luò)收斂變緩,甚至發(fā)散。為避免這一現(xiàn)象,本文在訓練過程中對獎勵賦予縮聚因子χ,使樣本梯度的絕對數(shù)量級減小,從而使神經(jīng)網(wǎng)絡(luò)的訓練更穩(wěn)定。因此,集成的總獎勵r為:
本文提出的算法使用離線策略,引入經(jīng)驗緩存池儲存智能體與環(huán)境交互產(chǎn)生的經(jīng)驗數(shù)據(jù),從中隨機抽取小批量樣本用于訓練動作值網(wǎng)絡(luò)。經(jīng)驗緩存池保存數(shù)據(jù)的格式為四元數(shù)組(st,at,st+1,rt),即智能體與環(huán)境交互產(chǎn)生的當前所處的狀態(tài)、當前產(chǎn)生的動作、下一時刻所處的狀態(tài)和當前產(chǎn)生的獎勵值。
傳統(tǒng)的經(jīng)驗回放機制中,隨著訓練的進行,經(jīng)驗緩存池逐漸增大,但放入新數(shù)據(jù)的頻次不變,導致緩存池中新數(shù)據(jù)的比例減少,使得訓練的效果變差。針對這一問題,本文提出一種新的樣本訓練模式,即按照經(jīng)驗緩存池的大小改變模型的訓練次數(shù),隨著新數(shù)據(jù)比例的下降,訓練次數(shù)也逐漸增加。具體步驟為:
a.定義經(jīng)驗緩存池最大容量Cmax。
b.訓練過程產(chǎn)生的經(jīng)驗數(shù)據(jù)逐組放入緩存池。
c.當緩存池C的范圍為0.01Cmax≤C<0.1Cmax時,每增加100組新數(shù)據(jù),訓練智能體20次且每次小批量采樣大小為的數(shù)據(jù);當0.1Cmax≤C<Cmax時,每增加100組新數(shù)據(jù),訓練智能體30 次且每次小批量采樣大小為的數(shù)據(jù);當C=Cmax,即達到最大容量時,每進行100 個時間步,訓練智能體40 次且每次小批量采樣大小為的數(shù)據(jù)。
本文通過Python 與LGSVL 自動駕駛仿真器進行聯(lián)合仿真訓練。為了減小仿真訓練得到的控制算法應(yīng)用到實車中的誤差,本文在訓練中使用與實車上參數(shù)相近的激光雷達與輪速傳感器獲取狀態(tài)信息。設(shè)計訓練場景為τh=3 s、d0=10 m[16]。仿真時,主車與目標車在同向兩車道、每條車道寬為3.5 m 的一條直道上行駛。主車與目標車都以10 m/s的初始速度行駛,兩車的初始距離為10 m。目標車行駛工況如圖7所示。

圖7 目標車行駛工況
模型訓練在Windows10 操作系統(tǒng)下進行,內(nèi)存為64 GB,處理器為Intel 酷睿i7-8700K,顯卡為NVIDIA GeForce RTX 2080 Ti,利用深度學習框架PyTorch。
本文算法的超參數(shù)對訓練效果的影響:折扣因子γ用來計算累計獎勵,γ越大越肯定以往的訓練效果,γ越小越肯定當前回報;批量大小越大,訓練的精度越高,但過多將使神經(jīng)網(wǎng)絡(luò)梯度變化減緩,從而無法走出局部最優(yōu)點;神經(jīng)網(wǎng)絡(luò)學習率lr過大,在梯度下降時網(wǎng)絡(luò)參數(shù)變化過大,會使神經(jīng)網(wǎng)絡(luò)無法收斂,lr過小,網(wǎng)絡(luò)參數(shù)變化過于緩慢,會使神經(jīng)網(wǎng)絡(luò)學不到有效的知識。經(jīng)多次訓練試驗,確定較優(yōu)的算法超參數(shù)如表1所示。

表1 算法超參數(shù)
圖8所示為訓練累計獎勵變化的結(jié)果,由圖8可以看出,與采用相同獎勵函數(shù)的基于DDPG的ACC算法相比,本文提出的基于SAC的控制算法獲得的最高獎勵相近,取得最高獎勵的時間變長。主要原因為:本文算法采用隨機性策略,在訓練過程中探索更全面充分,可以學習到最優(yōu)和次優(yōu)策略,所以獎勵曲線的波動較大、訓練時間較長;DDPG算法采用確定性策略,對環(huán)境的探索不足,只能學習到最優(yōu)策略,因此較快地達到最高獎勵。

圖8 DRL模型訓練結(jié)果
為驗證本文算法的有效性和魯棒性,選取自適應(yīng)巡航標準測試場景中的目標車靜止、低速和減速試驗場景進行仿真驗證。設(shè)定主車與目標車的初始距離為250 m,主車最高車速30 m/s,對每一個試驗場景測試30回合并取數(shù)據(jù)平均值。規(guī)定標準測試場景下距離誤差和速度誤差分別收斂到0.8 m和0.3 m/s即認為達到自適應(yīng)巡航穩(wěn)定狀態(tài)。
4.3.1 目標車靜止場景
在目標車靜止場景中,主車分別以初始速度為測試場景規(guī)定最低速30 km/h 與最高速60 km/h 的工況行駛。如圖9所示為目標車靜止場景下的主車狀態(tài)曲線,從圖9 中可以看出,SAC和DDPG 控制算法都采取了先加速縮短距離誤差、后減速縮小速度誤差的控制策略,以提高自適應(yīng)巡航控制的效率,加快達到穩(wěn)定狀態(tài)。在主車初始速度為30 km/h的工況下,使用SAC和DDPG控制算法的最高速度分別為24.705 4 m/s 和26.040 3 m/s;在主車初始速度為60 km/h的工況下,使用SAC和DDPG控制算法的最高速度分別為26.064 9 m/s和27.129 2 m/s。2種工況下SAC控制算法與DDPG相比最高速度分別降低了5.13%和3.92%,SAC 控制算法在速度安全性上較DDPG有所提高。

圖9 目標車靜止場景下主車的狀態(tài)曲線
4.3.2 目標車低速場景
在目標車低速場景中,主車分別以初始速度為測試場景規(guī)定最低速80 km/h 與最高速120 km/h 的工況行駛,目標車以30 km/h的速度行駛。如圖10所示為目標車低速場景下的主車狀態(tài)曲線,從圖10中可以看出,在主車初始速度為80 km/h 的工況下,初始速度未超過最高車速30 m/s,因此SAC 和DDPG 控制算法都采取了先加速后減速的控制策略;在主車初始速度為120 km/h的工況下,初始速度超過最高車速,因此2 種控制算法都先減速到最高車速,隨后保持最高車速勻速行駛來加快減小距離誤差,其中DDPG控制算法保持最高車速到第117個時間步后減速,SAC 控制算法保持最高車速到第29個時間步后減速,后者保持最高車速的時間更短,具有更好的速度安全性。因此,該場景下SAC控制算法相比于DDPG采取的是更保守的控制策略。

圖10 目標車低速場景下主車的狀態(tài)曲線
4.3.3 目標車減速場景
在目標車減速場景中,主車以120 km/h 的初始速度行駛,目標車以70 km/h 的初始速度、2 m/s2的減速度行駛。如圖11a 所示,SAC 控制算法的距離誤差最值較DDPG 控制算法大,主要原因為SAC 控制算法在跟車過程中傾向于增大距離誤差來加快縮短速度誤差,這與設(shè)置的獎勵函數(shù)權(quán)重系數(shù)有關(guān)。圖11b 中速度誤差曲線出現(xiàn)鋸齒形狀的原因為LGSVL 仿真軟件無法設(shè)置目標車勻減速行駛,因此人為對勻減速過程進行差分。如圖11c 所示,2 種算法都采取減速的控制策略,由于主車初始速度高于最高車速,因此2 種控制算法都在仿真初期短時間內(nèi)將速度減小到最高車速,其中DDPG 控制算法會保持最高車速行駛一段時間再減速到穩(wěn)定狀態(tài),而SAC 控制算法繼續(xù)減速收斂到穩(wěn)定狀態(tài)。

圖11 目標車減速場景下主車的狀態(tài)曲線
4.3.4 仿真結(jié)果總體分析
在3 種場景的5 個工況下,對于距離誤差,2 種算法收斂至穩(wěn)定狀態(tài)所用的時間基本相同;而對于速度誤差,如表2所示,SAC控制算法相比于DDPG收斂至穩(wěn)定狀態(tài)所用的時間分別減少了19.02%、22.32%、13.20%、16.97%、19.64%,明顯提高了自適應(yīng)巡航的控制效率。

表2 不同場景下速度誤差收斂至穩(wěn)定狀態(tài)所用的時間步
另外,沖擊度(加速度對時間的一階導數(shù))反映了車輛在行駛過程中由于加、減速產(chǎn)生抖動顛簸的程度,可以作為乘坐舒適性的衡量指標。如表3 所示,SAC控制算法的沖擊度(絕對值)的均值較DDPG 分別減小了25.20%、18.77%、23.92%、4.98%、46.22%,最值分別減小了57.09%、46.83%、75.20%、38.35%、57.07%,使主車行駛過程更加平穩(wěn),提高了乘員乘坐的舒適性。

表3 不同場景下主車沖擊度(絕對值)均值和最值
從仿真結(jié)果可以看出,本文算法能夠完成標準測試場景的仿真驗證,與DDPG控制算法相比具有更好的速度安全性、控制效率和乘坐舒適性,對訓練場景外的環(huán)境具有更好的泛化能力。
為檢驗本文所提出的算法遷移到實車中的自適應(yīng)巡航控制效果,如圖12所示,在廣州市番禺區(qū)內(nèi)的一條長度為600 m的近似直道上進行相關(guān)測試。如圖13所示,試驗場景包括主車和目標車2輛車。試驗主車由某品牌純電動汽車線控改裝獲得,搭載激光雷達檢測目標車的相對距離和速度,并利用輪速傳感器獲取自身速度信息。

圖12 試驗路線

圖13 試驗主車和場景示意
試驗過程中,為提高場景的真實性及復雜度,主車與目標車的初始距離隨機確定。具體工況為:主車與目標車均從靜止起步,目標車按照駕駛員的駕駛習慣從靜止加速到40 km/h,并在該速度附近沿道路行駛。
圖14 所示為實車試驗主車狀態(tài)曲線,從圖14a、圖14b中可以看出,使用SAC控制算法的距離誤差在經(jīng)過起步階段的超調(diào)后可以迅速縮小到5 m 內(nèi),而使用DDPG控制算法的距離誤差超調(diào)時間較長,且超調(diào)時最大誤差超過30 m。由圖14c、圖14d 可以看出,使用DDPG 控制算法時速度誤差波動較大,幅值超過6 m/s,而使用SAC 控制算法可以保持更小的速度誤差。圖14g、圖14h中,使用SAC控制算法的沖擊度(絕對值)明顯小于DDPG,在乘車體驗上更為舒適。在實車試驗中,雖然存在信息傳遞延遲和丟包、激光雷達誤檢測等情況,但SAC控制算法并沒有使主車出現(xiàn)狀態(tài)急變,能夠穩(wěn)定地跟隨目標車行駛,在實車上有較好的表現(xiàn)效果。


圖14 試驗主車狀態(tài)曲線
本文研究了DRL算法在自適應(yīng)巡航控制技術(shù)中的應(yīng)用問題,提出一種基于SAC的控制算法。將車輛自適應(yīng)巡航的學習過程描述為馬爾可夫決策過程,構(gòu)建評論家和演員網(wǎng)絡(luò)擬合動作值函數(shù)和動作策略函數(shù);使用自調(diào)節(jié)溫度系數(shù)改善智能體的探索效果;構(gòu)建模塊化獎勵函數(shù),改善了智能體的學習效率和效果,解決了獎勵稀疏的問題;提出一種新的樣本訓練模式,按照經(jīng)驗緩存池的大小改變模型的訓練次數(shù),可以進一步提高樣本的利用率。
試驗結(jié)果表明,相比于DDPG 控制算法,本文所提出的算法能以更高的控制效率縮小速度誤差,且沖擊度(絕對值)更小,舒適性和安全性更好,在實車上的遷移性較好。在后續(xù)的研究中,將開展實車高速試驗進一步檢驗算法的實車性能,并考慮路徑跟蹤、橫縱向協(xié)同控制等自動駕駛場景的DRL控制問題。