張仕充,時宏偉
(四川大學(xué)計算機學(xué)院,成都610065)
飛行器的智能避障指的是在存在障礙物的三維空間環(huán)境中,從出發(fā)點自主避開多個障礙物體順利達到目標(biāo)位置的過程。飛行器具有智能避障的能力在無人機導(dǎo)航、農(nóng)業(yè)無人機作業(yè)、無人機救援、民航二次雷達監(jiān)視以及戰(zhàn)場態(tài)勢感知決策等場景下具有十分重要的應(yīng)用意義。
目前,在類似的避障路徑規(guī)劃問題中,已經(jīng)有多種解決算法,例如遺傳算法[1]、蟻群算法[2]等啟發(fā)式算法。但是這些算法存在觀察維度低、局部收斂、動作選擇空間離散化以及計算量太大等問題,很難運用在飛行器的智能避障場景下。而強化學(xué)習(xí)[3]作為機器學(xué)習(xí)的一個熱門研究領(lǐng)域,其基本思想是通過智能體與環(huán)境進行交互,從環(huán)境中獲取一定的獎賞值,通過最大化地累計獎賞值并進行學(xué)習(xí),從而找到物體到達目標(biāo)地點的最優(yōu)策略。其基本過程如圖1所示。飛行器的態(tài)勢處于一個連續(xù)變化空間中,并且其在三維空間中進行動作選擇的空間也是一個連續(xù)空間。傳統(tǒng)的基于值函數(shù)的Q-learning[4]和SARSA的強化學(xué)習(xí)方法解決連續(xù)變化空間的問題是通過將狀態(tài)動作值離散映射到一個Q表中,而連續(xù)動作空間和狀態(tài)空間使用Q表進行存取是一種非常耗內(nèi)存并且低效的一種方式。為了改進使用Q表的缺點,相關(guān)研究提出了Deep Q Network(DQN)算法[5],該算法使用神經(jīng)網(wǎng)絡(luò)來對狀態(tài)值進行擬合,代替Q表,提高了狀態(tài)動作空間映射效率且大大減少存儲占用空間。與前文提到的啟發(fā)式算法類似,DQN算法雖然效率更高,但是在面對高維觀察空間里,同樣只能處理離散和低維的動作空間。在飛行器避障等需要連續(xù)動作控制的任務(wù)下,確定性策略梯度(De?terministic Policy Gradient,DPG)能夠很好地解決連續(xù)動作輸出的場景[6],本文結(jié)合DQN算法和DPG算法,使用基于演員-評論家算法[7](actor-critic)的深度確定性策略梯度(Deep Deterministic Policy Gradient,DDPG)算法[8]應(yīng)用于飛行器自主避障場景并對其進行仿真實驗。結(jié)果表明該算法能夠較好地學(xué)習(xí)連續(xù)動作空間的策略,進而為飛行器智能避障等連續(xù)動作控制場景提供一定的指導(dǎo)性意義。
圖1 強化學(xué)習(xí)基本過程
在強化學(xué)習(xí)過程中,智能體和環(huán)境在各個時刻進行交互,在每個時刻t,智能體會感知到環(huán)境觀測xt,執(zhí)行一個動作at以及環(huán)境獎勵rt,環(huán)境被完全觀察到時,st=xt。
一個智能體的行為被定義為策略π,該策略會把狀態(tài)映射到動作空間的一個概率分布上π:S→P(A)。在強化學(xué)習(xí)概念中,算法模型使用狀態(tài)空間S,動作空間A=RN,初始的狀態(tài)分布p(s1),狀態(tài)轉(zhuǎn)移概率p(st+1|st,at)以及獎勵函數(shù)r(st,at)來進行一個馬爾可夫決策過程建模。將行為策略π應(yīng)用于馬爾可夫過程來定義一個馬爾可夫鏈,用Eπ表示該馬爾科夫鏈的期望值。狀態(tài)的總回報定義為:
學(xué)習(xí)過程的回報取決于策略π。強化學(xué)習(xí)的目標(biāo)是學(xué)習(xí)一種策略,該策略可以使初始狀態(tài)Eπ[R1]的期望獎勵最大化。
智能體所獲得的累積回報用狀態(tài)動作值函數(shù)Qπ(公式2)表示。動作狀態(tài)值函數(shù)表示在當(dāng)前狀態(tài)s下執(zhí)行動作a,并且一直遵循策略π到回合結(jié)束,在整個過程中智能體所獲得的累積回報。
傳統(tǒng)的強化學(xué)習(xí)方法中使用Bellman迭代方程求解動作狀態(tài)值函數(shù):
如果目標(biāo)策略是確定的,用函數(shù)μ:S←A表示,進一步將上述方程轉(zhuǎn)化為:
期望僅僅取決于環(huán)境,這就意味著能夠通過不同行為策略μ'產(chǎn)生的狀態(tài)值轉(zhuǎn)換樣本來學(xué)習(xí)Qμ。
Q-learning作為一個常用的離線算法[4],它使用貪婪策略(greedy policy):μ(s)=arg maxaQ(s,a),使用由θQ參數(shù)化的函數(shù)逼近器,并通過最小化損耗來對其進行優(yōu)化:
如果直接將Q-learning用于連續(xù)的動作空間是不現(xiàn)實的,因為在連續(xù)的動作空間找到貪婪策略需要在每一個時間步進行優(yōu)化,對于大型的、無限的動作空間,優(yōu)化太慢且實用性不高。
確定性策略梯度算法(Deterministic Policy Gradi?ent,DPG)維護一個參數(shù)化動作函數(shù)μ(s|θμ),該函數(shù)通過將狀態(tài)確定性地映射到特定動作來指定當(dāng)前策略[6]。在DPG的基礎(chǔ)上,結(jié)合使用actor-critic方法,其中,critic使用Bellman方程學(xué)習(xí),actor網(wǎng)絡(luò)參數(shù)則通過將鏈?zhǔn)揭?guī)則應(yīng)用于公式(4)來更新:
引入非線性函數(shù)逼近器(神經(jīng)網(wǎng)絡(luò))的缺點是收斂性不能得到保證,同時,這樣的逼近器為學(xué)習(xí)和生成大規(guī)模的狀態(tài)空間是有必要的。DDPG允許神經(jīng)網(wǎng)絡(luò)來在線學(xué)習(xí)大規(guī)模的狀態(tài)和動作空間。將神經(jīng)網(wǎng)絡(luò)用于強化學(xué)習(xí)的一個挑戰(zhàn)是大多數(shù)優(yōu)化算法都假設(shè)樣本是獨立同分布(Independently and Identically Distributed,IID)的,然而當(dāng)訓(xùn)練樣本來自于環(huán)境中的連續(xù)過程時,不能保證樣本具有獨立同分布的性質(zhì)。
DDPG通過使用經(jīng)驗重放機制(replay buffer)來解決這些問題。經(jīng)驗池是一個固定大小且有限的內(nèi)存R。根據(jù)探索策略(exploration policy),狀態(tài)轉(zhuǎn)換樣本采樣于環(huán)境和經(jīng)驗池。當(dāng)經(jīng)驗池填滿的時候?qū)仐壍糇钤绱嫒氲臉颖?。DDPG是一種離線(off-policy)算法,允許算法能夠從一系列不相關(guān)狀態(tài)轉(zhuǎn)換樣本中學(xué)習(xí)。
在很多環(huán)境中,算法直接用神經(jīng)網(wǎng)絡(luò)實現(xiàn)Q-learn?ing被證明是不穩(wěn)定的[9]。因為正在更新的網(wǎng)絡(luò)Q(s,a|θQ)也被用于計算目標(biāo)值yt(見公式6),Q的更新容易不收斂。DDPG算法的解決方式是修改actor-critic和使用軟更新(soft target updates)。DDPG算法模型分別創(chuàng)建了一個actor和critic網(wǎng)絡(luò)的副本(Q'(s,a|θQ')和μ'(s|θμ'))。用副本網(wǎng)絡(luò)計算目標(biāo)值,這些目標(biāo)網(wǎng)絡(luò)的權(quán)重參數(shù)通過跟蹤學(xué)習(xí)網(wǎng)絡(luò)延遲更新:
θ'←τθ+(1 -τ)θ',τ?1。通過這種方式,目標(biāo)值的改變速度被限制得較慢,由此提高了學(xué)習(xí)穩(wěn)定性,使學(xué)習(xí)動作值函數(shù)的相對不穩(wěn)定的問題更接近于監(jiān)督學(xué)習(xí)。DDPG算法的完整描述[8]。
DDPG算法描述:
狀態(tài)空間(state observation)在強化學(xué)習(xí)算法中主要是對現(xiàn)實狀態(tài)環(huán)境進行描述。在飛行器避障過程中,基本的狀態(tài)則包括飛行器的經(jīng)緯度坐標(biāo)和高度(lng,lat,hei ght)以及速度(velocity)。實驗中,速度是矢量,此處可以分解成三維坐標(biāo)上的分速度:(velocitylng,velocity lat,velocity height)。
在仿真實驗中,將經(jīng)緯度坐標(biāo)和高度等信息采用三維坐標(biāo)系表示,將可變環(huán)境觀測描述為:
state=[lng,lat,height,velocitylng,velocity lat,velocity height]
以上的觀測為可變環(huán)境狀態(tài),除此之外,還有障礙物的屬性,即高度和經(jīng)緯度坐標(biāo),對于障礙物信息的狀態(tài)觀測信息,屬于不可變的環(huán)境信息。在實驗中,障礙物信息硬編碼在交互環(huán)境中,在交互過程中,根據(jù)飛行器的狀態(tài)給與獎勵或懲罰。
決策空間(action space)指的是智能體做能夠采取的動作空間。在飛行器的避障過程中,主要是飛行器的狀態(tài)改變。因此決策行為就是改變飛行器的運動速度,結(jié)合狀態(tài)空間的做法,在智能體做決策時,主要改變的三維立體坐標(biāo)分速度的變化量,通過這個變化量使得環(huán)境的狀態(tài)(飛行器的實時狀態(tài))被改變。單步動作表示為:
環(huán)境是智能體交互的空間,智能體通過與環(huán)境交互來得到獎賞值,從而影響智能體的動作。在環(huán)境中,主要的部分是定義飛行器如何獲得獎懲的方式以及初始化環(huán)境狀態(tài)。通過定義和編寫step函數(shù)來實現(xiàn)智能體的每一步動作來獲得獎懲值并且改變環(huán)境的狀態(tài)。在實現(xiàn)中,將動作傳入后,計算新的環(huán)境狀態(tài),根據(jù)該環(huán)境狀態(tài)來計算獎勵值的大?。喝绻悄荏w已經(jīng)達到目標(biāo)位置,則給與較大獎勵值,回合結(jié)束;如果智能進去障礙物區(qū)域,則給予較大的懲罰值(負的獎勵值),回合結(jié)束。除了以上兩種情況,為了讓每一步智能體都有所獎勵,交互環(huán)境根據(jù)智能體位置和目標(biāo)點的相對距離來進行獎勵值的計算。假設(shè)獎勵值是越大越好,交互環(huán)境根據(jù)飛行器位置與目標(biāo)點的相對距離的相反數(shù)給獎勵值,流程如圖2所示。
圖2 環(huán)境交互規(guī)則流程
環(huán)境狀態(tài)的更新方法如公式(8)、公式(9),飛行器新的速度等于原速度與速度變化量相加。新的坐標(biāo)等于原坐標(biāo)與單位時間速度相加。
在飛行器的每一步運行中所得的獎勵值計算方法如式(10)-式(11):
O表示出發(fā)點位置,L表示飛行器當(dāng)前位置,G表示目標(biāo)點。負值獎勵表示距離目標(biāo)位置越近,獎勵越大;e表示碰撞障礙物之后獎勵值的懲罰項,為常數(shù)。
本文的應(yīng)用背景設(shè)定為在三維空間中,飛行器從起始點自主達到目標(biāo)點范圍。在空間中存在多個障礙物體,當(dāng)飛行器與障礙物體接觸時任務(wù)失敗。算法的訓(xùn)練目標(biāo)是不斷調(diào)整飛行器的運動屬性,使得飛行器全程均能避過障礙體區(qū)域,到達目標(biāo)點范圍,即可完成任務(wù)設(shè)定的目標(biāo)。初始化場景如圖3所示,紅色點為出發(fā)點,綠色點為目標(biāo)點,其他深色長方體為障礙物,他們均在同一直線上。
圖3 初始化場景設(shè)定
由算法(表1)實現(xiàn)的DDPG網(wǎng)絡(luò)模型結(jié)構(gòu)圖如圖4所示,其中actor、critic、target_actor、target_critic網(wǎng)絡(luò)為三層全連接網(wǎng)絡(luò),隱藏層均使用ReLU激活函數(shù),網(wǎng)絡(luò)的經(jīng)驗重放池容量為10000,獎勵折扣系數(shù)為0.99,優(yōu)化器為Adam,學(xué)習(xí)率(learning rate)為0.01,單次訓(xùn)練樣本數(shù)(batch size)為32。
圖4 DDPG網(wǎng)絡(luò)模型結(jié)構(gòu)
仿真實驗通過DDPG算法與同樣是基于連續(xù)動作空間選擇的傳統(tǒng)DPG算法進行對比,兩種算法均在同一交互環(huán)境中運行。圖5所示為傳統(tǒng)DPG算法的回合累積獎勵變化曲線,圖6所示為DDPG算法的回合累積獎勵變化曲線??v坐標(biāo)表示從單個回合開始到結(jié)束的回合累積獎勵值,橫坐標(biāo)表示回合序號。每個回合運行步數(shù)為1800步,單步獎勵根據(jù)公式(11)計算得出,由于初始狀態(tài)的出發(fā)點并不在目標(biāo)點,兩點之間存在初始距離,所以每回合累積獎勵不會為0。
圖5 傳統(tǒng)DPG算法回合累積獎勵
圖6 DDPG算法回合累積獎勵
從回合累積折扣獎勵看來,傳統(tǒng)DPG算法的回合累積獎勵在240回合之前不太穩(wěn)定,之后穩(wěn)定在-13800左右;DDPG算法在經(jīng)過170回合后的回合累積獎勵趨于一個平穩(wěn)值,在-4000左右,由此一直穩(wěn)定到所有回合結(jié)束。根據(jù)公式(11)定義的單步獎勵所積累的回合獎勵也從側(cè)面反映了規(guī)劃路徑距離和最佳路徑(起始點到目標(biāo)點直線距離)之間的差距。從圖5、圖6可以看出,傳統(tǒng)DPG算法在240回合之后累積獎勵絕對值比DDPG算法在170回合之后累積獎勵絕對值大。這也體現(xiàn)出傳統(tǒng)DPG算法規(guī)劃的路徑與理想最佳路徑之間的最終差距比DDPG算法所規(guī)劃路徑的較大。
DPG算法第300回合結(jié)束生成的路徑如圖7所示,因為單個回合步數(shù)限制,在單個回合結(jié)束之后沒有到達目標(biāo)點位置。DDPG算法在300回合時生成的規(guī)劃路徑如圖8所示。從出發(fā)點幾乎直線達到目標(biāo)點,由于三維圖像的視角因素,該路線經(jīng)過最低障礙物上方,其余障礙物下方達到目標(biāo)點位置,并不是直線。觸碰到障礙物體時會導(dǎo)致回合結(jié)束,不會產(chǎn)生到達目標(biāo)點的完整路徑。在這兩種生成的路徑規(guī)劃圖中,均有一定的走向目標(biāo)地點的運動趨勢。但是DDPG得益與Q'網(wǎng)絡(luò)和μ'網(wǎng)絡(luò)的糾正效果以及經(jīng)驗重放單元,收斂性較為凸出,網(wǎng)絡(luò)整體學(xué)習(xí)效果較高,DDPG算法比傳統(tǒng)的DPG算法在相同的飛行器避障環(huán)境下路徑的生成效果較優(yōu)秀,而且所需要訓(xùn)練的回合數(shù)較少,所以在飛行器智能避障的連續(xù)動作控制場景中,DDPG算法具有一定的應(yīng)用指導(dǎo)價值。
圖7 傳統(tǒng)DPG規(guī)劃路徑
圖8 DDPG規(guī)劃路徑
人工智能的主要目標(biāo)之一就是利用未經(jīng)處理的高維傳感數(shù)據(jù)來解決復(fù)雜的任務(wù)。強化學(xué)習(xí)算法DQN的提出,使得機器的智能程度在某些游戲上能夠達到或超越人類的游戲水平。但是DQN主要處理離散低維動作空間。而現(xiàn)實生活場景中,存在了各種各樣的連續(xù)控制問題和需求。通過DQN結(jié)合用于連續(xù)動作選擇的DPG算法,DDPG吸收這兩種算法各自的優(yōu)勢。相比較傳統(tǒng)的DPG算法,在連續(xù)動作控制上,產(chǎn)生了更好的效果。本文基于DDPG的強化學(xué)習(xí)算法,實現(xiàn)飛行器在空間多障礙體環(huán)境中進行智能避障,到達目標(biāo)地點。飛行器的飛行控制的動作選擇是一個連續(xù)的動作空間,該場景和DDPG算法適用場景一致,通過仿真模擬研究,實驗效果較明顯。