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