曹景祥 劉其成
(煙臺(tái)大學(xué)計(jì)算機(jī)與控制工程學(xué)院 山東 煙臺(tái) 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ù)時(shí),深度強(qiáng)化學(xué)習(xí)算法表現(xiàn)突出,有助于提高路徑規(guī)劃的效率[4]。
基于深度強(qiáng)化學(xué)習(xí)的路徑規(guī)劃算法通過神經(jīng)網(wǎng)絡(luò)來選擇某一狀態(tài)的較優(yōu)動(dòng)作,根據(jù)得到的較優(yōu)動(dòng)作組成物體起始位置到目標(biāo)的較優(yōu)動(dòng)作集,最后得到較優(yōu)路徑。所以神經(jīng)網(wǎng)絡(luò)的類型和神經(jīng)網(wǎng)絡(luò)的參數(shù)更新對動(dòng)作的選擇起到了重要的作用[5]。因此本文使用了多層感知機(jī),通過改進(jìn)的獎(jiǎng)勵(lì)函數(shù)使得神經(jīng)網(wǎng)絡(luò)參數(shù)更加精確,提高神經(jīng)網(wǎng)絡(luò)的動(dòng)作選擇效率,最終達(dá)到提高路徑規(guī)劃效率的目的。
過去的許多研究中都是基于已知環(huán)境進(jìn)行路徑規(guī)劃,如文獻(xiàn)[6]在已知倉儲(chǔ)信息中,提出了基于遺傳算法的倉儲(chǔ)貨位與AGV路徑規(guī)劃協(xié)同優(yōu)化算法,來解決易陷入局部最優(yōu)的問題。文獻(xiàn)[7]使用A*(A-Star)算法進(jìn)行路徑規(guī)劃要事先存儲(chǔ)整個(gè)地圖,然后依據(jù)擴(kuò)展節(jié)點(diǎn)選擇當(dāng)前代價(jià)最低的方塊進(jìn)行下一步搜索,直到搜索到終點(diǎn),從而規(guī)劃出成本最低的路徑。文獻(xiàn)[8]提出了機(jī)器人避障路徑規(guī)劃的自適應(yīng)人工勢場方法,通過自適應(yīng)地改變障礙物勢場函數(shù)的權(quán)重,使得機(jī)器人逃離局部極小值。在一些領(lǐng)域中,隨著路徑規(guī)劃環(huán)境信息越來越復(fù)雜,存儲(chǔ)環(huán)境信息對內(nèi)存的要求過高[9],因此在未知環(huán)境中獲取較優(yōu)路徑成為研究熱點(diǎn)。
由于強(qiáng)化學(xué)習(xí)不需要先驗(yàn)信息,通過物體和環(huán)境不斷地交互和試錯(cuò)獲取信息,由獎(jiǎng)賞機(jī)制進(jìn)行策略優(yōu)化,是動(dòng)作到行為映射的學(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í)算法,將探索因子ε的衰減過程分為兩個(gè)階段,提高探索效率。文獻(xiàn)[13]使用Q學(xué)習(xí)算法進(jìn)行路徑,將Q學(xué)習(xí)算法中執(zhí)行每個(gè)動(dòng)作回報(bào)值進(jìn)行改變,把接收信號(hào)的強(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ù)過高時(shí),路徑規(guī)劃效率將會(huì)下降。
在越來越復(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ī)劃的算法,利用時(shí)空、天氣等道路特征預(yù)測未來交通狀況,求得全局較優(yōu)路徑。文獻(xiàn)[16]提出了一種模糊貝葉斯-深度Q網(wǎng)絡(luò)算法,對ε-貪婪算法進(jìn)行修改,將模糊綜合評判法和貝葉斯決策算法相結(jié)合替代ε-貪婪算法,使探索與利用兩種動(dòng)作選擇方式更加高效,生成最優(yōu)的動(dòng)作序列決策。文獻(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)境信息就會(huì)相對簡單。如果在深度Q網(wǎng)絡(luò)算法使用卷積神經(jīng)網(wǎng)絡(luò)可能會(huì)產(chǎn)生過擬合,無法得到較優(yōu)動(dòng)作,降低了路徑規(guī)劃效率。在這種背景之下,本文將多層感知機(jī)應(yīng)用到深度Q網(wǎng)絡(luò)算法中,并將改進(jìn)獎(jiǎng)勵(lì)的函數(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值表來存儲(chǔ)物體的不同狀態(tài)s和動(dòng)作集合A之間的關(guān)系。通過物體執(zhí)行動(dòng)作a∈A與環(huán)境不斷地交互,以此達(dá)到不同狀態(tài)之間相互轉(zhuǎn)換的目的,從而不斷地更新Q值表,再通過Q值表更新動(dòng)作選擇策略,最終獲取最優(yōu)動(dòng)作集。因?yàn)镼學(xué)習(xí)式求得全局最優(yōu)策略,所以Q值表中某時(shí)刻信息的更新是通過下一步的狀態(tài)值函數(shù)進(jìn)行的。比如在t時(shí)刻物體選擇動(dòng)作,觀察獎(jiǎng)勵(lì)rt進(jìn)入新狀態(tài)st+1,并對Q值表進(jìn)行更新。迭代過程如式(1)所示。
Qnew(st,at)←(1-α)·Q(st,at)+α(rt+
式中:Q(st,at)表示在t時(shí)刻時(shí),處于s狀態(tài)執(zhí)行動(dòng)作a的Q值;γ為影響因子;α為學(xué)習(xí)率。
2.1.2獎(jiǎng)勵(lì)函數(shù)
路徑規(guī)劃中的最終目的就是找到長期累積獎(jiǎng)勵(lì)值最大的路徑,因此獎(jiǎng)勵(lì)函數(shù)有著重要的作用。在Q學(xué)習(xí)算法中,根據(jù)給定的獎(jiǎng)勵(lì)函數(shù)判斷在某種狀態(tài)下執(zhí)行的動(dòng)作的好壞程度。其中,獎(jiǎng)勵(lì)函數(shù)的反饋分為正反饋和負(fù)反饋,通過獲得的反饋計(jì)算下一狀態(tài)的預(yù)期獎(jiǎng)勵(lì)來決定下一步的行動(dòng)。式(2)為狀態(tài)-行動(dòng)-下一狀態(tài)的預(yù)期獎(jiǎng)勵(lì)。
式中:r(s,a,s′)為預(yù)期獎(jiǎng)勵(lì),s為當(dāng)前狀態(tài),a為執(zhí)行的動(dòng)作,s′為下一狀態(tài);rt+1為下一狀態(tài)得到的獎(jiǎng)勵(lì)值;R′為獎(jiǎng)勵(lì)空間;p(s′,r|s,a)表示在狀態(tài)s,執(zhí)行動(dòng)作a時(shí),下一狀態(tài)為s′并且得到獎(jiǎng)勵(lì)值為r的概率;p(s′|s,a)表示在狀態(tài)s,執(zhí)行動(dòng)作a時(shí),下一狀態(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)-動(dòng)作值函數(shù)使用神經(jīng)網(wǎng)絡(luò)表示,將狀態(tài)作為神經(jīng)網(wǎng)絡(luò)的輸入,得到當(dāng)前狀態(tài)的每個(gè)動(dòng)作的價(jià)值,根據(jù)每個(gè)動(dòng)作的價(jià)值選擇要執(zhí)行的動(dòng)作。通過參數(shù)為θ的f網(wǎng)絡(luò)近似代替狀態(tài)-動(dòng)作值函數(shù)如式(3)所示。
f(s,a,θ)≈Q(s,a)
(3)
式中:f可以是任意類型的函數(shù);s為狀態(tài);θ為網(wǎng)絡(luò)參數(shù);a為動(dòng)作;通過函數(shù)來近似代替Q值表,減少了內(nèi)存的使用。
在深度Q網(wǎng)絡(luò)中存在兩個(gè)結(jié)構(gòu)相同但參數(shù)不同的神經(jīng)網(wǎng)絡(luò),分別為預(yù)測網(wǎng)絡(luò)Qe和目標(biāo)網(wǎng)絡(luò)Qt。預(yù)測網(wǎng)絡(luò)會(huì)通過時(shí)序差分法的誤差不斷更新,計(jì)算出Qe估計(jì)值,目標(biāo)網(wǎng)絡(luò)則是計(jì)算Qt現(xiàn)實(shí)值。目標(biāo)網(wǎng)絡(luò)每隔一段時(shí)間獲取預(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)得到每個(gè)動(dòng)作的Q值,選擇這些Q值中最大的一個(gè)。但是這些訓(xùn)練樣本都是通過前一個(gè)狀態(tài)得到的,因此各個(gè)狀態(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ò)可能會(huì)產(chǎn)生過擬合,在這種背景之下,本文將多層感知機(jī)使用到深度Q網(wǎng)絡(luò)算法中,將改進(jìn)獎(jiǎng)勵(lì)函數(shù)運(yùn)用到神經(jīng)網(wǎng)絡(luò)每次更新中,提出一種改進(jìn)后的深度Q網(wǎng)絡(luò)路徑規(guī)劃算法。
3.1.1多層感知機(jī)
在多層感知機(jī)(Multilayer Perceptron,MLP)中除了輸入層和輸出層,中間可以有多個(gè)隱層。如圖1所示,MLP含有n個(gè)輸入神經(jīng)元代表輸入n維的數(shù)據(jù),m個(gè)輸出神經(jīng)元代表輸出的類別為m種,中間含有一個(gè)隱藏層,隱藏層的神經(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算法的兩個(gè)網(wǎng)絡(luò)的網(wǎng)絡(luò)結(jié)構(gòu)圖并且兩個(gè)網(wǎng)絡(luò)相同,如圖2所示,其中:k表示動(dòng)作的個(gè)數(shù);n和m表示不同網(wǎng)絡(luò)層的神經(jīng)元個(gè)數(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時(shí)執(zhí)行a動(dòng)作所獲得的獎(jiǎng)勵(lì)。目標(biāo)網(wǎng)絡(luò)的輸入是從經(jīng)驗(yàn)池中獲取的數(shù)據(jù)(s′,r),r表示為狀態(tài)為s執(zhí)行動(dòng)作為a時(shí)獲得的獎(jiǎng)勵(lì),將處于s′狀態(tài)下獲得的獎(jiǎng)勵(lì)與r相加得到兩個(gè)動(dòng)作的獎(jiǎng)勵(lì)。
3.1.2獎(jiǎng)勵(lì)函數(shù)
在現(xiàn)有的獎(jiǎng)勵(lì)函數(shù)中,當(dāng)物體處于探索路徑狀態(tài)時(shí),不同動(dòng)作可能返回相同的固定獎(jiǎng)勵(lì)值,然而不同動(dòng)作的相同獎(jiǎng)勵(lì)值與較優(yōu)的動(dòng)作選擇關(guān)聯(lián)性較小,導(dǎo)致更新后的神經(jīng)網(wǎng)絡(luò)與較優(yōu)動(dòng)作-狀態(tài)值函數(shù)擬合較低。因此本文將三次函數(shù)引用到獎(jiǎng)勵(lì)函數(shù)中,根據(jù)不同動(dòng)作返回不同獎(jiǎng)勵(lì)值,將不同的獎(jiǎng)勵(lì)值應(yīng)用到神經(jīng)網(wǎng)絡(luò)的更新中,使得更新后的神經(jīng)網(wǎng)絡(luò)與較優(yōu)的動(dòng)作-狀態(tài)值函數(shù)更加擬合。因此本文設(shè)置了以目標(biāo)位置為中心的范數(shù)約束如式(5)所示。
式中:p為物體位置;t為目標(biāo)位置;d為約束距離。
通過范數(shù)約束設(shè)置獎(jiǎng)勵(lì)函數(shù),返回物體處于某個(gè)狀態(tài)的獎(jiǎng)勵(lì)值,如式(6)所示。當(dāng)物體處于探索路徑狀態(tài)時(shí),通過式(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)時(shí),x為當(dāng)前時(shí)刻物體到目標(biāo)之間的歐氏距離;R為物體執(zhí)行動(dòng)作后的獎(jiǎng)勵(lì)值。
根據(jù)物體狀態(tài)是否滿足式(5),使用式(6)計(jì)算執(zhí)行某動(dòng)作返回的獎(jiǎng)勵(lì)值為正獎(jiǎng)勵(lì)或負(fù)獎(jiǎng)勵(lì)。不同狀態(tài)的獎(jiǎng)勵(lì)值如表1所示,其中,Value1和Value2分別為設(shè)置的到達(dá)目標(biāo)狀態(tài)和撞到障礙物狀態(tài)時(shí)返回的獎(jiǎng)勵(lì)值。
表1 獎(jiǎng)勵(lì)表
將R設(shè)為獎(jiǎng)勵(lì)函數(shù),在狀態(tài)s下根據(jù)表1所獲得的獎(jiǎng)勵(lì)期望如下:
Rs=E[Rt+1|s=st]
(7)
式中:E為期望;Rs是處在t時(shí)刻的狀態(tài)s的下一個(gè)時(shí)刻所獲得的獎(jiǎng)勵(lì)期望。因此當(dāng)前狀態(tài)的動(dòng)作價(jià)值如式(8)所示。
式中:Rt+i為在t+i時(shí)刻獲得的獎(jiǎng)勵(lì)值。
3.1.3動(dòng)作選擇機(jī)制
動(dòng)作選擇通常會(huì)有兩種方式,分別為Exploration(探索)和Exploitation(利用)。為了平衡兩種動(dòng)作選擇方式使用了ε-貪心算法,該算法采用了ε概率選擇較優(yōu)動(dòng)作,在1-ε概率內(nèi)選擇隨機(jī)探索。而本文使動(dòng)作選擇概率ε隨著訓(xùn)練步數(shù)線性增加,通過線性增加ε-動(dòng)作選擇概率來解決訓(xùn)練后期存在的過度探索錯(cuò)過較優(yōu)路徑的問題。
在模型訓(xùn)練的每一次迭代中DQN網(wǎng)絡(luò)參數(shù)更新是從經(jīng)驗(yàn)池中隨機(jī)取出一批數(shù)據(jù)。將這些數(shù)據(jù)傳入到兩個(gè)網(wǎng)絡(luò)中,在兩個(gè)網(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ò)通過動(dòng)作選擇機(jī)制與環(huán)境進(jìn)行交互,會(huì)得到該動(dòng)作獎(jiǎng)勵(lì)和下一步狀態(tài)。將此四元組存入到回放記憶單元,當(dāng)記憶回放單元的記錄滿足隨機(jī)存取記憶回放單元記錄個(gè)數(shù)時(shí),從中隨機(jī)取得一小批量樣本并進(jìn)行訓(xùn)練。每個(gè)N時(shí)間步后預(yù)測網(wǎng)絡(luò)會(huì)將函數(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的高斯分布,未撞到障礙物的獎(jiǎng)勵(lì)為0 for episode=1 tokdo
初始化物體位置
While True:
利用ε貪婪策略選擇狀態(tài)動(dòng)作:
執(zhí)行動(dòng)作at后得到下一個(gè)狀態(tài)st+1
If rect=target:
未撞到障礙物的獎(jiǎng)勵(lì)為式(6)
通過表1得到的即時(shí)回報(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)格連接,以此來模擬不同大小的長方形障礙物,總共有八個(gè)障礙。正方形為起點(diǎn),即物體所在位置;圓形為追逐目標(biāo),即目標(biāo)位置。最后結(jié)果獲得的路徑為從起點(diǎn)躲避所有障礙物到達(dá)終點(diǎn)的最短路徑。
圖4 仿真環(huán)境
在實(shí)驗(yàn)中,仿真環(huán)境中每個(gè)網(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時(shí),狀態(tài)的獎(jiǎng)勵(lì)值為15,代入式(6)中,得到0=l×(15-h)。由此可得l=-0.2,h=4.24,則獎(jiǎng)勵(lì)值表示如式(12)所示。
r=-0.2×(x-4.24)3
(12)
因?yàn)槁窂揭?guī)劃的最重要目的就是找到最大的獎(jiǎng)勵(lì)值,從而找到目標(biāo)。為了和其他狀況有較大的區(qū)分,到達(dá)目標(biāo)的獎(jiǎng)勵(lì)為50。而撞到障礙物要比其他狀況獲得的獎(jiǎng)勵(lì)值要小,獎(jiǎng)勵(lì)值為-5。當(dāng)物體處于探索路徑狀態(tài)時(shí),在沒有發(fā)現(xiàn)目標(biāo)階段則獎(jiǎng)勵(lì)值為0,當(dāng)發(fā)現(xiàn)目標(biāo)之后獎(jiǎng)勵(lì)值通過式(12)獲得,因此不同狀態(tài)的獎(jiǎng)勵(lì)值如表2所示。
表2 確定參數(shù)的獎(jiǎng)勵(lì)表
在多層感知機(jī)中,如果網(wǎng)絡(luò)參數(shù)數(shù)量過大會(huì)出現(xiàn)動(dòng)作價(jià)值的過擬合,如果較小會(huì)出現(xiàn)動(dòng)作價(jià)值的欠擬合。為了更好地訓(xùn)練網(wǎng)絡(luò),將網(wǎng)絡(luò)參數(shù)的個(gè)數(shù)設(shè)為15。
在上述實(shí)際場景,基于仿真環(huán)境進(jìn)行實(shí)驗(yàn),每200次進(jìn)行目標(biāo)網(wǎng)絡(luò)的參數(shù)更新。開始訓(xùn)練時(shí),因?yàn)榻?jīng)驗(yàn)池沒有記錄,所以開始的前400次訓(xùn)練在不斷地探索,積累一些記錄并將這些記錄進(jìn)行存儲(chǔ)。因?yàn)殡S機(jī)取出記錄的個(gè)數(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ù)。剛開始時(shí)因?yàn)榻?jīng)驗(yàn)池里面沒有記錄,無法取出進(jìn)行訓(xùn)練,所以開始的路徑會(huì)出現(xiàn)各種碰撞障礙物的情況,無法找出最優(yōu)路徑。如圖5所示。
圖5 初始路徑尋找
而隨著訓(xùn)練次數(shù)的提升,經(jīng)驗(yàn)池里面的記錄增加,網(wǎng)絡(luò)參數(shù)的更新,并且ε-貪心算法中的ε=0.9也會(huì)以0.000 01的速度隨著路徑探索而慢慢增加,ε的上限為0.999 9,以此將動(dòng)作選擇慢慢趨向于利用方式,但不會(huì)完全使用利用方式。因此使得路徑的選擇就會(huì)越來越好,最后獲得最優(yōu)路徑,如圖6所示。
圖6 最優(yōu)路徑
本文與DQN算法和Action-critic算法進(jìn)行比較,當(dāng)物體訓(xùn)練1 000輪時(shí)三種算法的不同獎(jiǎng)勵(lì)值如圖7-圖9所示。圖7為本文算法的獎(jiǎng)勵(lì)值,開始訓(xùn)練的前400步,因?yàn)槭请S機(jī)探索的,沒有根據(jù)在經(jīng)驗(yàn)池里的記錄更新網(wǎng)絡(luò)參數(shù),所以獎(jiǎng)勵(lì)值會(huì)比較亂。而隨著前300次的訓(xùn)練結(jié)束,經(jīng)驗(yàn)池有充足的經(jīng)驗(yàn),則可以來進(jìn)行參數(shù)更新。隨著訓(xùn)練次數(shù)的增加,ε越來越大,動(dòng)作選擇越來越趨向于某個(gè)狀態(tài)的最大獎(jiǎng)勵(lì)的動(dòng)作,獎(jiǎng)勵(lì)值也就變得平穩(wěn)。圖8和圖9分別表示普通DQN算法和Action-critic算法的獎(jiǎng)勵(lì)值。
圖7 本文算法1 000步獎(jiǎng)勵(lì)值
圖8 DQN算法1 000步獎(jiǎng)勵(lì)值
圖9 Action-critic算法1 000步獎(jiǎng)勵(lì)值
本文選取探索規(guī)劃輪數(shù)為評價(jià)指標(biāo),將DQN算法和Action-critic算法作為對照算法,比較了三個(gè)算法的總規(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ī)避障礙的能力和跟蹤速度。