單圣哲,楊孟超,張偉偉,高傳強
(1.西北工業(yè)大學(xué) 航空學(xué)院,西安 710072)(2.中國人民解放軍93995部隊,西安 710306)
自主空戰(zhàn)(AAC)是指戰(zhàn)機依靠機載設(shè)備,感知戰(zhàn)場態(tài)勢,基于人工智能在戰(zhàn)場中實時選擇作戰(zhàn)方案和戰(zhàn)術(shù)動作的機制,其智能化程度決定了機制的優(yōu)劣??諔?zhàn)過程中,交戰(zhàn)飛機需要在復(fù)雜的環(huán)境中通過連續(xù)高強度機動來力爭態(tài)勢,進而消滅敵人保全自己,故決策是自主空戰(zhàn)中最為核心的部分。
依據(jù)自主空戰(zhàn)決策算法的核心內(nèi)涵不同,可以將現(xiàn)有算法劃分為基于數(shù)學(xué)求解、機器搜索以及數(shù)據(jù)驅(qū)動三大類。
數(shù)學(xué)求解方法將空戰(zhàn)決策視為博弈問題。該類方法通?;诓┺恼搶諔?zhàn)問題進行簡化假設(shè),使用微分對策方法求解Nash均衡,根據(jù)假設(shè)類型不同可以將空戰(zhàn)問題描述為追逃問題(Pursuit-Evasion Game,簡稱PE)、雙目標(biāo)優(yōu)化問題(Two Target Game)和態(tài)勢函數(shù)優(yōu)化問題等。微分對策方法本身屬于解析求解方法,其結(jié)果具有清晰的數(shù)學(xué)形式和顯式優(yōu)越性,但由于微分對策方法在數(shù)學(xué)上具有局限性,尤其是在處理奇異曲面問題上的不完備性,限制了數(shù)學(xué)求解方法在復(fù)雜博弈問題中的應(yīng)用。
機器搜索方法通常將空戰(zhàn)中的可選方案離散化,通過試探輸入得出每種機動方案的可能結(jié)果,并通過態(tài)勢函數(shù)量化其結(jié)果,最終通過一定的搜索機制找出最有利的方案。根據(jù)搜索機制的不同該類方法可分為AML(Adaptive Maneuvering Logic)搜索、博弈矩陣搜索、啟發(fā)算法搜索等。由于空戰(zhàn)機動中的控制量為連續(xù)變化量,存在選擇方案無窮多的“維度爆炸”問題,針對該問題,文獻[28-31]使用多種動作庫來描述機動方案,但仍存在動作突變或靈活性較差問題。
數(shù)據(jù)驅(qū)動方法的優(yōu)勢在于可以擺脫常規(guī)方法對人類知識的高度依賴,主要有神經(jīng)網(wǎng)絡(luò)、模糊矩陣、強化學(xué)習(xí)等。
強化學(xué)習(xí)方法,是基于馬爾科夫決策過程(Markov Decision Process,簡稱MDP)中的價值迭代和策略迭代,讓智能體與環(huán)境交互,利用環(huán)境的獎勵反饋不斷改進策略,以獲得最大累計折扣獎勵的方法。Liu P等基于DQN(Deep Q-Learning)算法將深度強化學(xué)習(xí)用于空戰(zhàn)決策,解決了連續(xù)狀態(tài)輸入的“維度災(zāi)難”問題,同時驗證了獎勵與行為的效用性,但DQN網(wǎng)絡(luò)無法解決連續(xù)動作輸出問題;張強等基于強化學(xué)習(xí)中的Q-Network開展了超視距空戰(zhàn)決策的研究,并基于QNetwork的輸出量求解Nash均衡,選擇敵我的空戰(zhàn)動作,但動作的選取仍與真實空戰(zhàn)有一定差距;B.Kurniawan等將行動者—批評者(Actor-Critic,簡稱AC)架構(gòu)引入空戰(zhàn)決策研究,提高了訓(xùn)練效率,同時探索了獎勵結(jié)構(gòu)對學(xué)習(xí)速度的影響,但訓(xùn) 練 課 目 設(shè) 置 仍 較 為 簡 單;Yang Q等采 用DDPG(Deep Deterministic Policy Gradient)算法解決了DQN算法無法實現(xiàn)空戰(zhàn)的連續(xù)動作輸出問題,提高了控制的精度和平滑性,同時也開展了DQN與Curriculum Learning相結(jié)合的研究,提高了決策模型在對抗中的獲勝率。
綜合考慮自主空戰(zhàn)決策算法的研究進展與問題,為建立一種連續(xù)動作、強遠(yuǎn)視性、全動態(tài)的實時空戰(zhàn)機動決策方法架構(gòu)以適應(yīng)于實際空戰(zhàn)需求,本文基于AC強化學(xué)習(xí)架構(gòu),使用深度神經(jīng)網(wǎng)絡(luò)的非線性表現(xiàn)能力,構(gòu)建由連續(xù)狀態(tài)空間至連續(xù)動作空間的映射,采用線性方法將飛機各個狀態(tài)機動包線動態(tài)歸一化,與動作空間對齊,保證決策算法充分調(diào)用飛機機動潛力的同時避免動態(tài)失速;通過增大空戰(zhàn)訓(xùn)練環(huán)境的不確定性,增強算法的全泛化能力,避免決策算法僅對特定起始條件有效;通過高不確定度的空戰(zhàn)場景設(shè)置與訓(xùn)練,說明方法架構(gòu)的合理性。
強化學(xué)習(xí)問題分為連續(xù)時間問題和離散時間問題,通常將連續(xù)時間問題近似為離散時間問題,這樣強化學(xué)習(xí)問題就可以統(tǒng)一表示為離散時間馬爾科夫決策過程。本文基于連續(xù)時間的離散化與環(huán)境完全可知表述空戰(zhàn)軌跡序列:
基于馬爾科夫性假設(shè)進一步引入MDP的演化概率為
至此,MDP可 由 四 元組S,A,R,P來表示,其中P是環(huán)境動力的四階張量形式。
在AC架 構(gòu) 下,agent由Actor和Critic兩 部 分構(gòu)成,分別負(fù)責(zé)動作生成與策略評估工作,其基本框架如圖1所示。
圖1 Actor-Critic架構(gòu)Fig.1 Framework of Actor-Critic
Actor網(wǎng)絡(luò)以當(dāng)前時刻狀態(tài)s為輸入,輸出當(dāng)前時刻動作a的相關(guān)量;Critic網(wǎng)絡(luò)以當(dāng)前狀態(tài)—動作對(s,a)為輸入,動作價值q(s,a)為輸出,其作用為評價當(dāng)前狀態(tài)采取的動作方案的價值。
式中:γ∈[0,1]為累加獎勵的折扣因子,代表agent的遠(yuǎn)視程度。
agent從環(huán)境觀測得到當(dāng)前狀態(tài)樣本s,依據(jù)Actor網(wǎng)絡(luò)輸出的動作相關(guān)量選擇動作樣本a,在環(huán)境中執(zhí)行該動作,進而使環(huán)境演化至下一狀態(tài)樣本s,并返回獎勵樣本r。Critic對s下行動方案a進行價值評估,并與獎勵r進行對比更新自身網(wǎng)絡(luò)參數(shù),使其評價更接近真實值,本文采用單步時序差分的方式更新,其評估方式為
根據(jù)動作價值評估q(s,a),利用隨機策略梯度(Policy Gradient,簡稱PG)方法更新Actor網(wǎng)絡(luò)參數(shù),使其策略得到優(yōu)化。
基于上述Actor-Critic架構(gòu)產(chǎn)生了多種算法,其中比較有代表性的有鄰近策略優(yōu)化算法(Proximal Policy Optimization,簡稱PPO)、柔性行動 者—批 評 者 算 法(Soft Actor-Critic,簡 稱SAC)、深度確定性策略梯度算法(Deep Deterministic Policy Gradient,簡稱DDPG)以及雙重延遲深度確定性策略梯度算法(Twin Delay Deep Deterministic Policy Gradient,簡稱TD3)等。
本文空戰(zhàn)環(huán)境為連續(xù)動作環(huán)境,DDPG算法的Actor網(wǎng)絡(luò)輸出為連續(xù)動作范圍內(nèi)的值,通過加入噪聲N確定執(zhí)行動作;TD3算法在DDPG算法的基礎(chǔ)上采用了兩套價值函數(shù),避免DDPG算法更新時陷入局部最優(yōu);SAC算法的Actor網(wǎng)絡(luò)輸出為動作的均值與方差,以此均值和方差選取執(zhí)行動作,并使用獎勵工程在原獎勵的基礎(chǔ)上增加由動作分布確定的熵以鼓勵智能體探索。
AC強化學(xué)習(xí)架構(gòu)下,由于深度神經(jīng)網(wǎng)絡(luò)具有強大的非線性映射能力,可直接由連續(xù)狀態(tài)空間向連續(xù)動作空間進行決策映射,通過數(shù)值方法實現(xiàn)空戰(zhàn)環(huán)境連續(xù)決策。為在空戰(zhàn)機動決策中使用AC架構(gòu),首先對空戰(zhàn)的狀態(tài)空間和動作空間進行設(shè)計。
參量化空戰(zhàn)狀態(tài)空間,首先應(yīng)建立空戰(zhàn)態(tài)勢的幾何模型。敵我空戰(zhàn)幾何關(guān)系如圖2所示,紅色飛機為我方飛機,藍(lán)色飛機為敵方飛機。R為敵我距離矢量,其方向由我方指向敵方,同時也是我方的射擊瞄準(zhǔn)線方向;V為我方的速度矢量;V為敵方的速度矢量;兩者參考系為地面坐標(biāo)系Oxyz;φ為我方飛機的提前角,即我方飛機機體軸與射擊瞄準(zhǔn)線之間的夾角,其大小等于我方速度矢量V與距離矢量R之間的夾角,該角度同時也是導(dǎo)彈瞄準(zhǔn)時我方導(dǎo)彈的離軸角;q為我方飛機的方位角,表示我方飛機相對敵機的方位,其大小等于敵方速度矢量V與距離矢量R之間夾角。角度φ與q的計算公式如式(5)所示。
圖2 空戰(zhàn)幾何關(guān)系Fig.2 Geometry relationship of air combat
由于環(huán)境需要滿足馬爾科夫性的要求,參量化空戰(zhàn)狀態(tài)空間需盡量包含空戰(zhàn)的態(tài)勢特征,而空戰(zhàn)中位置、速度、加速度及角度是機動飛行的最主要特征,故將空戰(zhàn)態(tài)勢信息S描述為S=[p,V,a,φ,q,p,V,a,φ,q],其 中p和p分別為我機和敵機的位置坐標(biāo);V和V分別為我機和敵機的速度矢量;a和a分別為我機和敵機的加速度矢量;φ和φ分別為我機與敵機的提前角;q和q分別為我機和敵機的方位角。
2.2.1 動作維度選取及動態(tài)求解
動作維度應(yīng)在保證可實現(xiàn)大多數(shù)機動動作的基礎(chǔ)上盡量減少。參考飛行員在空戰(zhàn)中的操縱習(xí)慣,多以駕駛桿和油門配合完成戰(zhàn)術(shù)機動,故選取飛機法向過載n、推力T與速度滾轉(zhuǎn)角φ三個維度的連續(xù)量構(gòu)成動作空間。
輸入上述三個操縱量后,飛機動態(tài)仿真可在氣流軸系下利用三自由度飛行動力學(xué)方程求解實現(xiàn)。
由于飛機機動范圍較大,可能出現(xiàn)垂直向上或向下的姿態(tài),采用歐拉角表征姿態(tài)會出現(xiàn)“萬向鎖”問題進而導(dǎo)致仿真求解中斷。故采用四元數(shù)法表征飛機姿態(tài)。
使用四元數(shù),由地面坐標(biāo)系到氣流坐標(biāo)系的旋轉(zhuǎn)矩陣L可以表示為
則飛機在地面慣性參考系下的速度矢量投影V為
飛機所受外力可以簡化為由重力mg、氣動升力L、氣動阻力D和發(fā)動機推力T構(gòu)成,其中L和D可由操縱量法向過載n和飛行狀態(tài)(飛行高度、飛行馬赫數(shù)、飛行動壓)確定。飛機所受合力在地面慣性參考系下的投影F為
飛機運動過程中,因所受外力與速度方向不共線而導(dǎo)致的速度軸的轉(zhuǎn)動角速度ω為
則飛機氣流坐標(biāo)系相對慣性參考系的旋轉(zhuǎn)角速度在自身坐標(biāo)系的投影為
則飛機的動力學(xué)方程可表示為
在實時求解飛機動態(tài)時,可以通過數(shù)值積分更新四元數(shù)和飛行速度標(biāo)量V,進而更新L矩陣,代表飛機的姿態(tài)。接下來可利用式(7)更新飛行速度矢量在地面坐標(biāo)系下的投影V,進而對時間進行數(shù)值積分,便可求解飛機的位置坐標(biāo)。
2.2.2 機動包線動態(tài)歸一化
基于上述連續(xù)動作空間,理論上可以實現(xiàn)除失速機動和非協(xié)調(diào)側(cè)滑外的所有空戰(zhàn)機動動作的仿真模擬,但在實際空戰(zhàn)中,飛機操縱量的安全范圍和極限使用范圍是隨飛行狀態(tài)實時變化的。以法向過載為例,某型飛機法向過載的使用包線如圖3所示,上方曲線代表不同高度最大可用正過載,下方曲線代表不同高度最大可用負(fù)過載。在實際飛行中,如果飛機使用過載超出過載包線范圍可能發(fā)生失速偏離或結(jié)構(gòu)受損等危險情況,同樣在油門和滾轉(zhuǎn)角控制量上也存在著隨飛行狀態(tài)變化的限制條件。
圖3 飛機可使用過載包線Fig.3 Envelope of load factor
由于存在限制條件,使得動作空間不再整齊,且量綱隨飛行狀態(tài)實時變化。本文在不破壞強化學(xué)習(xí)方法對環(huán)境馬爾科夫性要求的前提下,采用動態(tài)線性歸一化的方法,即實時將每個動作范圍線性映射至[-1,1]區(qū)間內(nèi)。以法向過載n為例,法向過載的動態(tài)歸一化公式為
式中:n為歸一化后的法向過載動作量;n和n分別為飛機當(dāng)時狀態(tài)下的最大正、負(fù)過載可用值,兩者都受飛行馬赫數(shù)和飛行高度的影響。
(1)在不破壞環(huán)境馬爾科夫性的同時,使所用動作范圍保持在[-1,1]范圍內(nèi),可以與深度神經(jīng)網(wǎng)絡(luò)的輸出層激活函數(shù)tanh進行量綱對接,且數(shù)值范圍處于激活函數(shù)的非飽和區(qū)域有利于加速訓(xùn)練;
(2)可保證決策的輸出動作均在包線以內(nèi),不會產(chǎn)生失速、結(jié)構(gòu)超載等危險動作;
(3)完成常規(guī)機動動作的難度更低,如完成垂直動作時,若使用未歸一化的動作空間需要根據(jù)動作階段不斷調(diào)整法向過載,而使用歸一化后的動作空間只需保持法向過載為0.8即可使其保持在最優(yōu)使用范圍內(nèi)。
為驗證動作空間設(shè)置的合理性和仿真方程的有效性,本文選取空中的高斤斗、斜斤斗和水平盤旋進行仿真驗證。
以歸一化動作為操縱量的斜斤斗及水平盤旋飛行軌跡分別如圖4~圖5所示。
圖4 斜斤斗運動軌跡圖Fig.4 Trajectory of inclined loop maneuver
圖5 水平盤旋運動軌跡圖Fig.5 Trajectory of sustained turn
從圖4可以看出:飛機的機動軌跡平滑,在垂直位置未出現(xiàn)仿真中斷現(xiàn)象。斜斤斗機動過程中三個歐拉角會急劇變化,尤其是接近垂直向上位置時,會出現(xiàn)歐拉角變化率無窮大的現(xiàn)象,表明本文采用的仿真方法具有良好的魯棒性。
空戰(zhàn)中所有常規(guī)機動動作均可以認(rèn)為是水平動作和垂直動作的組合與變形。使用歸一化的動作空間來參量化空戰(zhàn)動作,經(jīng)驗證可以通過保持特定操縱量完成成套的垂直和水平機動動作。在實際空戰(zhàn)中,機動動作多是成套動作的拆分和組合。通常飛行員動作切換的時間為秒量級,故本文選取2 s為一個決策步長,決策步長之間的操作量變化受到飛機敏捷性制約。理論上使用本文動作空間設(shè)置方法,可以實現(xiàn)飛機全狀態(tài)、全包線、任意空戰(zhàn)動作的連續(xù)決策,且決策步長之間不會出現(xiàn)操縱量突變的現(xiàn)象。
AC強化學(xué)習(xí)架構(gòu)下,agent需要不斷與環(huán)境交互獲得獎勵,通過“試錯”方式搜索最優(yōu)策略。
航炮是應(yīng)用最廣泛的空對空武器,隨著戰(zhàn)斗機性能的不斷提升,人們開始尋求更強的火力。即使航炮與瞄準(zhǔn)設(shè)備在不斷更新?lián)Q代,航炮的空對空射擊仍然對飛行員有較高的要求。實際需求與技術(shù)的進一步發(fā)展促使空對空導(dǎo)彈的出現(xiàn)?,F(xiàn)代空戰(zhàn)中,戰(zhàn)斗機多會在裝備航炮的同時攜帶導(dǎo)彈,由飛行員控制飛機做出機動以獲得有利態(tài)勢。縱觀戰(zhàn)斗機發(fā)展歷程,雖然其作戰(zhàn)能力在不斷提升,但在近距空戰(zhàn)中使用的戰(zhàn)術(shù)機動并未體現(xiàn)出較大的差異性,仍以尾后攻擊為主,因此空戰(zhàn)環(huán)境中敵我雙方飛機不同的性能參數(shù)設(shè)置并不會對強化學(xué)習(xí)結(jié)果產(chǎn)生很大的影響。同時考慮到在實際空戰(zhàn)訓(xùn)練時,雙方使用的飛機不會具有較大的性能差別,故對敵我飛機設(shè)置了相同的性能參數(shù)。在空戰(zhàn)仿真環(huán)境中,機載武器考慮使用空空導(dǎo)彈與機炮的情況。同時為了與真實空戰(zhàn)訓(xùn)練場景保持一致,本文主要針對從敵我飛機發(fā)現(xiàn)對方到一方構(gòu)成武器攻擊條件的空戰(zhàn)機動過程進行訓(xùn)練尋優(yōu),不考慮武器發(fā)射后的后續(xù)規(guī)避過程。空戰(zhàn)勝負(fù)的判據(jù)設(shè)定主要參考實際空戰(zhàn)中BFM(Basic Fighter Maneuvering)課目的設(shè)置方法,即一方構(gòu)成火力控制系統(tǒng)解算下的導(dǎo)彈發(fā)射條件或機炮攻擊條件,則認(rèn)為該輪訓(xùn)練已分出勝負(fù)。參考空戰(zhàn)訓(xùn)練中的相關(guān)課目,除上述情況外,若一方被迫撞地,也認(rèn)為另一方對其完成“撞地?fù)魵ⅰ?;若發(fā)生雙機危險接近,則認(rèn)為雙機相撞,雙方均“失敗”;若一方飛出邊界,則認(rèn)為該方任務(wù)失敗。
參考空戰(zhàn)實際訓(xùn)練中的課目設(shè)置方法,并考慮強化學(xué)習(xí)網(wǎng)絡(luò)的收斂性,采用事件獎勵為主,過程獎勵為輔的獎勵設(shè)置方法。
事件獎勵只有在回合結(jié)束時才會給出,會受到折扣因子的影響而衰減。本文在獎勵設(shè)計時選取較大量級的事件獎勵值與合理的折扣因子,使智能體仍有足夠的動力以結(jié)果為導(dǎo)向進行決策。而事件獎勵在整個空戰(zhàn)過程中是稀疏的,此時無明顯的策略梯度來引導(dǎo)agent的演化方向。針對該現(xiàn)象,結(jié)合飛行員空戰(zhàn)的先驗知識合理設(shè)置過程獎勵,在空戰(zhàn)過程中實時給予智能體反饋以引導(dǎo)智能體探索最有可能獲勝的方向。首先根據(jù)不同空戰(zhàn)結(jié)果的重要程度,設(shè)置以結(jié)果為導(dǎo)向的事件獎勵??諔?zhàn)中最“完美”的結(jié)果為使用導(dǎo)彈擊殺敵機,若空戰(zhàn)仿真結(jié)果為使用導(dǎo)彈擊殺敵機,則agent獲得獎勵+2 000;若使用航炮擊殺敵機,則agent獲得獎勵+1 000;若雙方纏斗中,迫使敵方損失高度而最終撞地,則獲得獎勵+1 000;空戰(zhàn)中應(yīng)盡量避免與敵機相撞,若發(fā)生此結(jié)果,agent獲得獎勵-1 000。相對應(yīng),若被敵機導(dǎo)彈擊殺,agent獲得獎勵-2 000;若被敵機航炮擊殺,agent獲得獎勵-1 000;被迫損失高度撞地,agent獲得獎勵
-1 000。
在仿真訓(xùn)練中,由于agent操縱飛機的自由度較大,飛機易出現(xiàn)進入小速度、低高度、超速、超出升限或者脫離初始空域等現(xiàn)象。在實際空戰(zhàn)出現(xiàn)該類現(xiàn)象可能會影響飛行安全,故將該類現(xiàn)象統(tǒng)一稱為“飛出邊界”事件,并給予一定負(fù)獎勵。發(fā)生該事件后將終止本輪空戰(zhàn)仿真,重置空戰(zhàn)環(huán)境,agent得到獎勵-300,此處負(fù)獎勵絕對值較小的原因是防止agent因避免“飛出邊界”而限制飛機機動潛能。
綜上,空戰(zhàn)事件獎勵的設(shè)置匯總?cè)绫?所示。
表1 事件獎勵設(shè)置Table 1 Reward setting of statements
過程獎勵的設(shè)置,主要以飛行手冊中的“最佳機動點”為依據(jù)。實際雙機機動對抗中,存在一個相對的位置區(qū)域,在該區(qū)域內(nèi)飛機可以用最小的機動過載來保持對敵機的持續(xù)跟蹤,且容易達(dá)成導(dǎo)彈發(fā)射條件,該區(qū)域的中心即為“最佳機動點”。
使用某型導(dǎo)彈攻擊某型飛機時,最佳機動點的坐標(biāo)計算經(jīng)驗公式為
式中:p為最佳機動點在地面坐標(biāo)系下的坐標(biāo);V為敵方飛機速度矢量;α為最佳攻擊距離的比例系數(shù),α∈[0,1]。
過程獎勵的設(shè)置思路為:當(dāng)飛機位置與最佳機動點距離較遠(yuǎn)時,讓獎勵與該距離負(fù)相關(guān),以引導(dǎo)agent以最快方式向最佳機動點接近;當(dāng)距離較近時,為引導(dǎo)agent減小敵機視線率和導(dǎo)彈離軸角以構(gòu)成導(dǎo)彈發(fā)射條件,此時的獎勵要與敵機視線率和導(dǎo)彈離軸角的大小負(fù)相關(guān),且距離越小獎勵值越大,設(shè)置經(jīng)驗過程獎勵公式為
式中:d為我方飛機與最佳機動點的歐式距離;R為過程獎勵值;φ為我機導(dǎo)彈離軸角;φ為導(dǎo)彈最大離軸角;l為敵機視線率的大?。籰為導(dǎo)彈發(fā)射架的最大轉(zhuǎn)動速率。
由于總體算法基于Actor-Critic框架,故需要建立兩類神經(jīng)網(wǎng)絡(luò)模型。參考深度強化學(xué)習(xí)算法搭建神經(jīng)網(wǎng)絡(luò),如文獻[47]中使用DDPG算法在隱藏層較少時設(shè)置了300與400個節(jié)點,在不同難度的經(jīng)典強化學(xué)習(xí)環(huán)境中獲得了較好的收斂結(jié)果,如4維度狀態(tài)空間的倒立擺環(huán)境,18維度狀態(tài)空間的機械臂環(huán)境等。而空戰(zhàn)環(huán)境更為復(fù)雜且狀態(tài)空間維度更大,同時考慮到通用性與封裝性,本文Actor和Critic網(wǎng)絡(luò)均采用相同規(guī)格的隱藏層,均設(shè)有兩個隱藏層,每個隱藏層均有512個節(jié)點,在隱藏層后加入ReLu激活層,用來增強神經(jīng)網(wǎng)絡(luò)的非線性映射能力。
其中Actor網(wǎng)絡(luò)以敵我飛機的總體態(tài)勢為輸入,由于S中的p、p、V、V、a、a均為三維矢量,對于敵我飛機均有方位角與離軸角,故Actor網(wǎng)絡(luò)的輸入維度為22維。Critic網(wǎng)絡(luò)的輸入層維度為狀態(tài)S維度與動作A維度的疊加,即22+3=25。其隱藏層參數(shù)設(shè)置與Actor網(wǎng)絡(luò)基本相同。Critic的輸出為狀態(tài)—動作對的價值評估,輸出維度為1維。
本文主要對比DDPG、SAC、TD3三種算法的效果,雖然都基于AC架構(gòu),但神經(jīng)網(wǎng)絡(luò)的構(gòu)建仍有區(qū)別,SAC將動作分布嵌入神經(jīng)網(wǎng)絡(luò),而DDPG與TD3算法選擇在外部添加噪聲來實現(xiàn)連續(xù)動作的訓(xùn)練。
SAC算法中Actor的輸出不是確定性的動作,而是基于高斯分布的動作概率,故其輸出為動作的均值與標(biāo)準(zhǔn)差,由于操縱量的設(shè)置共有3個維度,故均值與標(biāo)準(zhǔn)差均為3維輸出。在均值與標(biāo)準(zhǔn)差輸出層后,Actor網(wǎng)絡(luò)會基于高斯分布抽樣選擇出動作樣本,并由Tanh激活層將動作歸一化至[-1,1]區(qū)間,與仿真環(huán)境進行量綱對齊,Actor網(wǎng)絡(luò)結(jié)構(gòu)如圖6所示。
圖6 SAC算法Actor網(wǎng)絡(luò)結(jié)構(gòu)Fig.6 Structure of actor neural network in SAC
為對比不同算法的效果,DDPG算法與TD3的Actor網(wǎng)絡(luò)架構(gòu)與SAC基本相同,但輸出為確定性動作,經(jīng)Tanh激活層將動作歸一化至[-1,1]區(qū)間,在神經(jīng)網(wǎng)絡(luò)框架外引入高斯噪聲,再經(jīng)過范圍限制輸出動作,其Actor網(wǎng)絡(luò)結(jié)構(gòu)如圖7所示。
圖7 DDPG、TD3算法Actor網(wǎng)絡(luò)結(jié)構(gòu)Fig.7 Structure of actor neural network in DDPG and TD3
三種算法Critic網(wǎng)絡(luò)作用都為輸出價值評估值,采用相同的Critic網(wǎng)絡(luò)架構(gòu),如圖8所示。
圖8 Critic網(wǎng)絡(luò)結(jié)構(gòu)Fig.8 Structure of Critic neural network
空戰(zhàn)場景的設(shè)置,借鑒空戰(zhàn)訓(xùn)練中的“熱身練習(xí)”課目??諔?zhàn)訓(xùn)練中,在開始正式對抗課目之前,飛行員通常會進行1~2輪的熱身練習(xí),用以熟悉空戰(zhàn)技術(shù)和適應(yīng)空戰(zhàn)節(jié)奏。本文研究以驗證思路可行性為主,故借鑒空戰(zhàn)中的熱身訓(xùn)練課目設(shè)置空戰(zhàn)場景??諔?zhàn)訓(xùn)練中常見的熱身方式為,扮演敵方的飛機進行過載轉(zhuǎn)彎,我方分別從劣勢、均勢、優(yōu)勢的起始態(tài)勢下,對敵方飛機進行機動、跟蹤、鎖定、射擊等操縱。
為提高決策算法的泛化能力,以更加適應(yīng)實際空戰(zhàn)中的復(fù)雜態(tài)勢,設(shè)置高不確定度的空戰(zhàn)場景以驗證決策算法的有效性,具體設(shè)置如下。
敵方由藍(lán)色飛機代表,軌跡為虛線,初始水平坐標(biāo)為(0,0),起始高度為3 000 m,起始速度為138~305 m/s,起始航向從0~360°隨機選取,0~60°隨機選取滾轉(zhuǎn)角做向左或向右等速水平盤旋機動;我方由紅色飛機代表,軌跡為實線,起始水平坐標(biāo)為(5 000,5 000),起始高度從2 500~3 500 m隨機選取,即我方初始高度優(yōu)勢隨機設(shè)置,起始速度為208 m/s,與敵機速度相比我方初始速度優(yōu)勢隨機設(shè)置,起始航向從0~360°隨機選取,即我方初始角度優(yōu)勢隨機設(shè)置。
在我方起始高度優(yōu)勢、速度優(yōu)勢和角度優(yōu)勢都具有高不確定度的空戰(zhàn)場景下訓(xùn)練,各算法訓(xùn)練過程中學(xué)習(xí)曲線如圖9所示,可以看出:各算法在本文設(shè)置環(huán)境下都有不錯的收斂性,在AMD Ryzen 7 5800H with Radeon Graphics 3.20 GHz處理器及NVIDIA GeForce RTX 3060 Laptop GPU環(huán)境下訓(xùn)練,由于不同算法以及代碼的差異性,訓(xùn)練時間有所差別,但2~3 h都可以達(dá)到收斂水平;DDPG與SAC算法收斂性差別較小,TD3由于使用了延遲更新與雙網(wǎng)絡(luò)學(xué)習(xí)稍顯緩慢但最終也能趨于最優(yōu)值。
圖9 學(xué)習(xí)曲線對比Fig.9 Learning curves contrast
在此高不確定度空戰(zhàn)場景中對不同算法訓(xùn)練完成模型進行測試,統(tǒng)計結(jié)果如表2所示,可以看出:agent可以在多種算法下適應(yīng)隨機度的空戰(zhàn)仿真環(huán)境,并且在大多數(shù)態(tài)勢下做出最優(yōu)決策,完成對敵擊殺。
表2 空戰(zhàn)測試結(jié)果Table 2 Results of air combat test
其中TD3算法由于延遲更新與雙網(wǎng)絡(luò)架構(gòu)學(xué)習(xí)較慢,但在更多的更新回合下也能達(dá)到很好的效果;DDPG與SAC算法整體差異不大,可以看出由于SAC算法選擇將動作的不確定性嵌入神經(jīng)網(wǎng)絡(luò),使得在測試時會有少許擾動讓我方飛機飛出邊界。
由于環(huán)境中機炮擊殺范圍比導(dǎo)彈擊殺范圍小,機炮擊殺比導(dǎo)彈擊殺要求更為嚴(yán)苛,agent學(xué)習(xí)結(jié)果體現(xiàn)出使用導(dǎo)彈對敵擊殺。
在初始條件為敵機隨機位置、隨機速度、隨機滾轉(zhuǎn)角做轉(zhuǎn)彎機動時,agent可以做出半滾倒轉(zhuǎn)、低速Yo-Yo等實際飛行中飛行員常做的飛行動作。
敵機轉(zhuǎn)彎空戰(zhàn)動態(tài)如圖10所示。圖10(a)中,我方飛機高度占優(yōu)勢,飛行方向與敵機基本平行,且敵機在我機后方,角度占劣勢的前提下,agent操縱我方飛機滾轉(zhuǎn)180°后保持較高過載,迅速下翻轉(zhuǎn),做了類似半滾倒轉(zhuǎn)的機動動作,將機頭指向敵機,完成導(dǎo)彈擊殺。圖10(b)中,我方飛機高度與敵機相近,飛行方向與敵機基本平行,且我機在敵機后方,角度占優(yōu)勢,但與敵機距離較遠(yuǎn),無法構(gòu)成導(dǎo)彈發(fā)射條件的前提下,agent操縱飛機向下俯沖增速,而后拉起機頭指向敵機,通過類似低速Yo-Yo的機動動作,縮短雙機距離,完成導(dǎo)彈擊殺。
圖10 敵機轉(zhuǎn)彎空戰(zhàn)動態(tài)Fig.10 Dynamic of air combat in enemy aircraft turn
為進一步說明空戰(zhàn)環(huán)境與動作設(shè)置的合理性,除前文所述的敵方做隨機水平盤旋機動外,還測試在不同場景下agent的表現(xiàn),如雙機迎面相遇、追擊、爬升、防御等機動,如圖11~圖13所示。
圖11 迎面空戰(zhàn)動態(tài)Fig.11 Dynamic of air combat in head-on
圖13 攻防轉(zhuǎn)換Fig.13 Attack and defense conversion
從圖11可以看出:我機以大過載小轉(zhuǎn)彎半徑完成領(lǐng)先轉(zhuǎn)彎將機頭指向敵機完成擊殺。
從圖12可以看出:設(shè)置敵機在平飛一段距離后拉起,我機可以保持跟隨敵機并用導(dǎo)彈完成擊殺。
圖12 爬升空戰(zhàn)動態(tài)Fig.12 Dynamic of air combat in climb
從圖13可以看出:agent通過側(cè)向拉起,直至敵機沖到我機前方后俯沖將機頭指向敵機完成擊殺。
(1)基于AC強化學(xué)習(xí)架構(gòu),能夠?qū)崿F(xiàn)基于連續(xù)動作空間的空戰(zhàn)機動決策,克服傳統(tǒng)方法的“無限維度”問題,使空戰(zhàn)基于連續(xù)動作的遠(yuǎn)視最優(yōu)決策得以在較短時間內(nèi)求解。
(2)利用動態(tài)歸一化方法,可以解決因飛機狀態(tài)變化導(dǎo)致的動作空間不整齊問題,且可以降低執(zhí)行成套機動動作的難度,有利于agent的訓(xùn)練學(xué)習(xí)。
(3)通過高不確定度的空戰(zhàn)仿真驗證,訓(xùn)練完成的agent可以在復(fù)雜空戰(zhàn)態(tài)勢下對飛行目標(biāo)保持較高的擊殺率;且agent在特定態(tài)勢下可以做出實際空戰(zhàn)中的常用機動動作,其機動方案具有較高的合理性。
本文通過高不確定性的空戰(zhàn)場景設(shè)置與多種強化學(xué)習(xí)算法驗證了在此環(huán)境下實現(xiàn)連續(xù)動作空戰(zhàn)決策的合理性與可行性,但可以看到智能體所學(xué)習(xí)出的機動動作仍較為有限。為了與實際空戰(zhàn)環(huán)境更為貼近,下一步的工作將主要針對多智能體自博弈方法展開研究,這將是未來智能空戰(zhàn)的發(fā)展方向。