王少桐,況立群,韓慧妍,熊風(fēng)光,薛紅新
(中北大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,山西 太原 030051)
機(jī)器人的應(yīng)用領(lǐng)域已經(jīng)涉及人們生活的方方面面,精準(zhǔn)的導(dǎo)航是移動(dòng)機(jī)器人完成任務(wù)的必要條件[1]。目前已經(jīng)有許多傳統(tǒng)算法用于移動(dòng)機(jī)器人導(dǎo)航,傳統(tǒng)導(dǎo)航算法大多是基于環(huán)境建模方式進(jìn)行規(guī)劃,適應(yīng)環(huán)境變化的能力較低,存在通用性差、功耗高等諸多問(wèn)題。近年來(lái),強(qiáng)化學(xué)習(xí)技術(shù)飛速發(fā)展,人們嘗試將機(jī)器人導(dǎo)航與強(qiáng)化學(xué)習(xí)方法相結(jié)合,改變了傳統(tǒng)路徑規(guī)劃算法先建圖后規(guī)劃的固有任務(wù)模式[2],擺脫了對(duì)模型的限制,使機(jī)器人充分利用周?chē)h(huán)境信息進(jìn)行學(xué)習(xí),自主導(dǎo)航,實(shí)現(xiàn)了端到端的決策過(guò)程[3]。
雖然強(qiáng)化學(xué)習(xí)方法可有效應(yīng)用于移動(dòng)機(jī)器人導(dǎo)航,但依舊具有一定的局限性,需要預(yù)先進(jìn)行大規(guī)模訓(xùn)練學(xué)習(xí)。很多研究人員通過(guò)改進(jìn)神經(jīng)網(wǎng)絡(luò)來(lái)改變輸入數(shù)據(jù)的方式,以提高智能體導(dǎo)航各方面的性能,使訓(xùn)練有素的智能體更好地進(jìn)行路徑規(guī)劃[4]。文獻(xiàn)[5]使用A3C 算法結(jié)合兩個(gè)循環(huán)神經(jīng)網(wǎng)絡(luò),以輔助任務(wù)的方式讓智能體在一個(gè)迷宮環(huán)境運(yùn)動(dòng),使智能體完成自主尋路,自動(dòng)完成環(huán)境定位。文獻(xiàn)[6]介紹一種用于現(xiàn)實(shí)環(huán)境中視覺(jué)導(dǎo)航的深度強(qiáng)化學(xué)習(xí)方法。通過(guò)輸入視覺(jué)信息,采用PPAC 算法在模擬環(huán)境中進(jìn)行預(yù)訓(xùn)練,并根據(jù)真實(shí)環(huán)境中的圖像數(shù)據(jù)集進(jìn)行微調(diào)。文獻(xiàn)[7]介紹了用單目攝像頭代替2D 激光雷達(dá)作為信息輸入來(lái)源,采用DDQN 算法進(jìn)行自主移動(dòng)機(jī)器人導(dǎo)航。目前強(qiáng)化學(xué)習(xí)在導(dǎo)航方面發(fā)展迅速,但是強(qiáng)化學(xué)習(xí)一直存在樣本利用率低的問(wèn)題[8],通過(guò)提高智能體對(duì)過(guò)去樣本的利用率可以加快智能體的學(xué)習(xí)速度,使智能體更好地進(jìn)行路徑規(guī)劃。
傳統(tǒng)的DQN 算法采用經(jīng)驗(yàn)回放機(jī)制來(lái)提高智能體對(duì)樣本的利用率,并使用均勻采樣從經(jīng)驗(yàn)池中獲取數(shù)據(jù),但是不能高效利用數(shù)據(jù)[9]。文獻(xiàn)[10]針對(duì)學(xué)習(xí)速度慢以及樣本利用率低的問(wèn)題提出了雙經(jīng)驗(yàn)池回放方法,分別設(shè)置全保留經(jīng)驗(yàn)池和先進(jìn)先出(FIFO)經(jīng)驗(yàn)池,從而加速策略學(xué)習(xí),提高樣本的使用效率。優(yōu)先經(jīng)驗(yàn)回放(PER)算法打破了均勻采樣機(jī)制,賦予學(xué)習(xí)價(jià)值高的經(jīng)驗(yàn)及更大的優(yōu)先級(jí)。根據(jù)優(yōu)先級(jí)從經(jīng)驗(yàn)池中選擇樣本,可以加快學(xué)習(xí)速度,更好地制定最終策略,使經(jīng)驗(yàn)回放更加高效[11],但是由于其時(shí)序差分誤差僅僅是通過(guò)前一步的策略計(jì)算得出,無(wú)法滿足學(xué)習(xí)的時(shí)效性。文獻(xiàn)[12]針對(duì)其缺點(diǎn),提出一種獎(jiǎng)勵(lì)優(yōu)先經(jīng)驗(yàn)回放算法,通過(guò)將獎(jiǎng)勵(lì)映射成權(quán)重,實(shí)現(xiàn)了更頻繁的重放重要經(jīng)驗(yàn),從而提高了樣本的利用效率。文獻(xiàn)[13]基于DDPG 算法提出了復(fù)合優(yōu)先經(jīng)驗(yàn)回放機(jī)制,根據(jù)復(fù)合優(yōu)先級(jí)從經(jīng)驗(yàn)回放池中進(jìn)行采樣,在Gazebo 建模環(huán)境下進(jìn)行導(dǎo)航實(shí)驗(yàn),不僅提高了樣本的利用效率,同時(shí)也克服了單一優(yōu)先級(jí)方法易受到時(shí)序誤差離群值的負(fù)面影響的問(wèn)題。
后見(jiàn)經(jīng)驗(yàn)回放算法與優(yōu)先經(jīng)驗(yàn)回放算法不同,它通過(guò)提高對(duì)失敗樣本的利用率從而提高全體經(jīng)驗(yàn)樣本的利用率。在強(qiáng)化學(xué)習(xí)中錯(cuò)誤信息通常只是返回一個(gè)負(fù)的獎(jiǎng)勵(lì)值,而犯錯(cuò)時(shí)的其他信息卻沒(méi)有被利用。事實(shí)上,如何使用這些失敗信息是提高強(qiáng)化學(xué)習(xí)算法效率的關(guān)鍵[14]。后見(jiàn)經(jīng)驗(yàn)回放算法通過(guò)對(duì)失敗樣本中的目標(biāo)點(diǎn)進(jìn)行重新標(biāo)記,增加經(jīng)驗(yàn)池中成功樣本的比例,從而提高對(duì)樣本的利用率[15]。但是,傳統(tǒng)后見(jiàn)經(jīng)驗(yàn)回放算法的使用有太多限制條件,更加適用于解決智能體訓(xùn)練時(shí)的稀疏獎(jiǎng)勵(lì)問(wèn)題[16]?;胤潘械氖颖緦?duì)于不同的學(xué)習(xí)階段并非都是同樣有用的,文獻(xiàn)[17]提出基于課程學(xué)習(xí)的后見(jiàn)經(jīng)驗(yàn)回放算法,根據(jù)失敗樣本對(duì)不同學(xué)習(xí)階段的兼容性和有用性自適應(yīng)地選擇失敗樣本進(jìn)行重放。文獻(xiàn)[18]提出一種采樣率衰減策略,該策略隨著訓(xùn)練的進(jìn)行而減少后見(jiàn)經(jīng)驗(yàn)回放的樣本數(shù)量,實(shí)現(xiàn)了更高的訓(xùn)練性能和收斂速度。相對(duì)無(wú)模型算法來(lái)說(shuō),有模型算法對(duì)環(huán)境進(jìn)行建模,擬合環(huán)境的動(dòng)力學(xué)模型,采樣效率較高。文獻(xiàn)[19]提出基于模型的后見(jiàn)經(jīng)驗(yàn)回放算法,利用動(dòng)力學(xué)模型生成虛擬目標(biāo)點(diǎn)進(jìn)行重新標(biāo)記,結(jié)合監(jiān)督學(xué)習(xí)來(lái)提高多目標(biāo)強(qiáng)化學(xué)習(xí)的樣本效率。以上的改進(jìn)方法都是基于稀疏獎(jiǎng)勵(lì)進(jìn)行的,在復(fù)雜的真實(shí)任務(wù)中,獎(jiǎng)勵(lì)是很多復(fù)雜目標(biāo)的組合,無(wú)法直接通過(guò)某些狀態(tài)進(jìn)行回放。
為了在復(fù)雜獎(jiǎng)勵(lì)下提高智能體導(dǎo)航中的樣本利用率,本文對(duì)傳統(tǒng)后見(jiàn)經(jīng)驗(yàn)回放算法的目標(biāo)點(diǎn)選擇進(jìn)行改進(jìn),提出優(yōu)勢(shì)后見(jiàn)經(jīng)驗(yàn)回放算法。在智能體的軌跡樣本上找出使智能體獲得最大獎(jiǎng)勵(lì)的目標(biāo)點(diǎn),根據(jù)新的目標(biāo)點(diǎn)對(duì)軌跡樣本重新標(biāo)記,同時(shí)對(duì)發(fā)生碰撞的軌跡樣本進(jìn)行負(fù)獎(jiǎng)勵(lì)標(biāo)記,使得智能體能夠更快更準(zhǔn)確地學(xué)習(xí)導(dǎo)航策略。
為了解決Q-learning 算法的內(nèi)存開(kāi)銷(xiāo)和時(shí)間問(wèn)題,深度Q 網(wǎng)絡(luò)(DQN)算法[20]將Q-learning 算法與神經(jīng)網(wǎng)絡(luò)相結(jié)合,Q值的估計(jì)采用了神經(jīng)網(wǎng)絡(luò)。當(dāng)采用這種方式近似Q值函數(shù)時(shí),Q值的更新呈現(xiàn)出不穩(wěn)定的學(xué)習(xí)特性,DQN 引入了雙網(wǎng)絡(luò)機(jī)制和經(jīng)驗(yàn)回放機(jī)制來(lái)解決這個(gè)問(wèn)題[21]。
雙網(wǎng)絡(luò)機(jī)制構(gòu)造兩個(gè)結(jié)構(gòu)完全相同但參數(shù)不同的網(wǎng)絡(luò),主網(wǎng)絡(luò)作為在線網(wǎng)絡(luò),它采用最新的網(wǎng)絡(luò)參數(shù)用來(lái)預(yù)測(cè)Q值。目標(biāo)網(wǎng)絡(luò)用來(lái)預(yù)測(cè)目標(biāo)Q值,采用的是具有一定延遲的舊參數(shù),每個(gè)周期之后,在線網(wǎng)絡(luò)的參數(shù)都會(huì)被拷貝到目標(biāo)網(wǎng)絡(luò)中。引入目標(biāo)網(wǎng)絡(luò)后,在設(shè)定更新參數(shù)延遲的這段時(shí)間內(nèi)具有暫時(shí)性的Q值,可以降低Q值和目標(biāo)Q值之間的關(guān)系,從而增加算法的穩(wěn)定性。
經(jīng)驗(yàn)回放機(jī)制[22]將智能體與環(huán)境交互中得到的樣本序列儲(chǔ)存在經(jīng)驗(yàn)池中,離線訓(xùn)練時(shí)隨機(jī)采樣Minibatch 的序列樣本更新主網(wǎng)絡(luò)的參數(shù)。在經(jīng)驗(yàn)回放機(jī)制中,為了提高樣本的利用率,重復(fù)使用一個(gè)樣本,同時(shí)在一定程度上破壞了訓(xùn)練數(shù)據(jù)之間的相關(guān)性。該方法的缺點(diǎn)是對(duì)所有樣本數(shù)據(jù)采用均勻隨機(jī)采樣,這樣會(huì)造成收斂速度減慢,而且會(huì)占用更多的計(jì)算資源和內(nèi)存。
DQN 算法在進(jìn)行策略評(píng)價(jià)和動(dòng)作選取時(shí),都是以目標(biāo)網(wǎng)絡(luò)的參數(shù)為基礎(chǔ),如式(1)所示,這就導(dǎo)致了DQN 算法在迭代學(xué)習(xí)中經(jīng)常會(huì)存在Q值過(guò)高的問(wèn)題。2015 年12 月,Google DeepMind 提出Double DQN[23]用于求解Q值估計(jì)過(guò)高的問(wèn)題,并給出了由兩個(gè)值函數(shù)來(lái)實(shí)現(xiàn)動(dòng)作評(píng)估與選擇,如式(2)所示,通過(guò)當(dāng)前網(wǎng)絡(luò)的參數(shù)選擇最優(yōu)動(dòng)作,并利用目標(biāo)網(wǎng)絡(luò)的參數(shù)對(duì)其進(jìn)行評(píng)價(jià),從而得到更為精確的Q值,以及更為穩(wěn)定、高效的決策。
在Dueling DQN[24]中,主要是對(duì)網(wǎng)絡(luò)的結(jié)構(gòu)進(jìn)行優(yōu)化。Dueling DQN 把Q 網(wǎng)絡(luò)分為2 個(gè)部分:第1 個(gè)部分是與狀態(tài)s有關(guān)、與行為a無(wú)關(guān)的價(jià)值函數(shù)V(s,θ,α),它是對(duì)當(dāng)前狀態(tài)的長(zhǎng)遠(yuǎn)判斷;第2 個(gè)部分是與狀態(tài)s和動(dòng)作a都有關(guān),稱為優(yōu)勢(shì)函數(shù)A(s,a,θ,β),用于估計(jì)當(dāng)前情況下各種行為的相對(duì)優(yōu)劣程度,如式(3)所示:
D3QN 算法以DQN 算法為基礎(chǔ),加入了Double DQN 和Dueling DQN 的優(yōu)化思想,使智能體學(xué)習(xí)的收斂速度更快、更穩(wěn)定。
為了解決智能體訓(xùn)練時(shí)的稀疏獎(jiǎng)勵(lì)或二值獎(jiǎng)勵(lì)問(wèn)題,文獻(xiàn)[25]介紹了后見(jiàn)經(jīng)驗(yàn)回放(HER)算法。該算法可以與任意的off-policy 強(qiáng)化學(xué)習(xí)算法相結(jié)合使用,從稀疏獎(jiǎng)勵(lì)和二值獎(jiǎng)勵(lì)中高效采樣學(xué)習(xí)。
在獎(jiǎng)勵(lì)稀疏時(shí)可能絕大多數(shù)的探索都是失敗的,HER 的思想是把這些失敗的探索經(jīng)驗(yàn)都利用起來(lái)[26]。比如,智能體的目標(biāo)是A,某一次探索失敗了沒(méi)有到達(dá)A,但是走到B 了。與其認(rèn)為這是一次失敗的探索,不如重新標(biāo)記這條軌跡的目標(biāo)是B,這樣充分地利用了探索過(guò)程中的失敗樣本。
在off-policy 算法中,利用智能體與周?chē)幕?dòng)來(lái)獲取樣本[27]。在每一個(gè)episode 互動(dòng)過(guò)程中采集到的樣本,以transition 元組的形式存到經(jīng)驗(yàn)回放池中,此時(shí)這條軌跡中的數(shù)據(jù)是基于原始目標(biāo)的。為了充分地利用失敗的樣本,HER 對(duì)失敗的樣本重新進(jìn)行標(biāo)記,選擇新的目標(biāo)點(diǎn),對(duì)這條軌跡進(jìn)行回放。
后見(jiàn)經(jīng)驗(yàn)回放算法的目標(biāo)選擇可分為4 種:
1)最終模式:選擇每條軌跡的最后一個(gè)狀態(tài)作為目標(biāo);
2)未來(lái)模式:選擇同一軌跡的某個(gè)state 之后的隨機(jī)k個(gè)state 作為目標(biāo);
3)回合模式:在同一軌跡中隨機(jī)采樣k個(gè)state作為目標(biāo),和future 不同的是不需要從某個(gè)state 之后隨機(jī)采樣;
4)隨機(jī)模式:在整個(gè)訓(xùn)練流程中,從多條軌跡數(shù)據(jù)中采樣k個(gè)state 作為目標(biāo)。
但是傳統(tǒng)的后見(jiàn)經(jīng)驗(yàn)回放算法的目標(biāo)選擇方式是基于稀疏獎(jiǎng)勵(lì)設(shè)置的訓(xùn)練環(huán)境。在復(fù)雜的獎(jiǎng)勵(lì)組合中,通過(guò)這4 種方式直接選擇的目標(biāo)點(diǎn)帶有隨機(jī)性,無(wú)法判斷是否可以作為合適的目標(biāo)點(diǎn),需要一個(gè)標(biāo)準(zhǔn)來(lái)選擇其作為最終的目標(biāo)點(diǎn)。
后見(jiàn)經(jīng)驗(yàn)回放算法在future 模式下表現(xiàn)得更好,但是在復(fù)雜獎(jiǎng)勵(lì)函數(shù)的情況下,使用future 模式進(jìn)行隨機(jī)采樣來(lái)確定新的目標(biāo)點(diǎn),這條軌跡對(duì)于新的目標(biāo)點(diǎn)往往不是合適的路徑。針對(duì)這個(gè)問(wèn)題,本文提出了優(yōu)勢(shì)后見(jiàn)經(jīng)驗(yàn)回放(AHER)算法,對(duì)新目標(biāo)點(diǎn)的選擇進(jìn)行了改進(jìn)。在復(fù)雜獎(jiǎng)勵(lì)的條件中找到一個(gè)任務(wù)目標(biāo)點(diǎn),這個(gè)目標(biāo)點(diǎn)對(duì)于目前軌跡的獎(jiǎng)勵(lì)最大。本文通過(guò)計(jì)算比較優(yōu)勢(shì)函數(shù)來(lái)選擇這個(gè)目標(biāo)點(diǎn),將擁有最大優(yōu)勢(shì)函數(shù)的目標(biāo)點(diǎn)作為新的目標(biāo)點(diǎn),有效地利用失敗樣本,提高了樣本利用率。目標(biāo)點(diǎn)的優(yōu)勢(shì)函數(shù)計(jì)算方法如式(4)和式(5)所示:
其中:A(τ,vj)代表在軌跡τ中點(diǎn)vj作為目標(biāo)點(diǎn)時(shí)軌跡的優(yōu)勢(shì)函數(shù);R(τ|vj)代表點(diǎn)vj作為目標(biāo)點(diǎn)時(shí)軌跡總的獎(jiǎng)勵(lì)值;Vπ(S0,vj)代表策略π下的初始狀態(tài)S0的價(jià)值函數(shù);R(vi|vj)代表點(diǎn)vj作為目標(biāo)點(diǎn)時(shí)點(diǎn)vi的獎(jiǎng)勵(lì)值。
利用式(4)計(jì)算出每個(gè)可以作為新目標(biāo)點(diǎn)的vj的優(yōu)勢(shì)函數(shù),選取最大優(yōu)勢(shì)函數(shù)對(duì)應(yīng)的點(diǎn)作為新的目標(biāo)點(diǎn)。根據(jù)新的目標(biāo)點(diǎn),修改軌跡中新目標(biāo)點(diǎn)之前的每個(gè)transition 元組中的狀態(tài)、下一狀態(tài)和獎(jiǎng)勵(lì),將重新標(biāo)記過(guò)的transition 元組放入經(jīng)驗(yàn)池中。同時(shí),對(duì)發(fā)生撞擊的軌跡樣本進(jìn)行后見(jiàn)經(jīng)驗(yàn)回放,若機(jī)器人發(fā)生撞擊,則撞擊前的幾個(gè)transition 元組都重新計(jì)算獎(jiǎng)勵(lì)值。算法整體框架如圖1 所示,強(qiáng)化學(xué)習(xí)智能體通過(guò)ε-greeedy 策略選擇動(dòng)作,與周?chē)沫h(huán)境進(jìn)行互動(dòng),獲得下一狀態(tài)以及獎(jiǎng)勵(lì),形成transition元組,多個(gè)元組構(gòu)成軌跡樣本;對(duì)軌跡樣本進(jìn)行重新標(biāo)記,將新舊軌跡樣本都存入經(jīng)驗(yàn)池中。在經(jīng)驗(yàn)池中成功樣本的比例增加,智能體選擇批量的經(jīng)驗(yàn)樣本在神經(jīng)網(wǎng)絡(luò)中訓(xùn)練學(xué)習(xí),使智能體做出更好的動(dòng)作選擇。
仿真實(shí)驗(yàn)使用TurtleBot3 Burger 機(jī)器人,該機(jī)器人利用360°的激光雷達(dá)對(duì)其周?chē)h(huán)境進(jìn)行探測(cè)。設(shè)定激光雷達(dá)的采樣數(shù)為24 維,機(jī)器人在仿真環(huán)境中狀態(tài)的大小設(shè)計(jì)為28 維,由于引入后見(jiàn)經(jīng)驗(yàn)回放算法,狀態(tài)sstate如式(6)所示:
其中:sscan_ranges是激光雷達(dá)傳感器返回與周?chē)h(huán)境距離的24 維數(shù)據(jù),表示機(jī)器人目前的周?chē)畔ⅲ籬heading表示機(jī)器人相對(duì)于目標(biāo)點(diǎn)的朝向;ccurrent_distance代表目前機(jī)器人距離目標(biāo)點(diǎn)之間的距離;ggoal指的是目標(biāo)點(diǎn)位置坐標(biāo)。
使用的算法基于D3QN 算法,現(xiàn)將機(jī)器人的動(dòng)作空間離散為5 個(gè)動(dòng)作,分別用大幅度左轉(zhuǎn)(a0)、小幅度左轉(zhuǎn)(a1)、直行(a2)、小幅度右轉(zhuǎn)(a3)、大幅度右轉(zhuǎn)(a4)表示。線速度固定為0.15 m/s,角速度不同。算法模型輸出的5 個(gè)動(dòng)作如表1 所示。
表1 動(dòng)作空間設(shè)計(jì)Table 1 Motion space design
強(qiáng)化學(xué)習(xí)需要設(shè)置合適的獎(jiǎng)勵(lì)函數(shù)來(lái)判斷當(dāng)前動(dòng)作的好壞。若只有移動(dòng)機(jī)器人到達(dá)目標(biāo)點(diǎn)才會(huì)獲得獎(jiǎng)勵(lì),則在訓(xùn)練時(shí)將面臨稀疏獎(jiǎng)勵(lì)問(wèn)題。為了解決這個(gè)問(wèn)題,設(shè)計(jì)了基于目標(biāo)趨向的獎(jiǎng)勵(lì)函數(shù),在訓(xùn)練過(guò)程中,仿真機(jī)器人的每個(gè)動(dòng)作決策都可以獲得對(duì)應(yīng)的獎(jiǎng)賞值反饋,智能體可以充分利用對(duì)目標(biāo)位置的反饋信息進(jìn)行策略學(xué)習(xí)。獎(jiǎng)勵(lì)函數(shù)設(shè)置如式(9)和(10)所示,將式(10)代入到式(9)中可以得到機(jī)器人中間狀態(tài)的獎(jiǎng)勵(lì):
當(dāng)激光傳感器返回的最小距離小于0.2 m 時(shí),判斷機(jī)器人撞擊到障礙物,結(jié)束這一回合,獎(jiǎng)懲為-200。在導(dǎo)航過(guò)程中,根據(jù)獎(jiǎng)懲設(shè)計(jì),機(jī)器人越朝向目標(biāo),獎(jiǎng)賞越大。aangle計(jì)算在執(zhí)行動(dòng)作后機(jī)器人的hheading朝向?qū)?yīng)的角度,rreward_yaw代表該動(dòng)作對(duì)應(yīng)的獎(jiǎng)懲值。機(jī)器人位置越靠近目標(biāo),獎(jiǎng)賞越大。當(dāng)機(jī)器人與目標(biāo)點(diǎn)之間的歐氏距離小于或等于閾值0.3 m時(shí),機(jī)器人到達(dá)目標(biāo),設(shè)置獎(jiǎng)賞為200。
本文采用ROS 中的Gazebo 仿真器進(jìn)行移動(dòng)機(jī)器人仿真實(shí)驗(yàn),設(shè)計(jì)了4 個(gè)不同的環(huán)境進(jìn)行訓(xùn)練和測(cè)試。環(huán)境1 用于算法訓(xùn)練,環(huán)境2、3、4 用于算法的遷移測(cè)試。環(huán)境2 在環(huán)境1 的基礎(chǔ)上增加了不同位置的靜態(tài)障礙物,環(huán)境3、4 與環(huán)境1 結(jié)構(gòu)相似。如圖2 所示,其中,(0,0)為移動(dòng)機(jī)器人的初始位置(見(jiàn)圖中心黑點(diǎn)),框線在仿真實(shí)驗(yàn)環(huán)境中定位Z軸。
圖2 實(shí)驗(yàn)環(huán)境Fig.2 Experimental environment
移動(dòng)機(jī)器人使用TurtleBot3 Burger 機(jī)器人,每回合最多可以移動(dòng)600 步,每個(gè)時(shí)間步執(zhí)行一次動(dòng)作,利用機(jī)器人頭部的激光雷達(dá)感應(yīng)器獲取其在周?chē)h(huán)境中的距離信息,并與周?chē)沫h(huán)境進(jìn)行交互。如圖3所示,機(jī)器人四周是可視化的激光,正方形部分為目標(biāo)點(diǎn)。實(shí)驗(yàn)中用到的超參數(shù)如表2 所示。
表2 實(shí)驗(yàn)超參數(shù)Table 2 Experimental hyperparameters
圖3 機(jī)器人示意圖Fig.3 Schematic drawing of robot
3.2.1 算法訓(xùn)練實(shí)驗(yàn)結(jié)果分析
為評(píng)估本文方法的有效性,選擇深度強(qiáng)化學(xué)習(xí)算法D3QN[28]、基于優(yōu)先經(jīng)驗(yàn)回放的D3QN 算法(D3QN_PER)[28]、基于后見(jiàn)經(jīng)驗(yàn)回放(future 模式)的D3QN 算法(D3QN_HER)[18]進(jìn)行實(shí)驗(yàn)對(duì)比,采用算法的公開(kāi)代碼,依據(jù)本文實(shí)驗(yàn)環(huán)境和實(shí)驗(yàn)?zāi)繕?biāo)確定適合的實(shí)驗(yàn)參數(shù)。各算法在環(huán)境1 中的訓(xùn)練學(xué)習(xí)結(jié)果如圖4 所示(彩圖效果見(jiàn)《計(jì)算機(jī)工程》官網(wǎng)HTML版),陰影是實(shí)驗(yàn)數(shù)據(jù)區(qū)間。
圖4 訓(xùn)練學(xué)習(xí)結(jié)果Fig.4 Training learning results
為了減小實(shí)驗(yàn)的誤差,各算法在環(huán)境1 中訓(xùn)練3 次,每次600 個(gè)回合,效果如圖4(a)、圖4(b)所示。訓(xùn)練成功率是指移動(dòng)機(jī)器人成功導(dǎo)航的回合數(shù)占當(dāng)前訓(xùn)練總回合數(shù)的百分比。訓(xùn)練碰撞率表示移動(dòng)機(jī)器人發(fā)生碰撞的回合數(shù)占總回合數(shù)的百分比。結(jié)果圖展示了采用不同方法的移動(dòng)機(jī)器人在相同環(huán)境下學(xué)習(xí)導(dǎo)航策略的情況,由于環(huán)境中的目標(biāo)點(diǎn)是隨機(jī)生成的,在訓(xùn)練的過(guò)程中難免出現(xiàn)對(duì)于目前智能體來(lái)說(shuō)難以到達(dá)的點(diǎn),會(huì)出現(xiàn)成功率不同幅度下降的情況。
從圖4(a)可以看出,各算法在剛開(kāi)始時(shí)成功率差距不大,隨著訓(xùn)練的進(jìn)行,經(jīng)驗(yàn)池中的軌跡樣本不斷增加,在200 個(gè)回合后成功率差距拉大,后見(jiàn)經(jīng)驗(yàn)回放算法的成功率普遍高于基線算法D3QN,而增加了優(yōu)先經(jīng)驗(yàn)回放的算法卻低于基線算法。由于優(yōu)先經(jīng)驗(yàn)回放算法性能不穩(wěn)定,當(dāng)獎(jiǎng)勵(lì)稀疏時(shí),優(yōu)先經(jīng)驗(yàn)回放算法要對(duì)少量高價(jià)值transition 元組賦予更高的優(yōu)先級(jí)進(jìn)行經(jīng)驗(yàn)回放,而在復(fù)雜獎(jiǎng)勵(lì)的環(huán)境下,學(xué)習(xí)需要的高價(jià)值transition 元組增多,使優(yōu)先經(jīng)驗(yàn)回放算法的學(xué)習(xí)速度變慢,消耗的時(shí)間變長(zhǎng)。實(shí)驗(yàn)中采用future 模式下的后見(jiàn)經(jīng)驗(yàn)回放算法,通過(guò)重新標(biāo)記隨機(jī)狀態(tài)作為新的目標(biāo)點(diǎn)來(lái)增加成功到達(dá)的軌跡樣本,在一定程度上提高了成功率。
從整體來(lái)看,本文AHER 算法的成功率高于其他3 個(gè)算法,在訓(xùn)練的過(guò)程中,選擇擁有最大優(yōu)勢(shì)函數(shù)的目標(biāo)點(diǎn)作為新的目標(biāo)點(diǎn),將失敗的軌跡樣本有效利用起來(lái),相對(duì)于future 模式下的后見(jiàn)經(jīng)驗(yàn)回放算法,使得智能體在這條軌跡上獲得更大的獎(jiǎng)勵(lì),更大程度上提高了導(dǎo)航的成功率。綜上,本文算法能有效提高導(dǎo)航樣本利用率,降低導(dǎo)航策略學(xué)習(xí)難度。
為了進(jìn)一步展現(xiàn)本文算法的有效性,在訓(xùn)練完成后指定目標(biāo)點(diǎn)對(duì)4 個(gè)算法的導(dǎo)航效果進(jìn)行路徑分析,如圖5 所示,分別為D3QN、D3QN_PER、D3QN_HER 和D3QN_AHER 的導(dǎo)航路徑俯視圖,十字代表目標(biāo)點(diǎn),路徑另一端圓點(diǎn)代表移動(dòng)機(jī)器人起始位置。4 個(gè)算法都可以找到安全到達(dá)目標(biāo)點(diǎn)的路徑。D3QN 算法在距離障礙物近時(shí)才選擇躲避,這樣導(dǎo)致該算法的路徑曲折。D3QN_PER 算法在經(jīng)歷了幾個(gè)回合的碰撞后才成功到達(dá)目標(biāo)點(diǎn),可見(jiàn)添加了優(yōu)先經(jīng)驗(yàn)回放的導(dǎo)航能力一般,并不適合在復(fù)雜的情況下使用。D3QN_HER 算法的路徑相較平緩,說(shuō)明智能體已經(jīng)熟悉所在環(huán)境,但路徑較長(zhǎng)。D3QN_AHER 算法相對(duì)于其他3 個(gè)算法,選擇了距離兩邊障礙物相對(duì)安全的中間路線,這是由于在進(jìn)行后見(jiàn)經(jīng)驗(yàn)回放時(shí),對(duì)碰撞點(diǎn)前的部分狀態(tài)都賦予了負(fù)獎(jiǎng)勵(lì),因此選擇了更快且獎(jiǎng)勵(lì)更大的路徑。
圖5 機(jī)器人導(dǎo)航路徑圖Fig.5 Robot navigation path diagram
3.2.2 遷移測(cè)試實(shí)驗(yàn)結(jié)果分析
為了驗(yàn)證本文改進(jìn)算法可以顯著提高智能體對(duì)于軌跡樣本的利用率,更快適應(yīng)導(dǎo)航環(huán)境,將環(huán)境1中訓(xùn)練好的算法模型遷移到環(huán)境2、3、4 中進(jìn)行測(cè)試。機(jī)器人導(dǎo)航起點(diǎn)固定,目標(biāo)點(diǎn)在范圍內(nèi)隨機(jī)生成,將4 種算法分別在不同的環(huán)境下進(jìn)行了300 個(gè)回合的測(cè)試,得出了不同的測(cè)量指標(biāo),并給出了相應(yīng)的實(shí)驗(yàn)結(jié)果,如表3 所示。
表3 不同環(huán)境下導(dǎo)航測(cè)試結(jié)果Table 3 Navigation test results of different environments %
從表3 結(jié)果可知,在不同的環(huán)境中,優(yōu)先經(jīng)驗(yàn)回放算法和后見(jiàn)經(jīng)驗(yàn)回放算法的泛化效果不穩(wěn)定,在環(huán)境2 和環(huán)境3 中的成功率都低于基線算法,在環(huán)境4 中成功率高于基線算法。環(huán)境2 相對(duì)其他幾個(gè)環(huán)境更為復(fù)雜,導(dǎo)致所有算法的各個(gè)指標(biāo)出現(xiàn)一定程度的下降。本文算法在3 種環(huán)境中的均取得了較高的導(dǎo)航成功率和較低的碰撞率,在不同的測(cè)試環(huán)境中具有較好的導(dǎo)航能力和泛化能力。但是本文算法在使用時(shí)需要計(jì)算出軌跡中所有點(diǎn)的優(yōu)勢(shì)函數(shù)并進(jìn)行比較,計(jì)算量較大;若獎(jiǎng)勵(lì)函數(shù)設(shè)置不當(dāng),智能體容易陷入貪婪狀態(tài),因此更加依賴獎(jiǎng)勵(lì)函數(shù)的設(shè)置。
3.2.3 消融實(shí)驗(yàn)
為了比較基于優(yōu)勢(shì)函數(shù)的目標(biāo)點(diǎn)選擇(D3QN_A)和碰撞樣本的負(fù)獎(jiǎng)勵(lì)標(biāo)記(D3QN_C)對(duì)優(yōu)勢(shì)后見(jiàn)經(jīng)驗(yàn)回放算法的影響,設(shè)計(jì)消融實(shí)驗(yàn)來(lái)進(jìn)行比較分析。在環(huán)境1 中分別訓(xùn)練600 個(gè)回合,目標(biāo)點(diǎn)為固定集合。實(shí)驗(yàn)結(jié)果如表4 所示。
表4 消融實(shí)驗(yàn)對(duì)比結(jié)果Table 4 Comparison results of ablation experiments %
從表4 可以看出,基于優(yōu)勢(shì)函數(shù)的目標(biāo)點(diǎn)選擇和對(duì)碰撞樣本的負(fù)獎(jiǎng)勵(lì)標(biāo)記相較于D3QN 算法都有一定的改進(jìn)效果,基于優(yōu)勢(shì)函數(shù)的目標(biāo)點(diǎn)選擇比對(duì)撞擊樣本的負(fù)獎(jiǎng)勵(lì)標(biāo)記的改進(jìn)效果更好,兩者相結(jié)合實(shí)現(xiàn)了相互改進(jìn)。
為了提高強(qiáng)化學(xué)習(xí)算法的樣本利用率,提高機(jī)器人在導(dǎo)航過(guò)程中的學(xué)習(xí)速率,本文提出一種改進(jìn)的后見(jiàn)經(jīng)驗(yàn)回放算法,將擁有最大優(yōu)勢(shì)函數(shù)值的目標(biāo)點(diǎn)作為新的目標(biāo)點(diǎn),對(duì)軌跡樣本進(jìn)行重新標(biāo)記,增加經(jīng)驗(yàn)池中成功樣本的比例。實(shí)驗(yàn)結(jié)果表明,改進(jìn)算法可有效解決機(jī)器人強(qiáng)化學(xué)習(xí)過(guò)程中樣本利用率不高的問(wèn)題,加快機(jī)器人的學(xué)習(xí)速率并且具有較好的泛化能力。然而本文主要考慮了基于無(wú)模型強(qiáng)化學(xué)習(xí)算法的改進(jìn),有模型強(qiáng)化學(xué)習(xí)算法比無(wú)模型強(qiáng)化學(xué)習(xí)算法具有更高的采樣效率和泛化能力。在真實(shí)環(huán)境下,有模型強(qiáng)化學(xué)習(xí)可以在模型中訓(xùn)練學(xué)習(xí),下一步將結(jié)合有模型強(qiáng)化學(xué)習(xí)算法[19]對(duì)移動(dòng)機(jī)器人導(dǎo)航進(jìn)行研究,以達(dá)到更好的導(dǎo)航學(xué)習(xí)效果。