武 曲,張 義,郭 坤,王 璽
(青島理工大學(xué) 信息與控制工程學(xué)院,山東 青島 266520)
路徑規(guī)劃是人工智能領(lǐng)域的一個(gè)重要研究方向,在各個(gè)領(lǐng)域得到了廣泛的應(yīng)用.迄今已經(jīng)有許多經(jīng)典的路徑規(guī)劃算法被提出.
Dijkstra算法是一種很早就被提出的路徑規(guī)劃算法[1],它將環(huán)境抽象為一個(gè)圖問(wèn)題,利用廣度優(yōu)先搜索策略遍歷圖,直到找到最短路徑.A*算法是Dijkstra算法[2]的改進(jìn).在原有算法的基礎(chǔ)上增加了啟發(fā)式函數(shù),并定義了一種當(dāng)區(qū)域與擴(kuò)展點(diǎn)之間的一種度量作為擴(kuò)展優(yōu)先級(jí),在進(jìn)行路徑擴(kuò)展時(shí)會(huì)優(yōu)先擴(kuò)展優(yōu)先級(jí)高的節(jié)點(diǎn).但當(dāng)該方法用于處理多維復(fù)雜問(wèn)題時(shí),無(wú)論是把環(huán)境抽象為圖模型還是對(duì)圖模型求解都將變得很復(fù)雜.勢(shì)場(chǎng)法[3]把規(guī)劃空間看作物理學(xué)中的場(chǎng),把智能體看作一種粒子.障礙物對(duì)粒子產(chǎn)生排斥力,目標(biāo)對(duì)粒子產(chǎn)生引力.兩者的合力即為智能體的最終運(yùn)動(dòng)的方向.這種方法實(shí)時(shí)性較好,產(chǎn)生的路徑通常十分平滑,適合于機(jī)械臂一類(lèi)的應(yīng)用,缺點(diǎn)是在合力為0的位置智能體容易陷入局部最優(yōu)解.
近年來(lái),隨機(jī)人工智能的興起,很多基于人工智能的路徑規(guī)劃方法被提出,Chen等[4]提出了一種雙向神經(jīng)網(wǎng)絡(luò)來(lái)解決未知環(huán)境下的路徑規(guī)劃問(wèn)題.Wu等[5]將路徑規(guī)劃任務(wù)轉(zhuǎn)化為環(huán)境分類(lèi)任務(wù),使用CNN來(lái)進(jìn)行路徑規(guī)劃.Yu等[6]提出了一種基于神經(jīng)網(wǎng)絡(luò)的魯棒控制方案,并結(jié)合自適應(yīng)補(bǔ)償器和自適應(yīng)控制增益來(lái)實(shí)現(xiàn)具有避障能力的編隊(duì)控制.
強(qiáng)化學(xué)習(xí)是一類(lèi)應(yīng)用在未知環(huán)境的算法,作為機(jī)器學(xué)習(xí)的3大分支之一,不同于監(jiān)督學(xué)習(xí)和無(wú)監(jiān)督學(xué)習(xí),強(qiáng)化學(xué)習(xí)無(wú)需提供數(shù)據(jù),所有的學(xué)習(xí)資料都將從環(huán)境中獲取.智能體通過(guò)不斷的探索環(huán)境,根據(jù)不同的動(dòng)作產(chǎn)生的不同的反饋進(jìn)行模型的學(xué)習(xí),最終智能體將能以最優(yōu)策略在指定環(huán)境中完成任務(wù).
自V. Mnih等提出DQN[7]以來(lái),深度強(qiáng)化學(xué)習(xí)不斷取得突破性進(jìn)展,也有一些研究者嘗試通過(guò)深度強(qiáng)化學(xué)習(xí)解決路徑規(guī)劃問(wèn)題.Piotr Mirowski等[8]以多模態(tài)感知信息作為輸入,通過(guò)強(qiáng)化學(xué)習(xí)進(jìn)行決策來(lái)完成網(wǎng)格空間中的導(dǎo)航任務(wù).Panov等[9]使用神經(jīng)Q-Learning算法來(lái)完成網(wǎng)格環(huán)境下的路徑規(guī)劃任務(wù).Lei等[10]采用CNN和DDQN進(jìn)行動(dòng)態(tài)環(huán)境下的路徑規(guī)劃.Lv 等[11]提出了一種改進(jìn)的基于DQN的學(xué)習(xí)策略,在學(xué)習(xí)的初始階段,創(chuàng)建一個(gè)體驗(yàn)價(jià)值評(píng)價(jià)網(wǎng)絡(luò),當(dāng)發(fā)生路徑漫游現(xiàn)象時(shí),利用并行探索結(jié)構(gòu)考慮對(duì)漫游點(diǎn)之外的其他點(diǎn)的探索,提高體驗(yàn)池的廣度.
盡管上述方法在各自的領(lǐng)域都取得了不錯(cuò)的效果,但是他們實(shí)現(xiàn)路徑規(guī)劃仍存在一些不足之處.他們大多數(shù)只是在靜態(tài)環(huán)境中進(jìn)行路徑規(guī)劃,缺乏處理動(dòng)態(tài)場(chǎng)景的能力;動(dòng)作空間或狀態(tài)空間是離散的,這與連續(xù)的現(xiàn)實(shí)環(huán)境是不符合的,而且在某些情況下,離散動(dòng)作得出的最優(yōu)解還可以被連續(xù)動(dòng)作進(jìn)一步優(yōu)化;上述方法實(shí)現(xiàn)的路徑規(guī)劃多是從固定起點(diǎn)到固定終點(diǎn)的路徑規(guī)劃,這相當(dāng)于模型只學(xué)習(xí)到了一個(gè)局部最優(yōu)解,并不能完成整個(gè)環(huán)境的路徑規(guī)劃,這對(duì)指導(dǎo)現(xiàn)實(shí)應(yīng)用具有很大的局限性.
為了實(shí)現(xiàn)全局動(dòng)態(tài)環(huán)境下的路徑規(guī)劃任務(wù),本文提出了一種結(jié)合了LSTM的路徑規(guī)劃算法.本文算法以環(huán)境圖像作為輸入,通過(guò)預(yù)訓(xùn)練的自動(dòng)編碼器進(jìn)行降維提取特征.在訓(xùn)練模型時(shí),以連續(xù)4幀圖片降維后的特征信息作為輸入,通過(guò)LSTM構(gòu)建的DDPG模型進(jìn)行路徑規(guī)劃,利用LSTM處理時(shí)序數(shù)據(jù)的特性,實(shí)現(xiàn)了在動(dòng)作選擇時(shí)進(jìn)行有預(yù)測(cè)的規(guī)避環(huán)境中的危險(xiǎn)區(qū)域的動(dòng)態(tài)路徑規(guī)劃.
自動(dòng)編碼器(Autoencoder)可以看做是利用深度學(xué)習(xí)的對(duì)數(shù)據(jù)進(jìn)行降維的一種方式,通過(guò)一系列的神經(jīng)網(wǎng)絡(luò)計(jì)算將高維數(shù)據(jù)壓縮到低維,再以對(duì)稱(chēng)的方式將數(shù)據(jù)復(fù)原,其結(jié)構(gòu)圖如圖1所示.
圖1 自動(dòng)編碼器Fig.1 Autoencoder
當(dāng)編碼器模型收斂后即可認(rèn)為中間的低維數(shù)據(jù)為壓縮后的降維數(shù)據(jù),再對(duì)低維數(shù)據(jù)進(jìn)行其他操作,即可在保證達(dá)到與原數(shù)據(jù)相同效果的同時(shí),亦能極大地降低操作過(guò)程的復(fù)雜度.
循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)是一種處理時(shí)序數(shù)據(jù)的神經(jīng)網(wǎng)絡(luò),RNN以一條時(shí)序數(shù)據(jù)為輸入,其結(jié)構(gòu)單元如圖2(a)所示,在一個(gè)計(jì)算單元的計(jì)算中,輸入部分除當(dāng)前時(shí)刻數(shù)據(jù)xt之外,還有一項(xiàng)ht-1,該數(shù)據(jù)是由之前的t-1個(gè)時(shí)刻的數(shù)據(jù)傳導(dǎo)計(jì)算而得,同樣地,RNN在t時(shí)刻的輸出,除了yt之外,還會(huì)生成一項(xiàng)ht,而ht則是包含了前t個(gè)時(shí)刻的信息,ht將被傳送到t+1時(shí)刻參與到t+1時(shí)刻的輸出的計(jì)算過(guò)程中.
RNN的這種結(jié)構(gòu)設(shè)計(jì),使得RNN網(wǎng)絡(luò)具有了預(yù)測(cè)的能力.但是,在經(jīng)典的RNN網(wǎng)絡(luò)中,隱藏單元ht所攜帶的信息是所有前t個(gè)時(shí)刻的信息,這樣的結(jié)構(gòu)產(chǎn)生了兩個(gè)問(wèn)題:有些前序時(shí)刻信息對(duì)當(dāng)前時(shí)刻的輸出而言并沒(méi)有價(jià)值,參與到當(dāng)前時(shí)刻輸出的計(jì)算過(guò)程中反而會(huì)造成誤差;大量的前序信息參與當(dāng)前時(shí)刻輸出的處理過(guò)程將增加計(jì)算的負(fù)擔(dān),該問(wèn)題在序列較長(zhǎng)時(shí)將會(huì)變得尤為突出.
長(zhǎng)短期記憶(Long Short-Term Memory,LSTM)是一種改進(jìn)的RNN,該網(wǎng)絡(luò)結(jié)構(gòu)在產(chǎn)生當(dāng)前時(shí)刻的輸出時(shí)又增加了一項(xiàng)遺忘門(mén)的設(shè)計(jì),通過(guò)一個(gè)狀態(tài)參量c來(lái)實(shí)現(xiàn)遺忘功能,LSTM的結(jié)構(gòu)但愿如圖2(b)所示.
圖2 RNN結(jié)構(gòu)單元Fig.2 RNN unit
在LSTM的當(dāng)前時(shí)刻,計(jì)算單元首先通過(guò)xt和ht-1計(jì)算出一個(gè)中間結(jié)果,而后通過(guò)狀態(tài)參量ct-1參與構(gòu)建的遺忘門(mén)進(jìn)行選擇,最終輸出yt、ht以及ct.LSTM的設(shè)計(jì)方式以一種更有效的方式利用了前序信息,同時(shí)也減少了中間過(guò)程攜帶的數(shù)據(jù)量,相對(duì)于經(jīng)典RNN具有更好的效果.
2.3.1 馬爾科夫決策
強(qiáng)化學(xué)習(xí)過(guò)程普遍遵循馬爾科夫決策過(guò)程( Markov Decision Process,MDP ).MDP由一個(gè)的四元組組成,其中S(State)為狀態(tài)空間,表示智能體在環(huán)境中可能存在的狀態(tài)描述的集合.A(Action)為動(dòng)作空間,表示智能體在環(huán)境中可能采取的動(dòng)作描述的集合.P(Policy)為轉(zhuǎn)移策略,處在某個(gè)狀態(tài)的智能體將依P進(jìn)行動(dòng)作選擇,進(jìn)而從一個(gè)狀態(tài)轉(zhuǎn)移到另一個(gè)狀態(tài).R(Reward)為回報(bào),表示智能體在某個(gè)狀態(tài)下采取某個(gè)動(dòng)作而從環(huán)境中獲得的回報(bào)值.強(qiáng)化學(xué)習(xí)的目標(biāo)即為一個(gè)求取最佳策略P,在環(huán)境中進(jìn)行執(zhí)行一系列的動(dòng)作,使智能體以最佳的回合回報(bào)完成給定任務(wù).
2.3.2 Actor-Critic
Actor-Critic[12]是Vijay R. Konda和John N. Tsitsiklis提出的一種應(yīng)用在馬爾科夫決策過(guò)程中的算法,該算法由兩部分構(gòu)成,用來(lái)生成決策動(dòng)作了Actor部分和用來(lái)對(duì)動(dòng)作進(jìn)行評(píng)價(jià)的Critic部分,Actor是動(dòng)作生成器,以當(dāng)前狀態(tài)作為輸入,輸出一個(gè)當(dāng)前狀態(tài)下的要執(zhí)行的動(dòng)作.Critic則是一個(gè)評(píng)價(jià)器,即值函數(shù)生成器,以當(dāng)前狀態(tài)和Actor生成的動(dòng)作為輸入,生成一個(gè)價(jià)值量,該量用以衡量Actor生成的動(dòng)作的優(yōu)劣.
在訓(xùn)練過(guò)程中,模型按式(1)所示對(duì)探索過(guò)程中產(chǎn)生的數(shù)據(jù)進(jìn)行處理.
(1)
使Critic模型學(xué)會(huì)為Actor生成的動(dòng)作進(jìn)行評(píng)估,Actor則向著Critic評(píng)價(jià)高的方向?qū)W習(xí).
2.3.3 Policy Grident
策略梯度(Policy Grident,PG)是由Richard S. Sutton等人提出的一種獨(dú)立與價(jià)值函數(shù)的、根據(jù)期望回報(bào)進(jìn)行策略更新的強(qiáng)化學(xué)習(xí)方式[13],PG采用回合更新的方式,在得到一條完成回合序列之后,對(duì)于序列中的狀態(tài)的值函數(shù)定義如式(3)所示.
(2)
多個(gè)回合后,st的值應(yīng)表示為多個(gè)回合的期望值,其定義如式(3)所示.
(3)
在PG方法中,策略π按式(4)所示進(jìn)行參數(shù)更新.
θ←θ+α▽?duì)萳ogπθ(st,at)Vt
(4)
2.3.4 DQN
深度Q網(wǎng)絡(luò)(Deep Q Network,DQN)是深度強(qiáng)化學(xué)習(xí)的一個(gè)重要算法,它通過(guò)神經(jīng)網(wǎng)絡(luò)來(lái)構(gòu)造狀態(tài)價(jià)值函數(shù),直接生成Q值,解決了傳統(tǒng)Q-Learning方法維度受限、無(wú)法處理未參與訓(xùn)練的狀態(tài)數(shù)據(jù)的問(wèn)題;通過(guò)off policy的策略解決了強(qiáng)化學(xué)習(xí)數(shù)據(jù)的強(qiáng)相關(guān)性導(dǎo)致的很難應(yīng)用深度學(xué)習(xí)方法處理的問(wèn)題.DQN由兩個(gè)結(jié)構(gòu)相同,時(shí)間差分的網(wǎng)絡(luò)構(gòu)成,通過(guò)式(5)所示的算法進(jìn)行網(wǎng)絡(luò)參數(shù)的更新,由DQN開(kāi)始,圍繞深度強(qiáng)化學(xué)習(xí)不斷涌現(xiàn)出許多優(yōu)秀的研究成果.
(5)
2.3.5 DDPG
DDPG[14](Deep Deterministic Policy Gradient)算法結(jié)合了AC、PG、DQN中的諸多特點(diǎn),率先將深度強(qiáng)化學(xué)習(xí)擴(kuò)展到連續(xù)空間領(lǐng)域.DDPG整體采用Actor-Critic的框架結(jié)構(gòu),DDPG中的Actor和Critic兩部分都由神經(jīng)網(wǎng)絡(luò)來(lái)構(gòu)建,兩部分的網(wǎng)絡(luò)各自采用DQN的設(shè)計(jì)思路,分別為是兩個(gè)時(shí)間差分的網(wǎng)絡(luò).在Critic更新時(shí),采用策略梯度的更新方式、與傳統(tǒng)的策略梯度不同的是,DDPG采用一種確定性策略進(jìn)行動(dòng)作選擇.
在很多路徑規(guī)劃研究中,通常為智能體設(shè)置掃描射線,以此來(lái)觀察周?chē)沫h(huán)境,智能體需要對(duì)當(dāng)前周?chē)牟煌?lèi)型的實(shí)體進(jìn)行掃描,然后構(gòu)建包含到這些物體距離的向量,提供給模型進(jìn)行動(dòng)作選擇.使用掃描射線的方式雖然可以盡可能的使得智能體獲取周?chē)男畔?,但是仍然不可避免地?huì)信息遺漏,針對(duì)這種情況,本文采用圖像為模型提供輸入.圖像雖然極大地保留了環(huán)境的真實(shí)數(shù)據(jù),但是同樣存在著維度過(guò)大,模型難收斂的問(wèn)題.自動(dòng)編碼器是一種采用深度學(xué)習(xí)對(duì)數(shù)據(jù)進(jìn)行降維的方式,本文在處理圖像數(shù)據(jù)時(shí),首先采用預(yù)訓(xùn)練的編碼器對(duì)圖像數(shù)據(jù)進(jìn)行了降維.
為了降低高維圖像對(duì)模型收斂增加的復(fù)雜度問(wèn)題,本文設(shè)計(jì)了圖像編碼器對(duì)圖像數(shù)據(jù)進(jìn)行特征降維,本文構(gòu)建的圖像編碼器結(jié)構(gòu)如圖3所示.
圖3 LSTM DDPG結(jié)構(gòu)圖Fig.3 Structure of LSTM DDPG
編碼器首先對(duì)圖片進(jìn)行預(yù)處理,包括通過(guò)常規(guī)方法降低圖片尺寸和灰度化,然后對(duì)得到的灰色圖片進(jìn)行編碼和解碼過(guò)程,通過(guò)解碼后的圖像與編碼器的圖像的差值作為損失來(lái)擬合編碼器的參數(shù).表1所示為本文設(shè)計(jì)的編碼器參數(shù)表,本文編碼器由5層組成,前2層為編碼部分,后3層為解碼部分.
表1 編碼器參數(shù)Table 1 Parameters of autoencoder
本文算法的主要目標(biāo)是更好的避開(kāi)動(dòng)態(tài)危險(xiǎn)區(qū)域,根據(jù)到動(dòng)態(tài)危險(xiǎn)區(qū)域的距離來(lái)進(jìn)行規(guī)避誠(chéng)然是一種可行方式,但是這種被動(dòng)的響應(yīng)方式對(duì)整體的路徑規(guī)劃是不利的,它仍然避免不了智能體需要探索對(duì)應(yīng)區(qū)域才能進(jìn)行規(guī)避,這造成規(guī)劃路線上增加了一些額外的長(zhǎng)度.如果模型能預(yù)測(cè)環(huán)境的變化趨勢(shì),就可以避開(kāi)某些未來(lái)不能通過(guò)的區(qū)域,避免一些沒(méi)有結(jié)果的探索工作,直接規(guī)劃出一條最佳的可行路徑.本文利用
了循環(huán)神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)了這一設(shè)想,循環(huán)神經(jīng)網(wǎng)絡(luò)是一種用來(lái)處理時(shí)序數(shù)據(jù)的神經(jīng)網(wǎng)絡(luò),會(huì)結(jié)合前序信息來(lái)生成當(dāng)前時(shí)刻的輸出,當(dāng)前時(shí)刻的輸出參考了之前時(shí)刻信息的變化趨勢(shì),所以循環(huán)神經(jīng)網(wǎng)絡(luò)是一種具有預(yù)測(cè)功能的網(wǎng)絡(luò).LSTM的RNN的一種改進(jìn),解決了經(jīng)典RNN無(wú)差別攜帶前序信息帶來(lái)的弊端.DDPG是一個(gè)在連續(xù)動(dòng)作上有很好表現(xiàn)的強(qiáng)化學(xué)習(xí)算法,本文將LSTM融合到DDPG的框架中,構(gòu)建了如圖3所示的LSTM-DDPG算法.
其中Actor網(wǎng)絡(luò)由3層構(gòu)成,分別是兩層LSTM和1層全連接層,對(duì)于LSTM設(shè)置input size為400,隱藏層單元為64,之后接一個(gè)全連接層以64維數(shù)據(jù)為輸入計(jì)算生成2維的動(dòng)作輸出.Critic網(wǎng)絡(luò)首先對(duì)輸入的環(huán)境數(shù)據(jù)和動(dòng)作數(shù)據(jù)做分別處理,其中環(huán)境數(shù)據(jù)利用LSTM進(jìn)行處理,網(wǎng)絡(luò)設(shè)置與Actor中的LSTM部分設(shè)置相同;對(duì)于Actor產(chǎn)生的Action,用一個(gè)全連接層將2維輸入映射到20維;然后將上面兩步的輸出拼接一個(gè)向量傳遞給下一層的全連接層,由這個(gè)全連接層計(jì)算生成對(duì)Action的評(píng)價(jià)Q值.
本文模擬人類(lèi)的動(dòng)作行為方式設(shè)計(jì)了智能體的動(dòng)作空間,采用連續(xù)的動(dòng)作空間設(shè)計(jì),將動(dòng)作空間設(shè)計(jì)為兩個(gè)維度(δ,l),其中δ表示智能體的轉(zhuǎn)動(dòng)角度,取值范圍設(shè)定為(-180,180),其中當(dāng)δ<0時(shí),智能體向左轉(zhuǎn)動(dòng)相應(yīng)角度,當(dāng)δ>0時(shí),智能體向右轉(zhuǎn)動(dòng)相應(yīng)角度.l表示智能體執(zhí)行動(dòng)作的位移大小,取值范圍為(-0.7,0.7),其中l(wèi)<0當(dāng)時(shí),表示智能體后退相應(yīng)距離,l>0時(shí),表示智能體前進(jìn)相應(yīng)距離.
在強(qiáng)化學(xué)習(xí)中,智能體通過(guò)在環(huán)境獲得的累計(jì)回報(bào)來(lái)修正策略函數(shù)的參數(shù),因此,環(huán)境回報(bào)的設(shè)定對(duì)策略函數(shù)能否收斂到理想的狀態(tài)而言至關(guān)重要.為了驗(yàn)證本文方法處理動(dòng)態(tài)環(huán)境的能力,本文除了設(shè)計(jì)墻體這種單純的靜態(tài)障礙之外,還設(shè)計(jì)一種危險(xiǎn)區(qū)域,智能體接觸該區(qū)域即死亡,回合結(jié)束,視為一次失敗的路徑規(guī)劃.結(jié)合現(xiàn)實(shí)經(jīng)驗(yàn)和多次試驗(yàn)結(jié)果作為參考,本文進(jìn)行了以下環(huán)境回報(bào)的設(shè)定.
3.4.1 決策回報(bào)
在一條路徑生成的過(guò)程中,智能體通過(guò)一系列的動(dòng)作選擇在不同狀態(tài)間切換,為了能保證智能體能以最少的狀態(tài)切換次數(shù)即為了使智能體盡可能規(guī)劃出一條更短的路徑,智能體每執(zhí)行一步動(dòng)作,為智能體設(shè)置-1的回報(bào),即rstep=1.
3.4.2 碰壁回報(bào)
本文在環(huán)境中設(shè)置了墻體,用來(lái)圈圍邊界和構(gòu)建智能體前進(jìn)的障礙.對(duì)于智能體而言“撞墻”的行為是無(wú)意義的,不但增加了動(dòng)作執(zhí)行次數(shù),也不會(huì)增加位移,因此對(duì)于智能體撞墻這種行為應(yīng)該給予一定的負(fù)回報(bào),在本文中設(shè)置rwall=-1.
3.4.3 遇險(xiǎn)回報(bào)
本文設(shè)置了動(dòng)態(tài)變化的危險(xiǎn)區(qū)域來(lái)對(duì)提出的算法進(jìn)行驗(yàn)證,該區(qū)域設(shè)置在智能體和目標(biāo)位置之間,其體積會(huì)隨著時(shí)間動(dòng)態(tài)變化,對(duì)于智能體而言該區(qū)域的效果為在智能體接觸到該區(qū)域時(shí),智能體即死亡,回合結(jié)束,路徑規(guī)劃任務(wù)失敗,因此應(yīng)該對(duì)涉足該區(qū)域的智能體以最低的回報(bào)來(lái)使智能體遠(yuǎn)離該區(qū)域,在本文中設(shè)置rdanger=-50.
3.4.4 目標(biāo)回報(bào)
目標(biāo)區(qū)域是路徑規(guī)劃任務(wù)的最終目標(biāo),應(yīng)該給予其全局最大的回報(bào),引導(dǎo)智能體向著最終目標(biāo)進(jìn)行路徑規(guī)劃.在本文中設(shè)置rtarget=200.
綜上,設(shè)置環(huán)境回報(bào)如式(6)所示.
(6)
本文通過(guò)Unity-3D引擎構(gòu)進(jìn)行了強(qiáng)化學(xué)習(xí)環(huán)境的搭建,實(shí)驗(yàn)所用的軟硬件配置如下:CPU i7-8750H,內(nèi)存24G,顯卡GTX1060,顯存6G,軟件環(huán)境Unity2019.4.2f1,深度學(xué)習(xí)框架使用Pytorch.
在Unity工具中構(gòu)建如圖4所示的環(huán)境.
圖4 實(shí)驗(yàn)環(huán)境 Fig.4 Experimental environment
該環(huán)境由面積為40×20矩形區(qū)域構(gòu)成,在地面平面建立坐標(biāo)系,以矩形區(qū)域中點(diǎn)為坐標(biāo)原點(diǎn),分別以向右和向上為x軸,y軸的正方向.其中中部較小的圓形個(gè)體為智能體,半徑為0.5,在每個(gè)回合訓(xùn)練開(kāi)始時(shí)智能體將會(huì)隨機(jī)生成在環(huán)境中的任意位置.兩處黑色圓形區(qū)域?yàn)槲kU(xiǎn)區(qū)域,智能體碰撞到該區(qū)域即死亡,回合結(jié)束.該區(qū)域?yàn)閯?dòng)態(tài)變化區(qū)域,兩處危險(xiǎn)區(qū)域各自由初始半徑為0.5的規(guī)格隨智能體決策次數(shù)的增加而擴(kuò)大,其半徑依0.3單位/次的速度增加,此處之所以設(shè)置危險(xiǎn)區(qū)域依智能體決策次而變化,是因?yàn)閳?zhí)行一個(gè)回合的具體時(shí)間會(huì)因計(jì)算機(jī)處在不同狀態(tài)而有所差異,從而造成訓(xùn)練結(jié)果不穩(wěn)定.左邊危險(xiǎn)區(qū)域的底面圓心坐標(biāo)為(-6.5,-1.5),右邊危險(xiǎn)區(qū)域的底面圓心坐標(biāo)為(6,-6).圖中的灰色條形實(shí)體為墻體,該區(qū)域?yàn)殪o態(tài)障礙.左右兩面邊界墻的中線分別為x=±20.5,上下兩面邊界墻的中線分別為y=±10.5,內(nèi)部的障礙墻的中心線為x=10,墻的長(zhǎng)度為12.圖中右下角的深灰色區(qū)域?yàn)榘踩隹?,智能體到達(dá)此處視為路徑規(guī)劃成功的標(biāo)志.
根據(jù)上述設(shè)定,隨著智能體決策次數(shù)的增加,障礙墻下方的通道將會(huì)被危險(xiǎn)區(qū)域封堵,智能體只能選擇從上方的通道繞行到達(dá)終點(diǎn).另外,為了避免智能體在訓(xùn)練前期探索環(huán)境的階段不停地在環(huán)境中往返而不能結(jié)束一個(gè)回合,設(shè)定智能體單個(gè)回合的最大步數(shù)為200.
首先,通過(guò)隨機(jī)動(dòng)作的方式令智能體在環(huán)境中探索,獲得不同狀態(tài)下的環(huán)境截圖,為了減小模型訓(xùn)練的難度,在訓(xùn)練時(shí)將環(huán)境地面設(shè)置為白色,并為智能體設(shè)置添加一個(gè)箭頭用來(lái)指示方向.截取的原始圖像大小為1200×600.
在本文實(shí)驗(yàn)中,共截取1萬(wàn)張環(huán)境圖像用來(lái)訓(xùn)練編碼器.在正式訓(xùn)練之前,為了降低模型的處理難度,首先使用OpenCV模塊下的函數(shù)將截圖初步降維到200×100, 再對(duì)圖片進(jìn)行灰度化處理,處理后如圖5(a)所示.本文使用小批量梯度下降的方式訓(xùn)練自動(dòng)編碼器,設(shè)置學(xué)習(xí)率為0.01,經(jīng)過(guò)1000輪訓(xùn)練之后,模型趨于收斂.提取訓(xùn)練好的模型,對(duì)一張環(huán)境截圖進(jìn)行編碼解碼過(guò)程,得到如圖5所示“編碼-解碼”過(guò)程前后的兩張圖片對(duì)比,可以看到降維后的數(shù)據(jù)被比較完整的復(fù)原了,說(shuō)明本文構(gòu)建額的編碼器成功的完成了圖像數(shù)據(jù)降維的工作,訓(xùn)練的編碼器可以應(yīng)用到后續(xù)的任務(wù)中.
圖5 “編碼-解碼”過(guò)程前后的圖片F(xiàn)ig.5 Images before and after encode-decode
通過(guò)上一步的編碼器,環(huán)境圖像被壓縮到了400維的大小.通過(guò)連續(xù)4幀圖像編碼后的數(shù)據(jù)構(gòu)成時(shí)序數(shù)據(jù)作為L(zhǎng)STM-DDPG算法的輸入數(shù)據(jù).實(shí)驗(yàn)設(shè)置Actor學(xué)習(xí)率為0.001,Critic學(xué)習(xí)率為0.001,回報(bào)衰減設(shè)置為0.95,采用小批量梯度下降的方式進(jìn)行模型訓(xùn)練,批次大小設(shè)置為128;模型收斂后,收集到的訓(xùn)練過(guò)程中的數(shù)據(jù)變化如圖6所示.
圖6 LSTM DDPG模型訓(xùn)練數(shù)據(jù)Fig.6 Training data of LSTM DDPG
其中圖6(a)為Actor部分的損失變化曲線,圖6(b)為Critic部分的損失變化曲線,觀察兩圖可以發(fā)現(xiàn),模型的兩個(gè)部分都可以收斂,說(shuō)明本文設(shè)計(jì)的模型是合理的,具有可行性.圖6(c)為平均回合步數(shù)(/1000步)的變化,圖6(d)為平均回合回報(bào)(/1000步)的變化,結(jié)合兩圖可以發(fā)現(xiàn),在訓(xùn)練的前期,算法模型還不能進(jìn)行正確的路徑規(guī)劃,動(dòng)作選擇多為隨機(jī)動(dòng)作,智能體在環(huán)境中執(zhí)行較多的步數(shù)才能結(jié)束一個(gè)回合,結(jié)合圖6(d)可以發(fā)現(xiàn),此時(shí)智能體結(jié)束一個(gè)回合多因?yàn)橄萑胛kU(xiǎn)區(qū)域或達(dá)到回合步數(shù)上限而結(jié)束.在訓(xùn)練后期,算法模型逐漸收斂,平均回合步數(shù)和平均回報(bào)都趨于穩(wěn)定,回報(bào)穩(wěn)定在140上下,回合步數(shù)穩(wěn)定在60步左右,這基本上可以說(shuō)明智能體可以在不碰到墻壁和危險(xiǎn)區(qū)域的情況下到達(dá)目標(biāo)位置,進(jìn)一步說(shuō)明了本文的算法是可行的.
本文除了通過(guò)上述方式驗(yàn)證了提出算法的可行性,還在相同的環(huán)境下,設(shè)計(jì)了與經(jīng)典的A*算法、遺傳算法以及文獻(xiàn)[11](Improved DQN)和文獻(xiàn)[14](DDPG)中的深度強(qiáng)化學(xué)習(xí)方法實(shí)現(xiàn)效果的對(duì)比實(shí)驗(yàn).對(duì)比實(shí)驗(yàn)分別以環(huán)境中的3處為起點(diǎn)測(cè)試3種算法的路徑規(guī)劃能力,這3個(gè)點(diǎn)分別是(5,0)、(-10,5)和(-10,-5),圖7給出了LSTM-DDPG與其他4種算法的規(guī)劃路徑結(jié)果對(duì)比.
*為了避免軌跡被危險(xiǎn)區(qū)域遮擋,在展示軌跡時(shí)將危險(xiǎn)區(qū)域設(shè)定為了初始化狀態(tài),其中(b)和(c)中A*算法產(chǎn)生的路徑在中途停止是因?yàn)榻佑|危險(xiǎn)區(qū)域而結(jié)束.
其中圖7(a)表示以(-10,5)為起點(diǎn)時(shí)5種路徑規(guī)劃算法所規(guī)劃的路徑,圖7(b)表示以(-10,-5)為起點(diǎn)時(shí)5種路徑規(guī)劃算法所規(guī)劃的路徑.表2所示是LSTM-DDPG同其他4種算法進(jìn)行路徑規(guī)劃的相關(guān)數(shù)據(jù).
表2 LSTM-DDPG與其他算法的路徑規(guī)劃對(duì)比Table 2 Comparison of LSTM-DDPG with other algorithms in path planning
通過(guò)就表2中的數(shù)據(jù)進(jìn)行橫向?qū)Ρ?,發(fā)現(xiàn)本文提出的算法在同等條件下?lián)碛休^好的表現(xiàn).在以離目標(biāo)點(diǎn)比較近的(0,5)點(diǎn)為起點(diǎn)時(shí),A*算法取得了最好的表現(xiàn),可以看到 A*算法所規(guī)劃的軌跡為直線,是以距離最短,回報(bào)值最佳.離散動(dòng)作的強(qiáng)化學(xué)習(xí)算法Improved DQN的取得了次之的效果.遺傳算法和DDPG在躲避動(dòng)態(tài)危險(xiǎn)時(shí)產(chǎn)生了撞墻的動(dòng)作,LSTM-DDPG算法所規(guī)劃的路徑雖然并非最短,但是相對(duì)較為平滑,也沒(méi)有產(chǎn)生撞墻的行為.在選擇較遠(yuǎn)處的點(diǎn)為起點(diǎn),其中與目標(biāo)之間的環(huán)境更復(fù)雜時(shí),A*算法的表現(xiàn)不佳,不能完成路徑規(guī)劃任務(wù),這是因?yàn)锳*算法在進(jìn)行路徑規(guī)劃時(shí)只能以初始環(huán)境為參考進(jìn)行規(guī)劃,可以看出A*算法缺乏處理動(dòng)態(tài)環(huán)境的能力.同樣是離散動(dòng)作的強(qiáng)化學(xué)習(xí)算法Improved DQN雖然完成了路徑規(guī)劃,但是在面對(duì)危險(xiǎn)區(qū)域時(shí)沒(méi)有預(yù)測(cè)能力,又因?yàn)榭晒┻x擇的動(dòng)作有限,規(guī)劃出的路徑不如連續(xù)動(dòng)作的算法所規(guī)劃的路徑效果好.在連續(xù)動(dòng)作的算法中,相較于遺傳算法和DDPG,可以看到本文算法生成的軌跡更加平滑,路徑更短,回報(bào)更高,這是因?yàn)檫z傳算法和DDPG雖然具有處理動(dòng)態(tài)環(huán)境的能力,但是也只是被動(dòng)的應(yīng)對(duì)變化的環(huán)境,規(guī)劃的路徑中增加了對(duì)某些區(qū)域的探索.而本文的算法具有預(yù)測(cè)環(huán)境變化的能力,該特性在圖7(b)有較為明顯的體現(xiàn),可以看到其他算法會(huì)向右下方的通道進(jìn)行探索,本文算法則預(yù)測(cè)到了右下方的通道將會(huì)被封堵,直接選擇從右上方通過(guò)到達(dá)目標(biāo)地點(diǎn),減少了探索過(guò)程的路徑長(zhǎng)度,使規(guī)劃的總路徑最短.綜上,本文的算法在動(dòng)態(tài)路徑規(guī)劃任務(wù)中能夠取得較好的表現(xiàn).
本文針對(duì)傳統(tǒng)的路徑規(guī)劃算法多基于靜態(tài)環(huán)境;缺乏對(duì)動(dòng)態(tài)環(huán)境的處理能力的問(wèn)題,提出了一種結(jié)合LSTM的強(qiáng)化學(xué)習(xí)路徑規(guī)劃算法.本文的方法以環(huán)境圖像作為輸入,首先構(gòu)造了能夠壓縮圖像特征的編碼器,在盡可能完整地保留環(huán)境圖像原始信息的前提下,降低圖像的特征維度,進(jìn)而從整體上降低了路徑規(guī)劃任務(wù)的復(fù)雜程度.本文基于在連續(xù)動(dòng)作空間上具有良好表現(xiàn)的DDPG算法,在DDPG算法中結(jié)合了LSTM結(jié)構(gòu),利用LSTM能夠處理時(shí)序數(shù)據(jù)的特性,使其在生成動(dòng)作時(shí)能夠有選擇的參考之前時(shí)刻的信息,做出基于對(duì)環(huán)境預(yù)測(cè)的動(dòng)作輸出,預(yù)先規(guī)避環(huán)境中可能發(fā)生的危險(xiǎn).最后通過(guò)實(shí)驗(yàn)與經(jīng)典路徑規(guī)劃算法和其他強(qiáng)化學(xué)習(xí)算法進(jìn)行性能對(duì)比,證明了本文算法對(duì)動(dòng)態(tài)環(huán)境的預(yù)測(cè)能力以及路徑規(guī)劃的高效性.