劉寶宏
關(guān)鍵詞:集群對抗;深度強化學(xué)習(xí);平臺設(shè)計;并行與分布式運行
0 引言(Introduction)
當(dāng)前,以深度強化學(xué)習(xí)為代表的人工智能方法在星際爭霸[1]、王者榮耀[2]等即時策略游戲項目上的應(yīng)用取得重大進展和突破。深度強化學(xué)習(xí)算法在復(fù)雜軍事博弈對抗領(lǐng)域的應(yīng)用正在加緊推進,相關(guān)科研項目和比賽亟需深度強化學(xué)習(xí)算法研究平臺的支撐[3-5]。對此,研究人員進行了初步探索和嘗試,吳昭欣等[6]設(shè)計了基于深度強化學(xué)習(xí)技術(shù)的智能仿真平臺,但其并不涉及對抗過程;盧銳軒等[7]設(shè)計了基于人工智能技術(shù)的智能自博弈平臺,支持智能體訓(xùn)練和自博弈訓(xùn)練,并進行了一對一空戰(zhàn)仿真試驗。海空集群對抗如果直接使用??諏嶋H裝備進行演習(xí)實驗,不僅耗費巨大、效率低,而且風(fēng)險極高[8]。而如果采用深度強化學(xué)習(xí)算法解決對抗中的指揮決策問題,先利用仿真系統(tǒng)對算法進行訓(xùn)練和評價研究,再將算法遷移至實際裝備,這是一條可行路徑。要想這樣,一方面需要研究平臺生成大量的樣本數(shù)據(jù)用于算法訓(xùn)練,另一方面,需要研究平臺合理評估算法性能,指導(dǎo)算法的演化改進。
根據(jù)??占簩狗抡鎸嶒灥奶攸c和研究人員的需求,本文設(shè)計了一種深度強化學(xué)習(xí)算法研究平臺(以下簡稱平臺)。在軟件層面,平臺支持設(shè)計作戰(zhàn)想定對??昭b備、戰(zhàn)場環(huán)境及交戰(zhàn)過程進行仿真;支持與深度強化學(xué)習(xí)算法進行交互,提供算法所需的訓(xùn)練數(shù)據(jù)并執(zhí)行算法的輸出命令;支持簡單方便地進行算法修改或替換,平臺運行效率高,支持分布式并行運行;在硬件層面,支持對海空集群的計算節(jié)點規(guī)模進行簡單、方便的水平擴展。
1 平臺架構(gòu)設(shè)計(Platform architecture design)
1.1 應(yīng)用需求分析
針對??占簩箚栴}具有的跨域跨平臺、計算量大、快速推演等特點,平臺主要需要實現(xiàn)以下功能。
1.1.1 ??占簩狗抡?/p>
在??昭b備實體模型和行為模型的基礎(chǔ)上,能夠針對作戰(zhàn)場景想定,采用計算機仿真的方式對海空集群對抗過程進行仿真推演,并且深度強化學(xué)習(xí)算法能夠與仿真進行交互,包括仿真的控制、仿真數(shù)據(jù)的獲取及??昭b備仿真實體的控制決策等。
1.1.2 深度強化學(xué)習(xí)算法設(shè)計
算法設(shè)計主要包括兩方面的功能:一是提供典型的深度強化學(xué)習(xí)算法供用戶直接使用,如深度Q網(wǎng)絡(luò)(Deep Q-Network,DQN)[9]、深度確定性梯度(Deep Deterministic Policy Gradient,DDPG)、近端策略優(yōu)化(Proximal Policy Optimization,PPO)算法等,用戶只需針對特定想定設(shè)計算法的輸入、輸出和獎勵函數(shù)等,就可以直接進行訓(xùn)練和評價;二是提供算法自定義擴展開發(fā)的功能,用戶能夠自行設(shè)計開發(fā)相關(guān)新算法對智能指揮決策方法進行探索和研究。
平臺需要支持算法訓(xùn)練和算法評價兩個過程。算法訓(xùn)練要求平臺能夠?qū)λ惴ǖ南嚓P(guān)參數(shù)進行設(shè)置,以及對算法過程和訓(xùn)練結(jié)果進行記錄和展示;算法評價要求平臺能夠?qū)λ惴ㄓ?xùn)練結(jié)束后形成的模型進行有效性評估。
1.1.3 并行與分布式運行支撐
算法訓(xùn)練學(xué)習(xí)需要大量的樣本數(shù)據(jù),通過在仿真推演中不斷試錯實現(xiàn)學(xué)習(xí)、訓(xùn)練和提升,因此要求仿真能夠在并行與分布式運行支撐下快速且高效地生成大量的數(shù)據(jù)樣本,提高算法訓(xùn)練的效率。
1.2 平臺軟件架構(gòu)
平臺由??占簩狗抡嫦到y(tǒng)(以下簡稱仿真系統(tǒng))和深度強化學(xué)習(xí)系統(tǒng)組成,平臺模塊組成圖如圖1所示。仿真系統(tǒng)采用定步長的時間推進方式,在每個步長都可以通過仿真系統(tǒng)的外部訪問接口控制仿真系統(tǒng)運行、獲取戰(zhàn)場態(tài)勢和執(zhí)行任務(wù)命令等。深度強化學(xué)習(xí)系統(tǒng)通過網(wǎng)絡(luò)通信調(diào)用仿真系統(tǒng)的外部訪問接口,實現(xiàn)對仿真系統(tǒng)的控制和信息獲取。
仿真系統(tǒng)由想定模塊、海空環(huán)境模型模塊、??昭b備模型模塊、交戰(zhàn)裁決模型模塊和系統(tǒng)外部訪問接口等組成。
想定模塊主要包括想定基本信息設(shè)置、兵力部署、條令規(guī)則設(shè)置、作戰(zhàn)任務(wù)規(guī)劃、想定打開與保存等功能,用于定義和設(shè)置作戰(zhàn)對抗問題初始狀態(tài),如戰(zhàn)場區(qū)域、推演方、作戰(zhàn)時間、作戰(zhàn)兵力、作戰(zhàn)目標(biāo)、作戰(zhàn)行動等。
海空環(huán)境模型模塊用于生成海空集群交戰(zhàn)的戰(zhàn)場環(huán)境信息,包括海域、島礁和空域等三維模型,??占涸诖谁h(huán)境模型中進行作戰(zhàn)活動。
??昭b備模型模塊由海上艦艇模型和空中戰(zhàn)機模型組成,采用參數(shù)化建模框架,將模型向下一級分解,分為機動模型子模塊、偵察模型子模塊、火力模型子模塊和任務(wù)處理子模塊。
機動模型子模塊是指平臺的機動能力,主要包括平均速度、最大速度、航程、爬升率等信息。偵察模型子模塊是指平臺具有的偵察能力,主要包括雷達、紅外和可見光等偵察設(shè)備的偵察范圍,以及對各類目標(biāo)的發(fā)現(xiàn)概率等;火力模型子模塊是指平臺上所搭載的火力單元,主要包括各類炮、導(dǎo)彈等。各個型號的??昭b備的參數(shù)化建模框架相同,只是具有不同的參數(shù)值。
交戰(zhàn)裁決模型模塊對??昭b備的交火行為進行裁決,給出海空裝備的受損信息,更新其狀態(tài)。武器目標(biāo)火力毀傷裁決過程如下所示。
(1)加載相關(guān)信息,主要加載進攻武器戰(zhàn)技指標(biāo)參數(shù)、目標(biāo)裝甲防護能力、進攻武器到目標(biāo)的距離、戰(zhàn)場環(huán)境等信息。
(2)將所需的參數(shù)傳入擊中概率計算規(guī)則進行計算,返回?fù)糁懈怕省?/p>
(3)采用隨機數(shù)生成器生成0~1的隨機數(shù)。
(4)比較隨機數(shù)與擊中概率,如果隨機數(shù)小于等于擊中概率,則判定為擊中,否則為未擊中,結(jié)束流程。
(5)傳入毀傷計算規(guī)則所需的參數(shù)進行毀傷計算,例如對艦船目標(biāo)毀傷的計算規(guī)則如下:艦船被擊中1發(fā)反艦導(dǎo)彈則判為失去動力無法機動,被擊中2發(fā)反艦導(dǎo)彈則判為失去防空能力,被擊中3發(fā)反艦導(dǎo)彈則判為擊沉等。
(6)輸出毀傷結(jié)果,結(jié)束流程。
系統(tǒng)外部訪問接口包括系統(tǒng)控制接口、態(tài)勢獲取接口和控制命令接口等。系統(tǒng)控制接口用于深度強化學(xué)習(xí)系統(tǒng)控制仿真系統(tǒng)的啟動、停止、加載想定等;態(tài)勢獲取接口用于深度強化學(xué)習(xí)系統(tǒng)獲取當(dāng)前仿真系統(tǒng)內(nèi)各個系統(tǒng)和實體的狀態(tài),如仿真的時間、雙方海空裝備的狀態(tài)、環(huán)境信息等;控制命令接口用于響應(yīng)深度強化學(xué)習(xí)系統(tǒng)調(diào)用的任務(wù)指令,如機動、開火、偵察裝備的開機和關(guān)機等控制命令。
仿真系統(tǒng)在具體實現(xiàn)時劃分為仿真內(nèi)核與顯示模塊,仿真內(nèi)核關(guān)注仿真的高效推演計算,不包括界面顯示,其推演過程展現(xiàn)由顯示模塊完成。仿真內(nèi)核與顯示模塊的分離,使得算法在訓(xùn)練時只需要使用仿真內(nèi)核而無需使用顯示模塊,這樣就可以避免耗費計算渲染資源,加快仿真推演進程;在對算法模型進行評價分析時,同時運用仿真內(nèi)核和顯示模塊詳細(xì)展示海空集群對抗仿真全程,便于用戶直觀地理解戰(zhàn)斗過程。
深度強化學(xué)習(xí)系統(tǒng)包括深度強化學(xué)習(xí)算法模塊和接口封裝模塊。深度強化學(xué)習(xí)算法模塊采用深度神經(jīng)網(wǎng)絡(luò)進行建模,用于控制仿真系統(tǒng)的運行,讀取戰(zhàn)場態(tài)勢信息,包括戰(zhàn)場環(huán)境信息、敵方兵力部署和狀態(tài)信息、我方兵力部署和狀態(tài)信息等,采用分布式強化學(xué)習(xí)算法進行訓(xùn)練,輸出??占旱穆?lián)合動作,通過接口封裝模塊將動作轉(zhuǎn)換為單個平臺的控制命令,調(diào)用仿真系統(tǒng)的外部訪問接口傳輸給仿真系統(tǒng)進行處理和響應(yīng)。
1.3 平臺硬件架構(gòu)
平臺采用分布式的網(wǎng)絡(luò)架構(gòu),深度強化學(xué)習(xí)系統(tǒng)部署在一臺服務(wù)器上,仿真系統(tǒng)部署在多臺計算節(jié)點上,服務(wù)器和計算節(jié)點間通過網(wǎng)絡(luò)連接,網(wǎng)絡(luò)通信采用gRPC等協(xié)議,平臺硬件架構(gòu)圖如圖2所示。每臺計算節(jié)點上可以運行多個仿真系統(tǒng)實例,實現(xiàn)分布式并行和加速,從而使訓(xùn)練樣本的生成速度和算法的學(xué)習(xí)效率大大提高,具有良好的擴展性。服務(wù)器和計算節(jié)點可以根據(jù)需要配置圖形處理單元GPU,實現(xiàn)仿真和算法的高效運行和訓(xùn)練。
2 平臺使用流程(Platform usage process)
平臺使用流程依次分為想定設(shè)計、算法訓(xùn)練和算法評價三個子流程。
2.1 想定設(shè)計子流程
想定設(shè)計子流程(圖3)實現(xiàn)紅藍(lán)對抗場景的設(shè)計,主要包括以下步驟。
(1)設(shè)置推演方和時間:一般為對抗關(guān)系的紅藍(lán)雙方,想定時間為對抗開始和結(jié)束時間。
(2)部署兵力:將推演方的海空裝備作為兵力在戰(zhàn)場環(huán)境模型中進行部署,包括海空裝備的類型、掛載、數(shù)量、位置等信息。
(3)設(shè)置條令規(guī)則:對不同場景下的武器控制規(guī)則進行限制,如開火規(guī)則分為自由開火(向所有未識別為友方的單元開火)和謹(jǐn)慎開火(僅對識別為敵對方的單元開火),機動規(guī)則(設(shè)置??昭b備受到攻擊時,是否忽略計劃航線)。
(4)規(guī)劃作戰(zhàn)任務(wù):一般情況下,推演雙方中一方的兵力由深度強化學(xué)習(xí)算法進行控制,另一方的兵力由預(yù)先制定的作戰(zhàn)任務(wù)規(guī)劃或者其他的算法進行控制。作戰(zhàn)任務(wù)規(guī)劃設(shè)計??毡Φ淖鲬?zhàn)任務(wù),如巡邏任務(wù)、打擊任務(wù)、攔截任務(wù)等,并且規(guī)定在不同的條件下實施相應(yīng)的作戰(zhàn)任務(wù)。
(5)保存想定:保存設(shè)計的想定,用于算法訓(xùn)練和評價時進行加載。
2.2 算法訓(xùn)練子流程
算法訓(xùn)練子流程(圖4)實現(xiàn)算法訓(xùn)練生成模型,主要包括以下步驟。
(1)調(diào)用仿真系統(tǒng)的外部訪問接口,開啟C 個仿真系統(tǒng)實例,這些實例可以運行于一臺或多臺計算的節(jié)點上,能夠通過計算節(jié)點IP地址來指定。
(2)啟動仿真系統(tǒng)實例,加載想定,初始化??昭b備狀態(tài)。
(3)初始化深度神經(jīng)網(wǎng)絡(luò)參數(shù)、學(xué)習(xí)率等超參數(shù)。
(4)在每個時間步,強化學(xué)習(xí)算法模塊通過調(diào)用仿真系統(tǒng)的外部訪問接口,用于獲取當(dāng)前仿真信息和收集訓(xùn)練樣本。
(5)判斷訓(xùn)練樣本數(shù)量,當(dāng)訓(xùn)練樣本超過設(shè)定的閾值時,開始神經(jīng)網(wǎng)絡(luò)的訓(xùn)練,訓(xùn)練完成后保存網(wǎng)絡(luò)模型,采用訓(xùn)練的神經(jīng)網(wǎng)絡(luò)為不同的仿真系統(tǒng)實例生成作戰(zhàn)行動。當(dāng)訓(xùn)練樣本數(shù)不夠時,使用初始化的神經(jīng)網(wǎng)絡(luò)為不同的仿真系統(tǒng)實例生成作戰(zhàn)行動。
(6)采用接口封裝模塊對作戰(zhàn)行動生成作戰(zhàn)命令,調(diào)用仿真系統(tǒng)的外部訪問接口傳入命令。
(7)仿真系統(tǒng)內(nèi)部執(zhí)行命令、更新狀態(tài),如果對戰(zhàn)完成則重新加載想定進行下一局的仿真推演。
(8)如果算法訓(xùn)練完成,則結(jié)束訓(xùn)練,獲得保存的網(wǎng)絡(luò)模型,供下一步的評價使用。
2.3 算法評價子流程
算法評價子流程(圖5)實現(xiàn)對算法的評價,主要包括以下步驟。
(1)首先調(diào)用仿真系統(tǒng)外部訪問接口,開啟一個仿真系統(tǒng)實例,然后啟動仿真系統(tǒng),加載想定,此時如果要展示戰(zhàn)斗過程,則可以接入顯示模塊。
(2)加載訓(xùn)練好的深度網(wǎng)絡(luò)模型。
(3)深度強化學(xué)習(xí)算法調(diào)用仿真系統(tǒng)的外部訪問接口,獲取當(dāng)前的仿真信息。
(4)判斷想定是否完成,如果完成則判斷評價是否完成,否則轉(zhuǎn)到“步驟(6)”。
(5)判斷評價是否完成,如果完成則保存評價結(jié)果,結(jié)束流程,否則加載想定,轉(zhuǎn)到“步驟(6)”。
(6)神經(jīng)網(wǎng)絡(luò)模型生成作戰(zhàn)行動。
(7)將作戰(zhàn)行動封裝為控制命令。
(8)調(diào)用仿真系統(tǒng)外部接口傳入控制命令。
(9)仿真系統(tǒng)執(zhí)行命令,更新狀態(tài)。
3 結(jié)論(Conclusion)
研究??占簩狗抡鏇Q策控制的深度強化學(xué)習(xí)算法時,需要對所研究算法產(chǎn)生的大量樣本進行高效訓(xùn)練并對其結(jié)果驗證評價,針對這一問題,算法研究平臺通過軟件和硬件架構(gòu)設(shè)計,仿真內(nèi)核、顯示模塊分離設(shè)計及并行與分布式運行設(shè)計,可以快速對所研究的強化學(xué)習(xí)算法進行訓(xùn)練,還能對其決策控制效果進行驗證評價。該算法研究平臺避免了直接進行??昭b備實物實驗需要耗費大量時間和可能產(chǎn)生未知風(fēng)險的問題,滿足了算法研究人員對仿真平臺的需求,能夠提高??占簩狗抡孢^程中深度強化學(xué)習(xí)算法的研發(fā)效率。