曹景祥 劉其成
(煙臺大學(xué)計(jì)算機(jī)與控制工程學(xué)院 山東 煙臺 264000)
隨著科技的快速發(fā)展和日益普及,機(jī)器人、無人駕駛、船只障礙規(guī)避、工程機(jī)械等都使用了路徑規(guī)劃。因此路徑規(guī)劃受到了許多的關(guān)注,越來越多的研究人員對路徑規(guī)劃算法進(jìn)行改進(jìn)[1],并且將深度強(qiáng)化學(xué)習(xí)引入到路徑規(guī)劃中。
深度強(qiáng)化學(xué)習(xí)(Deep Reinforcement Learning,DRL)結(jié)合了深度學(xué)習(xí)的感知能力和強(qiáng)化學(xué)習(xí)的決策能力[2]。隨著深度強(qiáng)化學(xué)習(xí)在不同領(lǐng)域的成功應(yīng)用,使得越來越多的研究人員開始將深度強(qiáng)化學(xué)習(xí)應(yīng)用到路徑規(guī)劃[3]。在面對復(fù)雜環(huán)境和任務(wù)時,深度強(qiáng)化學(xué)習(xí)算法表現(xiàn)突出,有助于提高路徑規(guī)劃的效率[4]。
基于深度強(qiáng)化學(xué)習(xí)的路徑規(guī)劃算法通過神經(jīng)網(wǎng)絡(luò)來選擇某一狀態(tài)的較優(yōu)動作,根據(jù)得到的較優(yōu)動作組成物體起始位置到目標(biāo)的較優(yōu)動作集,最后得到較優(yōu)路徑。所以神經(jīng)網(wǎng)絡(luò)的類型和神經(jīng)網(wǎng)絡(luò)的參數(shù)更新對動作的選擇起到了重要的作用[5]。因此本文使用了多層感知機(jī),通過改進(jìn)的獎勵函數(shù)使得神經(jīng)網(wǎng)絡(luò)參數(shù)更加精確,提高神經(jīng)網(wǎng)絡(luò)的動作選擇效率,最終達(dá)到提高路徑規(guī)劃效率的目的。
過去的許多研究中都是基于已知環(huán)境進(jìn)行路徑規(guī)劃,如文獻(xiàn)[6]在已知倉儲信息中,提出了基于遺傳算法的倉儲貨位與AGV路徑規(guī)劃協(xié)同優(yōu)化算法,來解決易陷入局部最優(yōu)的問題。文獻(xiàn)[7]使用A*(A-Star)算法進(jìn)行路徑規(guī)劃要事先存儲整個地圖,然后依據(jù)擴(kuò)展節(jié)點(diǎn)選擇當(dāng)前代價最低的方塊進(jìn)行下一步搜索,直到搜索到終點(diǎn),從而規(guī)劃出成本最低的路徑。文獻(xiàn)[8]提出了機(jī)器人避障路徑規(guī)劃的自適應(yīng)人工勢場方法,通過自適應(yīng)地改變障礙物勢場函數(shù)的權(quán)重,使得機(jī)器人逃離局部極小值。在一些領(lǐng)域中,隨著路徑規(guī)劃環(huán)境信息越來越復(fù)雜,存儲環(huán)境信息對內(nèi)存的要求過高[9],因此在未知環(huán)境中獲取較優(yōu)路徑成為研究熱點(diǎn)。
由于強(qiáng)化學(xué)習(xí)不需要先驗(yàn)信息,通過物體和環(huán)境不斷地交互和試錯獲取信息,由獎賞機(jī)制進(jìn)行策略優(yōu)化,是動作到行為映射的學(xué)習(xí)方式[10],所以強(qiáng)化學(xué)習(xí)在路徑規(guī)劃中使用越來越廣泛。文獻(xiàn)[11]將強(qiáng)化學(xué)習(xí)中Q-learning算法應(yīng)用到路徑規(guī)劃中,因?yàn)闊o須知道模型就可以保證收斂,在狀態(tài)空間較小的情況下能夠很好地規(guī)劃路徑。文獻(xiàn)[12]基于Q-learning算法,提出了一種自適應(yīng)增強(qiáng)—探索Q學(xué)習(xí)算法,將探索因子ε的衰減過程分為兩個階段,提高探索效率。文獻(xiàn)[13]使用Q學(xué)習(xí)算法進(jìn)行路徑,將Q學(xué)習(xí)算法中執(zhí)行每個動作回報(bào)值進(jìn)行改變,把接收信號的強(qiáng)度作為回報(bào)值,大大減少了迭代次數(shù),提高路徑規(guī)劃效率。基于強(qiáng)化學(xué)習(xí)的路徑規(guī)劃算法適用于低維狀態(tài)空間[14],因?yàn)樗惴ㄋ钄?shù)據(jù)是通過物體與環(huán)境交互獲得的,所以當(dāng)路徑規(guī)劃的環(huán)境過于復(fù)雜、數(shù)據(jù)維數(shù)過高時,路徑規(guī)劃效率將會下降。
在越來越復(fù)雜的實(shí)際場景中,需要利用深度學(xué)習(xí)從大規(guī)模數(shù)據(jù)中提取高級特征。通過深度學(xué)習(xí)和強(qiáng)化學(xué)習(xí)相結(jié)合,在未知環(huán)境中自主學(xué)習(xí),并預(yù)測出可行路徑,以實(shí)現(xiàn)自主規(guī)劃出較優(yōu)路徑,因此深度強(qiáng)化學(xué)習(xí)被引用到路徑規(guī)劃中。文獻(xiàn)[15]將深度Q學(xué)習(xí)與深度預(yù)測網(wǎng)絡(luò)技術(shù)相結(jié)合,提出了一種在全局范圍內(nèi)快速實(shí)現(xiàn)路徑規(guī)劃的算法,利用時空、天氣等道路特征預(yù)測未來交通狀況,求得全局較優(yōu)路徑。文獻(xiàn)[16]提出了一種模糊貝葉斯-深度Q網(wǎng)絡(luò)算法,對ε-貪婪算法進(jìn)行修改,將模糊綜合評判法和貝葉斯決策算法相結(jié)合替代ε-貪婪算法,使探索與利用兩種動作選擇方式更加高效,生成最優(yōu)的動作序列決策。文獻(xiàn)[17]將深度Q學(xué)習(xí)算法引入到海戰(zhàn)場中進(jìn)行路徑規(guī)劃,并且將海戰(zhàn)場環(huán)境網(wǎng)格化,使用卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行路徑規(guī)劃。
研究人員將路徑規(guī)劃的環(huán)境信息進(jìn)行處理,使得環(huán)境網(wǎng)格化,環(huán)境信息就會相對簡單。如果在深度Q網(wǎng)絡(luò)算法使用卷積神經(jīng)網(wǎng)絡(luò)可能會產(chǎn)生過擬合,無法得到較優(yōu)動作,降低了路徑規(guī)劃效率。在這種背景之下,本文將多層感知機(jī)應(yīng)用到深度Q網(wǎng)絡(luò)算法中,并將改進(jìn)獎勵的函數(shù)運(yùn)用到神經(jīng)網(wǎng)絡(luò)每次更新中,提出一種改進(jìn)后的深度Q網(wǎng)絡(luò)路徑規(guī)劃算法。
2.1.1Q值表更新
Q學(xué)習(xí)算法是一種無模型的強(qiáng)化學(xué)習(xí)的算法,使用Q值表來存儲物體的不同狀態(tài)s和動作集合A之間的關(guān)系。通過物體執(zhí)行動作a∈A與環(huán)境不斷地交互,以此達(dá)到不同狀態(tài)之間相互轉(zhuǎn)換的目的,從而不斷地更新Q值表,再通過Q值表更新動作選擇策略,最終獲取最優(yōu)動作集。因?yàn)镼學(xué)習(xí)式求得全局最優(yōu)策略,所以Q值表中某時刻信息的更新是通過下一步的狀態(tài)值函數(shù)進(jìn)行的。比如在t時刻物體選擇動作,觀察獎勵rt進(jìn)入新狀態(tài)st+1,并對Q值表進(jìn)行更新。迭代過程如式(1)所示。
Qnew(st,at)←(1-α)·Q(st,at)+α(rt+
式中:Q(st,at)表示在t時刻時,處于s狀態(tài)執(zhí)行動作a的Q值;γ為影響因子;α為學(xué)習(xí)率。
2.1.2獎勵函數(shù)
路徑規(guī)劃中的最終目的就是找到長期累積獎勵值最大的路徑,因此獎勵函數(shù)有著重要的作用。在Q學(xué)習(xí)算法中,根據(jù)給定的獎勵函數(shù)判斷在某種狀態(tài)下執(zhí)行的動作的好壞程度。其中,獎勵函數(shù)的反饋分為正反饋和負(fù)反饋,通過獲得的反饋計(jì)算下一狀態(tài)的預(yù)期獎勵來決定下一步的行動。式(2)為狀態(tài)-行動-下一狀態(tài)的預(yù)期獎勵。
式中:r(s,a,s′)為預(yù)期獎勵,s為當(dāng)前狀態(tài),a為執(zhí)行的動作,s′為下一狀態(tài);rt+1為下一狀態(tài)得到的獎勵值;R′為獎勵空間;p(s′,r|s,a)表示在狀態(tài)s,執(zhí)行動作a時,下一狀態(tài)為s′并且得到獎勵值為r的概率;p(s′|s,a)表示在狀態(tài)s,執(zhí)行動作a時,下一狀態(tài)為s′的概率。
2.2.1神經(jīng)網(wǎng)絡(luò)
深度Q網(wǎng)絡(luò)[18](DQN)以Q學(xué)習(xí)算法為核心,將深度學(xué)習(xí)和Q學(xué)習(xí)算法融入到一起。Q學(xué)習(xí)算法中的狀態(tài)-動作值函數(shù)使用神經(jīng)網(wǎng)絡(luò)表示,將狀態(tài)作為神經(jīng)網(wǎng)絡(luò)的輸入,得到當(dāng)前狀態(tài)的每個動作的價值,根據(jù)每個動作的價值選擇要執(zhí)行的動作。通過參數(shù)為θ的f網(wǎng)絡(luò)近似代替狀態(tài)-動作值函數(shù)如式(3)所示。
f(s,a,θ)≈Q(s,a)
(3)
式中:f可以是任意類型的函數(shù);s為狀態(tài);θ為網(wǎng)絡(luò)參數(shù);a為動作;通過函數(shù)來近似代替Q值表,減少了內(nèi)存的使用。
在深度Q網(wǎng)絡(luò)中存在兩個結(jié)構(gòu)相同但參數(shù)不同的神經(jīng)網(wǎng)絡(luò),分別為預(yù)測網(wǎng)絡(luò)Qe和目標(biāo)網(wǎng)絡(luò)Qt。預(yù)測網(wǎng)絡(luò)會通過時序差分法的誤差不斷更新,計(jì)算出Qe估計(jì)值,目標(biāo)網(wǎng)絡(luò)則是計(jì)算Qt現(xiàn)實(shí)值。目標(biāo)網(wǎng)絡(luò)每隔一段時間獲取預(yù)測網(wǎng)絡(luò)參數(shù)進(jìn)行更新,降低了當(dāng)前Qe值和目標(biāo)Qt值之間的相關(guān)性,避免神經(jīng)網(wǎng)絡(luò)的訓(xùn)練參數(shù)陷入到局部最優(yōu)解中。
2.2.2記憶回放機(jī)制
在最初的深度強(qiáng)化學(xué)習(xí)中,神經(jīng)網(wǎng)絡(luò)根據(jù)輸入的狀態(tài)得到每個動作的Q值,選擇這些Q值中最大的一個。但是這些訓(xùn)練樣本都是通過前一個狀態(tài)得到的,因此各個狀態(tài)之間有著明顯的關(guān)聯(lián)性。后來Google的DeepMind團(tuán)隊(duì)在學(xué)習(xí)過程中加入了記憶回放(Memory Replay)機(jī)制[19],通過從經(jīng)驗(yàn)池中隨機(jī)獲得訓(xùn)練樣本,降低樣本之間的相關(guān)性,打破了陷入局部最優(yōu)解的可能,使得學(xué)習(xí)到的策略趨向平穩(wěn)。也正是因?yàn)橛洃浕胤艡C(jī)制才使得深度學(xué)習(xí)順利地應(yīng)用于強(qiáng)化學(xué)習(xí)。
隨著研究人員將路徑規(guī)劃的環(huán)境信息進(jìn)行處理,使得環(huán)境網(wǎng)格化,如果在深度Q網(wǎng)絡(luò)算法使用卷積神經(jīng)網(wǎng)絡(luò)可能會產(chǎn)生過擬合,在這種背景之下,本文將多層感知機(jī)使用到深度Q網(wǎng)絡(luò)算法中,將改進(jìn)獎勵函數(shù)運(yùn)用到神經(jīng)網(wǎng)絡(luò)每次更新中,提出一種改進(jìn)后的深度Q網(wǎng)絡(luò)路徑規(guī)劃算法。
3.1.1多層感知機(jī)
在多層感知機(jī)(Multilayer Perceptron,MLP)中除了輸入層和輸出層,中間可以有多個隱層。如圖1所示,MLP含有n個輸入神經(jīng)元代表輸入n維的數(shù)據(jù),m個輸出神經(jīng)元代表輸出的類別為m種,中間含有一個隱藏層,隱藏層的神經(jīng)元越多代表模型的擬合能力越強(qiáng)。

圖1 多層感知機(jī)結(jié)構(gòu)
圖1中,x為輸入數(shù)據(jù),y為輸出在模型訓(xùn)練的過程中以最小化分類誤差為目標(biāo)函數(shù)。使用反向梯度傳播算法對模型進(jìn)行訓(xùn)練,訓(xùn)練完成后得到使樣本分類誤差最小的一組參數(shù)w進(jìn)行前向傳播得到結(jié)果y。單層感知機(jī)如式(4)所示。
式中:i為上一層神經(jīng)元的下標(biāo);j為當(dāng)前層神經(jīng)元的下標(biāo);wij為神經(jīng)元j的權(quán)重。
根據(jù)多層感知機(jī)可得出DQN算法的兩個網(wǎng)絡(luò)的網(wǎng)絡(luò)結(jié)構(gòu)圖并且兩個網(wǎng)絡(luò)相同,如圖2所示,其中:k表示動作的個數(shù);n和m表示不同網(wǎng)絡(luò)層的神經(jīng)元個數(shù)。

圖2 網(wǎng)絡(luò)結(jié)構(gòu)
預(yù)測網(wǎng)絡(luò)輸入是從經(jīng)驗(yàn)池中獲得的數(shù)據(jù)(s,a),狀態(tài)s為物體位置(x,y)。由三層全連接層計(jì)算當(dāng)物體處于狀態(tài)s時執(zhí)行a動作所獲得的獎勵。目標(biāo)網(wǎng)絡(luò)的輸入是從經(jīng)驗(yàn)池中獲取的數(shù)據(jù)(s′,r),r表示為狀態(tài)為s執(zhí)行動作為a時獲得的獎勵,將處于s′狀態(tài)下獲得的獎勵與r相加得到兩個動作的獎勵。
3.1.2獎勵函數(shù)
在現(xiàn)有的獎勵函數(shù)中,當(dāng)物體處于探索路徑狀態(tài)時,不同動作可能返回相同的固定獎勵值,然而不同動作的相同獎勵值與較優(yōu)的動作選擇關(guān)聯(lián)性較小,導(dǎo)致更新后的神經(jīng)網(wǎng)絡(luò)與較優(yōu)動作-狀態(tài)值函數(shù)擬合較低。因此本文將三次函數(shù)引用到獎勵函數(shù)中,根據(jù)不同動作返回不同獎勵值,將不同的獎勵值應(yīng)用到神經(jīng)網(wǎng)絡(luò)的更新中,使得更新后的神經(jīng)網(wǎng)絡(luò)與較優(yōu)的動作-狀態(tài)值函數(shù)更加擬合。因此本文設(shè)置了以目標(biāo)位置為中心的范數(shù)約束如式(5)所示。

式中:p為物體位置;t為目標(biāo)位置;d為約束距離。
通過范數(shù)約束設(shè)置獎勵函數(shù),返回物體處于某個狀態(tài)的獎勵值,如式(6)所示。當(dāng)物體處于探索路徑狀態(tài)時,通過式(5)獲得參數(shù)l、h。
R=l×(x-h)3
(6)
式中:參數(shù)l確定函數(shù)的單調(diào)性,并決定圖像的趨向于對稱中心的速度;參數(shù)h是X軸的截距;當(dāng)物體處于探索路徑狀態(tài)而不是終止或?qū)ふ业侥繕?biāo)狀態(tài)時,x為當(dāng)前時刻物體到目標(biāo)之間的歐氏距離;R為物體執(zhí)行動作后的獎勵值。
根據(jù)物體狀態(tài)是否滿足式(5),使用式(6)計(jì)算執(zhí)行某動作返回的獎勵值為正獎勵或負(fù)獎勵。不同狀態(tài)的獎勵值如表1所示,其中,Value1和Value2分別為設(shè)置的到達(dá)目標(biāo)狀態(tài)和撞到障礙物狀態(tài)時返回的獎勵值。

表1 獎勵表
將R設(shè)為獎勵函數(shù),在狀態(tài)s下根據(jù)表1所獲得的獎勵期望如下:
Rs=E[Rt+1|s=st]
(7)
式中:E為期望;Rs是處在t時刻的狀態(tài)s的下一個時刻所獲得的獎勵期望。因此當(dāng)前狀態(tài)的動作價值如式(8)所示。
式中:Rt+i為在t+i時刻獲得的獎勵值。
3.1.3動作選擇機(jī)制
動作選擇通常會有兩種方式,分別為Exploration(探索)和Exploitation(利用)。為了平衡兩種動作選擇方式使用了ε-貪心算法,該算法采用了ε概率選擇較優(yōu)動作,在1-ε概率內(nèi)選擇隨機(jī)探索。而本文使動作選擇概率ε隨著訓(xùn)練步數(shù)線性增加,通過線性增加ε-動作選擇概率來解決訓(xùn)練后期存在的過度探索錯過較優(yōu)路徑的問題。
在模型訓(xùn)練的每一次迭代中DQN網(wǎng)絡(luò)參數(shù)更新是從經(jīng)驗(yàn)池中隨機(jī)取出一批數(shù)據(jù)。將這些數(shù)據(jù)傳入到兩個網(wǎng)絡(luò)中,在兩個網(wǎng)絡(luò)所得到的值的基礎(chǔ)上通過對損失函數(shù)梯度下降實(shí)現(xiàn)的,損失函數(shù)如式(9)所示。
L(θ)=E[(Qt-Qe(s,a,θ))2]
(9)
然后對得到的損失函數(shù)求梯度,如式(10)所示。

執(zhí)行N步后,將預(yù)測網(wǎng)絡(luò)的參數(shù)覆蓋目標(biāo)網(wǎng)絡(luò)的參數(shù)。其中經(jīng)驗(yàn)池中的數(shù)據(jù)是通過物體不斷與環(huán)境交互獲得的信息(s,a,R,s′)。
通過對損失函數(shù)進(jìn)行梯度下降實(shí)現(xiàn)預(yù)測網(wǎng)絡(luò)的更新如式(11)所示。
式中:η為梯度下降的學(xué)習(xí)率;θi為上一次的網(wǎng)絡(luò)參數(shù)。
圖3為DQN更新流程,將當(dāng)前的環(huán)境狀態(tài)輸入給預(yù)測網(wǎng)絡(luò),然后由預(yù)測網(wǎng)絡(luò)通過動作選擇機(jī)制與環(huán)境進(jìn)行交互,會得到該動作獎勵和下一步狀態(tài)。將此四元組存入到回放記憶單元,當(dāng)記憶回放單元的記錄滿足隨機(jī)存取記憶回放單元記錄個數(shù)時,從中隨機(jī)取得一小批量樣本并進(jìn)行訓(xùn)練。每個N時間步后預(yù)測網(wǎng)絡(luò)會將函數(shù)拷貝給目標(biāo)網(wǎng)絡(luò),最后根據(jù)損失函數(shù)進(jìn)行預(yù)測網(wǎng)絡(luò)的參數(shù)更新。

圖3 DQN更新流程
通過圖3可得改進(jìn)的DQN算法的路徑規(guī)劃的偽代碼,如算法1所示。
算法1基于DQN的路徑規(guī)劃算入:物體的狀態(tài)s。
輸出:目標(biāo)網(wǎng)絡(luò)參數(shù)。
初始化經(jīng)驗(yàn)池D
初始化目標(biāo)網(wǎng)絡(luò)Qt和預(yù)測網(wǎng)絡(luò)Qe參數(shù),網(wǎng)絡(luò)參數(shù)均服從與期望為0、標(biāo)準(zhǔn)差為0.2的高斯分布,未撞到障礙物的獎勵為0 for episode=1 tokdo
初始化物體位置
While True:
利用ε貪婪策略選擇狀態(tài)動作:
執(zhí)行動作at后得到下一個狀態(tài)st+1
If rect=target:
未撞到障礙物的獎勵為式(6)
通過表1得到的即時回報(bào)Rt
將(st,at,Rt,st+1)放入經(jīng)驗(yàn)池D
if rect=block or rect=target
break;
隨機(jī)從經(jīng)驗(yàn)池D中采集一組數(shù)據(jù)(sj,aj,Rj,sj+1)
設(shè)定
利用式(9)對Qe(s,a;θ)和yi求損失函數(shù)L根據(jù)公式(11)對L進(jìn)行梯度下降,實(shí)現(xiàn)網(wǎng)絡(luò)的更新
ε←ε+0.000 01
式中:rect表示物體當(dāng)前的位置;block代表障礙物的位置;target表示物體目標(biāo)的位置。
通過將文獻(xiàn)[17]的實(shí)際環(huán)境網(wǎng)格化進(jìn)行實(shí)驗(yàn),如圖4所示,將不同的網(wǎng)格連接,以此來模擬不同大小的長方形障礙物,總共有八個障礙。正方形為起點(diǎn),即物體所在位置;圓形為追逐目標(biāo),即目標(biāo)位置。最后結(jié)果獲得的路徑為從起點(diǎn)躲避所有障礙物到達(dá)終點(diǎn)的最短路徑。

圖4 仿真環(huán)境
在實(shí)驗(yàn)中,仿真環(huán)境中每個網(wǎng)格邊長為1,網(wǎng)格的對角線長度為21/2。通過前期獲得訓(xùn)練獲得目標(biāo)位置計(jì)算范數(shù)約束距離d,將(0,d)作為式(6)的零點(diǎn),則d=l×(0-h)3。設(shè)置物體在目標(biāo)四周距離為0時,狀態(tài)的獎勵值為15,代入式(6)中,得到0=l×(15-h)。由此可得l=-0.2,h=4.24,則獎勵值表示如式(12)所示。
r=-0.2×(x-4.24)3
(12)
因?yàn)槁窂揭?guī)劃的最重要目的就是找到最大的獎勵值,從而找到目標(biāo)。為了和其他狀況有較大的區(qū)分,到達(dá)目標(biāo)的獎勵為50。而撞到障礙物要比其他狀況獲得的獎勵值要小,獎勵值為-5。當(dāng)物體處于探索路徑狀態(tài)時,在沒有發(fā)現(xiàn)目標(biāo)階段則獎勵值為0,當(dāng)發(fā)現(xiàn)目標(biāo)之后獎勵值通過式(12)獲得,因此不同狀態(tài)的獎勵值如表2所示。

表2 確定參數(shù)的獎勵表
在多層感知機(jī)中,如果網(wǎng)絡(luò)參數(shù)數(shù)量過大會出現(xiàn)動作價值的過擬合,如果較小會出現(xiàn)動作價值的欠擬合。為了更好地訓(xùn)練網(wǎng)絡(luò),將網(wǎng)絡(luò)參數(shù)的個數(shù)設(shè)為15。
在上述實(shí)際場景,基于仿真環(huán)境進(jìn)行實(shí)驗(yàn),每200次進(jìn)行目標(biāo)網(wǎng)絡(luò)的參數(shù)更新。開始訓(xùn)練時,因?yàn)榻?jīng)驗(yàn)池沒有記錄,所以開始的前400次訓(xùn)練在不斷地探索,積累一些記錄并將這些記錄進(jìn)行存儲。因?yàn)殡S機(jī)取出記錄的個數(shù)為100,將訓(xùn)練設(shè)置400后可以將樣本的相關(guān)性降得更低,當(dāng)400次訓(xùn)練結(jié)束后,開始通過隨機(jī)取出經(jīng)驗(yàn)池中的記錄進(jìn)行網(wǎng)絡(luò)的訓(xùn)練,使用梯度下降算法更新網(wǎng)絡(luò)的參數(shù)。剛開始時因?yàn)榻?jīng)驗(yàn)池里面沒有記錄,無法取出進(jìn)行訓(xùn)練,所以開始的路徑會出現(xiàn)各種碰撞障礙物的情況,無法找出最優(yōu)路徑。如圖5所示。

圖5 初始路徑尋找
而隨著訓(xùn)練次數(shù)的提升,經(jīng)驗(yàn)池里面的記錄增加,網(wǎng)絡(luò)參數(shù)的更新,并且ε-貪心算法中的ε=0.9也會以0.000 01的速度隨著路徑探索而慢慢增加,ε的上限為0.999 9,以此將動作選擇慢慢趨向于利用方式,但不會完全使用利用方式。因此使得路徑的選擇就會越來越好,最后獲得最優(yōu)路徑,如圖6所示。

圖6 最優(yōu)路徑
本文與DQN算法和Action-critic算法進(jìn)行比較,當(dāng)物體訓(xùn)練1 000輪時三種算法的不同獎勵值如圖7-圖9所示。圖7為本文算法的獎勵值,開始訓(xùn)練的前400步,因?yàn)槭请S機(jī)探索的,沒有根據(jù)在經(jīng)驗(yàn)池里的記錄更新網(wǎng)絡(luò)參數(shù),所以獎勵值會比較亂。而隨著前300次的訓(xùn)練結(jié)束,經(jīng)驗(yàn)池有充足的經(jīng)驗(yàn),則可以來進(jìn)行參數(shù)更新。隨著訓(xùn)練次數(shù)的增加,ε越來越大,動作選擇越來越趨向于某個狀態(tài)的最大獎勵的動作,獎勵值也就變得平穩(wěn)。圖8和圖9分別表示普通DQN算法和Action-critic算法的獎勵值。

圖7 本文算法1 000步獎勵值

圖8 DQN算法1 000步獎勵值

圖9 Action-critic算法1 000步獎勵值
本文選取探索規(guī)劃輪數(shù)為評價指標(biāo),將DQN算法和Action-critic算法作為對照算法,比較了三個算法的總規(guī)劃步數(shù),如圖10所示。

圖10 總規(guī)劃輪數(shù)
觀察圖10可以發(fā)現(xiàn)在達(dá)到相同的效果目的下,本文的總探索規(guī)劃步數(shù)比其他兩種算法明顯減少,表明本文算法有更好的路徑規(guī)劃和規(guī)避障礙的能力。
本文提出一種基于深度Q網(wǎng)絡(luò)的路徑規(guī)劃算法,該算法可以幫助物體進(jìn)行路徑規(guī)劃、障礙規(guī)避和目標(biāo)跟蹤。與基于DQN和基于Action-critic的路徑規(guī)劃算法相比,實(shí)驗(yàn)結(jié)果表明本文算法與其他方法在相同環(huán)境下,總探索步數(shù)更少,尋找最佳路徑速度更快。因此,本文方法在路徑規(guī)劃方面具有更快的規(guī)避障礙的能力和跟蹤速度。