沈賢杰
(中國電子科技南湖研究院JS 大腦實(shí)驗(yàn)室, 杭州 314000)
博弈對抗算法在現(xiàn)實(shí)生活中應(yīng)用場景非常廣泛,例如棋類、商業(yè)投標(biāo)、作戰(zhàn)等。 對于棋類等存在大量的融合人類專家先驗(yàn)知識的局內(nèi)數(shù)據(jù)作為訓(xùn)練數(shù)據(jù)的場景,即使不采用強(qiáng)化學(xué)習(xí),只采用監(jiān)督學(xué)習(xí)即可獲得接近甚至超越普通人類的表現(xiàn)。 然而,對于其它一些難以獲得大量實(shí)際數(shù)據(jù)的場景,現(xiàn)有表現(xiàn)較好的解決方案,是使用結(jié)合先驗(yàn)知識的強(qiáng)化學(xué)習(xí)模型進(jìn)行自博弈對抗。
PSA-Air 模型首先針對空中博弈對抗的場景,設(shè)計(jì)了多階段的強(qiáng)化學(xué)習(xí)模型訓(xùn)練,并將原先樸素的行動(dòng)策略方案改進(jìn)為一種更穩(wěn)定有效的基于相對位置的行動(dòng)方案;針對不同階段的模型訓(xùn)練設(shè)計(jì)不同的群落學(xué)習(xí)機(jī)制,來解決模型訓(xùn)練的冷啟動(dòng)、過擬合等問題。 此外,該模型利用Transformer中的自注意力機(jī)制,對多智能體環(huán)境狀態(tài)進(jìn)行編碼,實(shí)驗(yàn)證明相比LSTM具有更高的性能。
本文算法模型解決的問題環(huán)境為態(tài)勢完全透明的5V5 空戰(zhàn)問題。 雙方均由1 架有人機(jī)與4 架無人機(jī)組成,雙方性能完全對等;可行動(dòng)空域長寬均為300 km,高度約為10 km 的矩形。 初始狀態(tài)雙方各從空域俯視圖的正方形一對頂角,同一高度同時(shí)出發(fā),每架飛機(jī)各攜2 枚導(dǎo)彈。 在限制時(shí)間20 min 內(nèi),若一方無人機(jī)被擊落或者全部導(dǎo)彈已被發(fā)射則判負(fù);若超過限制時(shí)間,當(dāng)前剩于戰(zhàn)力(飛機(jī)總架數(shù)、導(dǎo)彈剩余總數(shù)量)多者獲勝;若剩余戰(zhàn)力相等,則占據(jù)對戰(zhàn)空域中間部分時(shí)間較長的一方獲勝。 對戰(zhàn)過程中,內(nèi)部機(jī)群之間的機(jī)載雷達(dá)可以互相提供制導(dǎo)功能。
群落學(xué)習(xí)技術(shù)最初由DeepMind 提出,用于挑選神經(jīng)網(wǎng)絡(luò)最優(yōu)超參數(shù)。 具體地說,多個(gè)被隨機(jī)賦予超參數(shù)的神經(jīng)網(wǎng)絡(luò)模型并行地訓(xùn)練。 類似于遺傳學(xué)習(xí),在每輪訓(xùn)練中獲得較好表現(xiàn)的網(wǎng)絡(luò)超參數(shù)組合,會(huì)被用于改進(jìn)現(xiàn)有的超參數(shù)組合,表現(xiàn)較差的超參數(shù)組合則會(huì)被放棄。 在AlphaGo中同樣存在類似的思想,在自博弈階段會(huì)初始化一系列不同參數(shù)的對手用于對抗學(xué)習(xí),來防止訓(xùn)練階段的過擬合問題。
Transformer 在自然語言處理等多個(gè)領(lǐng)域取得了非常優(yōu)秀的成績,其主要?dú)w功于其對于自注意力機(jī)制的應(yīng)用。 假設(shè)輸入為[,]維的矩陣,則需要3個(gè)均為[,]維的矩陣、、, 分別代表、與,將輸入矩陣轉(zhuǎn)換成[,]維的矩陣。 輸入矩陣經(jīng)過矩陣得到其矩陣,將該矩陣與經(jīng)過矩陣得到的矩陣進(jìn)行內(nèi)積,再與經(jīng)過矩陣轉(zhuǎn)換后的矩陣相乘后,得到處理后的輸入。 該機(jī)制主要意義在于將輸入視為個(gè)維的向量,使向量之間進(jìn)行交互,挖掘輸入之間的關(guān)系,凸顯更重要的輸入維度。 具體公式如式(1) 所示,分母中的用于防止矩陣內(nèi)積結(jié)果過大。
PSA-Air 模型主要由Critic 和Actor組成,并遵循MADDPG集中式評價(jià)、分布式訓(xùn)練的原則,使用經(jīng)驗(yàn)回放池以及目標(biāo)網(wǎng)絡(luò)機(jī)制。 其中,Critic 接收整體環(huán)境的輸入、編碼得到當(dāng)前環(huán)境的嵌入向量,并輸出衡量當(dāng)前優(yōu)劣情況的值;Actor 接收各個(gè)行動(dòng)體的局部環(huán)境,并輸出對應(yīng)的行動(dòng)策略。
每架飛機(jī)的狀態(tài)由一個(gè)10 維的向量表示, 分別為、、軸方向的方位,表示飛機(jī)飛行角度的航向角、俯仰角、橫滾角,以及縱向加速度、 切向加速度、導(dǎo)彈的剩余量等。 以上參數(shù)均被標(biāo)準(zhǔn)化到0 ~1之間,使訓(xùn)練過程更為高效穩(wěn)定。 若該飛機(jī)已被擊落則全設(shè)為0。 每一架飛機(jī)由一個(gè)獨(dú)立的Actor 控制,以往模型對于Actor 會(huì)直接輸出三維空間下各個(gè)角度的偏轉(zhuǎn)角以及加速度,但采用這種方式,在訓(xùn)練期間會(huì)有較多的不穩(wěn)定性,且由于在訓(xùn)練初期飛機(jī)容易飛離指定空域,所以訓(xùn)練效率較低。
Actor 和Critic 接收輸入后,都會(huì)經(jīng)過全連接層連接的若干個(gè)自注意力層,將不同行動(dòng)體的狀態(tài)向量進(jìn)行交互,再經(jīng)過帶非線性激活函數(shù)的全連接層進(jìn)行編碼。 同時(shí)該模型避免了使用LSTM 對歷史數(shù)據(jù)進(jìn)行編碼存儲(chǔ),主要考慮到LSTM 的訓(xùn)練速度慢且對于強(qiáng)化學(xué)習(xí)模型訓(xùn)練難度較高。 為了利用歷史數(shù)據(jù),模型的輸入會(huì)同時(shí)得到該時(shí)刻以及上一時(shí)刻的數(shù)據(jù),雖然輸入層維度會(huì)翻倍,但大大降低了對計(jì)算資源的需求以及訓(xùn)練難度。
對于一局對戰(zhàn),主要分為開局階段以及開火階段。 開局階段定義為:雙方機(jī)群之間,兩架飛機(jī)之間距離大于3 倍最大開火范圍時(shí),認(rèn)為處于開局階段。該階段的主要任務(wù)是機(jī)群內(nèi)部組成一個(gè)良好的隊(duì)形,使其能夠在很大程度上保護(hù)有人機(jī),并且利于攻擊敵方。 經(jīng)過開局階段后,會(huì)進(jìn)入對戰(zhàn)開火階段。主要表現(xiàn)為無人機(jī)之間的短兵相接以及有人機(jī)的適當(dāng)介入。 在兩個(gè)階段分別會(huì)使用不同的策略網(wǎng)絡(luò)。
PSA-Air 模型主要使用如下3 種獎(jiǎng)勵(lì)函數(shù)。
第一種:使用最終對戰(zhàn)結(jié)果的勝負(fù)獎(jiǎng)勵(lì)。 勝平負(fù)分別對應(yīng)+1、0、-1。 然而一場對局往往需要經(jīng)過上百次行動(dòng)決策,僅有終局獎(jiǎng)勵(lì)太過稀疏。
第二種:對于當(dāng)前戰(zhàn)力的消耗進(jìn)行評估。 若某一時(shí)刻無人機(jī)被擊落,則會(huì)給予負(fù)向獎(jiǎng)勵(lì)0.5;若導(dǎo)彈發(fā)射,但并未擊落目標(biāo),也會(huì)給予負(fù)向獎(jiǎng)勵(lì)0.16;反之,對另一方則會(huì)進(jìn)行正向獎(jiǎng)勵(lì)。
第三種:獎(jiǎng)勵(lì)用于指導(dǎo)保護(hù)己方有人機(jī)以及攻擊敵方無人機(jī)。 具體來說,對每一個(gè)時(shí)刻都會(huì)記錄一個(gè)環(huán)境值,其值為己方有人機(jī)距對方最近無人機(jī)距離與對方有人機(jī)距己方最近無人機(jī)距離的比值。 若該比值較大,則說明己方有人機(jī)處在相對更安全的位置(只考慮仍然攜帶剩余導(dǎo)彈的無人機(jī)),反之則說明己方有人機(jī)有被擊落的風(fēng)險(xiǎn)。時(shí)刻的該獎(jiǎng)勵(lì)為時(shí)刻的比值與1 時(shí)刻比值的變化值。
PSA-Air 模型的訓(xùn)練主要分為預(yù)熱階段與自博弈訓(xùn)練階段。 預(yù)熱階段包括整個(gè)模型群落的預(yù)熱訓(xùn)練,自博弈訓(xùn)練為群落內(nèi)的不同智能體之間進(jìn)行對抗訓(xùn)練。
3.4.1 預(yù)熱訓(xùn)練
模型預(yù)熱訓(xùn)練階段對戰(zhàn)的是基于規(guī)則的模型。規(guī)則模型在開局階段會(huì)讓有人機(jī)在原地打轉(zhuǎn)一定時(shí)間,其余無人機(jī)往敵方有人機(jī)飛行,這樣可讓有人機(jī)處在相對安全的位置又不至于脫離集群太遠(yuǎn)。 當(dāng)敵方有人機(jī)進(jìn)入攻擊范圍,則會(huì)使用貪心法讓最近距離的不在攻擊狀態(tài)的飛機(jī)攻擊。 若被敵方飛機(jī)攻擊,則有一定概率放棄攻擊,自主進(jìn)行繞圈飛行躲避攻擊。 同時(shí)在每一步的行為中增加一定的隨機(jī)性以提升魯棒性。
3.4.2 融合群落學(xué)習(xí)的自博弈訓(xùn)練
模型自博弈階段,會(huì)使用群落學(xué)習(xí)的概念,隨機(jī)初始化一組策略網(wǎng)絡(luò),用于和經(jīng)過預(yù)熱訓(xùn)練的模型進(jìn)行自博弈訓(xùn)練,并同時(shí)訓(xùn)練兩邊對戰(zhàn)的模型。 在以往使用群落學(xué)習(xí)的強(qiáng)化學(xué)習(xí)模型中,每一輪的對手策略網(wǎng)絡(luò)都會(huì)被隨機(jī)選擇,然而這樣訓(xùn)練的效率較低,會(huì)浪費(fèi)許多訓(xùn)練資源。 PopAir 模型提出運(yùn)用上限置信區(qū)間公式(Upper Confidence Bound,UCB)對策略網(wǎng)絡(luò)群落進(jìn)行采樣。 UCB 公式常被用于蒙特卡洛搜索樹中的節(jié)點(diǎn)采樣,以提升搜索效率。 具體如式(2)所示:
式中,表示每輪被挑選的概率; v為該網(wǎng)絡(luò)的對戰(zhàn)勝率;T表示各網(wǎng)絡(luò)的對戰(zhàn)次數(shù)。 若該策略網(wǎng)絡(luò)的對戰(zhàn)勝率較高或參與對戰(zhàn)的次數(shù)較少,則被挑選的概率越大。
3.4.3 訓(xùn)練細(xì)節(jié)
模型在預(yù)熱及自博弈訓(xùn)練階段,都使用時(shí)間差分誤差(TD error)版本的策略梯度下降法,TD error的具體定義如式(3)所示:
其中,是立即回報(bào);是折扣系數(shù);v是價(jià)值網(wǎng)絡(luò)的輸出。
策略網(wǎng)絡(luò)和價(jià)值網(wǎng)絡(luò)更新如式(4)、式(5)所示。
其中,代表經(jīng)驗(yàn)存儲(chǔ)池。
本文實(shí)驗(yàn)在Ubuntu 20.04 系統(tǒng)上進(jìn)行,模型由Pytorch 實(shí)現(xiàn),訓(xùn)練流程使用單張Quadro P4000 顯卡。
實(shí)驗(yàn)比較了本文基于UCB 公式采樣訓(xùn)練出來的模型與使用平均采樣概率種群學(xué)習(xí)訓(xùn)練出來的模型之間的優(yōu)劣,訓(xùn)練時(shí)間統(tǒng)一控制為前者自博弈訓(xùn)練3 000 輪次后。 共進(jìn)行了3 次訓(xùn)練,每次訓(xùn)練完的兩個(gè)模型之間進(jìn)行100 局對戰(zhàn),綜合勝負(fù)情況展示見表1。 當(dāng)使用UCB 公式對對手智能體進(jìn)行采樣時(shí),訓(xùn)練所得的模型明顯有更高的勝率。 由表1 中數(shù)據(jù)分析可知,由于UCB 公式在有限的時(shí)間內(nèi)能夠更好的平衡各個(gè)對手智能體的對戰(zhàn)權(quán)重,若當(dāng)前模型對戰(zhàn)某個(gè)隨機(jī)初始化訓(xùn)練的模型勝率較低時(shí),該公式則會(huì)鼓勵(lì)當(dāng)前模型多與該模型進(jìn)行對戰(zhàn),盡快彌補(bǔ)缺點(diǎn),因此提升了訓(xùn)練的效率。
表1 對戰(zhàn)平均采樣群落學(xué)習(xí)100 局表現(xiàn)Tab.1 Results of 100 games against average sampling PBL
嘗試將LSTM 以及自注意力層進(jìn)行替換,來驗(yàn)證在該問題中是否自注意力比LSTM 更快地收斂并得到更優(yōu)的解。 如圖1 所示,使用LSTM 的變體模型在訓(xùn)練時(shí)Actor loss 的波動(dòng)情況更加明顯、更不穩(wěn)定,且收斂速度更慢,最終收斂的loss 值略大于使用自注意力層的模型。
圖1 不同算法收斂速度比較Fig.1 Comparison of convergence rate with different algorithm
經(jīng)分析得出,導(dǎo)致該問題的原因:一是LSTM 結(jié)構(gòu)的網(wǎng)絡(luò),在強(qiáng)化學(xué)習(xí)訓(xùn)練中訓(xùn)練難度較大,表現(xiàn)不穩(wěn)定;二是在空戰(zhàn)問題中,由于有較明顯的開局、交火等不同階段,行動(dòng)策略有明顯變化,而LSTM 無法直接屏蔽上一階段策略數(shù)據(jù)的影響,并且LSTM 的訓(xùn)練速度明顯慢于使用近段數(shù)據(jù)進(jìn)行自注意力機(jī)制交互對歷史數(shù)據(jù)進(jìn)行建模的方法。
本文針對空戰(zhàn)博弈對抗問題提出了一種訓(xùn)練性能效率高,且性能優(yōu)秀的強(qiáng)化學(xué)習(xí)模型PSA-Air。該模型首先提出了一種基于智能體相對位置的行動(dòng)方式,在處理環(huán)境輸入時(shí)借鑒Transformer 中的疊層自注意力機(jī)制,來進(jìn)行各個(gè)智能體狀態(tài)的交互解析。實(shí)驗(yàn)證明,PSA-Air 比直接使用LSTM 進(jìn)行解析有更快的收斂速度以及更好的表現(xiàn)。 實(shí)驗(yàn)中,結(jié)合UCB 公式的群落學(xué)習(xí)算法相比平均采樣的變體更加適合于訓(xùn)練深度強(qiáng)化模型。