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