熊蓉玲,段春怡,冉華明,楊 萌,馮旸赫
(1.中國西南電子技術(shù)研究所,成都 610036;2.西南交通大學 數(shù)學學院,成都 611756;3.國防科技大學 系統(tǒng)工程學院,長沙 410003)
強化學習通過智能體和環(huán)境不斷試錯交互的方式學習到能夠使獎勵最大化的最優(yōu)策略[1]。深度強化學習結(jié)合神經(jīng)網(wǎng)絡(luò)強大的表征能力來擬合智能體的策略模型和價值模型,求解復(fù)雜問題的能力大幅提升,近年來在各類智能決策問題上取得了巨大的進步,成為人工智能領(lǐng)域發(fā)展迅猛的一個分支[2]。實時策略類游戲作為典型的時序決策問題,成為國內(nèi)外學者研究深度強化學習的試金石。Mnih 等[3]提出深度Q網(wǎng)絡(luò)(Deep Q Network,DQN)算法解決Atari2600游戲,在6個游戲中的表現(xiàn)優(yōu)于以前的方法,在3個游戲中的表現(xiàn)優(yōu)于人類專家。但Atari2600游戲的任務(wù)場景較為簡單,決策時序較短,決策空間較小,問題復(fù)雜性不高。Vinyals等[4]針對星際爭霸游戲問題,采用了強化學習和模仿學習相結(jié)合的方式,解決了非完全信息下的即時策略游戲問題。Jaderberg等[5]針對雷神之錘游戲問題,利用雙層流程來優(yōu)化智能體的內(nèi)部獎勵機制,再通過這些獎勵來優(yōu)化強化學習模型,通過并行訓練多個不同的智能體集群相互配合,實現(xiàn)了完全無監(jiān)督的自學機制。與Atari2600游戲相比,星際爭霸和雷神之錘的任務(wù)場景復(fù)雜,決策難度大幅提升,文中設(shè)計的算法架構(gòu)復(fù)雜,計算資源需求大,訓練時間長,難以應(yīng)用到其他任務(wù)場景中。
針對傳統(tǒng)深度強化學習方法難以快速解決長時序復(fù)雜任務(wù)的問題,本文提出一種引入歷史信息和人類知識的深度強化學習方法。
強化學習主要關(guān)注智能體如何在環(huán)境中采取不同的行動,以最大限度地提高累積獎勵。強化學習主要由智能體、環(huán)境、狀態(tài)、動作、獎勵組成[6]。其中,狀態(tài)空間用狀態(tài)集合S表示,動作空間用動作集合A表示,則智能體與環(huán)境的交互過程為:當給定環(huán)境的某個狀態(tài)s∈S,智能體將根據(jù)當前的策略π(a|s)執(zhí)行某個動作a∈A,環(huán)境遷移到新的狀態(tài)s′∈S,同時智能體從環(huán)境獲得獎勵r(s,a)。智能體根據(jù)環(huán)境反饋的獎勵,對自身的策略模型進行更新,以學會最佳決策序列。
為了表示累積獎勵,通常使用折扣累積獎勵來代替:
(1)
式中:γ為折扣系數(shù)。
當執(zhí)行到某一步時,需要評估當前智能體在該時間步狀態(tài)的好壞程度,主要由值函數(shù)來完成,包括狀態(tài)值函數(shù)Vπ(s)和動作-狀態(tài)值函數(shù)Qπ(s,a)兩類,分別如公式(2)和(3)所示:
Vπ(s)=E[Rt|st=s],
(2)
Qπ(s,a)=E[Rt|st=s,at=a]。
(3)
強化學習的核心思想是使用值函數(shù)找到最優(yōu)的策略,通常采用求解貝爾曼方程的方法,即
(4)
或者
(5)
式中:p(s′,r|s,a)為狀態(tài)轉(zhuǎn)移概率。
深度學習通過神經(jīng)網(wǎng)絡(luò)的逐層組合,最終提取能夠代表數(shù)據(jù)最本質(zhì)的高維抽象特征,具有極強的表征能力。深度強化學習使用強化學習定義問題和優(yōu)化目標,使用深度學習求解策略函數(shù)或者價值函數(shù),充分利用了強化學習的決策優(yōu)勢和深度學習的感知優(yōu)勢,近年來在很多任務(wù)上取得了巨大的成功。
深度強化學習算法大體上可分為三類,即值函數(shù)方法、策略搜索方法和混合型的行動者-執(zhí)行者(Actor-Critic,AC)算法。典型的深度強化學習算法包括DQN[7]、優(yōu)勢行動者-執(zhí)行者(Advantage Actor-Critic,A2C)[8]、確定性策略梯度(Deterministic Policy Gradient,DPG)[9]、置信區(qū)域策略優(yōu)化(Trust Region Policy Optimization,TRPO)[10]、近端策略優(yōu)化(Proximal Policy Optimization,PPO)[11]等。經(jīng)過實驗對比發(fā)現(xiàn),PPO算法的整體表現(xiàn)更優(yōu),常作為深度強化學習應(yīng)用中的首選算法。
PPO算法是在TRPO算法的基礎(chǔ)上,使用截斷的方式構(gòu)建目標函數(shù),以保證新策略和舊策略的差異控制在一定范圍內(nèi),提高算法模型訓練的穩(wěn)定性。
1+ε)A(st,at))。
(6)
式中:ε為截斷系數(shù);rt(θ)為新策略和舊策略的比率,
(7)
變量A(st,at)為優(yōu)勢函數(shù),有助于在保持無偏差的情況下,盡可能地降低方差值,表達式為
A(st,at)=Q(st,at)-V(st)。
(8)
(9)
本文考慮經(jīng)典飛行射擊類游戲的任務(wù)場景,對抗雙方的智能體在模擬環(huán)境中各操控一架飛機從基地起飛,在飛行過程中智能體根據(jù)飛機傳感器探測到的對手信息和自身平臺的信息進行控制決策,以對飛機進行全方位的操控,包括飛行控制、雷達控制、電子戰(zhàn)控制、武器控制,最終達到擊落對方飛機的目的。
針對上述飛行射擊類游戲場景,本文采用深度強化學習方法對其進行問題建模,明確深度強化學習算法模型的狀態(tài)空間、動作空間和獎勵。首先,在強化學習決策模型中,引入歷史狀態(tài)和動作信息作為狀態(tài)輸入,讓智能體進行游戲決策時可以顯式地獲取歷史信息。其次,將游戲過程中對最終勝負有貢獻的關(guān)鍵事件作為中間獎勵,以顯式引導(dǎo)智能體如何獲勝。這樣設(shè)計可以帶來以下三方面的好處:
一是可以讓智能體更準確地掌握對手的狀態(tài)信息。在游戲過程中,對方飛機如果進入我方傳感器的探測范圍內(nèi),我方智能體只能獲得對手飛機的位置信息,無法獲得其航向和速度信息。通過引入上一時刻對手飛機的位置,智能體可以隱式獲得其航向和速度信息,可以幫助智能體更準確地進行飛行航向和速度控制決策。
二是可以幫助智能體保持控制決策的一致性。飛行射擊類游戲?qū)儆诘湫偷拈L時序連續(xù)決策問題,引入歷史動作信息可以讓智能體顯式獲得過往動作,有利于其保持決策的一致性,在游戲過程中避免無意義的動作頻繁變更,比如無意義的大幅機動、連續(xù)發(fā)彈、雷達頻繁開關(guān)機等。
三是可以幫助智能體更快地掌握獲勝方法?,F(xiàn)有的強化學習方法通常只根據(jù)游戲的勝負設(shè)置獎勵,但飛行射擊類游戲單局游戲的時長通常為20 min左右,只根據(jù)最終的勝負進行獎勵反饋屬于典型的稀疏回報問題,智能體很難學習到有效策略。將游戲過程中對最終勝負有貢獻的關(guān)鍵事件作為中間獎勵,比如發(fā)現(xiàn)目標、武器發(fā)射等,可以引導(dǎo)智能體更快地學習到獲勝策略。
本文采用PPO算法構(gòu)建飛行射擊類游戲智能決策模型,狀態(tài)空間來源于飛機傳感器探測到的對手信息和自身平臺的信息,包括飛機位置、傳感器狀態(tài)、武器狀態(tài)等共20項,動作空間包括飛機飛行控制、雷達控制、電子戰(zhàn)控制、武器控制共8項控制項,狀態(tài)空間、動作空間和獎勵的詳細信息分別如表1、表2和表3所示。
智能體在每個時間步根據(jù)最新的環(huán)境狀態(tài)以及歷史環(huán)境狀態(tài)和動作進行動作決策,考慮到過多引入歷史信息會加大狀態(tài)空間,從而影響訓練效率,本文在最新環(huán)境狀態(tài)的基礎(chǔ)上只引入上一步的歷史狀態(tài)和動作信息作為狀態(tài)輸入進行動作決策,游戲環(huán)境接收到?jīng)Q策動作進行環(huán)境狀態(tài)更新并反饋獎勵。重復(fù)上述過程直到游戲結(jié)束。
表1 狀態(tài)空間詳細信息
表2 動作空間詳細信息
表3 獎勵詳細信息
為了緩解智能體與游戲環(huán)境頻繁通信交互導(dǎo)致的訓練時間過長的問題,以及智能體頻繁決策動作變更導(dǎo)致的前后決策不一致的問題,智能體的1個時間步對應(yīng)游戲環(huán)境中的10個推進周期,即1次動作指令在10個游戲推進周期內(nèi)執(zhí)行。
在強化學習中,智能體在探索階段可以在整個動作空間內(nèi)進行試錯探索。但是,針對特定的環(huán)境狀態(tài),可能存在無效或者不合理的動作。智能體一旦探索到這些無效或者不合理的動作,會導(dǎo)致模型訓練收斂的時間變長。通常,任務(wù)場景的動作空間越大,其中無效或不合理的動作越多。
針對飛行射擊類游戲而言,其中存在的無效或者不合理的動作包括尚未發(fā)現(xiàn)對方飛機卻大幅機動轉(zhuǎn)彎;雷達尚未探測到對方飛機卻發(fā)射武器;對方雷達尚未探測到我方飛機(對方雷達狀態(tài)為關(guān)機或掃描)卻電子戰(zhàn)開機干擾。因此,本文采用無效動作掩膜[12]的方式避免智能體進行無效或不合理的探索,以提高模型的訓練收斂速度。
在PPO算法中,策略網(wǎng)絡(luò)輸出為未歸一化的概率(logits),然后經(jīng)過softmax操作轉(zhuǎn)變?yōu)闅w一化的概率值,根據(jù)不同動作的概率分布來進行動作選擇。
(10)
當某個動作是無效或不合理時,只需要將對應(yīng)策略網(wǎng)絡(luò)輸出(logits)替換為無窮小的值(如-1×108),則經(jīng)過softmax操作后該動作被選擇的概率趨近于0,以此來實現(xiàn)該動作的禁用。
同時,當某個時間步智能體采用了無效動作掩膜禁用某個動作時,對應(yīng)的策略梯度為0,從而保證了替換操作不會給策略網(wǎng)絡(luò)參數(shù)帶來負面影響。證明如下。
(11)
式中:N為樣本數(shù)據(jù)總量;Rk是第k條樣本的累積獎勵。
針對式(11)中的梯度計算部分進行公式推導(dǎo):
(12)
(13)
(14)
假設(shè)在某個時間步,智能體采用無效動作掩膜禁用了動作a0,并按照動作概率分布選擇執(zhí)行動作a1,則在式(14)中,i=1,無效動作a0對應(yīng)的梯度為
(15)
因此,證明得到無效動作掩膜對應(yīng)的策略梯度為0,策略網(wǎng)絡(luò)參數(shù)的更新不受動作掩膜的影響,從而保證了替換操作不會給策略網(wǎng)絡(luò)參數(shù)帶來負面影響。
為了驗證上述計算過程的正確性,在接收到最新的環(huán)境狀態(tài)時,人為將對方飛機的信息屏蔽來模擬尚未發(fā)現(xiàn)對方飛機的情況,在此情況下,智能體輸出的機動決策均為保持直飛,證明無效動作掩膜確實屏蔽了無效的大幅機動。同時,對比了該情況下策略網(wǎng)絡(luò)模型更新前后的網(wǎng)絡(luò)參數(shù)值,發(fā)現(xiàn)網(wǎng)絡(luò)參數(shù)值未發(fā)生改變,證明無效動作掩膜對應(yīng)的策略梯度確實為0,不會給策略網(wǎng)絡(luò)參數(shù)帶來負面影響。
本文所提的PPO智能決策算法模型是在Stable Baselines[13]中PPO2算法源代碼的基礎(chǔ)上增加無效動作掩膜實現(xiàn)的,并調(diào)用該算法庫中的矢量化環(huán)境模塊(Subproc Vec)實現(xiàn)多進程并行采樣。矢量化環(huán)境是一種將多重獨立環(huán)境堆疊成單一環(huán)境的方法,可以實現(xiàn)同時在多個環(huán)境上進行并行交互采樣,以提高智能體的探索效率。
游戲環(huán)境則是基于OpenAI Gym框架[14]對飛行射擊類游戲進行封裝。智能體與游戲平臺之間采用用戶數(shù)據(jù)包協(xié)議(User Datagram Protocol,UDP)通信,通過最基本的套接字的方式進行信息交互,以減少網(wǎng)絡(luò)堵塞,縮短通信時間。
本文中設(shè)定的任務(wù)區(qū)域如圖1所示,分為待戰(zhàn)區(qū)和自由交戰(zhàn)區(qū),待戰(zhàn)區(qū)的大小為15 km×25 km,自由交戰(zhàn)區(qū)的大小為150 km×25 km。對抗雙方的初始經(jīng)緯度可在各自待戰(zhàn)區(qū)內(nèi)任意選擇,雙方飛機初始航向為東西方向?qū)︼w,初始高度均為8 000 m,初始速度均為1Ma。
圖1 游戲任務(wù)區(qū)域場景示意圖
決策智能體的訓練集為3個固定場景,采用相對態(tài)勢的思路,敵方飛機的初始經(jīng)緯度保持在其待戰(zhàn)區(qū)的中心位置,我方飛機的初始經(jīng)緯度分別在其待戰(zhàn)區(qū)的上方(-12.5 km)、中間(0 km)、下方(12.5 km)。測試集為100個隨機場景,對抗雙方飛機的初始經(jīng)緯度在各自待戰(zhàn)區(qū)內(nèi)隨機生成。
在深度強化學習算法模型的訓練中,超參數(shù)的設(shè)置對模型訓練的影響較大,尤其是學習率的合理設(shè)置尤為重要。本文通過對比不同學習率情況下的損失函數(shù)收斂曲線和隨機測試場景對抗勝率收斂曲線來進行學習率的選擇。其中,隨機測試場景對抗勝率用于驗證決策智能體對不同任務(wù)場景的適應(yīng)性,采用100個隨機場景,每訓練10個回合測試一次,從而展現(xiàn)訓練過程中決策智能體對抗勝率的變化。
圖2為學習率分別設(shè)置為10-5、10-4、10-3時決策智能體損失函數(shù)的收斂曲線。從圖中可以看出,隨著學習率的不斷增大,損失函數(shù)收斂得更快,損失值更小。當學習率設(shè)置為10-3時,損失函數(shù)收斂到0.000 5附近。
圖2 損失函數(shù)收斂曲線
圖3為學習率分別設(shè)置為10-5、10-4、10-3時決策智能體隨機測試場景對抗勝率的收斂曲線。從圖中可以看出,當學習率為10-5時,智能體幾乎不能找到有效的策略,平均勝率在15%左右;當學習率為10-4時,智能體在訓練150個回合后平均勝率在50%左右;當學習率為10-3時,決策智能體在訓練150個回合后可以穩(wěn)定達到80%左右的對抗勝率。
圖3 決策智能體測試勝率收斂曲線
本文中算法模型的訓練超參數(shù)設(shè)置如表4所示。
表4 超參數(shù)設(shè)置
為了驗證引入歷史狀態(tài)和動作信息以及無效動作掩膜對模型訓練的影響,對比了只引入歷史狀態(tài)和動作信息、只引入無效動作掩膜情況下的回報收斂曲線,如圖4所示。可以看出,去除歷史狀態(tài)和動作信息或者去除無效動作掩膜均無法獲得高回報,智能體無法學習到有效的策略。以上結(jié)果表明,通過在PPO算法模型的基礎(chǔ)上引入歷史狀態(tài)和動作信息以及無效動作掩膜可以引導(dǎo)智能體更容易學習到獲勝策略,可以顯著提高模型收斂效果。
圖4 游戲回報變化曲線對比
針對傳統(tǒng)深度強化學習算法難以快速解決長時序復(fù)雜任務(wù)的問題,本文在經(jīng)典PPO算法的基礎(chǔ)上提出了一種引入歷史信息和人類知識的深度強化學習方法。首先,在輸入狀態(tài)中引入歷史狀態(tài)和動作信息,讓智能體可以顯式獲取歷史信息,以幫助智能體更準確掌握對手狀態(tài)和保持自身決策的一致性。其次,在策略模型中引入無效動作掩膜,避免智能體進行無效或不合理的探索,以提升探索效率。本文通過仿真試驗驗證了所提方法的有效性,對比試驗結(jié)果表明所提方法可顯著提升智能體的探索效率,可引導(dǎo)智能體學習到有效策略。
與其他深度強化學習模型一樣,由于神經(jīng)網(wǎng)絡(luò)的高度擬合性導(dǎo)致智能體的行為決策機理難以解釋,后續(xù)將對智能體行為的可解釋性進行研究。