張 振,黃炎焱,張永亮,陳天德
(1.南京理工大學 自動化學院,江蘇 南京 210094;2.陸軍工程大學 指揮控制工程學院,江蘇 南京 210007)
隨著機器學習和人工智能在現(xiàn)實生活中得到越來越廣泛的運用,越來越多的游戲通過訓練智能體的方式與人類進行對抗,典型代表有在圍棋領域獲得成功的人工智能AlphaGo以及在游戲《星際爭霸》人機對抗賽中獲得成功的人工智能AlphaStar[1]等。
越來越多的研究將人工智能方法融入到計算機兵棋推演領域。胡曉峰等[2]從AlphaGo的成功分析了兵棋推演面臨的瓶頸,指出了作戰(zhàn)智能態(tài)勢認知是兵棋推演中亟需突破的關鍵環(huán)節(jié)。戴勇等[3]基于兵棋推演的特點以及人工智能發(fā)展現(xiàn)狀和核心技術(shù),明確了將人工智能如深度學習應用在兵棋推演領域中將會遇到的問題以及解決途徑。李承興等[4]以裝備維修保障兵棋推演為仿真環(huán)境,針對裝備維修保障過程中的裝備受損和機動維修分隊抵達受損裝備位置點等具體內(nèi)容,提出了一種基于馬爾可夫決策過程和深度Q學習的訓練算法,使兵棋算子具備了一定意義的智能性。賴俊等[5]針對在室內(nèi)無人機搜索中目標搜索效率不高、準確率較低等問題,提出了一種基于近端策略優(yōu)化(Proximal policy optimization,PPO)算法[9]的訓練方法,可有效地縮短訓練周期,同時提升搜索效率和準確率。王旭等[7]利用兵棋推演分析了城市內(nèi)澇災害應急聯(lián)動體系建設,說明了智能兵棋推演在現(xiàn)實應用中同樣具有較好的應用前景。
研究表明,人工智能[6]在智能推演與分析方面受到廣泛關注,并在近年的全國兵棋推演大賽上初露端倪[10]。但是在寬泛條件下的收斂問題以及收斂速度問題,依然還缺乏有效地解決方法,特別是在對抗方面,采用融和深度強化學習的算法仍面臨挑戰(zhàn)。為此,基于PPO的作戰(zhàn)實體博弈對抗算法,圍繞基于深度強化學習的智能兵棋推演方法,本文將進行以下研究:
(1)態(tài)勢感知與動作決策。即算子通過感知地圖態(tài)勢,并通過分析態(tài)勢信息決策下一步的動作。主要解決思路為使用神經(jīng)網(wǎng)絡模擬人類,以態(tài)勢信息作為神經(jīng)網(wǎng)絡輸入,通過訓練神經(jīng)網(wǎng)絡參數(shù)以達到智能化;
(2)加快訓練收斂速度。即解決智能體訓練過程中獎勵稀疏[8]造成的智能體策略不收斂以及收斂速度慢的問題。主要解決思路為使用監(jiān)督學習進行與訓練以及設計額外獎勵并將其加入訓練過程;
(3)提升算子智能體訓練勝率。即提升智能體在訓練過程中對抗特定規(guī)則智能體的勝率。主要解決思路為通過監(jiān)督學習和深度強化學習相結(jié)合的方式,以版本迭代的形式提升智能體的勝率。
智能兵棋對抗事實上是兵棋智能體的算法戰(zhàn)。在目前的兵棋推演對抗環(huán)境下,算法面臨著如下挑戰(zhàn):地圖環(huán)境較大,直接使用隨機初始化參數(shù)的動作決策神經(jīng)網(wǎng)絡進行訓練會導致很難達到收斂狀態(tài)或者陷入局部最優(yōu)解等情況的發(fā)生。為了解決這個問題,本文擬研究一種采用監(jiān)督學習和深度強化學習相結(jié)合的算法,為此建立了相應的作戰(zhàn)實體博弈訓練框架,如圖1所示。
圖1 智能博弈訓練框架示意圖
圖1中,使用監(jiān)督學習算法對特定規(guī)則智能體對戰(zhàn)數(shù)據(jù)進行監(jiān)督學習,將從仿真環(huán)境獲取的態(tài)勢信息作為監(jiān)督學習神經(jīng)網(wǎng)絡的輸入,利用人類在當前態(tài)勢下的動作選擇對神經(jīng)網(wǎng)絡進行參數(shù)更新,逐漸對神經(jīng)網(wǎng)絡在各種態(tài)勢信息下的動作選擇向人類選擇進行擬合。經(jīng)過對人類對戰(zhàn)數(shù)據(jù)進行監(jiān)督學習,智能體可以有效對對抗中的一些基本行為進行學習獲得初級智能體網(wǎng)絡,最后使用深度強化學習算法以及稀疏獎勵繼續(xù)對初級智能體網(wǎng)絡進行強化學習訓練迭代,獲得最終的智能體網(wǎng)絡。其中,監(jiān)督學習部分和強化學習部分是該訓練框架的主體內(nèi)容,起到預訓練和迭代生成最終兵棋智能體的作用。
本文使用反向傳播(Back propagation,BP)神經(jīng)網(wǎng)絡對收集的人類對戰(zhàn)數(shù)據(jù)進行監(jiān)督學習,神經(jīng)網(wǎng)絡結(jié)構(gòu)設計如圖2所示,其主要由輸入層、三個隱藏層和輸出層組成,其中三個隱藏層激活函數(shù)均使用線性整流函數(shù)(Rectified linear unit,ReLU),輸出層使用Softmax激活函數(shù)并選擇概率最大的作為動作進行輸出。
訓練過程使用預先收集的1 000組特定規(guī)則智能體對戰(zhàn)數(shù)據(jù)勝方作為訓練數(shù)據(jù)集進行決策學習,訓練數(shù)據(jù)集采用多個不同規(guī)則策略加不同程度隨機化的智能體相互對抗產(chǎn)生,經(jīng)過信號前向傳播以及誤差反向傳播對神經(jīng)網(wǎng)絡參數(shù)進行訓練,其中訓練過程中代價函數(shù)如下
(1)
圖2 神經(jīng)網(wǎng)絡示意圖
在參數(shù)更新過程中,通過事先收集的特定規(guī)則智能體對戰(zhàn)數(shù)據(jù)根據(jù)當前態(tài)勢做出的動作決策與當前神經(jīng)網(wǎng)絡計算做出的動作決策進行比對,再經(jīng)過反向傳遞對神經(jīng)網(wǎng)絡參數(shù)進行更新,訓練完成之后可以作為初級智能體網(wǎng)絡作為深度強化學習的初始智能體網(wǎng)絡。
2.2.1 PPO算法
本文的深度強化學習算法使用PPO算法,該算法結(jié)合了Q-Learning和深度神經(jīng)網(wǎng)絡的優(yōu)勢,是一種基于Policy Gradient和Off-Policy的學習深度強化學習算法[2],其相較于置信域策略優(yōu)化(Trust region policy optimization,TRPO)算法更加易于實現(xiàn),PPO算法將TRPO算法中的約束作為目標函數(shù)的正則化項,降低了算法求解難度。同時PPO算法采用截斷(clip)機制,其參數(shù)更新公式如下
(2)
式中:Lclip(θ)為目標函數(shù):
(3)
clip直觀示意圖如圖3所示。
圖3 clip直觀示意圖
2.2.2 深度強化學習中的Reward Shaping
稀疏獎勵問題是深度強化學習在解決實際任務中面臨的一個核心問題,其本質(zhì)是在深度強化學習過程中,訓練環(huán)境無法對智能體參數(shù)更新起到監(jiān)督作用。在監(jiān)督學習中,訓練過程由人類對戰(zhàn)進行監(jiān)督,而在強化學習中,獎勵承擔了監(jiān)督訓練過程的作用,智能體依據(jù)獎勵進行策略優(yōu)化,在本文所討論的仿真環(huán)境中,由于兵棋推演環(huán)境只針對動作進行規(guī)則判斷以及交戰(zhàn)決策,并不在發(fā)生機動或者交戰(zhàn)之后提供任何獎勵信息,只會在我方算子到達奪控點或者全殲敵方算子之后發(fā)送勝利信息或者敵方算子到達奪控點或者我方算子被全殲之后發(fā)送失敗信息兩種情況,也即在訓練過程中的每一步都是無獎勵的,推演狀態(tài)的具體步驟如圖4所示。稀疏獎勵的問題給算法收斂帶來了一定的負面影響,甚至于導致算法無法收斂。
圖4 仿真環(huán)境獎勵示意圖
本文使用額外獎勵法解決稀疏獎勵問題,經(jīng)過對推演環(huán)境進行分析可以發(fā)現(xiàn),由于推演環(huán)境判斷對抗勝利條件為到達奪控點或者全殲敵方算子,無法滿足獲勝條件時,通過計算剩余算子血量來判斷勝負,因此本文在訓練過程中根據(jù)上述經(jīng)驗加入了額外獎勵,同時為了防止智能體在探索過程中陷入局部最優(yōu)的情況,加入了智能體獲勝之前每多一個回合都會接受懲罰。具體額外獎勵設置規(guī)則如表1所示。
表1 額外獎勵表
經(jīng)過驗證,訓練過程在加入上述額外獎勵之后,訓練過程中收斂速度可以得到明顯加快,通知智能體陷入局部最優(yōu)的情況也明顯減少。
在使用監(jiān)督學習對人類數(shù)據(jù)進行模仿學習之后,初級智能體網(wǎng)絡已經(jīng)可以針對一些場景也即狀態(tài)信息模仿人類對戰(zhàn)數(shù)據(jù)進行決策,但在實際對抗過程中,還需要對更多的場景進行探索,因此還需要在監(jiān)督學習訓練的基礎上進行深度強化學習進行自主探索學習,同時使用表1中的額外獎勵對智能體行為進行修正。
本文所采用的深度強化學習算法主要流程如下。
本文所涉及算法基于某在研兵棋推演對抗環(huán)境進行設計與仿真。仿真環(huán)境基于Python實現(xiàn),主要形式為回合制兵棋對抗,仿真地圖為由六角格構(gòu)成的多地形環(huán)境,對戰(zhàn)雙方各有兩個算子(坦克),此外還有一個奪控點,獲勝條件為任一算子到達奪控點或者全殲對方算子,無法滿足以上條件時,通過計算剩余算子總血量來判斷勝負。算法驗證時采用基于深度強化學習的智能體與基于規(guī)則的程序?qū)沟姆绞竭M行。圖5為一部分仿真環(huán)境地圖,地圖基本地形信息包括城鎮(zhèn)居民地、松軟地、道路以及高程等,其中地圖左邊為紅方兩個坦克算子,右上標有紅旗的六角格為奪控點。
仿真環(huán)境的主要架構(gòu)如圖6所示,每個回合智能體通過仿真環(huán)境獲取當前環(huán)境的狀態(tài)信息,以及稀疏獎勵設計輸出本回合獎勵,并通過智能體中已經(jīng)訓練完成的或者正在訓練中的神經(jīng)網(wǎng)絡,輸出我方當前回合的動作。
基于上述兵棋推演對抗環(huán)境設計仿真實驗,智能體輸入狀態(tài)信息也即智能體神經(jīng)網(wǎng)絡輸入信息包括兩個部分,主要為算子周邊地圖信息,敵我雙方算子信息等。輸入狀態(tài)信息如表2所示。
圖5 仿真環(huán)境地圖(部分)
圖6 仿真環(huán)境架構(gòu)
表2 輸入狀態(tài)信息
輸出編號與算子執(zhí)行動作對應表如表3所示。
表3 輸出編號與算子執(zhí)行動作對應表
訓練智能體所使用的PPO算法以及神經(jīng)網(wǎng)絡參數(shù)如表4所示。
表4 PPO算法及神經(jīng)網(wǎng)絡參數(shù)
在本實例中,訓練智能體使用的強化學習優(yōu)化算法為PPO算法,神經(jīng)網(wǎng)絡結(jié)構(gòu)分別為2層的Critic神經(jīng)網(wǎng)絡和3層的Actor神經(jīng)網(wǎng)絡,其中Critic網(wǎng)絡的學習率為0.000 9,Actor網(wǎng)絡的學習率為0.000 3,單次訓練局數(shù)為2 000局,訓練過程中記錄單局累計獎勵變化情況。訓練完成之后,對訓練過程中產(chǎn)生的單局累計獎勵變化情況進行可視化,可以看到Agent的訓練結(jié)果,使用本文算法訓練的智能體通過探索環(huán)境獲得的獎勵值曲線圖如圖7所示,可以看出在監(jiān)督學習訓練完成之后進行強化學習過程中,每個回合結(jié)束之后,智能體在本回合獲得的總獎勵曲線是呈上升態(tài)勢的;同時,在訓練的后期,智能體每回合獲得的的總獎勵值收斂在12附近,這說明智能體在經(jīng)過訓練之后,找到了在當前狀態(tài)下取得對戰(zhàn)勝利的最優(yōu)策略。
圖7 監(jiān)督學習+PPO算法獎勵曲線圖
本文還設計了3組對比實驗,其中圖8所示為使用單PPO算法對智能體進行訓練獎勵曲線圖,可以看出智能體的總獎勵會在1 500局左右收斂在7.1的局部最優(yōu)點,此時隨著訓練回合數(shù)的提升智能體也無法達到全局最優(yōu)點;圖9所示為不添加額外獎勵時對智能體進行訓練時的獎勵曲線圖,此時智能體可以獲得的獎勵只有0和1兩種,經(jīng)過2000局的訓練,獎勵值曲線無法達到收斂;圖10所示為使用監(jiān)督學習以及普通策略梯度(Policy gradient,PG)算法對智能體進行訓練時的獎勵曲線圖,可以看出在訓練回合數(shù)達到1 400局時,可以看出收斂跡象,但是在2 000局訓練結(jié)束時,依舊無法達到收斂。
圖8 單PPO算法獎勵曲線圖
圖9 監(jiān)督學習+無額外獎勵PPO算法獎勵曲線圖
圖10 監(jiān)督學習+普通PG算法獎勵曲線圖
訓練完成之后,使用多組對比實驗訓練的智能體與測試智能體集進行實戰(zhàn)對抗,測試智能體集采用多種不同規(guī)則策略加不同程度隨機化的智能體組成。經(jīng)過對抗發(fā)現(xiàn),僅使用監(jiān)督學習算法訓練的初始智能體進行對抗的勝率為49%,使用單PPO算法訓練的智能體進行對抗的勝率為61%,使用監(jiān)督學習+無額外獎勵PPO算法訓練的智能體進行對抗的勝率為25%,使用監(jiān)督學習和普通PG算法訓練的智能體進行對抗的勝率為72%,使用本文所述算法訓練的智能體對抗的勝率為85%。
本文基于兵棋推演對抗環(huán)境,針對強化學習算法在智能兵棋訓練中的無法快速收斂以及智能體對抗特定規(guī)則智能體勝率較低的問題,提出了一種監(jiān)督學習和深度強化學習相結(jié)合的作戰(zhàn)實體博弈對抗算法。實例驗證表明,該算法可以通過較短時間的訓練使智能體在探索環(huán)境時獲得的獎勵值穩(wěn)步提升,同時在對抗特定規(guī)則策略智能體時的最終勝率可以達到85%,有效地解決了在大地圖兵棋推演對抗環(huán)境下智能體神經(jīng)網(wǎng)絡隨機初始化和稀疏獎勵等問題帶來的收斂困難的缺陷。