楊晟琦,田明俊,司迎利,金琳乘
(1.中國航空工業(yè)集團(tuán)公司沈陽飛機(jī)設(shè)計(jì)研究所,沈陽 110035;2.中國空空導(dǎo)彈研究院,河南 洛陽 471009)
現(xiàn)代空戰(zhàn)對高動(dòng)態(tài)和強(qiáng)實(shí)時(shí)的需求逐漸增長,人類飛行員的決策受限于反應(yīng)速度和環(huán)境適應(yīng)性。而人工智能由于不存在人類飛行員的相關(guān)局限性而逐漸展現(xiàn)優(yōu)勢[1]。因此,無人機(jī)的機(jī)動(dòng)決策成為航空科學(xué)中一個(gè)越來越重要的研究領(lǐng)域。微分對策、人工勢場、模糊推理、遺傳算法等算法均被用于解決無人機(jī)的機(jī)動(dòng)決策問題[2-6]。此外,以深度強(qiáng)化學(xué)習(xí)(deep reinforcement learning,DRL)為代表的人工智能技術(shù)與此領(lǐng)域的交叉融合也得到了廣泛研究[7-10]。其中,基于遺傳模糊樹開發(fā)的ALPHA 空戰(zhàn)系統(tǒng)首次證明了基于人工智能技術(shù)的空戰(zhàn)決策方法具有擊敗人類飛行員的潛力。然而,目前已有的方法均采用固定的決策間隔,這使得無人機(jī)的機(jī)動(dòng)決策難以適應(yīng)高動(dòng)態(tài)和強(qiáng)實(shí)時(shí)的環(huán)境。
綜上所述,本文采用分層強(qiáng)化學(xué)習(xí)(hierarchical reinforcement learning,HRL)方法,通過無人機(jī)在環(huán)境中的自我對弈,使無人機(jī)具備能夠自適應(yīng)調(diào)整決策間隔的自主機(jī)動(dòng)決策能力,解決了無人機(jī)在高動(dòng)態(tài)、強(qiáng)實(shí)時(shí)環(huán)境下的決策難題。
本文將空戰(zhàn)狀態(tài)分為無人機(jī)絕對狀態(tài)sa,相對狀態(tài)sγ和本機(jī)導(dǎo)彈狀態(tài)sm。絕對狀態(tài)由以下元素構(gòu)成:真空速v,當(dāng)前高度h,爬升率h˙,速度傾角θ,速度偏角φ,法向過載nn,火控雷達(dá)鎖定信號flock,電子告警信號fwarn,剩余空空導(dǎo)彈數(shù)量mleft。相對狀態(tài)由以下元素構(gòu)成:距離r,接近率r˙,相對高差Δh,目標(biāo)進(jìn)入角AA(目標(biāo)速度矢量與視線矢量的夾角),本機(jī)雷達(dá)波束角AO(本機(jī)機(jī)頭朝向與視線矢量的夾角)。導(dǎo)彈狀態(tài)由以下元素構(gòu)成:導(dǎo)彈速度vm,當(dāng)前高度hm,導(dǎo)彈與目標(biāo)距離rm,導(dǎo)彈與目標(biāo)接近率r˙m,剩余命中時(shí)間tgo,導(dǎo)彈與目標(biāo)之間的進(jìn)入角AAm和波束角AOm。對于某個(gè)無人機(jī),其整體的空戰(zhàn)狀態(tài)定義如下:
為了便于研究無人機(jī)的機(jī)動(dòng)決策,將無人機(jī)視為質(zhì)點(diǎn),則無人機(jī)的質(zhì)點(diǎn)運(yùn)動(dòng)學(xué)方程為
式中,x,y,z 為無人機(jī)在慣性坐標(biāo)系中的位置;x˙,y˙,z˙為無人機(jī)在慣性坐標(biāo)系中的速度分量;θ 為無人機(jī)的速度傾角(速度矢量與水平面的夾角);φ 為無人機(jī)的速度偏角(速度在水平面的投影與x 軸的夾角);nx為速度方向的過載,nz為法向過載,φ 為繞速度矢量的滾轉(zhuǎn)角;g 為重力加速度。
本文采用文獻(xiàn)[11]中的擴(kuò)展機(jī)動(dòng)動(dòng)作庫,如圖1 所示,將無人機(jī)在水平面的機(jī)動(dòng)動(dòng)作分為直線飛行,左轉(zhuǎn)60 °,左轉(zhuǎn)90 °,右轉(zhuǎn)60 °,右轉(zhuǎn)90 °共5種。無人機(jī)在垂直面的機(jī)動(dòng)動(dòng)作包含水平飛行,爬升30°,爬升60°,俯沖30°,俯沖60°共5 種。每個(gè)方向上的機(jī)動(dòng)動(dòng)作還包含加速、勻速、減速3 種狀態(tài)。
圖1 機(jī)動(dòng)動(dòng)作庫示意圖Fig.1 Schematic diagram of maneuver action database
為了自適應(yīng)地調(diào)整決策間隔,提出機(jī)動(dòng)選擇策略和機(jī)動(dòng)中斷策略。無人機(jī)根據(jù)當(dāng)前空戰(zhàn)狀態(tài),依據(jù)機(jī)動(dòng)選擇策略選擇具體實(shí)施的機(jī)動(dòng)動(dòng)作。在決策過程中,依據(jù)機(jī)動(dòng)中斷策略判斷是否需要中斷當(dāng)前機(jī)動(dòng)動(dòng)作。本文基于Actor-Critic 的強(qiáng)化學(xué)習(xí)訓(xùn)練架構(gòu),構(gòu)建機(jī)動(dòng)選擇策略網(wǎng)絡(luò)、機(jī)動(dòng)中斷策略網(wǎng)絡(luò)和價(jià)值網(wǎng)絡(luò)。
將機(jī)動(dòng)選擇策略網(wǎng)絡(luò)表示為πα,參數(shù)為α。將機(jī)動(dòng)中斷策略網(wǎng)絡(luò)表示為πβ,參數(shù)為β。無人機(jī)選擇一個(gè)機(jī)動(dòng)動(dòng)作執(zhí)行直到πβ輸出中斷信號,然后根據(jù)πα輸出新的動(dòng)作a。策略πβ表示了動(dòng)作的中斷概率。為了防止無人機(jī)始終保持相同的動(dòng)作,設(shè)置動(dòng)作最大保持間隔為tmax。將最大化無人機(jī)獲得的累積回報(bào)作為優(yōu)化的目標(biāo)函數(shù)。將無人機(jī)初始狀態(tài)表示為s0,則無人機(jī)整體軌跡的期望累積回報(bào)可以表示為:
式中,γ∈(0,1)為折扣因子,rt為t 時(shí)刻獲得的即時(shí)獎(jiǎng)勵(lì)?;谏鲜瞿繕?biāo)函數(shù),狀態(tài)價(jià)值函數(shù)可以表示為:
式中,Qπ為狀態(tài)價(jià)值函數(shù):
式中,p 為狀態(tài)轉(zhuǎn)移概率;U 為執(zhí)行動(dòng)作a 后狀態(tài)轉(zhuǎn)移至st+1后的價(jià)值,可以表示為:
無人機(jī)連續(xù)維持k 步動(dòng)作不變的概率可以表示為:
當(dāng)動(dòng)作保持k 步后出現(xiàn)動(dòng)作中斷時(shí),此時(shí)的狀態(tài)轉(zhuǎn)移概率為:
根據(jù)概率的鏈?zhǔn)椒▌t,當(dāng)上述的機(jī)動(dòng)決策序列發(fā)生n 次時(shí),整個(gè)決策過程的狀態(tài)轉(zhuǎn)移概率為:
綜上,根據(jù)策略梯度定理,可以推導(dǎo)出機(jī)動(dòng)選擇策略網(wǎng)絡(luò)和機(jī)動(dòng)中斷策略網(wǎng)絡(luò)的參數(shù)更新方法。對于具有參數(shù)α 的機(jī)動(dòng)選擇策略網(wǎng)絡(luò)πα,無人機(jī)期望累積回報(bào)對參數(shù)α 的梯度可以表示為:
根據(jù)動(dòng)作中斷策略網(wǎng)絡(luò)參數(shù)的更新方式可知,當(dāng)動(dòng)作為最優(yōu)時(shí),優(yōu)勢函數(shù)為正,參數(shù)的梯度呈減小的趨勢,從而減小動(dòng)作中斷的概率,使無人機(jī)繼續(xù)保持當(dāng)前的最優(yōu)決策。反之,負(fù)的優(yōu)勢函數(shù)使動(dòng)作中斷概率增加,使無人機(jī)趨向于決策出更優(yōu)的機(jī)動(dòng)動(dòng)作。通過動(dòng)作的保持和中斷,無人機(jī)能夠自適應(yīng)地調(diào)整決策間隔以在恰當(dāng)時(shí)機(jī)作出準(zhǔn)確的決策。
設(shè)價(jià)值網(wǎng)絡(luò)參數(shù)為λ,則無人機(jī)期望累積回報(bào)對參數(shù)λ 的梯度可以表示為:
為了使無人機(jī)學(xué)習(xí)機(jī)動(dòng)策略,構(gòu)建一個(gè)分層網(wǎng)絡(luò)。整個(gè)網(wǎng)絡(luò)將空戰(zhàn)狀態(tài)作為輸入,輸出當(dāng)前選擇的機(jī)動(dòng)動(dòng)作am,動(dòng)作是否中斷操作at和導(dǎo)彈射擊指令as。空戰(zhàn)狀態(tài)通過全連接神經(jīng)網(wǎng)絡(luò)生成嵌入向量,將其拼接在一起生成包含全局信息的隱變量etot。進(jìn)而通過softmax 函數(shù),輸出機(jī)動(dòng)動(dòng)作和射擊指令的離散決策量。
在實(shí)際空戰(zhàn)中,飛行員往往先根據(jù)態(tài)勢選擇合理的機(jī)動(dòng)動(dòng)作,然后根據(jù)實(shí)際情況判斷是否繼續(xù)執(zhí)行此機(jī)動(dòng)動(dòng)作或調(diào)整為其他戰(zhàn)術(shù)策略。因此,機(jī)動(dòng)中斷網(wǎng)絡(luò)采用兩級的分層決策結(jié)構(gòu)來模仿這種決策順序。將機(jī)動(dòng)選擇網(wǎng)絡(luò)輸出的機(jī)動(dòng)動(dòng)作和射擊指令轉(zhuǎn)換為one-hot 編碼,并將其作為先驗(yàn)知識與隱變量etot共同生成動(dòng)作是否中斷操作at。
圖2 展示了該分層網(wǎng)絡(luò)的整體形式和輸入輸出關(guān)系。下頁表1 具體說明了分層網(wǎng)絡(luò)的結(jié)構(gòu)。神經(jīng)網(wǎng)絡(luò)參數(shù)采用均值為0,方差為1 的正態(tài)分布進(jìn)行隨機(jī)初始化。
表1 分層網(wǎng)絡(luò)結(jié)構(gòu)Table 1 Hierarchical network structure
圖2 分層網(wǎng)絡(luò)框架Fig.2 Hierarchical network framework
本文采用自博弈對抗的訓(xùn)練方式使其具備期望的決策能力。無人機(jī)通過與環(huán)境互動(dòng)獲得獎(jiǎng)勵(lì)或懲罰。表2 展示了無人機(jī)獲得獎(jiǎng)勵(lì)或懲罰的典型事件。
表2 獎(jiǎng)勵(lì)設(shè)置Table 2 Reward setting
基于上述分層網(wǎng)絡(luò),將訓(xùn)練過程分為采樣和訓(xùn)練兩部分。首先,初始化兩架由上述分層網(wǎng)絡(luò)參數(shù)控制的無人機(jī)。通過兩架飛機(jī)與仿真環(huán)境的對抗互動(dòng),采集每個(gè)仿真步下的數(shù)據(jù)作為訓(xùn)練樣本,共采集10 000 條樣本。網(wǎng)絡(luò)參數(shù)采用式(1)~式(3)進(jìn)行更新,學(xué)習(xí)率設(shè)置為1×10-5。更新結(jié)束后,將舊樣本丟棄并采集新樣本。采樣和訓(xùn)練交替進(jìn)行,直到最大訓(xùn)練輪數(shù)。整個(gè)訓(xùn)練過程的具體實(shí)施步驟如下:
Step 1:初始化機(jī)動(dòng)選擇策略網(wǎng)絡(luò)、機(jī)動(dòng)中斷策略網(wǎng)絡(luò)和價(jià)值網(wǎng)絡(luò),設(shè)置動(dòng)作最大保持間隔tmax,動(dòng)作保持步長為0;
Step 2:將空戰(zhàn)狀態(tài)輸入機(jī)動(dòng)中斷策略網(wǎng)絡(luò),輸出無人機(jī)中斷動(dòng)作的概率p,通過參數(shù)為p 的伯努利分布進(jìn)行采樣,如果采樣結(jié)果為1,則無人機(jī)中斷當(dāng)前動(dòng)作;否則,維持動(dòng)作不變;
Step 3:當(dāng)無人機(jī)中斷當(dāng)前動(dòng)作或動(dòng)作保持步長等于最大保持間隔時(shí),將動(dòng)作保持步長重制為0,執(zhí)行Step4,否則執(zhí)行Step5;
Step 4:將空戰(zhàn)狀態(tài)輸入機(jī)動(dòng)選擇策略網(wǎng)絡(luò),輸出機(jī)動(dòng)動(dòng)作和相應(yīng)的動(dòng)作概率πα,獲取即時(shí)獎(jiǎng)勵(lì)rt和下一狀態(tài)st+1,將當(dāng)前狀態(tài)和下一狀態(tài)輸入價(jià)值網(wǎng)絡(luò),輸出當(dāng)前價(jià)值vt和下一狀態(tài)價(jià)值vt+1。根據(jù)式(1)和式(3)更新機(jī)動(dòng)選擇策略網(wǎng)絡(luò)和價(jià)值網(wǎng)絡(luò)的參數(shù),跳轉(zhuǎn)到Step6;
Step 5:動(dòng)作保持步長加1,無人機(jī)維持機(jī)動(dòng)動(dòng)作不變;
Step 6:根據(jù)式(2)更新機(jī)動(dòng)中斷策略網(wǎng)絡(luò)的參數(shù),循環(huán)執(zhí)行Step2~Step6 直到最大訓(xùn)練輪數(shù)。
為了驗(yàn)證本文提出的方法能夠有效學(xué)習(xí)無人機(jī)的機(jī)動(dòng)決策,將其與DQN 和DDPG 算法進(jìn)行對比[8],所有算法均選取3 個(gè)隨機(jī)數(shù)種子,共訓(xùn)練2 000 輪。圖3 展示了3 種算法的學(xué)習(xí)曲線,其中,橫軸表示訓(xùn)練輪數(shù),縱軸表示算法對應(yīng)的無人機(jī)在訓(xùn)練過程中獲得的平均獎(jiǎng)勵(lì),陰影部分體現(xiàn)了3 個(gè)隨機(jī)數(shù)種子下獎(jiǎng)勵(lì)的方差,而實(shí)線為對應(yīng)的均值。從圖中可以看出,本文提出的方法獲得了高于-100 的平均獎(jiǎng)勵(lì),顯著優(yōu)于對照算法。根據(jù)表2 的獎(jiǎng)勵(lì)設(shè)置,更高的獎(jiǎng)勵(lì)反映了更有效的進(jìn)攻行為和防御性為,從而證明了本文算法能夠使無人機(jī)在空戰(zhàn)中作出更為有效的機(jī)動(dòng)動(dòng)作以高效擊殺目標(biāo)和規(guī)避威脅。
圖3 學(xué)習(xí)曲線Fig.3 Learning curve
將本文算法和DDPG,DQN 和基于規(guī)則的專家系統(tǒng)進(jìn)行100 場模擬的對抗測試。無人機(jī)的初始化高度為5 km~10 km,初始化速度為250m/s~300 m/s,采用均勻分布進(jìn)行初始化。每架無人機(jī)攜帶4 枚空空導(dǎo)彈。戰(zhàn)場為200 km×200 km 的矩形區(qū)域,獲勝條件為通過導(dǎo)彈擊落對手或?qū)κ烛?qū)趕至戰(zhàn)場區(qū)域以外??諔?zhàn)的最大持續(xù)時(shí)間為600 s,若達(dá)到最大時(shí)間仍未分出勝負(fù),則為平局。勝/平/負(fù)比例的統(tǒng)計(jì)結(jié)果如圖4 所示。結(jié)果表明本文算法在對抗DDPG,DQN 和基于規(guī)則的專家系統(tǒng)時(shí),分別獲得了69%,74%和79%的勝率,證明了本文算法能夠使無人機(jī)在空戰(zhàn)中通過有效的機(jī)動(dòng)完成高效擊殺和規(guī)避,從而獲勝。
圖4 模擬空戰(zhàn)對抗勝率Fig.4 Confrontation winning rate of simulation air combat
圖5 展示了兩個(gè)典型的空戰(zhàn)機(jī)動(dòng)軌跡。其中,藍(lán)方為本文決策方法控制的無人機(jī),紅方為基于規(guī)則的專家系統(tǒng)。從圖5 中可以看出,藍(lán)機(jī)在面對紅機(jī)時(shí),能夠采取更為靈活的機(jī)動(dòng)策略,如:回轉(zhuǎn)降高,偏置攻擊等,證明了本文提出的方法使無人機(jī)學(xué)習(xí)到了更為靈活有效的機(jī)動(dòng)戰(zhàn)術(shù)。
圖5 基于分層強(qiáng)化學(xué)習(xí)的無人機(jī)機(jī)動(dòng)軌跡Fig.5 Maneuver trajectory of uav based on hierarchical reinforcement learning
本文算法在訓(xùn)練過程中如果在連續(xù)100 輪內(nèi)獎(jiǎng)勵(lì)的變化不超過10%,則認(rèn)為算法的訓(xùn)練已收斂。通過調(diào)整表1 中神經(jīng)網(wǎng)絡(luò)除輸出層以外的神經(jīng)元數(shù)量,觀察算法的收斂輪數(shù)和平均單步?jīng)Q策的時(shí)間消耗,如表3 所示。實(shí)驗(yàn)數(shù)據(jù)表明,神經(jīng)網(wǎng)絡(luò)中神經(jīng)元的數(shù)量會(huì)顯著影響收斂輪數(shù),隨著神經(jīng)元數(shù)量增長,收斂速度下降;而網(wǎng)絡(luò)容量對平均單步?jīng)Q策用時(shí)影響不明顯。
表3 算法收斂性和實(shí)時(shí)性Table 3 Convergence and real-time of algorithm
本文提出了一種基于分層強(qiáng)化學(xué)習(xí)的無人機(jī)機(jī)動(dòng)決策方法,設(shè)計(jì)了分層的機(jī)動(dòng)選擇策略網(wǎng)絡(luò)和機(jī)動(dòng)中斷策略網(wǎng)絡(luò),推導(dǎo)出兩種網(wǎng)絡(luò)基于策略梯度的參數(shù)更新方式,使無人機(jī)的決策間隔能夠自適應(yīng)地變化,以滿足高動(dòng)態(tài)、強(qiáng)實(shí)時(shí)環(huán)境下的決策需求。