李奇儒,耿 霞
(江蘇大學(xué) 計(jì)算機(jī)科學(xué)與通信工程學(xué)院,江蘇 鎮(zhèn)江 212000)
近年來,移動(dòng)機(jī)器人的路徑規(guī)劃成了研究熱點(diǎn)[1]。路徑規(guī)劃問題是指機(jī)器人能夠在不發(fā)生碰撞的前提下,在陌生環(huán)境中規(guī)劃出一條從出發(fā)點(diǎn)到目標(biāo)點(diǎn)的最優(yōu)路徑。傳統(tǒng)的路徑規(guī)劃算法包括A*算法[2]、蟻群算法[3]、遺傳算法[4]和強(qiáng)化學(xué)習(xí)[5]等。近年來,隨著深度學(xué)習(xí)的快速發(fā)展,出現(xiàn)了深度強(qiáng)化學(xué)習(xí)(Deep Reinforcement Learning,DRL)[6]。該方法 將深度神經(jīng)網(wǎng)絡(luò)與傳統(tǒng)強(qiáng)化學(xué)習(xí)相結(jié)合,解決了強(qiáng)化學(xué)習(xí)中難以解決的維數(shù)災(zāi)難問題[7],使機(jī)器人能夠應(yīng)對(duì)更加復(fù)雜和高維的環(huán)境。
在基于深度強(qiáng)化學(xué)習(xí)的路徑規(guī)劃領(lǐng)域,應(yīng)用較廣泛的是DeepMind 團(tuán)隊(duì)提出的深度Q 網(wǎng)絡(luò)(Deep Q Network,DQN)[8]。傳統(tǒng)的DQN 算法存在以下缺點(diǎn):1)過估計(jì),即網(wǎng)絡(luò)模型輸出的估計(jì)值大于真實(shí)值,且對(duì)于值函數(shù)的每個(gè)點(diǎn),被過估計(jì)的幅度往往不盡相同,這就導(dǎo)致在很多情況下機(jī)器人會(huì)選擇次優(yōu)策略而忽略最優(yōu)策略,從而影響路徑規(guī)劃的效果;2)樣本利用率低,由于DQN 算法采用隨機(jī)均勻的方式從經(jīng)驗(yàn)池中抽取樣本進(jìn)行訓(xùn)練,因此導(dǎo)致算法可能會(huì)重復(fù)選取一部分樣本進(jìn)行訓(xùn)練而忽略另一部分,從而降低網(wǎng)絡(luò)收斂速度,影響網(wǎng)絡(luò)訓(xùn)練效果。
許多學(xué)者提出了多種DQN 改進(jìn)算法來解決過估計(jì)問題。文獻(xiàn)[9]提出雙深度Q 網(wǎng)絡(luò)(Double Deep Q Network,DDQN)算法,該算法利用雙網(wǎng)絡(luò)二次估計(jì)動(dòng)作價(jià)值,解決了貪婪策略導(dǎo)致的過估計(jì)問題。文獻(xiàn)[10]提出DDQN-SSQN 算法,通過分類存儲(chǔ)多維狀態(tài)信息,采用針對(duì)性訓(xùn)練得到最優(yōu)路徑信息,提高了算法穩(wěn)定性和收斂速度。文獻(xiàn)[11]提出一種基于雙估計(jì)器的改進(jìn)Speedy Q-learning 算法,分離對(duì)最優(yōu)動(dòng)作價(jià)值和最大Q 值的選擇,對(duì)過估計(jì)問題進(jìn)行了優(yōu)化。文獻(xiàn)[12]在貪婪策略的Q 值更新方式上考慮了跟蹤行為合格度,降低了過估計(jì)的影響。文獻(xiàn)[13]提出一種端到端步驟規(guī)劃器SP-ResNet,利用雙分支殘差網(wǎng)絡(luò)估計(jì)動(dòng)作價(jià)值,提高了路徑規(guī)劃的速度。文獻(xiàn)[14]提出帶探索噪聲的EN-DQN 算法,根據(jù)添加噪聲引起的網(wǎng)絡(luò)輸出值變化選擇動(dòng)作,并通過循環(huán)神經(jīng)網(wǎng)絡(luò)記憶多步變化影響智能體的決策,從而優(yōu)化網(wǎng)絡(luò)訓(xùn)練效果。文獻(xiàn)[15]引入剪切雙Q 學(xué)習(xí)和參數(shù)探測(cè)噪聲網(wǎng)技術(shù),減少了DQN 算法對(duì)動(dòng)作價(jià)值的過估計(jì)。
針對(duì)樣本利用率低的問題,學(xué)者們也進(jìn)行了一系列研究。文獻(xiàn)[16]提出優(yōu)先經(jīng)驗(yàn)回放機(jī)制,提高了優(yōu)質(zhì)樣本的利用率。文獻(xiàn)[17]提出二次主動(dòng)采樣方法,根據(jù)序列積累回報(bào)和TD-error 對(duì)樣本二次篩選,提煉高質(zhì)量的樣本進(jìn)行訓(xùn)練。文獻(xiàn)[18]提出經(jīng)驗(yàn)的廣度和深度概念,創(chuàng)建經(jīng)驗(yàn)價(jià)值評(píng)價(jià)網(wǎng)絡(luò),增加深度經(jīng)驗(yàn)的比例,利用并行探索結(jié)構(gòu),提高了經(jīng)驗(yàn)庫的廣度。文獻(xiàn)[19]優(yōu)化了經(jīng)驗(yàn)回放的邏輯,減少了低值迭代,優(yōu)化了對(duì)訓(xùn)練樣本的選擇。文獻(xiàn)[20]提出IDQNPER算法,賦予存儲(chǔ)樣本權(quán)重,并按一定的優(yōu)先順序發(fā)送到網(wǎng)絡(luò)進(jìn)行訓(xùn)練,同時(shí)去除相似度高的序列,提高了網(wǎng)絡(luò)訓(xùn)練效果。文獻(xiàn)[21]提出一種基于優(yōu)先級(jí)的深度強(qiáng)化學(xué)習(xí)方法,機(jī)器人通過傳感器獲取環(huán)境信息建立相應(yīng)的數(shù)學(xué)模型,并用優(yōu)先重放機(jī)制改進(jìn)算法,提高了模型的收斂速度和魯棒性。對(duì)于基于卷積神經(jīng)網(wǎng)絡(luò)的深度強(qiáng)化學(xué)習(xí),文獻(xiàn)[22]提出一種改進(jìn)經(jīng)驗(yàn)重放池的方法,提高了網(wǎng)絡(luò)收斂速度。
上述研究在一定程度上提高了DQN 算法的性能,但仍然存在因算法探索能力差導(dǎo)致的網(wǎng)絡(luò)收斂速度慢、訓(xùn)練效果差的問題。針對(duì)該問題,本文提出ERDQN 算法,通過修改Q 值的計(jì)算方式,減少了重復(fù)狀態(tài)出現(xiàn)的次數(shù),提高了機(jī)器人的探索能力,同時(shí)重新設(shè)計(jì)獎(jiǎng)勵(lì)函數(shù),使機(jī)器人的每一個(gè)動(dòng)作都能得到即時(shí)的反饋。
傳統(tǒng)強(qiáng)化學(xué)習(xí)中的一個(gè)經(jīng)典算法是Q-learning 算法,其核心思想是智能體通過不斷地與環(huán)境進(jìn)行交互,學(xué)習(xí)更優(yōu)的行為策略,逐漸更新完善Q-table。Q-table是狀態(tài)-動(dòng)作表,表中值的含義是在某個(gè)狀態(tài)下執(zhí)行某個(gè)動(dòng)作時(shí)能夠獲得的最大期望獎(jiǎng)勵(lì)。但當(dāng)智能體所處的環(huán)境維度較高、出現(xiàn)的狀態(tài)較多時(shí),繼續(xù)使用Q-table存儲(chǔ)狀態(tài)-動(dòng)作值函數(shù)將會(huì)引起維數(shù)災(zāi)難。
為了解決該問題,DeepMind團(tuán)隊(duì)融合深度神經(jīng)網(wǎng)絡(luò)與Q-learning算法,提出DQN 算法。DQN 算法是對(duì)Q-learning算法的改進(jìn),利用深度神經(jīng)網(wǎng)絡(luò)動(dòng)態(tài)生成Q值表,并通過不斷迭代更新神經(jīng)網(wǎng)絡(luò)f的參數(shù)θ來逼近狀態(tài)-動(dòng)作值函數(shù)。DQN算法流程如圖1所示。
圖1 DQN 算法流程Fig.1 Procedure of the DQN algorithm
DQN 算法的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)由估計(jì)網(wǎng)絡(luò)和目標(biāo)網(wǎng)絡(luò)兩部分組成,兩者僅網(wǎng)絡(luò)參數(shù)不同。算法通過估計(jì)網(wǎng)絡(luò)來根據(jù)當(dāng)前的狀態(tài)估計(jì)動(dòng)作空間中所有動(dòng)作的Q 值,并協(xié)同目標(biāo)網(wǎng)絡(luò)的輸出值來計(jì)算損失。估計(jì)網(wǎng)絡(luò)實(shí)時(shí)學(xué)習(xí)和更新網(wǎng)絡(luò)參數(shù),且每隔一定回合將參數(shù)拷貝給目標(biāo)網(wǎng)絡(luò),以實(shí)現(xiàn)目標(biāo)網(wǎng)絡(luò)的更新。在訓(xùn)練時(shí),需要隨機(jī)均勻地從經(jīng)驗(yàn)回放池中選取一批樣本與訓(xùn)練樣本混合在一起作為訓(xùn)練數(shù)據(jù),從而破壞樣本的相關(guān)性。DQN 算法的損失函數(shù)是目標(biāo)網(wǎng)絡(luò)與估計(jì)網(wǎng)絡(luò)輸出Q 值的差值的平方,如式(1)所示:
在計(jì)算出損失值后,DQN 通過梯度下降法更新網(wǎng)絡(luò)參數(shù)θ,梯度下降公式如式(3)所示:
Q-learning 算法通過貪婪策略更新狀態(tài)-動(dòng)作價(jià)值,DQN 算法只是采用深度神經(jīng)網(wǎng)絡(luò)來近似狀態(tài)-動(dòng)作值函數(shù),其核心依然是Q-learning 算法。DQN 算法無法克服Q-learning 算法對(duì)動(dòng)作價(jià)值過估計(jì)的缺陷。因此,DeepMind 提出雙深度Q 網(wǎng)絡(luò)算法,以解決上述問題。
DDQN 算法僅改變了目標(biāo)值的計(jì)算方式,其他部分和DQN 算法一致。在DDQN 算法中需要構(gòu)建兩個(gè)網(wǎng)絡(luò),分別用來估計(jì)動(dòng)作和動(dòng)作的價(jià)值。由于DQN 算法中已經(jīng)采用雙網(wǎng)絡(luò)結(jié)構(gòu),因此在DDQN 算法中,只需要用估計(jì)網(wǎng)絡(luò)來確定動(dòng)作,用目標(biāo)網(wǎng)絡(luò)來確定該動(dòng)作的價(jià)值。DDQN 算法中目標(biāo)值的計(jì)算方式如式(4)所示:
傳統(tǒng)DQN 中的Q 值更新方式使得算法的探索能力較差,網(wǎng)絡(luò)訓(xùn)練的效率較低[23],從而影響網(wǎng)絡(luò)的收斂速度和路徑規(guī)劃效果。本文提出一種基于概率的狀態(tài)探索DQN 算法,該算法通過修改Q 值的計(jì)算方式,減少機(jī)器人在訓(xùn)練時(shí)進(jìn)入重復(fù)狀態(tài)的次數(shù),使其能更好地探索新的狀態(tài),同時(shí)提高了網(wǎng)絡(luò)收斂速度并優(yōu)化了路徑規(guī)劃效果。
Q(s,a)的計(jì)算方式如式(5)所示:
其中:λ?(0,1);E(s,a)是在Q(s,a)上乘以一個(gè)概率,計(jì)算方式如式(6)所示;P(s,a)的計(jì)算方式如式(7)所示。
基于概率的狀態(tài)探索DQN 算法通過修改Q 值的計(jì)算方式使Q(s,a)的值按權(quán)重分成兩部分:一部分是原始的Q(s,a),另一部分是E(s,a),其中E(s,a)=Q(s,a)×P(s,a),P(s,a)是指在狀態(tài)s下選擇動(dòng)作a的概率。在式(7)中,N為在狀態(tài)s下已經(jīng)選擇過動(dòng)作a的次數(shù),由其計(jì)算方式可知在狀態(tài)s下選擇動(dòng)作a的次數(shù)越多,即N越大,P(s,a)越小,E(s,a)越小,Q(s,a)總值越小。由于DQN 算法中Q(s,a)為動(dòng)作價(jià)值函數(shù),因此當(dāng)Q(s,a)降低時(shí),機(jī)器人就會(huì)更傾向于選擇動(dòng)作空間中的其他動(dòng)作,從而探索新的狀態(tài),提高網(wǎng)絡(luò)收斂速度,避免收斂于局部最優(yōu)。
在強(qiáng)化學(xué)習(xí)過程中,智能體需要做出動(dòng)作來與環(huán)境進(jìn)行交互,從而獲取獎(jiǎng)勵(lì)值。根據(jù)獎(jiǎng)勵(lì)值更新網(wǎng)絡(luò)參數(shù)和學(xué)習(xí)更優(yōu)的行為策略[24]。因此,獎(jiǎng)勵(lì)函數(shù)是基于強(qiáng)化學(xué)習(xí)的路徑規(guī)劃的重要部分,其設(shè)置的好壞會(huì)直接影響算法路徑規(guī)劃的效果和網(wǎng)絡(luò)的收斂情況。傳統(tǒng)DQN 算法中獎(jiǎng)勵(lì)函數(shù)的設(shè)置方式如式(8)所示:
其中:C1通常為正數(shù);C2通常為負(fù)數(shù)。
在傳統(tǒng)DQN 算法的獎(jiǎng)勵(lì)函數(shù)中,機(jī)器人除了到達(dá)目標(biāo)點(diǎn)和規(guī)劃失敗時(shí)能夠獲取獎(jiǎng)勵(lì)值外,在其他狀態(tài)下均無法獲得即時(shí)有效的反饋。雖然機(jī)器人通過訓(xùn)練仍然能夠規(guī)劃出所求路徑,但這個(gè)過程通常需要大量的回合且規(guī)劃出的路徑往往并非最優(yōu)。因此,重新設(shè)計(jì)獎(jiǎng)勵(lì)函數(shù),如式(9)所示:
在式(9)中,機(jī)器人到達(dá)目標(biāo)點(diǎn)時(shí)獲得獎(jiǎng)勵(lì)C1(C1>0),發(fā)生碰撞時(shí)獲得獎(jiǎng)勵(lì)C2(C2<0),其他情況下機(jī)器人獲得的獎(jiǎng)勵(lì)為,其中,K是獎(jiǎng)勵(lì)函數(shù)調(diào)整參數(shù),θ為機(jī)器人移動(dòng)前從機(jī)器人所在位置指向目標(biāo)點(diǎn)位置的向量n1與機(jī)器人移動(dòng)結(jié)束后的方向向量n2的夾角,θ?(0,π)。θ角示意 圖如圖2所示。
圖2 θ 角示意圖Fig.2 Diagram of the angle θ
d是機(jī)器人做出行動(dòng)之前與目標(biāo)點(diǎn)的距離,通過歐氏距離式(10)計(jì)算得到:
其中:(x1,y1)是機(jī)器人尚未移動(dòng)時(shí)的位置坐標(biāo);(x2,y2)為目標(biāo)點(diǎn)的位置坐標(biāo)。在未到達(dá)目標(biāo)點(diǎn)且未發(fā)生碰撞的情況下,獎(jiǎng)勵(lì)值與距離d成反比。因?yàn)闄C(jī)器人與目標(biāo)點(diǎn)之間的距離越遠(yuǎn),兩者之間存在障礙等不確定因素的概率越大,所以智能體徑直靠近目標(biāo)點(diǎn)并不一定總是最優(yōu)策略。
路徑規(guī)劃問題是指移動(dòng)機(jī)器人能夠規(guī)劃出一條到達(dá)終點(diǎn)且避開障礙物的最優(yōu)路徑[25]。為了驗(yàn)證ERDQN 算法的有效性,將ERDQN 算法應(yīng)用在機(jī)器人路徑規(guī)劃上并設(shè)計(jì)了相應(yīng)的對(duì)比實(shí)驗(yàn)。圖3 為基于ERDQN 算法的移動(dòng)機(jī)器人路徑規(guī)劃流程。
圖3 基于ERDQN 的機(jī)器人路徑規(guī)劃流程Fig.3 Procedure of robot path planning based on ERDQN
在路徑規(guī)劃實(shí)驗(yàn)中,機(jī)器人每到達(dá)一次目標(biāo)點(diǎn),則記作一次成功的路徑規(guī)劃,得分為1,并繼續(xù)尋找下一個(gè)隨機(jī)生成的新目標(biāo)點(diǎn),當(dāng)超時(shí)或發(fā)生碰撞時(shí)游戲結(jié)束。如果直到游戲結(jié)束機(jī)器人都沒有到達(dá)一個(gè)目標(biāo)點(diǎn),則記本局得分為0,否則根據(jù)該局游戲中機(jī)器人到達(dá)的目標(biāo)點(diǎn)數(shù)量記錄相應(yīng)的得分。
實(shí)驗(yàn)設(shè)定機(jī)器人每到達(dá)一個(gè)目標(biāo)點(diǎn)則增加一個(gè)單位長(zhǎng)度。這種設(shè)定使得機(jī)器人不僅需要躲避障礙,還需要避免與自身發(fā)生碰撞。在多次連續(xù)搜尋目標(biāo)點(diǎn)的情況下,增加了機(jī)器人規(guī)劃路徑的難度。
實(shí)驗(yàn)獎(jiǎng)勵(lì)函數(shù)采用改進(jìn)的獎(jiǎng)勵(lì)函數(shù),如式(11)所示:
上述設(shè)定限制了移動(dòng)機(jī)器人無法向后方移動(dòng),因此在本文實(shí)驗(yàn)中機(jī)器人的動(dòng)作空間包含3 個(gè)動(dòng)作,如圖4所示,分別為向前移動(dòng)、向左移動(dòng)和向右移動(dòng)。
圖4 機(jī)器人動(dòng)作空間Fig.4 Action space of the robot
首先,設(shè)置消融實(shí)驗(yàn),將基于概率的狀態(tài)探索DQN 算法與基于改進(jìn)獎(jiǎng)勵(lì)函數(shù)的DQN 算法分別與傳統(tǒng)DQN 算法進(jìn)行對(duì)比,再將上述2 種算法與ERDQN 算法進(jìn)行對(duì)比,驗(yàn)證ERDQN 算法的有效性和穩(wěn)定性。其次,將ERDQN 算法與傳統(tǒng)路徑規(guī)劃算法進(jìn)行對(duì)比,驗(yàn)證ERDQN 算法相較于傳統(tǒng)路徑規(guī)劃算法的優(yōu)越性。最后,將ERDQN 與DDQN算法融合為ERDDQN 算法,與DTDDQN 算法進(jìn)行對(duì)比[26],進(jìn)一步驗(yàn)證基于概率的狀態(tài)探索DQN 和基于改進(jìn)獎(jiǎng)勵(lì)函數(shù)的DQN 算法的有效性和魯棒性。
為了簡(jiǎn)化實(shí)驗(yàn),使用PyGame 搭建實(shí)驗(yàn)環(huán)境,深度學(xué)習(xí)框架為PyTorch。實(shí)驗(yàn)設(shè)計(jì)如下:
1)消融實(shí)驗(yàn)。實(shí)驗(yàn)環(huán)境為如圖5(a)所示的環(huán)境1。將DQN、基于概率的狀態(tài)探索DQN、基于改進(jìn)獎(jiǎng)勵(lì)函數(shù)的DQN 和ERDQN 這4 種算法進(jìn)行比較,驗(yàn)證基于概率的狀態(tài)探索DQN 與基于改進(jìn)獎(jiǎng)勵(lì)函數(shù)的DQN 兩種算法的有效性。對(duì)比指標(biāo)為機(jī)器人的平均得分和路徑規(guī)劃長(zhǎng)度。
圖5 實(shí)驗(yàn)環(huán)境Fig.5 Experimental environments
2)與傳統(tǒng)算法的對(duì)比。實(shí)驗(yàn)環(huán)境為如圖5(b)所示的環(huán)境2。將ERDQN 算法與A*算法、RRT 算法進(jìn)行比較,驗(yàn)證ERDQN 算法相較于傳統(tǒng)路徑規(guī)劃算法的優(yōu)越性。對(duì)比指標(biāo)為路徑規(guī)劃長(zhǎng)度和拐點(diǎn)個(gè)數(shù)。
3)與改進(jìn)算法的對(duì)比。實(shí)驗(yàn)環(huán)境為如圖5(b)所示的環(huán)境2。將ERDDQN 與DTDDQN 算法進(jìn)行比較,進(jìn)一步驗(yàn)證基于概率的狀態(tài)探索DQN 與基于改進(jìn)獎(jiǎng)勵(lì)函數(shù)的DQN 兩種算法的有效性和魯棒性。對(duì)比指標(biāo)為機(jī)器人所獲得的平均得分和路徑規(guī)劃的長(zhǎng)度。環(huán)境2 相較于環(huán)境1 更加復(fù)雜,路徑規(guī)劃的難度更大,可以更好地驗(yàn)證算法的魯棒性。
在圖5中,深灰色方格代表移動(dòng)機(jī)器人,黑色方格代表障礙物,淺灰色方格代表目標(biāo)點(diǎn)的位置。目標(biāo)點(diǎn)由程序隨機(jī)生成。當(dāng)機(jī)器人到達(dá)現(xiàn)有的目標(biāo)點(diǎn)時(shí),則刪除原有目標(biāo)點(diǎn),并隨機(jī)生成一個(gè)新的目標(biāo)點(diǎn)。
當(dāng)網(wǎng)絡(luò)訓(xùn)練完畢后,將隨機(jī)生成目標(biāo)點(diǎn)更改為按照一定的次序在10 個(gè)不同的位置上生成目標(biāo)點(diǎn)。當(dāng)機(jī)器人到達(dá)一個(gè)目標(biāo)點(diǎn)時(shí),則按照設(shè)定生成下一個(gè)目標(biāo)點(diǎn),直至機(jī)器人到達(dá)所有10 個(gè)目標(biāo)點(diǎn),則認(rèn)為算法完成了一次路徑規(guī)劃,否則為一次失敗的路徑規(guī)劃。測(cè)試環(huán)境如圖6 所示,其中目標(biāo)點(diǎn)的序號(hào)即代表目標(biāo)點(diǎn)生成的次序。實(shí)驗(yàn)配置如表1所示。
圖6 測(cè)試環(huán)境Fig.6 Testing environments
在路徑規(guī)劃實(shí)驗(yàn)中,ERDQN 算法的網(wǎng)絡(luò)模型結(jié)構(gòu)如圖7 所示。網(wǎng)絡(luò)模型參數(shù)如表2 所示。
表2 ERDQN 算法的網(wǎng)絡(luò)模型設(shè)置Table 2 Setting of network model of ERDQN algorithm 單位:個(gè)
神經(jīng)網(wǎng)絡(luò)由3 層全連接神經(jīng)元結(jié)構(gòu)構(gòu)成,分別為輸入層、隱藏層和輸出層。網(wǎng)絡(luò)的輸入信息是一個(gè)11 維的狀態(tài)張量,故輸入層由11 個(gè)神經(jīng)元組成。隱藏層由256 個(gè)神經(jīng)元組成。網(wǎng)絡(luò)輸出是一個(gè)3 維張量,表示動(dòng)作空間中3 個(gè)動(dòng)作的Q 值,因此輸出層由3 個(gè)神經(jīng)元組成。激活函數(shù)為ReLU,優(yōu)化器使用Adam,損失函數(shù)為MSELoss,其他實(shí)驗(yàn)參數(shù)如表3所示。
在本文路徑規(guī)劃實(shí)驗(yàn)中,探索率均初始化為1,并根據(jù)模擬退火的原則逐漸降低[27]。探索率的更新方法如式(12)所示:
其中:T表示人工設(shè)置當(dāng)探索率降低為0 時(shí)的迭代次數(shù);n表示當(dāng)前正在進(jìn)行的訓(xùn)練回合數(shù);N為超參數(shù)。在實(shí)驗(yàn)中設(shè)置T=4 000、N=10 000。通過模擬退火的方式逐步降低探索率,可以使機(jī)器人獲取更充分的環(huán)境信息,從而得到更加豐富的樣本來訓(xùn)練更穩(wěn)定的網(wǎng)絡(luò)。
4.3.1 消融實(shí)驗(yàn)
在環(huán)境1 中4 種算法均進(jìn)行了6 000 個(gè)回合的訓(xùn)練,訓(xùn)練的平均得分對(duì)比如表4、圖8 所示。由表4、圖8 可以看出,基于概率的狀態(tài)探索DQN 算法和基于改進(jìn)獎(jiǎng)勵(lì)函數(shù)的DQN 算法在整體上優(yōu)于DQN 算法。當(dāng)進(jìn)行了6 000 個(gè)回合的訓(xùn)練時(shí):DQN 算法的平均得分為1.638;基于概率的狀態(tài)探索DQN 算法的平均得分為1.733,相對(duì)DQN 算法提高了5.8%;基于改進(jìn)獎(jiǎng)勵(lì)函數(shù)的DQN 算法的平均得分為1.813,相對(duì)DQN 算法提高了10.7%;ERDQN 算法的平均得分為1.947,相對(duì)DQN 算法提高了18.9%。由此可見:基于概率的狀態(tài)探索和優(yōu)化獎(jiǎng)勵(lì)函數(shù)的改進(jìn)算法都能有效提高DQN 算法的性能,使算法避開障礙物并獲取更高得分的次數(shù)更多,規(guī)劃出的路徑更接近于最優(yōu);ERDQN 算法融合了基于概率的狀態(tài)探索DQN 和基于改進(jìn)獎(jiǎng)勵(lì)函數(shù)的DQN 兩種算法,進(jìn)一步優(yōu)化了DQN 算法的性能。
表4 4 種算法的平均得分Table 4 Average scores of four algorithms
圖8 4 種算法的平均得分曲線圖Fig.8 Average score curve graph of four algorithms
4 種算法的路徑規(guī)劃線路圖如圖9 所示,4 種算法規(guī)劃的路徑長(zhǎng)度如表5 所示。由圖9、表5 可以看出:DQN 算法規(guī)劃出的路徑長(zhǎng)度最長(zhǎng),為149;基于概率的狀態(tài)探索DQN 算法和基于改進(jìn)獎(jiǎng)勵(lì)函數(shù)的DQN 算法規(guī)劃出的路徑長(zhǎng)度相同,為121;ERDQN算法規(guī)劃出的路徑長(zhǎng)度最短,為119,相較于DQN 算法規(guī)劃出的路徑長(zhǎng)度減少了20.1%。由此可以進(jìn)一步證明基于概率的狀態(tài)探索和優(yōu)化獎(jiǎng)勵(lì)函數(shù)的改進(jìn)算法的有效性。
表5 4 種算法規(guī)劃的路徑長(zhǎng)度Table 5 Path lengths planned by four algorithms
圖9 環(huán)境1 中的4 種算法路徑規(guī)劃線路Fig.9 Path planning routes for four algorithms in environment 1
圖10 為DQN 與ERDQN 算法單次路徑規(guī)劃的平均獎(jiǎng)勵(lì)值變化。由圖10 可以看出,在一定的訓(xùn)練回合內(nèi),DQN 和ERDQN 算法的平均獎(jiǎng)勵(lì)值都能穩(wěn)定在一定范圍內(nèi),但ERDQN 算法在2 000 個(gè)回合左右收斂,而DQN 算法在2 500 個(gè)回合左右收斂,ERDQN 算法的收斂速度相較于DQN 算法提前了500 個(gè)回合,且收斂后ERDQN 算法的平均獎(jiǎng)勵(lì)值比DQN 算法更高,證明了ERDQN 算法的性能優(yōu)于DQN 算法。
圖10 DQN 與ERDQN 算法的平均獎(jiǎng)勵(lì)值Fig.10 Average reward values between DQN and ERDQN algorithms
綜上所述,相較于傳統(tǒng)DQN 算法,ERDQN 算法具有更優(yōu)的性能和更好的收斂性,可以使機(jī)器人在更少的訓(xùn)練回合內(nèi)獲取更高的得分并規(guī)劃出更優(yōu)路徑。
4.3.2 與傳統(tǒng)算法的對(duì)比
將ERDQN 算法與A*、RRT 傳統(tǒng)路徑規(guī)劃算法進(jìn)行對(duì)比。圖11 為3 種算法的路徑規(guī)劃線路圖,表6為3 種算法的路徑規(guī)劃長(zhǎng)度,表7 為3 種算法的路徑規(guī)劃拐點(diǎn)個(gè)數(shù)。由圖11、表6、表7 可以看出,在環(huán)境2 中,ERDQN 算法與A*算法規(guī)劃的路徑長(zhǎng)度均為131,低于RRT 算法的163。ERDQN 算法規(guī)劃出的路徑拐點(diǎn)個(gè)數(shù)為27,小于A*算法的32,并且小于RRT 算法的74??梢姡珽RDQN 算法在路徑規(guī)劃的效果上優(yōu)于傳統(tǒng)A*算法和RRT 算法。
表6 3 種算法規(guī)劃的路徑長(zhǎng)度Table 6 Path length planned by three algorithms
表7 3 種算法規(guī)劃路徑中的拐點(diǎn)個(gè)數(shù)Table 7 Number of inflection points in path planned by three algorithms 單位:個(gè)
4.3.3 與改進(jìn)算法的對(duì)比
將基于概率的狀態(tài)探索DQN 與基于改進(jìn)獎(jiǎng)勵(lì)函數(shù)的DQN 兩種算法與DDQN 算法結(jié)合為ERDDQN 算法,與DTDDQN 算法進(jìn)行對(duì)比,在環(huán)境2 中進(jìn)行對(duì)比實(shí)驗(yàn)。2 種算法均進(jìn)行了6 000 個(gè)訓(xùn)練回合。實(shí)驗(yàn)指標(biāo)為機(jī)器人的平均得分和路徑長(zhǎng)度。平均得分如表8、圖12 所示。由表8、圖12 可以看出,當(dāng)訓(xùn)練進(jìn)行到第6 000 個(gè)回合時(shí),DTDDQN 算法的平均得分為1.303,ERDDQN 算法的平均得分為1.608,在整體上ERDDQN 算法的平均得分都要優(yōu)于DTDDQN 算法,且隨著迭代次數(shù)的增加,探索率不斷降低,到第4 000 個(gè)回合探索率降低為0 時(shí),DTDDQN 算法的平均得分有所下降,而ERDDQN算法的平均得分始終保持上升。
表8 2 種算法的平均得分Table 8 Average scores of two algorithms
圖12 2 種算法的平均得分曲線圖Fig.12 Average score curve graph of two algorithms
2 種算法的路徑規(guī)劃線路如圖13 所示,2 種算法規(guī)劃出的路徑長(zhǎng)度如表9 所示。由圖13、表9 可以看出,在測(cè)試環(huán)境2 中進(jìn)行機(jī)器人路徑規(guī)劃時(shí),ERDDQN 和DTDDQN 算法規(guī)劃的路徑長(zhǎng)度分別為133 和169,進(jìn)一步證明了ERDDQN 算法在路徑規(guī)劃性能上要優(yōu)于DTDDQN 算法。
表9 2 種算法規(guī)劃的路徑長(zhǎng)度Table 9 Path lengths planned by two algorithms
圖13 環(huán)境2 中2 種算法的路徑規(guī)劃線路Fig.13 Path planning routes for two algorithms in environment 2
由此可以看出,ERDDQN 算法相較DTDDQN算法探索能力更強(qiáng),能夠獲取更優(yōu)路徑,更好地將環(huán)境探索與信息利用相結(jié)合。
本文對(duì)傳統(tǒng)DQN 算法進(jìn)行改進(jìn),提出ERDQN算法。一方面,通過修改Q 值的計(jì)算方式,使得在網(wǎng)絡(luò)訓(xùn)練過程中,某個(gè)狀態(tài)重復(fù)出現(xiàn)的次數(shù)越多,下一次出現(xiàn)該狀態(tài)的概率越低,從而使機(jī)器人可以更好地探索新狀態(tài),更快地獲取更優(yōu)的路徑。另一方面,改進(jìn)了獎(jiǎng)勵(lì)函數(shù),通過結(jié)合機(jī)器人的移動(dòng)方向和當(dāng)前時(shí)刻機(jī)器人與目標(biāo)點(diǎn)的距離,使機(jī)器人除到達(dá)目標(biāo)點(diǎn)和發(fā)生碰撞的情況以外也能獲得即時(shí)反饋,優(yōu)化了機(jī)器人路徑規(guī)劃的性能。通過多種環(huán)境下的實(shí)驗(yàn)和測(cè)試分別驗(yàn)證了ERDQN 算法的有效性和穩(wěn)定性。但由于本文僅研究了靜態(tài)避障,未考慮存在動(dòng)態(tài)障礙的情況,因此后續(xù)將針對(duì)ERDQN 算法做進(jìn)一步改進(jìn),在環(huán)境中添加動(dòng)態(tài)障礙物,使其在更復(fù)雜的環(huán)境中仍能夠獲取較優(yōu)的路徑。