何湘遠(yuǎn) 塵 軍 郭 昊 余卓陽 田 博
空間物理重點(diǎn)實驗室,北京 100076
高速飛行器以其飛行速度快,變軌能力強(qiáng)而受到世界各軍事大國的廣泛研究[1]。機(jī)動突防是高速飛行器一種有效的突防手段[2]。傳統(tǒng)程序式機(jī)動由于手段較為固定,未能根據(jù)攔截彈實際情況有的放矢,因此突防效果欠佳,存在一定的局限性。微分對策是近些年發(fā)展較快的一種智能突防方法,與傳統(tǒng)程序式機(jī)動策略相比,兼具實時性與智能性[3]。文獻(xiàn)[4]將脫靶量和能量消耗作為EKV與彈頭對抗指標(biāo),考慮彈頭機(jī)動過載和控制變量約束,建立了該方法下的突防決策模型。文獻(xiàn)[5]將彈道導(dǎo)彈攔截問題描述為二人零和微分對策模型,并得到了在捕獲區(qū)無論突防彈采取何種策略都將被攔截,反之在逃脫區(qū)突防彈采取最優(yōu)策略則必定突防成功的結(jié)論。文獻(xiàn)[6]考慮在目標(biāo)有防御器時的三星博弈場景,采用博弈切換策略將其分解為分段雙星博弈,使得攔截器在不被防御器反攔截的情況下實現(xiàn)對目標(biāo)的快速攔截。文獻(xiàn)[7]設(shè)計了一種基于狀態(tài)相關(guān)Riccati方程的微分對策制導(dǎo)率,得到的結(jié)果優(yōu)于經(jīng)典微分對策。針對經(jīng)典微分對策計算量較大的問題,文獻(xiàn)[8]將深度神經(jīng)網(wǎng)絡(luò)與微分對策相結(jié)合,采用經(jīng)典微分對策生成樣本用于訓(xùn)練,生成的機(jī)動策略與傳統(tǒng)策略基本一致,且兼具較好的實時性。
深度強(qiáng)化學(xué)習(xí)是近年興起的人工智能領(lǐng)域中的研究熱點(diǎn),并在例如游戲博弈[9]、機(jī)器人控制[10]、制導(dǎo)控制技術(shù)[11]當(dāng)中取得了十分驚人的效果。2013年谷歌DeepMind團(tuán)隊提出了Deep Q-learning算法,該算法也被視為是第一個深度強(qiáng)化學(xué)習(xí)算法[12]。文獻(xiàn)[13]提出了一種改進(jìn)的DQN算法,被稱之為雙重深度Q網(wǎng)絡(luò)算法(DDQN)。該算法很好的緩解了DQN在采取最大化操作時造成的Q值過估計問題。深度強(qiáng)化學(xué)習(xí)的發(fā)展為高速飛行器機(jī)動突防提供了一種新的解決方案。深度強(qiáng)化學(xué)習(xí)以其能夠處理高維抽象問題,且可迅速給出決策[14]等優(yōu)點(diǎn),有望被應(yīng)用于攻防博弈決策控制中。文獻(xiàn)[15]對經(jīng)典DQN進(jìn)行了改進(jìn),設(shè)計了一種深度神經(jīng)網(wǎng)絡(luò)架構(gòu)競爭雙深度Q網(wǎng)絡(luò)(D3Q),實現(xiàn)了對彈道導(dǎo)彈中段突防最優(yōu)控制模型的逼近。文獻(xiàn)[16]利用深度確定性策略梯度算法(DDPG)對巡飛彈突防控制決策進(jìn)行了求解,并驗證其有效性。文獻(xiàn)[17]以智能小車追逃來模擬導(dǎo)彈攻防過程,在二維平面上采用經(jīng)典DDPG算法實現(xiàn)了智能小車的控制,并能夠較好地完成追捕任務(wù)。面對經(jīng)典DDQN算法隨機(jī)均勻抽樣易忽視罕見且具有高學(xué)習(xí)價值樣本的問題,文獻(xiàn)[18]提出了基于時序差分誤差(TD-error)的優(yōu)先經(jīng)驗回放技術(shù),有效提高了學(xué)習(xí)過程中的樣本利用效率。文獻(xiàn)[19]提出了基于累積回報值的優(yōu)先級經(jīng)驗回放方法。然而高速飛行器攻防博弈場景動作空間和狀態(tài)空間維度大,非線性強(qiáng),以TD-error計算優(yōu)先級時優(yōu)先級較高的往往是對抗轉(zhuǎn)移至終端狀態(tài)時刻的樣本,這使得智能體容易過多關(guān)注臨近結(jié)束時的策略學(xué)習(xí)而缺乏對其余樣本的學(xué)習(xí)。而以獎勵值計算優(yōu)先級容易使智能體過多關(guān)注成功樣本,訓(xùn)練樣本缺乏多樣性。
針對上述問題,本文設(shè)計了一種基于經(jīng)典DDQN的改進(jìn)算法,通過結(jié)合累積獎勵值與累積TD-error,采用模糊推理將一輪對抗樣本整體存儲至不同經(jīng)驗池中,并通過積分抽樣器從中抽取樣本進(jìn)行學(xué)習(xí)。仿真結(jié)果表明,該方法能有效提高智能體對樣本的利用效率。
一對一突防是一種典型的攻防對抗場景,本文考慮逆軌攔截,建立地面坐標(biāo)系odxdydzd下的攔截器與飛行器的三自由度運(yùn)動模型,其示意圖如圖1所示:
圖1 攻防對抗示意圖
攔截器在初始狀態(tài)下飛向預(yù)測交會點(diǎn),由于對抗過程時間較短,為簡化模型,預(yù)測交會點(diǎn)由飛行器和攔截器在零控狀態(tài)下按照勻加速直線外推得出。
攔截器采用4臺液體軌控發(fā)動機(jī)進(jìn)行機(jī)動,其推力為2300N,比沖2900N·s/kg,攔截器橫縱向?qū)б什捎玫氖钦姹壤龑?dǎo)引,其制導(dǎo)指令分別為:
(1)
其中,導(dǎo)引系數(shù)ky=kz=4,突防成功判據(jù)為脫靶量Rf>3m。
馬爾科夫決策過程(Markov Decision Process,MDP)是強(qiáng)化學(xué)習(xí)的基礎(chǔ),其決策過程如圖2所示:
圖2 馬爾科夫決策過程
MDP一般由五元組表示[18],其中,S為狀態(tài)空間,A為動作空間,P為狀態(tài)轉(zhuǎn)移概率,R為獎勵函數(shù),γ為折扣因子。
在本文中,狀態(tài)轉(zhuǎn)移由攻防雙方動力學(xué)方程唯一確定,因此可認(rèn)為狀態(tài)轉(zhuǎn)移概率P為1。飛行器需要不斷通過與攔截器對抗,并從中獲取經(jīng)驗和獎勵,用于改進(jìn)自身策略,以達(dá)到成功突防并減少自身機(jī)械能消耗的目的。
1)狀態(tài)空間設(shè)計
狀態(tài)空間應(yīng)盡可能完整地描述攻防雙方的位置、運(yùn)動特征以及自身的飛行狀態(tài)等關(guān)鍵信息,而攻防對抗往往更關(guān)注的是其相對運(yùn)動信息,用相對參量代替絕對參量能夠減少狀態(tài)空間維度,提高模型訓(xùn)練效率,這里設(shè)計狀態(tài)空間為:
(2)
2)動作空間設(shè)計
由于DDQN的動作空間是離散的,因此需要將飛行器原本連續(xù)的動作空間離散化。高速飛行器氣動外形一般為面對稱結(jié)構(gòu),主要通過控制攻角和傾側(cè)角完成機(jī)動。若直接將指令攻角、指令傾側(cè)角離散,則會導(dǎo)致動作空間隨指令攻角、指令傾側(cè)角的細(xì)分而過于龐大,給動作搜索帶來困難。且受限于飛行器姿控系統(tǒng)能力,將有大量動作因超出控制系統(tǒng)閾值而等效。無法體現(xiàn)出不同動作的差異性,給模型的訓(xùn)練帶來困難。因此這里設(shè)計動作空間為:
(3)
即在某時刻,指令攻角和指令傾側(cè)角可選擇增加、不變或減少其在決策周期內(nèi)調(diào)姿能力的最大值。這樣隨著決策周期縮短,攻角和傾側(cè)角曲線將逼近真實曲線,且動作空間維度不變,避免了動作空間過于龐大的問題。
3)獎勵函數(shù)設(shè)計
強(qiáng)化學(xué)習(xí)的核心概念是獎勵,強(qiáng)化學(xué)習(xí)的目標(biāo)是最大化長期的獎勵[20]。一個良好的獎勵函數(shù)應(yīng)能正確反映設(shè)計人員的目的,且能夠給予智能體正確的引導(dǎo),避免智能體僅關(guān)心獎勵值,卻違背設(shè)計人員預(yù)想目標(biāo)的“獎勵黑客”問題[21]。對于進(jìn)攻方,其目的主要有2個:1)成功規(guī)避攔截器的攔截;2)在目的1)的基礎(chǔ)上盡可能減少自身躲避機(jī)動時的機(jī)械能損耗。因此設(shè)計人員只關(guān)注其對抗結(jié)束時的終端狀態(tài),但若只引入終端狀態(tài)下的獎勵,則會導(dǎo)致獎勵過于稀疏,且訓(xùn)練時不能給智能體以正確的過程引導(dǎo),給智能體訓(xùn)練帶來極大困難。因此這里設(shè)計獎勵函數(shù)為:
(4)
即獎勵函數(shù)由過程獎勵rc和終端獎勵rf組成,過程獎勵包括決策周期內(nèi)攔截器燃料消耗Δmm和飛行器機(jī)械能損失ΔEt,km和kt為比例因子。終端獎勵包括突防失敗和成功2種情況:若突防失敗,則獎勵值為-10,若突防成功,則獎勵值為10+log2(Rf-2),其中Rf為脫靶量。這里引入脫靶量獎勵是為給智能體訓(xùn)練進(jìn)行引導(dǎo),讓其適當(dāng)追求較大脫靶量。
DDQN(Double Deep Q Network)是DQN的一種改進(jìn)算法,其通過改進(jìn)損失函數(shù)解決了DQN出現(xiàn)的過估計問題[13]。在DQN中,損失函數(shù)計算如下:
(5)
即DQN對動作的未來價值由狀態(tài)st+1下目標(biāo)網(wǎng)絡(luò)計算所有動作中Q值最大值來評價。而DDQN將損失函數(shù)修改為:
(6)
即DDQN在評價狀態(tài)-動作值函數(shù)時不再用參數(shù)為θ′的網(wǎng)絡(luò)計算最大Q值,而是用參數(shù)為θ的網(wǎng)絡(luò)選取動作,用參數(shù)為θ′的網(wǎng)絡(luò)評估狀態(tài)-動作值函數(shù)。
在攻防博弈問題中,樣本Q值的TD-error和樣本獎勵值均可評價樣本的重要程度。TD-error越大的樣本意味著神經(jīng)網(wǎng)絡(luò)所擬合的Q值誤差越大,也就越值得學(xué)習(xí)。DDQN算法的TD-error計算如下:
(7)
定義樣本的優(yōu)先級為:
pi=|δt|+ε
(8)
其中,ε為一非零小量,以保證TD-error為0的樣本也有概率被采到。
樣本的優(yōu)先級雖然一定程度上體現(xiàn)了樣本的重要程度,但以TD-error評價樣本優(yōu)先級時忽略了獎勵值對智能體的作用。并且在飛行器攻防博弈場景下,優(yōu)先級較大的樣本往往是飛行器轉(zhuǎn)移至對抗終端時刻的樣本,而攻防對抗過程早期所采取的策略對終端狀態(tài)有較大影響,因此僅以TD-error為標(biāo)準(zhǔn)進(jìn)行抽樣會使智能體過多關(guān)注對抗結(jié)束時刻的策略。而好的策略在對抗初期雖然獎勵值較小,優(yōu)先級較低,但依然擁有較大學(xué)習(xí)價值。獎勵值雖也可用于評價樣本重要程度,但若單獨(dú)依靠獎勵值評價樣本,又會使智能體僅關(guān)注突防成功的樣本,學(xué)習(xí)樣本缺乏多樣性。
針對上述問題,本文將一次對抗的所有樣本作為一個完整單元,以一個單元的累積獎勵與累積TD-error作為模糊推理的輸入,并依靠模糊推理評價該單元樣本的好壞程度。
模糊計算過程可以劃分為模糊規(guī)則庫、模糊化、推理方法和去模糊化4個部分[22]。根據(jù)仿真經(jīng)驗,設(shè)計獎勵值對應(yīng)論域為[-0.5,1],TD-error對應(yīng)論域為[0,1.2],本文設(shè)計隸屬度函數(shù)為如圖3所示,其中{PS,PM,PN}分別對應(yīng)模糊標(biāo)記{正小,正中,正大}。
圖3 輸入值與輸出值隸屬度函數(shù)
根據(jù)累積獎勵與累積TD-error所計算出的隸屬度,需要根據(jù)專家經(jīng)驗建立模糊推理規(guī)則表。根據(jù)仿真經(jīng)驗,本文設(shè)置模糊推理規(guī)則如下:
表1 模糊推理規(guī)則
表中采用IF-THEN模糊規(guī)則得到模糊集到輸出之間的關(guān)系:
(9)
去模糊化過程是將模糊值轉(zhuǎn)換成精確值的過程。本文通過最常用的面積重心法來實現(xiàn)去模糊化,即樣本價值越高,其存儲在經(jīng)驗池1中的概率越大。一個單元的經(jīng)驗存儲至經(jīng)驗池1的概率為:
(10)
通過式(10),可以得出一個單元樣本存儲至經(jīng)驗池1中的概率,樣本存儲至經(jīng)驗池2的概率計算過程與之類似。這樣就實現(xiàn)了樣本分類存放的目的。
通過模糊推理實現(xiàn)了將樣本進(jìn)行分類存儲的目的,但以固定概率從這些經(jīng)驗池中抽樣會導(dǎo)致智能體難以根據(jù)訓(xùn)練過程調(diào)整學(xué)習(xí)的重點(diǎn)。訓(xùn)練初期由于尚未形成穩(wěn)定的策略,因此應(yīng)該保證訓(xùn)練樣本的多樣性。而訓(xùn)練后期由于策略已初見端倪,智能體應(yīng)該更多關(guān)注那些罕見且高價值的樣本,用于進(jìn)一步改進(jìn)自身策略。因此本文設(shè)計了一種積分抽樣器,對累積獎勵的時序差分誤差進(jìn)行積分,用于判斷智能體策略是否已經(jīng)形成,并調(diào)整從不同經(jīng)驗池中抽樣的概率,進(jìn)而調(diào)整智能體的學(xué)習(xí)重心。定義第τ輪對抗的累積獎勵時序差分誤差為:
(11)
則抽樣器從經(jīng)驗池1中抽樣概率為:
(12)
其中,P為經(jīng)驗池1與2抽樣的概率之和,為一常值,kI為積分系數(shù)。為避免從經(jīng)驗池1和2中抽樣過多引起過擬合,設(shè)置總經(jīng)驗池用于保存對抗過程中的所有樣本,并保證抽樣器以1-P的概率從總經(jīng)驗池中抽取樣本,以保證抽樣的多樣性。圖4給出了改進(jìn)DDQN的算法框圖。
圖4 改進(jìn)DDQN算法框圖
實驗在python3.6+tensorflow2.4環(huán)境下運(yùn)行,設(shè)計神經(jīng)網(wǎng)絡(luò)為包含3個隱含層的全連接神經(jīng)網(wǎng)絡(luò),隱含層結(jié)構(gòu)為512×256×128,激活函數(shù)選擇Leaky-relu函數(shù),神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)率η=0.00001,折扣因子γ=0.9,經(jīng)驗池1大小為D1=1000,經(jīng)驗池2大小為D2=2000,總經(jīng)驗池大小為D3=5000,樣本批大小minibach=32。
為提高模型的泛化能力,防止模型過擬合,這里令攻防雙方的初始參數(shù)分別在各自區(qū)間內(nèi)隨機(jī)生成,飛行器初始參數(shù)如表2所示:
表2 飛行器初始參數(shù)
攔截器初始參數(shù)如表3所示:
表3 攔截器初始參數(shù)
對智能體進(jìn)行10h訓(xùn)練,共完成約25000輪對抗,圖5展示了訓(xùn)練過程中每100次對抗平均突防概率的變化情況,圖6展示了每100次對抗平均累積獎勵值變化情況??梢钥闯?,經(jīng)典DDQN算法與改進(jìn)DDQN算法均能有效處理飛行器與攔截器的攻防博弈問題,訓(xùn)練后平均突防概率均提升至95%以上。
圖5 平均突防概率隨回合數(shù)變化
圖6 平均累積獎勵隨回合數(shù)變化
智能體在訓(xùn)練初期由于采用隨機(jī)搜索策略,對抗中存在大量突防失敗經(jīng)歷,突防概率和獎勵值較低,此時智能體還未形成較好的策略。隨著訓(xùn)練的進(jìn)行,智能體隨機(jī)搜索的概率逐漸下降,突防概率和獎勵值也呈現(xiàn)上升趨勢,說明智能體能夠不斷從對抗過程中學(xué)習(xí)并改進(jìn)自身策略。
相比于經(jīng)典DDQN算法,改進(jìn)的DDQN算法能夠收斂于更高的平均累積獎勵值,說明改進(jìn)DDQN算法搜索到了更優(yōu)的策略,能以更小的機(jī)械能損耗完成突防。
訓(xùn)練前攻防雙方的飛行軌跡由圖7給出,此時智能體由于還未形成穩(wěn)定策略,機(jī)動后仍然被攔截器所攔截。
圖7 訓(xùn)練前攻防雙方飛行軌跡
圖8給出了訓(xùn)練后的攻防雙方飛行軌跡。可以看出,初始狀態(tài)下攔截器飛向預(yù)測碰撞點(diǎn),飛行器不斷機(jī)動以躲避攔截器的攔截,同時攔截器在比例導(dǎo)引作用下修正自身軌跡,最終飛行器以12.7m脫靶量完成突防。
圖8 訓(xùn)練后攻防雙方飛行軌跡
圖9展示了飛行器攻角和傾側(cè)角變化情況,智能體所采取的策略是在對抗初期采取小攻角飛行以節(jié)約自身能量,隨后在2.4s時開始不斷加大攻角直至28°,同時傾側(cè)角繼續(xù)旋轉(zhuǎn)至100°左右,以類橫向機(jī)動進(jìn)行飛行,迫使攔截器大量消耗自身燃料以調(diào)整軌跡。在6.5s時再次減小攻角降低自身能量消耗,最終在7.9s完成該次對抗。
圖9 飛行器控制指令曲線
針對高速飛行器攻防博弈決策控制問題,提出了一種基于DDQN的改進(jìn)算法。該算法針對樣本回放過程,利用模糊推理評價樣本好壞程度并分類存儲,再根據(jù)訓(xùn)練過程中的累積獎勵時序差分設(shè)計了積分抽樣器,根據(jù)訓(xùn)練過程調(diào)整抽樣的側(cè)重點(diǎn)。結(jié)果表明,改進(jìn)DDQN算法收斂時平均累積獎勵值高于經(jīng)典DDQN算法,該算法能夠使智能體不斷學(xué)習(xí)并改進(jìn)自身策略,訓(xùn)練后平均突防概率高于95%,且在成功突防的前提下減少了自身的能量消耗,形成的策略符合設(shè)計人員的預(yù)期。這為解決高速飛行器攻防博弈決策問題提供了一種新思路。