孔維仁 ,周德云 ,趙藝陽 ,楊婉莎
(1.西北工業(yè)大學(xué)電子信息學(xué)院,陜西西安 710129;2.悉尼大學(xué)計(jì)算機(jī)學(xué)院,悉尼2006)
隨著無人機(jī)技術(shù)在軍事領(lǐng)域的發(fā)展,無人戰(zhàn)斗機(jī)在戰(zhàn)場(chǎng)上的作用越來越重要[1].然而,單架無人機(jī)所能完成的作戰(zhàn)任務(wù)受到了很大約束.為了適應(yīng)更加復(fù)雜軍事任務(wù)的需要,多無人機(jī)智能化空戰(zhàn)機(jī)動(dòng)決策逐漸成為軍事領(lǐng)域的研究熱點(diǎn).鑒于空戰(zhàn)機(jī)動(dòng)在戰(zhàn)爭(zhēng)發(fā)展進(jìn)程中的重要地位,2020年8月,DARPA公布了名為AlphaDogfight Trail計(jì)劃的最后一場(chǎng)比賽,且由蒼鷺系統(tǒng)公司大比分獲勝[2].該項(xiàng)目主要研究空戰(zhàn)機(jī)動(dòng)智能算法,以及如何將研究成果擴(kuò)展至未來空戰(zhàn).該項(xiàng)目對(duì)于實(shí)現(xiàn)智能化作戰(zhàn)和人機(jī)混合的智能作戰(zhàn)系統(tǒng)具有重要意義.
自19世紀(jì)60年代以來,學(xué)者對(duì)無人機(jī)自主空戰(zhàn)機(jī)動(dòng)決策進(jìn)行了大量的研究,并取得了一些顯著的研究成果[3].本文把這些成果大致分為兩類:基于對(duì)策論的方法與基于人工智能的方法.
在基于對(duì)策論的方法中,包括矩陣對(duì)策法[4-6]、影響圖法[7-9]、微分對(duì)策法[10-12]等.這些方法在一定程度上為空戰(zhàn)決策提供了有效的解決方案,但也有較大的局限.例如矩陣對(duì)策法得到的策略偏保守,且隨著模型的精度增高,計(jì)算量會(huì)急劇上升;影響圖法將空戰(zhàn)建立為一個(gè)影響圖,影響圖可以反應(yīng)出空戰(zhàn)雙方狀態(tài)與決策的影響關(guān)系,如文獻(xiàn)[8]給出了一對(duì)一空戰(zhàn)機(jī)動(dòng)決策問題的影響圖,該圖可以將空戰(zhàn)這個(gè)動(dòng)態(tài)連續(xù)的序貫決策問題轉(zhuǎn)換為一個(gè)多階段決策問題,并使用滾動(dòng)時(shí)域控制等方法進(jìn)行求解,然而對(duì)于可變規(guī)模多對(duì)多空戰(zhàn)各無人機(jī)的狀態(tài)變化對(duì)局部態(tài)勢(shì)和全局態(tài)勢(shì)的影響是很難評(píng)價(jià)的,所以影響圖的建模是非常困難的;對(duì)于微分對(duì)策法,首先該算法需要精確的數(shù)學(xué)模型,計(jì)算量大,且該算法只能解決單純的追逃問題,然而空戰(zhàn)態(tài)勢(shì)瞬息萬變,隨時(shí)可能改變攻防關(guān)系,需要多個(gè)模型進(jìn)行交替切換,若將該方法運(yùn)用到多對(duì)多空戰(zhàn)機(jī)動(dòng)決策問題上,所需的模型的種類和切換次數(shù)將會(huì)成指數(shù)型增加.
在基于人工智能的方法中,包括專家系統(tǒng)法[13-15]、人工神經(jīng)網(wǎng)絡(luò)法[16-18]、深度強(qiáng)化學(xué)習(xí)法[19-24]等.這些方法可以一定程度解決基于對(duì)策論方法中依賴精確模型、實(shí)時(shí)性等問題,但也有較大的局限.例如專家系統(tǒng)法依賴專家構(gòu)建知識(shí)庫,知識(shí)的更新難以滿足實(shí)時(shí)性要求.人工神經(jīng)網(wǎng)絡(luò)法需要大量的空戰(zhàn)樣本,且需要大量的人工標(biāo)注.深度強(qiáng)化學(xué)習(xí)方法解決無人機(jī)機(jī)動(dòng)決策問題是當(dāng)前研究的熱點(diǎn),文獻(xiàn)[19]將空戰(zhàn)機(jī)動(dòng)決策問題轉(zhuǎn)化為馬爾可夫決策過程,并使用深度Q網(wǎng)絡(luò)算法求解出了單機(jī)空戰(zhàn)機(jī)動(dòng)策略;文獻(xiàn)[20]在文獻(xiàn)[19]的基礎(chǔ)上引入了逆強(qiáng)化學(xué)習(xí)算法來估計(jì)更準(zhǔn)確的回報(bào)函數(shù);文獻(xiàn)[21-23]將空戰(zhàn)機(jī)動(dòng)決策問題轉(zhuǎn)化為馬爾可夫博弈,使用多智能強(qiáng)化學(xué)習(xí)結(jié)合最大最小博弈、自學(xué)習(xí)、機(jī)動(dòng)預(yù)測(cè)等方法來獲得均衡的機(jī)動(dòng)策略.深度強(qiáng)化學(xué)習(xí)法雖一定程度上滿足智能化空戰(zhàn)機(jī)動(dòng)決策的要求,但與理想效果還相差較遠(yuǎn),主要體現(xiàn)在:
1) 使用強(qiáng)化學(xué)習(xí)框架主要解決一對(duì)一空戰(zhàn)機(jī)動(dòng)決策[19-24].
2) 給定了對(duì)手的運(yùn)動(dòng)規(guī)律或機(jī)動(dòng)策略,使學(xué)習(xí)得到的空戰(zhàn)策略只針對(duì)固定機(jī)動(dòng)策略[19-20,24].
3) 假定敵我雙方的運(yùn)動(dòng)狀態(tài)是完全已知且準(zhǔn)確的[19,21-24].
針對(duì)上述強(qiáng)化學(xué)習(xí)方法的技術(shù)難點(diǎn),本文以多無人機(jī)近距空戰(zhàn)為研究對(duì)象,探討多無人機(jī)在近距空戰(zhàn)中的智能化空戰(zhàn)機(jī)動(dòng)決策生成方法,基于強(qiáng)化學(xué)習(xí)框架設(shè)計(jì)一種適用于無人機(jī)規(guī)??勺兊亩酂o人機(jī)機(jī)動(dòng)決策策略生成算法-參數(shù)分享的深度Q網(wǎng)絡(luò)算法(parameter sharing-deepQnetwork,PS-DQN).參數(shù)分享是指各個(gè)Agent共用一個(gè)Q值網(wǎng)絡(luò)參數(shù),通過設(shè)計(jì)Agent的狀態(tài)空間來使Agent協(xié)作完成任務(wù).
本文選擇使用參數(shù)分享的深度Q網(wǎng)絡(luò)算法的主要原因有兩點(diǎn):1) 對(duì)于多無人機(jī)近距空戰(zhàn)機(jī)動(dòng)決策問題,認(rèn)為各無人機(jī)是同構(gòu)的,即各無人機(jī)的性能參數(shù)均相同,故具備多個(gè)Agent公用一個(gè)Q值網(wǎng)絡(luò)的條件;2) 由于多無人機(jī)空戰(zhàn)的特點(diǎn),無人機(jī)初始數(shù)量不固定,而且在空戰(zhàn)過程中也會(huì)出現(xiàn)損失,Agent的數(shù)量是動(dòng)態(tài)變化的,由于Agent個(gè)數(shù)動(dòng)態(tài)的不確定性,導(dǎo)致分布式多智能體強(qiáng)化學(xué)習(xí)不適合此場(chǎng)景,參數(shù)分享深度Q網(wǎng)絡(luò)算法由于只存在一個(gè)Q值網(wǎng)絡(luò),故天然適用于此場(chǎng)景.
隨后,通過設(shè)計(jì)Agent的狀態(tài)空間,使Agent提取附近友方與敵方無人機(jī)的態(tài)勢(shì)特征,從而使多無人機(jī)擁有進(jìn)行合作空戰(zhàn)所需的必要信息;該狀態(tài)空間可以部分解決難點(diǎn)3,只需在一定范圍內(nèi)給出雙方準(zhǔn)確的運(yùn)動(dòng)狀態(tài);同時(shí),為解決難點(diǎn)2,本文使用虛擬自我對(duì)局(fictitious self-play)使在不給定敵方機(jī)動(dòng)決策的情況下迭代的增強(qiáng)空戰(zhàn)機(jī)動(dòng)策略的智能水平,并收斂到納什均衡策略.
多無人機(jī)近距空戰(zhàn)的目的是通過編隊(duì)內(nèi)無人機(jī)的協(xié)作在保證己方編隊(duì)損失最小的情況下,盡快殲滅敵方無人機(jī)編隊(duì).本文將多無人機(jī)近距空戰(zhàn)建模為一個(gè)混合馬爾可夫博弈(mixed Markov game),將每一個(gè)無人機(jī)作為博弈中的一個(gè)Agent.將空戰(zhàn)編隊(duì)雙方分為紅方(己方)和藍(lán)方(敵方)分別采用集合R和B表示.為了方便對(duì)多無人機(jī)近距空戰(zhàn)建模與生成機(jī)動(dòng)決策,本文提出以下假設(shè).
假設(shè)1在編隊(duì)內(nèi)部,每架無人機(jī)可以與一定范圍內(nèi)的無人機(jī)進(jìn)行無延時(shí)通信.
假設(shè)2每架無人機(jī)可以探測(cè)到一定范圍內(nèi)的敵方無人機(jī)的準(zhǔn)確位置.
假設(shè)3所有無人機(jī)均在同一高度機(jī)動(dòng)飛行[23-25].
本文紅藍(lán)雙方戰(zhàn)機(jī)采用文獻(xiàn)[25]中開發(fā)的一種模擬無人機(jī)的動(dòng)力學(xué)方程,在慣性系下構(gòu)建無人機(jī)的運(yùn)動(dòng)模型.每架無人機(jī)的運(yùn)動(dòng)狀態(tài)由位置(x,y)、速度v、航跡偏角ψ、滾轉(zhuǎn)角φ與滾轉(zhuǎn)角變化率定義為
其中(ut,u˙φ)為無人機(jī)的切向與法向控制量.
2.2.1 狀態(tài)空間設(shè)計(jì)
本文提出的PS-DQN算法使Agent共用Q值網(wǎng)絡(luò),則應(yīng)保證每個(gè)Agent的狀態(tài)向量維度相同;同時(shí)Agent的狀態(tài)不僅需要反映出自身無人機(jī)的運(yùn)動(dòng)狀態(tài),而且還需反映出友方無人機(jī)與敵方無人機(jī)的信息.這樣才可以保證多個(gè)Agent共用Q值網(wǎng)絡(luò)且可以學(xué)習(xí)出協(xié)同策略.按照上述設(shè)計(jì)思路,將Agent的狀態(tài)空間S分為3個(gè)部分:當(dāng)前空戰(zhàn)態(tài)勢(shì)信息Sc,上一步空戰(zhàn)態(tài)勢(shì)信息Sp與上一步無人機(jī)動(dòng)作ap
其中:|R|,|B|分別表示現(xiàn)存的我方與敵方無人機(jī)數(shù)量.由于與的設(shè)計(jì)思路相同,現(xiàn)以為例描述其設(shè)計(jì)思路.為可以使用固定維度的向量來描述友方無人機(jī)信息,首先,本文根據(jù)無人機(jī)的速度方向,將無人機(jī)所處的平面平均分為6個(gè)區(qū)域,如圖1所示.本機(jī)相對(duì)于任意無人機(jī)的方位關(guān)系均可以歸納為雙方劃分的6個(gè)區(qū)域內(nèi),即共有36種方位關(guān)系.然后,為每一種方位關(guān)系設(shè)計(jì)一個(gè)4維向量用于表示友方無人機(jī)的位置信息
圖1 無人機(jī)空間劃分Fig.1 UAV space division
其中:c表示在區(qū)域內(nèi)的友方無人機(jī)個(gè)數(shù),dsum表示歸一化距離總和,dmax表示歸一化距離最大值,dmin表示歸一化距離最小值.歸一化距離dnorm為
其中:d為雙機(jī)距離,Dmax為最大通信(攻擊)距離.友方態(tài)勢(shì)信息共有144維,同理敵方態(tài)勢(shì)信息共有144維.所以,當(dāng)前狀態(tài)信息Sc共有295維.上一步態(tài)勢(shì)信息Sp儲(chǔ)存上一時(shí)刻的空戰(zhàn)態(tài)勢(shì)信息,故與Sc結(jié)構(gòu)相同;上一步無人機(jī)動(dòng)作ap為獨(dú)熱編碼(one-hot),儲(chǔ)存該無人機(jī)上一時(shí)刻的動(dòng)作,無人機(jī)的動(dòng)作空間在第2.2.2節(jié)中定義.
本文考慮到,S維度過高且與稀疏程度較高,故采用自編碼器(autoencoder)對(duì)S進(jìn)行降維,具體方法將在第3.1節(jié)中闡述.
2.2.2 動(dòng)作空間設(shè)計(jì)
在多無人機(jī)近距空戰(zhàn)中,無人機(jī)動(dòng)作空間是連續(xù)的,分別為無人機(jī)的切向控制量ut和法向控制量u˙φ.為了滿足DQN算法框架,本文將無人機(jī)動(dòng)作空間離散化,按照美國國家航空航天局(NASA)學(xué)者設(shè)計(jì)的基本機(jī)動(dòng)動(dòng)作庫[26]并結(jié)合假設(shè)3設(shè)計(jì)了5種機(jī)動(dòng)動(dòng)作,分別為勻速直飛、最大加速直飛、最大減速直飛、最大過載左轉(zhuǎn)與最大過載右轉(zhuǎn).5個(gè)機(jī)動(dòng)動(dòng)作與控制量的映射關(guān)系如表1所示.其中:的最大值與最小值,的最大值.
表1 機(jī)動(dòng)動(dòng)作庫Table 1 Maneuver library
2.2.3 獎(jiǎng)勵(lì)函數(shù)設(shè)計(jì)
強(qiáng)化學(xué)習(xí)算法框架利用Agent與環(huán)境交互獲得獎(jiǎng)賞信息,根據(jù)最大獎(jiǎng)賞原則選擇動(dòng)作,得到最優(yōu)策略.獎(jiǎng)勵(lì)函數(shù)為強(qiáng)化學(xué)習(xí)Agent提供了有用的反饋,對(duì)策略學(xué)習(xí)結(jié)果有顯著影響[27].本文將獎(jiǎng)勵(lì)函數(shù)定義為
其中:Rr為真實(shí)獎(jiǎng)勵(lì)函數(shù),Rg為全局獎(jiǎng)勵(lì)函數(shù),Rl為局部獎(jiǎng)勵(lì)函數(shù),ne為第ne個(gè)訓(xùn)練周期(episode).真實(shí)獎(jiǎng)勵(lì)函數(shù)Rr是描述空戰(zhàn)的最終結(jié)果,它真正表明了多無人機(jī)近距空戰(zhàn)的目標(biāo).然而Rr是一個(gè)非常稀疏的獎(jiǎng)勵(lì)函數(shù),這樣的獎(jiǎng)勵(lì)函數(shù)學(xué)習(xí)到有效的空戰(zhàn)機(jī)動(dòng)策略是非常困難的[28],因此,本文通過設(shè)計(jì)Rg與Rl對(duì)真實(shí)獎(jiǎng)勵(lì)函數(shù)進(jìn)行了獎(jiǎng)勵(lì)塑造(reward shaping).λ(t)是一個(gè)隨著訓(xùn)練周期的增加而逐漸減小的因子,它的目的在于在強(qiáng)化學(xué)習(xí)訓(xùn)練初期按照Rg與Rl的指導(dǎo)快速的學(xué)到有效的空戰(zhàn)機(jī)動(dòng)策略,同時(shí)在強(qiáng)化學(xué)習(xí)訓(xùn)練后期按照Rr的指導(dǎo)使無人機(jī)完成真正的空戰(zhàn)目標(biāo).λ(ne)的表達(dá)式為
1) 真實(shí)獎(jiǎng)勵(lì)函數(shù)設(shè)計(jì).
根據(jù)多無人機(jī)近距空戰(zhàn)的目的,設(shè)計(jì)真實(shí)獎(jiǎng)勵(lì)函數(shù)Rr:
其中Rr表示當(dāng)多無人機(jī)空戰(zhàn)結(jié)束后,若我方無人機(jī)獲勝,則根據(jù)我方的損失程度得到一個(gè)正的獎(jiǎng)勵(lì)值;反之,根據(jù)我方的損失程度得到一個(gè)負(fù)的獎(jiǎng)勵(lì)值.當(dāng)多無人機(jī)空戰(zhàn)正在進(jìn)行,則獎(jiǎng)勵(lì)值一直為0.
2) 全局獎(jiǎng)勵(lì)函數(shù)設(shè)計(jì).
全局獎(jiǎng)勵(lì)函數(shù)Rg反映了多無人機(jī)空戰(zhàn)全局的戰(zhàn)損信息,對(duì)于整個(gè)編隊(duì)無人機(jī)接收到的獎(jiǎng)勵(lì)值都是相同的,其形式為
從Rg中可以看出,在多無人機(jī)空戰(zhàn)時(shí),我方無人機(jī)損失越少,敵方無人機(jī)損失越大,則獎(jiǎng)勵(lì)值越大,反之越小.并且當(dāng)多無人機(jī)空戰(zhàn)結(jié)束后,Rg等于Rr.
3) 局部獎(jiǎng)勵(lì)函數(shù)設(shè)計(jì).
局部獎(jiǎng)勵(lì)函數(shù)Rl反映了多無人機(jī)空戰(zhàn)中各無人機(jī)的局部戰(zhàn)場(chǎng)信息,本文參考文獻(xiàn)[25]中定義的局部態(tài)勢(shì),且不考慮格斗導(dǎo)彈的前向攻擊能力.我方無人機(jī)取得優(yōu)勢(shì)需要滿足3個(gè)條件:
1) 雙機(jī)距離d小于等于Dmax.
2) 我方無人機(jī)視界角在指定視界范圍內(nèi),本文設(shè)置為30°.
3) 我方無人機(jī)的天線偏轉(zhuǎn)角在指定天線偏轉(zhuǎn)角范圍內(nèi),本文設(shè)置為30°.
根據(jù)上述空戰(zhàn)局部態(tài)勢(shì)優(yōu)勢(shì)滿足條件,設(shè)計(jì)局部獎(jiǎng)勵(lì)函數(shù)Rl:
其中:|B|head為圖1中無人機(jī)頭部區(qū)域中敵方無人機(jī)個(gè)數(shù),|B|tail為圖1中無人機(jī)尾部區(qū)域中敵方無人機(jī)個(gè)數(shù).從Rl中可以看出,當(dāng)無人機(jī)在局部態(tài)勢(shì)中處于優(yōu)勢(shì),Rl越大,反之,Rl越小.
多無人機(jī)近距空戰(zhàn)機(jī)動(dòng)決策生成算法的第1步是收集數(shù)據(jù)來訓(xùn)練自動(dòng)編碼器(autocoder).在第2.2.1節(jié)中,作者設(shè)計(jì)了多無人機(jī)空戰(zhàn)的狀態(tài)空間.然而,狀態(tài)空間的維度過高,這將會(huì)使訓(xùn)練強(qiáng)化學(xué)習(xí)Agent昂貴且耗時(shí)[29].
自動(dòng)編碼器是一種基于人工神經(jīng)網(wǎng)絡(luò)(artificial neural network,ANN)的特征表達(dá)網(wǎng)絡(luò),用于將高維數(shù)據(jù)壓縮成小的潛在表示(latent)[30].本文設(shè)計(jì)為3層神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),包括編碼器和解碼器兩部分,其中,編碼器完成從輸入信號(hào)到輸出表征的映射轉(zhuǎn)換,解碼器實(shí)現(xiàn)輸出表征逆向映射回輸入空間,獲取重構(gòu)輸入.根據(jù)第2.2.1節(jié)可知,編碼器的輸入輸出維度為144;本文選取Sigmoid函數(shù)作為激活函數(shù).自動(dòng)編碼器的訓(xùn)練過程即為最小化重構(gòu)誤差函數(shù)JAE的過程,其表達(dá)式為
其中:p為輸入樣本的個(gè)數(shù);λ為L2正則化系數(shù),用于減少權(quán)重的大小來防止過擬合;JAE中的第1項(xiàng)為誤差項(xiàng)平方和均值,第2項(xiàng)為正則化項(xiàng).
3.2.1 算法描述
為使無人機(jī)編隊(duì)生成合理的近距空戰(zhàn)機(jī)動(dòng)策略,本節(jié)提出參數(shù)分享的深度Q網(wǎng)絡(luò)算法(PS-DQN)用于求解混合馬爾可夫博弈模型,得到合理的多無人機(jī)近距空戰(zhàn)機(jī)動(dòng)策略.
PS-DQN算法整體框架圖如圖2所示,該算法整體框架共包含2個(gè)部分:Q網(wǎng)絡(luò)訓(xùn)練部分與多無人機(jī)空戰(zhàn)仿真部分.多無人機(jī)空戰(zhàn)仿真部分用于仿真多無人機(jī)空戰(zhàn)場(chǎng)景;Q網(wǎng)絡(luò)訓(xùn)練部分是PS-DQN算法的核心部分,它由兩個(gè)Q值網(wǎng)絡(luò)和一個(gè)經(jīng)驗(yàn)回放記憶池(experience replay memory)組成.從圖2可以看出,我方無人機(jī)均使用同一個(gè)Q值網(wǎng)絡(luò)進(jìn)行機(jī)動(dòng)策略的獲取與更新,我方所有無人機(jī)共享Q值網(wǎng)絡(luò)的參數(shù).
圖2 PS-DQN算法整體框架圖Fig.2 PS-DQN algorithm diagram
3.2.2 PS-DQN原理與算法步驟
強(qiáng)化學(xué)習(xí)是一個(gè)反復(fù)迭代的過程,每一次迭代要解決兩個(gè)問題:給定一個(gè)策略求取Q值函數(shù),根據(jù)Q值函數(shù)來更新策略.在環(huán)境中的Agent的目的是最大化長期未來獎(jiǎng)勵(lì),為得到每個(gè)狀態(tài)下執(zhí)行每個(gè)動(dòng)作后所得到長期未來獎(jiǎng)勵(lì),定義狀態(tài)-動(dòng)作值函數(shù)Qπ(s,a)
其中:π為Agent的策略函數(shù),它可以為隨機(jī)性或者確定性函數(shù).γ為折扣系數(shù),取值區(qū)間為[0,1].對(duì)于多無人機(jī)近距空戰(zhàn)場(chǎng)景,在式(14)中,s和a的取值空間已分別在第2.2.1節(jié)與第2.2.2節(jié)給出.得到狀態(tài)-動(dòng)作值函數(shù)Qπ(s,a)后,得到相應(yīng)的貪婪策略π(s)
深度Q網(wǎng)絡(luò)是基于深度學(xué)習(xí)與強(qiáng)化學(xué)習(xí)思想而提出的機(jī)器學(xué)習(xí)方法[31-32].使用神經(jīng)網(wǎng)絡(luò)(Q網(wǎng)絡(luò))對(duì)Q值函數(shù)進(jìn)行近似表達(dá).本文采用全連接神經(jīng)網(wǎng)絡(luò)對(duì)Q值函數(shù)進(jìn)行擬合.Q網(wǎng)絡(luò)的輸入層接受由第2.2.1節(jié)設(shè)計(jì)出的特征狀態(tài)或自動(dòng)編碼器壓縮后的特征狀態(tài)(在第4.1節(jié)進(jìn)行對(duì)比實(shí)驗(yàn)),與當(dāng)前時(shí)刻無人機(jī)的動(dòng)作,輸出層輸出對(duì)應(yīng)的Q值.PS-DQN算法的損失函數(shù)可表示為
其中:Q(st,at;θ)為估值Q網(wǎng)絡(luò),θ為估值Q網(wǎng)絡(luò)的參數(shù);Q′(st,at;θ′)為目標(biāo)Q網(wǎng)絡(luò),θ′為目標(biāo)Q網(wǎng)絡(luò)的參數(shù).PS-DQN算法步驟在算法1中給出.
算法1PS-DQN算法.
3.3.1 算法描述
由于將多無人機(jī)近距空戰(zhàn)機(jī)動(dòng)決策問題建模為馬爾可夫博弈問題,若將敵方無人機(jī)編隊(duì)建模為交互環(huán)境的一部分,會(huì)造成第3.2節(jié)提出的強(qiáng)化學(xué)習(xí)算法訓(xùn)練過程不穩(wěn)定[33];若設(shè)定敵方無人機(jī)編隊(duì)為基于規(guī)則的機(jī)動(dòng)策略,則無法保證得到的空戰(zhàn)策略收斂到納什均衡策略[34].
為獲得多無人機(jī)近距空戰(zhàn)機(jī)動(dòng)決策問題的納什均衡策略,本文引入神經(jīng)網(wǎng)絡(luò)虛擬自我對(duì)局(neural fictitious self-play,NFSP)方法作為策略生成的主框架[35].虛擬自我對(duì)局(fictitious self-play,FSP)是一種被證明在二人零和博弈中可以收斂到納什均衡的機(jī)器學(xué)習(xí)算法.在FSP的學(xué)習(xí)過程中,兩個(gè)玩家通過相互博弈不斷優(yōu)化各自的博弈策略,最終得到納什均衡策略.對(duì)于多無人機(jī)近距空戰(zhàn)機(jī)動(dòng)決策問題,敵我雙方使用相同的策略更新方法,故以我方無人機(jī)編隊(duì)為例,給出NFSP算法框架圖如圖3所示.
3.3.2 NFSP算法原理與算法步驟
從圖3中可以看出,敵我無人機(jī)編隊(duì)均擁有兩套空戰(zhàn)策略:對(duì)于對(duì)手的最優(yōu)反應(yīng)策略B以及自己的平均策略Π,且使用神經(jīng)網(wǎng)絡(luò)來擬合最優(yōu)策略以及平均策略.無人機(jī)編隊(duì)的行動(dòng)策略σ是通過對(duì)最優(yōu)反應(yīng)策略與平均策略按照η的概率選取,即
圖3 PS-NFSP算法整體框架圖Fig.3 PS-NFSP algorithm diagram
η ∈(0,1)稱為預(yù)測(cè)參數(shù)(anticipatory parameter).每當(dāng)無人機(jī)編隊(duì)依據(jù)其行動(dòng)策略采取動(dòng)作并獲得空戰(zhàn)環(huán)境的反饋后,將記憶片段,存入強(qiáng)化學(xué)習(xí)記憶池和模仿學(xué)習(xí)記憶池(當(dāng)行動(dòng)策略為最優(yōu)反應(yīng)策略時(shí),且只儲(chǔ)存片段)中.隨后,使用PS-DQN算法更新最優(yōu)反應(yīng)策略網(wǎng)絡(luò)Q(s,a)參數(shù),使用模仿學(xué)習(xí)算法更新平均策略網(wǎng)絡(luò)Π(s,a)的參數(shù).
對(duì)于通過模仿學(xué)習(xí)算法得到平均策略的目標(biāo)是保持一個(gè)過去迭代輪的最優(yōu)反應(yīng)策略的平均混合策略組:
Πk和Bk+1分別表示上一輪(第k輪)迭代的平均策略與當(dāng)前輪(第k+1輪)迭代的最優(yōu)反應(yīng)策略.通過上式看出當(dāng)前輪的平均策略可以通過所有輪的最優(yōu)反應(yīng)策略進(jìn)行均勻采樣進(jìn)行獲得.這也是模仿學(xué)習(xí)記憶池只儲(chǔ)存最優(yōu)反應(yīng)策略采樣記憶片段的原因.
由于模仿學(xué)習(xí)記憶池是通過所有輪的最優(yōu)反應(yīng)策略采樣進(jìn)行增量更新的,為了構(gòu)建一個(gè)最優(yōu)反應(yīng)的平均策略的無偏估計(jì),需要從每一輪的最優(yōu)反應(yīng)策略中抽樣相同數(shù)量的片段.故使用蓄水池抽樣[36](reservoir sampling)的方式隨機(jī)的從模仿學(xué)習(xí)記憶池中采樣訓(xùn)練數(shù)據(jù)進(jìn)行模仿學(xué)習(xí).模仿學(xué)習(xí)算法本質(zhì)為監(jiān)督學(xué)習(xí)算法,是使用神經(jīng)網(wǎng)絡(luò)對(duì)平均策略函數(shù)進(jìn)行擬合的過程.模仿學(xué)習(xí)算法步驟在算法2中給出.
算法2模仿學(xué)習(xí)算法.
Input:平均策略網(wǎng)絡(luò)Π(S,a;θΠ),學(xué)習(xí)速率α,模仿學(xué)習(xí)記憶池DSL,batch規(guī)模Nbatch.
1) 在DSL中進(jìn)行蓄水池采樣Nbatch大小的batch:
2) 構(gòu)造誤差函數(shù)-logΠ(S,a;θΠ),并對(duì)θΠ使用mini-batch梯度下降法進(jìn)行更新,學(xué)習(xí)速率為α.
根據(jù)上述NFSP算法原理,在算法3給出NFSP算法步驟.
算法3NFSP算法.
本文空戰(zhàn)仿真平臺(tái)采用Python 3編程語言,基于OpenAI團(tuán)隊(duì)開發(fā)的gym強(qiáng)化學(xué)習(xí)環(huán)境開發(fā)包進(jìn)行開發(fā)[37],該仿真平臺(tái)能夠在一定的空域內(nèi)仿真多無人機(jī)近距空戰(zhàn).對(duì)于每架無人機(jī),平臺(tái)采用式(1)的微分方程組來解算每架無人機(jī)的運(yùn)動(dòng)狀態(tài),同時(shí)仿真平臺(tái)收集所有無人機(jī)的運(yùn)動(dòng)狀態(tài)計(jì)算在第2.2.1節(jié)中提出的狀態(tài)向量,并分發(fā)給每架無人機(jī),作為該無人機(jī)當(dāng)前的空戰(zhàn)狀態(tài).
本仿真平臺(tái)中,假設(shè)紅藍(lán)編隊(duì)處于同一高度水平,無人機(jī)的空域范圍設(shè)置在5 km以內(nèi),假定各架無人機(jī)機(jī)動(dòng)能力相同,且最小速度為100 m/s;最大速度為300 m/s;最大通信距離為5 km;最大探測(cè)距離為2 km,滾轉(zhuǎn)角變化率為40(°)/s.每個(gè)仿真步長代表0.15 s且最大仿真時(shí)間為20 s.由于本空戰(zhàn)仿真平臺(tái)沒有對(duì)近距格斗導(dǎo)彈進(jìn)行建模與仿真,故本平臺(tái)對(duì)于擊落的判別方式為滿足第2.2.3節(jié)給出的穩(wěn)定跟蹤條件且持續(xù)3個(gè)仿真步長.
4.2.1 實(shí)驗(yàn)設(shè)計(jì)
在第3.1節(jié)中,提出了使用狀態(tài)空間自編碼器來降低狀態(tài)空間維度,以加快空戰(zhàn)策略學(xué)習(xí)速率.本節(jié)將選取不同latent維度:8,16,32和64維,用來考察不同latent維度對(duì)原始狀態(tài)的表示精度,并選取合理的latent維度.
在本實(shí)驗(yàn)中,雙方無人機(jī)使用隨機(jī)策略,通過對(duì)不同規(guī)??諔?zhàn)仿真進(jìn)行隨機(jī)采樣,得到40000組空戰(zhàn)狀態(tài).其中,30000組空戰(zhàn)狀態(tài)作為訓(xùn)練集,剩余10000組空戰(zhàn)狀態(tài)作為測(cè)試集.空戰(zhàn)規(guī)模有:1v1,2v2,4v4,4v2這4種.使用pytorch對(duì)自編碼器進(jìn)行實(shí)現(xiàn),采用Adam優(yōu)化算法[38]進(jìn)行訓(xùn)練,學(xué)習(xí)速率α為0.01,β1為0.9,β2為0.999.迭代次數(shù)選為30000,batch大小為64,在采樣的時(shí)候?qū)?shù)據(jù)進(jìn)行打亂,用于消除batch內(nèi)數(shù)據(jù)之間的相關(guān)性.
4.2.2 實(shí)驗(yàn)結(jié)果與討論
算法訓(xùn)練過程中的損失變化圖如圖4所示,橫坐標(biāo)為訓(xùn)練步數(shù),縱坐標(biāo)為自編碼器每次訓(xùn)練的損失,可以看出隨著訓(xùn)練步數(shù)的增加,訓(xùn)練損失逐漸下降最終收斂趨近于穩(wěn)定,說明自編碼器訓(xùn)練收斂.通過觀察不同latent維度收斂到的訓(xùn)練誤差可以發(fā)現(xiàn),當(dāng)latent維度為32與64時(shí),收斂后的訓(xùn)練誤差在誤差范圍內(nèi)是相同的.說明latent為32維時(shí),latent就足以表示144維的原始空戰(zhàn)狀態(tài).
圖4 自編碼器訓(xùn)練損失變化圖Fig.4 Autoencoder training loss diagram
現(xiàn)使用測(cè)試集中的任意空戰(zhàn)狀態(tài)輸入到訓(xùn)練完成的latent維度為32的自編碼器中,得到的編碼平均誤差為0.031,與訓(xùn)練集的誤差相似,說明未出現(xiàn)過擬合現(xiàn)象.以某一空戰(zhàn)狀態(tài)為例,原始空戰(zhàn)狀態(tài)與通過自編碼器解碼的空戰(zhàn)狀態(tài)對(duì)比圖如圖5所示.
圖5 原始狀態(tài)與自編碼器解碼狀態(tài)對(duì)比圖Fig.5 The diagram comparising original state and autoencoder decoding state
從圖5中發(fā)現(xiàn),原始空戰(zhàn)狀態(tài)有稀疏的特性,且自編碼器解碼的空戰(zhàn)狀態(tài)可以很好的的反映出原始空戰(zhàn)狀態(tài)不為0的分量,平均誤差在0.1以內(nèi),足以滿足空戰(zhàn)機(jī)動(dòng)策略生成算法所需要的精度.
4.3.1 實(shí)驗(yàn)設(shè)計(jì)
本節(jié)對(duì)提出的空戰(zhàn)機(jī)動(dòng)策略生成算法的訓(xùn)練過程進(jìn)行實(shí)驗(yàn),研究引入自編碼器與神經(jīng)網(wǎng)絡(luò)虛擬自我對(duì)局對(duì)PS-DQN算法訓(xùn)練效果的影響.故本節(jié)設(shè)計(jì)3個(gè)訓(xùn)練算法進(jìn)行對(duì)比:
算法1假定敵方無人機(jī)編隊(duì)為貪婪策略,引入自編碼器的PS-DQN算法.
算法2引入神經(jīng)網(wǎng)絡(luò)虛擬自我對(duì)局,不引入自編碼器的PS-DQN算法.
算法3同時(shí)引入神經(jīng)網(wǎng)絡(luò)虛擬自我對(duì)局與自編碼器的PS-DQN算法.
本節(jié)將從兩個(gè)方面分析PS-DQN算法的訓(xùn)練效果,首先通過對(duì)比3個(gè)算法策略的可利用性(exploitability)[39]來研究策略是否收斂到納什均衡策略,用以判斷引入NFSP是否可以改善策略的可利用性,然后對(duì)比算法2-3的平均策略網(wǎng)絡(luò)訓(xùn)練的收斂情況,用以判斷引入自編碼器是否可以加快策略收斂的速度.策略可利用性是用來衡量當(dāng)前雙方策略是否達(dá)到納什均衡的指標(biāo),計(jì)算方法為
u1(σ1,B2(σ1))為我方采用當(dāng)前策略σ1,對(duì)方使用針對(duì)我方當(dāng)前策略的最優(yōu)反應(yīng)策略B2(σ1)所得到的真實(shí)獎(jiǎng)勵(lì)(式(9)所示).從上式可以看出,若雙方策略達(dá)到納什均衡,?(σ)值為0;相反,若雙方背離納什均衡策略,則?(σ)越大.故策略的可利用性是衡量雙方策略是否達(dá)到納什均衡的指標(biāo).
整體仿真實(shí)驗(yàn)參數(shù)設(shè)置:采用4v2的空戰(zhàn)規(guī)模,初始無人機(jī)運(yùn)動(dòng)狀態(tài)隨機(jī);仿真步數(shù)設(shè)置為 200000;強(qiáng)化學(xué)習(xí)與模仿學(xué)習(xí)記憶池規(guī)模為 100000;預(yù)測(cè)參數(shù)η為0.1;網(wǎng)絡(luò)訓(xùn)練開始時(shí)的步數(shù)為1000;單次episode最大步數(shù)為150.PS-DQN算法參數(shù)設(shè)置:采用4層全連接網(wǎng)絡(luò)作為Q網(wǎng)絡(luò),使用Dueling網(wǎng)絡(luò)結(jié)構(gòu)[40],2層隱藏層節(jié)點(diǎn)個(gè)數(shù)分別為128,64;Q網(wǎng)絡(luò)學(xué)習(xí)速率為0.001;折扣系數(shù)γ為0.95;探索概率?為動(dòng)態(tài)衰減因子,初始為1.0,終止為0.001;目標(biāo)網(wǎng)絡(luò)更新周期為1000.模仿學(xué)習(xí)算法參數(shù)設(shè)置:模仿網(wǎng)絡(luò)采用4層全連接網(wǎng)絡(luò),兩層隱藏層節(jié)點(diǎn)個(gè)數(shù)分別為60,30,輸出層為softmax層;網(wǎng)絡(luò)學(xué)習(xí)速率為0.001.
4.3.2 實(shí)驗(yàn)結(jié)果與討論
平均策略網(wǎng)絡(luò)訓(xùn)練過程中的損失變化圖如圖6所示,由于算法1只有Q網(wǎng)絡(luò),故圖中只有算法2-3的平均策略網(wǎng)絡(luò)損失變化圖.在圖中,橫坐標(biāo)為訓(xùn)練步數(shù),縱坐標(biāo)為平均策略網(wǎng)絡(luò)每次訓(xùn)練的損失,可以看出隨著訓(xùn)練步數(shù)的增加,訓(xùn)練損失逐漸下降最終收斂趨近于穩(wěn)定,說明平均策略網(wǎng)絡(luò)收斂.對(duì)比算法2與算法3的收斂曲線,可以發(fā)現(xiàn)算法3相比于算法2有更快的收斂速率,說明引入自編碼器可以改善空戰(zhàn)機(jī)動(dòng)策略的學(xué)習(xí)效率.
圖6 平均策略網(wǎng)絡(luò)訓(xùn)練損失變化圖Fig.6 Average policy network training loss diagram
3個(gè)算法平均策略可利用性的變化過程如圖7所示.訓(xùn)練初期,3個(gè)算法的平均策略可利用性在0附近震蕩,這是由于在訓(xùn)練初期最優(yōu)反應(yīng)策略網(wǎng)絡(luò)與平均策略網(wǎng)絡(luò)無法提供準(zhǔn)確的策略,使雙方均無法進(jìn)行有效的攻防,雙方均無戰(zhàn)損;訓(xùn)練中期,3個(gè)算法的平均策略可利用性均上升,這是由于平均策略網(wǎng)絡(luò)平均的最優(yōu)反應(yīng)策略過少,而導(dǎo)致平均策略網(wǎng)絡(luò)無法反應(yīng)出真實(shí)的平均策略,然而這時(shí)最優(yōu)反應(yīng)策略對(duì)平均策略有較好的針對(duì)性,故此時(shí)的策略可利用性逐漸增加;訓(xùn)練后期,算法2-3的策略可利用性逐漸減小,且收斂到0附近,這說明雙方的平均策略逐步趨近于納什均衡策略,算法1的策略可利用性依然增大,這是由于敵方策略為貪婪策略,導(dǎo)致我方策略收斂至針對(duì)貪婪策略的最優(yōu)策略,然而該策略是與納什均衡策略相背離的,故策略可利用性依然增大.同時(shí)通過對(duì)比算法2-3的策略可利用性變化曲線可以發(fā)現(xiàn),算法3的策略可利用性峰值與收斂速度均好于算法2,這說明引入自編碼器確實(shí)有益于策略的學(xué)習(xí)效率.
圖7 平均策略可利用性變化圖Fig.7 Exploitability of average policy diagram
4.4.1 實(shí)驗(yàn)設(shè)計(jì)
本節(jié)對(duì)使用算法3得到的多無人機(jī)近距空戰(zhàn)機(jī)動(dòng)策略的合理性與遷移性進(jìn)行實(shí)驗(yàn),對(duì)于策略有效性,本節(jié)首先使用兩個(gè)雙機(jī)編隊(duì)在近距空戰(zhàn)空域內(nèi)對(duì)抗一個(gè)雙機(jī)編隊(duì),且雙方為迎頭的均衡態(tài)勢(shì),如圖8(a).該空戰(zhàn)規(guī)模與策略生成算法訓(xùn)練實(shí)驗(yàn)相同.該實(shí)驗(yàn)將給出該空戰(zhàn)想定下的整體無人機(jī)機(jī)動(dòng)過程,用于分析空戰(zhàn)機(jī)動(dòng)策略是否合理,是否符合基本的空戰(zhàn)原則[41].隨后,驗(yàn)證空戰(zhàn)規(guī)模為1v1,2v2,4v2,4v4下的多無人機(jī)近距空戰(zhàn)機(jī)動(dòng)策略的合理性,即機(jī)動(dòng)策略的遷移性實(shí)驗(yàn).此外,由于1v1空戰(zhàn)的基礎(chǔ)性與特殊性,本實(shí)驗(yàn)也將給出1v1空戰(zhàn)的整體無人機(jī)機(jī)動(dòng)過程,用以直觀的分析空戰(zhàn)機(jī)動(dòng)策略的遷移性.
4.4.2 實(shí)驗(yàn)結(jié)果與討論
4v2空戰(zhàn)機(jī)動(dòng)過程如圖8所示,空戰(zhàn)初始紅方有兩個(gè)雙機(jī)編隊(duì)呈平行態(tài)勢(shì),藍(lán)方有一個(gè)雙機(jī)編隊(duì),雙方為迎頭的均衡態(tài)勢(shì).在空戰(zhàn)進(jìn)行0 s至4 s之間,雙方戰(zhàn)機(jī)均選擇正面接敵,進(jìn)入1 km2內(nèi)的空域內(nèi)進(jìn)行纏斗(圖8(a)).空戰(zhàn)進(jìn)行4 s至8 s之間,紅方1,2,3號(hào)無人機(jī)進(jìn)行大過載右轉(zhuǎn)試圖穩(wěn)定跟蹤藍(lán)方編隊(duì)的尾部,以鎖定并構(gòu)成攻擊條件,同時(shí)紅方4號(hào)無人機(jī)進(jìn)行加速直飛用于誘敵與后續(xù)包夾,此時(shí)藍(lán)方編隊(duì)合力追擊紅方4號(hào)無人機(jī),意在鎖定紅方4號(hào)無人機(jī)(圖8(b)).空戰(zhàn)進(jìn)行8 s至12 s之間,紅方紅方1,2,3號(hào)無人機(jī)成功鎖定藍(lán)方2號(hào)無人機(jī)并滿足攻擊條件,進(jìn)而殲滅藍(lán)色2號(hào)無人機(jī),紅方4號(hào)無人機(jī)進(jìn)行大機(jī)動(dòng)左轉(zhuǎn)試圖擺脫藍(lán)方1號(hào)無人機(jī)的追蹤,藍(lán)方1號(hào)無人機(jī)由于目標(biāo)的大機(jī)動(dòng)導(dǎo)致脫鎖(圖8(c)).空戰(zhàn)進(jìn)行12 s至20 s之間,由于紅方態(tài)勢(shì)占絕對(duì)優(yōu)勢(shì),故藍(lán)方1號(hào)無人機(jī)實(shí)施連續(xù)的S形機(jī)動(dòng)試圖脫離紅方無人機(jī)編隊(duì)的追擊,紅方編隊(duì)各無人機(jī)從多個(gè)角度追擊藍(lán)方無人機(jī)并最終成功擊落(圖8(d)).
圖8 4v2空戰(zhàn)機(jī)動(dòng)過程圖Fig.8 Maneuver process diagram of 4v2 air combat
從4v2空戰(zhàn)整體過程可以看出,雙方的機(jī)動(dòng)動(dòng)作是可以被直觀解讀的,這說明得到的空戰(zhàn)機(jī)動(dòng)策略是合理的.
1v1空戰(zhàn)機(jī)動(dòng)過程如圖9所示,空戰(zhàn)初始紅藍(lán)雙方為迎頭的均衡態(tài)勢(shì),雙方無人機(jī)在4 s后形成互相“咬尾”的纏斗模式,一直往復(fù)下去.這在1v1空戰(zhàn)實(shí)戰(zhàn)中是非常常見的,只是由于模型的簡(jiǎn)化,沒有勢(shì)能的損耗而導(dǎo)致的高度下降.從1v1空戰(zhàn)整體過程可以看出,雙方的機(jī)動(dòng)動(dòng)作是可以被直觀解讀的,說明空戰(zhàn)機(jī)動(dòng)策略遷移至1v1空戰(zhàn)場(chǎng)景也是有效的.
圖9 1v1空戰(zhàn)機(jī)動(dòng)過程圖Fig.9 Maneuver process diagram of 1v1 air combat
隨后對(duì)空戰(zhàn)規(guī)模為1v1,2v2,4v2,4v4下的多無人機(jī)近距空戰(zhàn)分別進(jìn)行了1000次的對(duì)抗仿真,初始空戰(zhàn)態(tài)勢(shì)隨機(jī),得到以紅方視角的空戰(zhàn)結(jié)果如表2所示.
從表2中可以看出,對(duì)于雙方無人機(jī)個(gè)數(shù)相同的空戰(zhàn)仿真結(jié)果是對(duì)稱的,說明雙方的平均策略擁有達(dá)到了均衡的必要條件,且均可以有效的殲滅對(duì)手.這說明得到的策略遷移到不同空戰(zhàn)規(guī)模均是有效且合理的.對(duì)于4v2的空戰(zhàn)規(guī)模,紅方4機(jī)無人機(jī)編隊(duì)明顯優(yōu)勢(shì)于藍(lán)方的雙機(jī)編隊(duì),這與實(shí)際空戰(zhàn)相符.
表2 不同空戰(zhàn)規(guī)模下的多無人機(jī)近距空戰(zhàn)結(jié)果Table 2 Air combat results under different air combat scales
本文采用深度強(qiáng)化學(xué)習(xí)與自學(xué)習(xí)相結(jié)合的技術(shù),提出了一種解決多無人機(jī)近距空戰(zhàn)機(jī)動(dòng)決策問題的算法.該算法允許所有編隊(duì)中的無人機(jī)共用一個(gè)Q網(wǎng)絡(luò)來使算法滿足在不同無人機(jī)編隊(duì)規(guī)模下具有良好的遷移性.同時(shí),引入了自編碼器與神經(jīng)網(wǎng)絡(luò)虛擬自我對(duì)局機(jī)制,使算法可以高效率的學(xué)習(xí)到達(dá)納什均衡的無人機(jī)空戰(zhàn)機(jī)動(dòng)策略.
目前本文通過空戰(zhàn)仿真實(shí)驗(yàn)驗(yàn)證了算法的可行性,下一步的工作將加入高度影響將仿真環(huán)境從二維拓展到三維,并考慮雷達(dá)和武器情況做現(xiàn)代空戰(zhàn)的研究,使算法適應(yīng)更加復(fù)雜的戰(zhàn)場(chǎng)環(huán)境.