





摘要: 針對(duì)傳統(tǒng)游戲智能體算法存在模型輸入維度大及訓(xùn)練時(shí)間長(zhǎng)的問(wèn)題, 提出一種結(jié)合狀態(tài)信息轉(zhuǎn)換與獎(jiǎng)勵(lì)函數(shù)塑形技術(shù)的新型深度強(qiáng)化學(xué)習(xí)游戲智能
引導(dǎo)算法. 首先, 利用Unity引擎提供的接口直接讀取游戲后臺(tái)信息, 以有效壓縮狀態(tài)空間的維度, 減少輸入數(shù)據(jù)量; 其次, 通過(guò)精細(xì)化設(shè)計(jì)獎(jiǎng)勵(lì)機(jī)制, 加速模型的收斂過(guò)程;
最后, 從主觀定性和客觀定量?jī)煞矫鎸?duì)該算法模型與現(xiàn)有方法進(jìn)行對(duì)比實(shí)驗(yàn), 實(shí)驗(yàn)結(jié)果表明, 該算法不僅顯著提高了模型的訓(xùn)練效率, 還大幅度提高了智能體的性能.
關(guān)鍵詞: 深度強(qiáng)化學(xué)習(xí); 游戲智能體; 獎(jiǎng)勵(lì)函數(shù)塑形; 近端策略?xún)?yōu)化算法
中圖分類(lèi)號(hào): TP391" 文獻(xiàn)標(biāo)志碼: A" 文章編號(hào): 1671-5489(2025)01-0091-08
Game Intelligent Guidance Algorithm Based onDeep Reinforcement Learning
BAI Tian1, Lü Luyao2, LI Chu1, HE Jialiang3
(1. College of Computer Science and Technology, Jilin University, Changchun 130012, China;
2. College of Software, Jilin University, Changchun 130012, China; 3. College of Information andCommunication Engineering, Dalian Minzu University, Dalian 116600, Liaoning Province, China)
Abstract: Aiming at the problems of high input dimensionality and long training time in traditional game intelligent" algorithm models, we" proposed a novel deep reinforcement learning game
intelligent" guidance algorithm that integrated state information transformation and reward function shaping techniques. Firstly, using" the interface provided by the Unity engine to directly read game backend
information effectively compressed" the dimensionality of the state space and reduced the amount of input data. Secondly, by finely designing" the reward mechanism, the convergence process of the model was accelerated.
Finally, we conducted comparative experiments between the proposed algorithm model and existing methods" from both subjective qualitative and objective quantitative perspectives. The experimental results
show that this algorithm not only significantly improves the training efficiency of the model," but also markedly enhances the performance of the" agent.
Keywords: deep reinforcement learning; game agent; reward function shaping; proximal policy optimization algorithm
收稿日期: 2023-12-29.
第一作者簡(jiǎn)介: 白 天(1983—), 男, 漢族, 博士, 教授, 博士生導(dǎo)師, 從事機(jī)器學(xué)習(xí)和醫(yī)學(xué)人工智能的研究, E-mail: baitian@jlu.edu.cn. 通信作者簡(jiǎn)介: 何加亮(1977—), 男, 漢族,
博士, 副教授, 從事人工智能、 虛擬現(xiàn)實(shí)數(shù)字藝術(shù)及數(shù)字健康領(lǐng)域應(yīng)用的研究, E-mail: 78919121@qq.com.
基金項(xiàng)目: 國(guó)家自然科學(xué)基金(批準(zhǔn)號(hào): U21A20390)和吉林省科技發(fā)展計(jì)劃項(xiàng)目(批準(zhǔn)號(hào): 20210509006RQ).
隨著人工智能、 大數(shù)據(jù)、 云計(jì)算等新興技術(shù)的不斷涌現(xiàn), 數(shù)字經(jīng)濟(jì)得到迅速發(fā)展[1], 游戲作為數(shù)字經(jīng)濟(jì)的核心產(chǎn)業(yè)之一, 在這些新興技術(shù)下也迎來(lái)了
變革[2]. 游戲玩家對(duì)游戲體驗(yàn)的要求不斷提高, 用戶(hù)更注重游戲的內(nèi)在表現(xiàn)及互動(dòng)效果, 在這種發(fā)展趨勢(shì)下, AI(artificial intelligence
)算法逐漸被引入到游戲領(lǐng)域. AI算法具有強(qiáng)大的自主學(xué)習(xí)能力, 能通過(guò)學(xué)習(xí)游戲的模式規(guī)則自動(dòng)生成游戲內(nèi)容[3], 降低傳統(tǒng)游戲開(kāi)發(fā)過(guò)程中的人工設(shè)計(jì)成本, 可根據(jù)玩家的行為數(shù)
據(jù)動(dòng)態(tài)調(diào)整游戲難易度及獎(jiǎng)勵(lì), 滿(mǎn)足玩家需求, 實(shí)現(xiàn)游戲的個(gè)性化設(shè)計(jì). AI算法的使用提升了游戲的開(kāi)發(fā)效率, 豐富了游戲內(nèi)容[4-5], 為玩家提供了更優(yōu)質(zhì)的游戲體驗(yàn)
[6], 在游戲領(lǐng)域有廣闊的發(fā)展空間與應(yīng)用前景[7].
強(qiáng)化學(xué)習(xí)作為AI領(lǐng)域的一個(gè)重要分支, 不同于傳統(tǒng)的監(jiān)督學(xué)習(xí), 其本身所需的數(shù)據(jù)集均來(lái)自于與環(huán)境的試錯(cuò)式交互, 利用環(huán)境的反饋信息不斷優(yōu)化自身決策[8-9], 在實(shí)際應(yīng)
用中該方式需消耗大量成本, 而在游戲場(chǎng)景中則可極大降低優(yōu)化成本, 因此強(qiáng)化學(xué)習(xí)是處理游戲AI問(wèn)題的最佳方法.
強(qiáng)化學(xué)習(xí)利用深度學(xué)習(xí)在特征提取以及非線性函數(shù)擬合方面的優(yōu)勢(shì), 極大提高了傳統(tǒng)強(qiáng)化學(xué)習(xí)算法的泛化能力[10-11], 創(chuàng)造了多種適配復(fù)雜場(chǎng)景的高效算法
[12-13], 從而使深度強(qiáng)化學(xué)習(xí)被廣泛應(yīng)用于游戲AI領(lǐng)域. 深度強(qiáng)化學(xué)習(xí)將游戲作為其學(xué)習(xí)環(huán)境, 智能體通過(guò)與游戲環(huán)境的交互學(xué)習(xí)最優(yōu)策略.
DeepMind團(tuán)隊(duì)在2013年提出了DQN(deep Q-network)算法, 將深度學(xué)習(xí)與強(qiáng)化學(xué)習(xí)首次結(jié)合, 使用神經(jīng)網(wǎng)絡(luò)替代傳統(tǒng)的QTable計(jì)算[14], 在多款雅達(dá)利游戲中
的表現(xiàn)達(dá)到甚至高于人類(lèi)玩家水平. 2016年DeepMind團(tuán)隊(duì)提出的AlphaGo算法[15], 通過(guò)與人類(lèi)對(duì)戰(zhàn), 將其動(dòng)作的監(jiān)督學(xué)習(xí)與自我游戲的強(qiáng)化學(xué)習(xí)緊密結(jié)合, 在世界圍棋大賽中成功獲勝, 并于201
7年提出了相比于AlphaGo更強(qiáng)大的智能體AlphaZero[16], 與Monte Carlo樹(shù)搜索方法進(jìn)行結(jié)合, 實(shí)現(xiàn)了最優(yōu)移動(dòng)的選擇. 2018年DeepMind團(tuán)隊(duì)開(kāi)發(fā)的
基于深度強(qiáng)化學(xué)習(xí)的智能體AlphaStar在“星際爭(zhēng)霸2” [17]的訓(xùn)練環(huán)境下?lián)魯×寺殬I(yè)玩家, 該智能體結(jié)合LSTM(long short-term memory)[18]等技術(shù), 采用監(jiān)督學(xué)習(xí)的方式與人類(lèi)對(duì)戰(zhàn), 學(xué)習(xí)人類(lèi)玩家的對(duì)戰(zhàn)策略.
為進(jìn)一步提升策略的顯著性, 2015年OpenAI團(tuán)隊(duì)提出了TRPO(trust region policy optimization)[19], 采用置信域控制步長(zhǎng), 優(yōu)化了其整體的訓(xùn)練效果, 在此基礎(chǔ)上提出了策略約束更精簡(jiǎn)的PPO(proximal policy optimiza
tion)算法[20], 并于2018年提出了基于PPO的OpenAI Five. 騰訊公司于2019年將改進(jìn)的PPO算法與LSTM技術(shù)相結(jié)合創(chuàng)建了“絕悟”AI[21], 在“王者榮耀”游戲環(huán)境下進(jìn)行了2 100場(chǎng)比賽, 其獲勝
率達(dá)99.81%. 上述研究結(jié)果表明, 基于深度強(qiáng)化學(xué)習(xí)的游戲AI是當(dāng)前游戲領(lǐng)域的熱點(diǎn)問(wèn)題, 其在多種游戲中均表現(xiàn)了遠(yuǎn)超人類(lèi)玩家的水平. 但目前已有的基于深度強(qiáng)化學(xué)習(xí)的游戲AI算法仍存在一些問(wèn)題. 為避免將連續(xù)狀態(tài)離
散化, 大部分游戲AI算法選擇將圖像作為算法輸入, 易導(dǎo)致數(shù)據(jù)處理過(guò)于復(fù)雜且模型難以收斂, 而獎(jiǎng)勵(lì)機(jī)制的不合理設(shè)計(jì)與模型選擇不當(dāng)導(dǎo)致動(dòng)作價(jià)值估計(jì)過(guò)高的問(wèn)題均會(huì)使模型訓(xùn)練時(shí)間過(guò)長(zhǎng).
近年來(lái), 針對(duì)認(rèn)知障礙人群研發(fā)的嚴(yán)肅游戲作為游戲領(lǐng)域的一個(gè)新型應(yīng)用分支開(kāi)始嶄露頭角[22], 其中重點(diǎn)訓(xùn)練兒童群體“計(jì)劃形成”機(jī)能的策略性游
戲?qū)映霾桓F, 此類(lèi)游戲場(chǎng)景內(nèi)各元素彼此間的關(guān)聯(lián)性較強(qiáng), 對(duì)兒童能根據(jù)當(dāng)前游戲場(chǎng)景中各元素的關(guān)聯(lián)反映制定出通關(guān)策略的能力要求較高, 游戲難度較大, 大部分年齡較小的玩家
無(wú)法順利通過(guò)游戲關(guān)卡, 進(jìn)而失去耐心, 最終失去對(duì)游戲的興趣, 游戲體驗(yàn)感差, 玩家成就感低, 而游戲的體驗(yàn)感是一款游戲能否被長(zhǎng)久使用的關(guān)鍵性因素. 該類(lèi)游戲中缺乏實(shí)
時(shí)的智能AI引導(dǎo)策略, 游戲無(wú)法根據(jù)當(dāng)前兒童的使用情況制定個(gè)性化的智能提示中和游戲難
度, 無(wú)法在游戲場(chǎng)景中適時(shí)引導(dǎo)兒童玩家, 給予其適當(dāng)幫助, 提升其游戲體驗(yàn)感. 而上述個(gè)性化游戲智能AI的整體實(shí)現(xiàn)難度較大, 因此大部分同類(lèi)游戲中并未引入該項(xiàng)功能.
針對(duì)傳統(tǒng)基于深度強(qiáng)化學(xué)習(xí)的游戲AI算法模型目前存在的問(wèn)題, 本文通過(guò)引入經(jīng)典“青蛙吃蜻蜓”訓(xùn)練計(jì)劃?rùn)C(jī)能的策略游戲作為模型訓(xùn)練的任務(wù)場(chǎng)景, 提出一種基于深度強(qiáng)化學(xué)
習(xí)的個(gè)性化游戲智能引導(dǎo)算法, 能在相對(duì)復(fù)雜的環(huán)境中, 根據(jù)玩家當(dāng)前的情況計(jì)算出過(guò)關(guān)的最優(yōu)解, 并給出下一步提示. 該算法通過(guò)降低狀態(tài)信息的輸入維度、 精細(xì)化反饋獎(jiǎng)勵(lì)值
等方式, 有效提升模型的訓(xùn)練速度與性能. 本文的創(chuàng)新點(diǎn)和貢獻(xiàn)如下:
1) 對(duì)“青蛙吃蜻蜓”游戲的特點(diǎn)進(jìn)行深入分析, 在此基礎(chǔ)上構(gòu)建了適用于該場(chǎng)景的模型, 并分析了目前所面臨的挑戰(zhàn).
2) 針對(duì)本文模型, 引入一種新的模型架構(gòu), 并提出了改進(jìn)算法. 通過(guò)對(duì)獎(jiǎng)勵(lì)函數(shù)進(jìn)行塑形及對(duì)狀態(tài)信息進(jìn)行有效轉(zhuǎn)換并結(jié)合PPO算法的裁剪機(jī)制, 有效提升了模型的訓(xùn)練速度和
性能, 同時(shí)設(shè)計(jì)并完成算法實(shí)驗(yàn), 以驗(yàn)證本文算法模型的有效性.
1 問(wèn)題描述與建模
1.1 游戲介紹
如圖1所示, 在一個(gè)5×6大小的方格中, 存在青蛙和蜻蜓兩類(lèi)對(duì)象, 玩家的游戲目標(biāo)是通過(guò)點(diǎn)擊的方式控制青蛙, 利用多只青蛙的協(xié)作“吃掉”所有蜻蜓. 玩家每次可以選擇點(diǎn)
擊一只青蛙, 然后青蛙將向其面朝方向吐出舌頭, 直到第一次碰到蜻蜓、 青蛙或者邊界, 當(dāng)前青蛙吐出舌頭后的描述分為以下3種情況:
1) 若碰到蜻蜓, 則當(dāng)前青蛙收回舌頭, 蜻蜓直接消失;
2) 若碰到青蛙, 則當(dāng)前青蛙收回舌頭, 被碰到的青蛙向面朝的方向吐出舌頭, 與當(dāng)前青蛙做相同操作和處理, 直到收回舌頭后, 原地旋轉(zhuǎn)180°;
3) 若碰到邊界, 則當(dāng)前青蛙收回舌頭.
在游戲場(chǎng)景中, 算法需要在玩家操作游戲過(guò)程中在后臺(tái)進(jìn)行實(shí)時(shí)計(jì)算, 得到當(dāng)前情況下最優(yōu)解法中的下一步策略, 并在當(dāng)前關(guān)卡停留時(shí)長(zhǎng)過(guò)久時(shí)給予玩家個(gè)性化智能提示, 幫助玩家完成游戲任務(wù).
1.2 問(wèn)題描述
設(shè)圖中有n行m列, 共有(t+1)個(gè)格子, 用xfi,j∈{0,1}表示第i行第j列是否有青蛙, di,j∈{-1,-2,1,2}表示青蛙的朝向分別為上、 右、 下、 左, 用xdi,j∈{0,1}表示
第i行第j列是否有蜻蜓. 每個(gè)格子只有一個(gè)物體, 即青蛙或蜻蜓, 且青蛙的個(gè)數(shù)和蜻蜓的個(gè)數(shù)不大于格子個(gè)數(shù), 則有
∑ni=1∑mj=1(xfi,j+xdi,j)≤N,(1)
xfi,j·xdi,j≤1, i∈[0,n-1], j∈[0,m-1].(2)
1.2.1 玩家操作
令玩家的第t個(gè)點(diǎn)擊操作位置為(pxt,pyt), 玩家點(diǎn)擊的操作集合為PL={(px0,py0),(px1,py1),…}, 在該場(chǎng)景中, 用xdi,j=1表示玩家在第t步點(diǎn)擊了方格中的第i行第j列, 且玩家一次只能點(diǎn)擊一只青蛙, 因此有
∑ni=1∑mj=1cti,j=1.(3)
1.2.2 規(guī)則描述
當(dāng)玩家點(diǎn)擊第i行第j列的青蛙時(shí), 先根據(jù)青蛙的朝向進(jìn)行判斷, 以青蛙方向朝左為例, 其他情況類(lèi)似. 從(j-1)列開(kāi)始遍歷小于j的格子, 令遇到第一個(gè)物體的位置為xoi,j, 判斷是青蛙還是蜻蜓, 若是蜻
蜓, 則蜻蜓直接消失, 若是青蛙, 則該青蛙改變朝向180°并繼續(xù)吐舌頭, 繼續(xù)遍歷該路徑上的物體, 以此類(lèi)推, 直到該路徑上沒(méi)有任何物體.
在游戲進(jìn)行過(guò)程中場(chǎng)景內(nèi)所有物體被觸發(fā)的時(shí)刻進(jìn)行模型建模. 由于玩家一次只能觸發(fā)一只青蛙, 所以觸發(fā)時(shí)刻場(chǎng)景內(nèi)的舌頭數(shù)量有且僅有一個(gè), 因?yàn)橹挥猩囝^頂端會(huì)觸發(fā)機(jī)制, 故
用xsi,j表示在第i行第j列有舌頭頂端. 對(duì)于在第i行第j列的物體xoi,j, 在檢測(cè)到自己被舌頭觸碰到時(shí), 如果自身是蜻蜓, 則直接消失, 如果是青蛙, 則吐出舌頭, 然后改變自身朝向, 該過(guò)程可描述為
di,j=-di,j,xfi,f·xsi,j=1,xdi,j=0,xdi,f·xsi,j=1.(4)
1.2.3 任務(wù)目標(biāo)
玩家的游戲目標(biāo)是通過(guò)制定青蛙的點(diǎn)擊策略, 利用多只青蛙彼此間的關(guān)聯(lián)碰撞反應(yīng), 協(xié)作完成“吃掉”當(dāng)前關(guān)卡所有蜻蜓的任務(wù), 對(duì)完成任務(wù)所需步數(shù)并無(wú)要求, 但由于本文
算法需要有智能引導(dǎo)作用, 因此給出的引導(dǎo)提示應(yīng)盡可能接近最優(yōu)解, 故任務(wù)目標(biāo)為
Minimize∑Tt=0∑ni=0∑mj=0cti,j,s.t. 式(1)~式(4)成立,(5)
其中T為完成任務(wù)所用的總步數(shù).
2 模型構(gòu)建與算法實(shí)現(xiàn)
2.1深度強(qiáng)化學(xué)習(xí)
強(qiáng)化學(xué)習(xí)(reinforcement learning)是一個(gè)Markov決策過(guò)程, 可被描述為四元組(S,A,P,R), 其中S為狀態(tài)空間, A為動(dòng)作空間, P為狀態(tài)轉(zhuǎn)移函數(shù), R為獎(jiǎng)勵(lì)函數(shù). 狀態(tài)轉(zhuǎn)移函數(shù)P是一個(gè)從S×A到P(S)的
映射, 且有st+1~p(sst,at), 即狀態(tài)st采取動(dòng)作at后狀態(tài)轉(zhuǎn)移到st+1的概率. 獎(jiǎng)勵(lì)函數(shù)是一個(gè)從S×A×S到實(shí)數(shù)域的映射, 可記為rt=R(st,at,st+1). 強(qiáng)化學(xué)習(xí)過(guò)程中, 智能
體先處于開(kāi)始狀態(tài)s0, 然后選擇動(dòng)作a0執(zhí)行, 與環(huán)境產(chǎn)生交互, 獲得獎(jiǎng)勵(lì)并轉(zhuǎn)移到狀態(tài)s1, 通常稱(chēng)智能體經(jīng)歷的狀態(tài)、 動(dòng)作序列為軌跡τ=(s0,a0,s1,a1,…), 強(qiáng)化學(xué)習(xí)的目標(biāo)是最大化累積獎(jiǎng)勵(lì):
R(τ)=max∑Tt=0rt.(6)
深度強(qiáng)化學(xué)習(xí)模型訓(xùn)練的基本結(jié)構(gòu)如圖2所示. 由圖2可見(jiàn), 深度強(qiáng)化學(xué)習(xí)模型分為環(huán)境和智能體兩部分, 環(huán)境先將當(dāng)前狀態(tài)信息發(fā)送給智能體, 智能體再根據(jù)其策略, 輸出動(dòng)作并作用到環(huán)境中, 使環(huán)境的
狀態(tài)發(fā)生改變, 然后將環(huán)境的狀態(tài)信息繼續(xù)輸入到智能體中, 再得到動(dòng)作, 不斷循環(huán)直到游戲結(jié)束.
目前, 深度強(qiáng)化學(xué)習(xí)在游戲智能體領(lǐng)域的實(shí)際應(yīng)用中存在如下問(wèn)題.
1) 高維輸入空間: 在一些情況下, 輸入信息的維度過(guò)大或信息量龐大, 導(dǎo)致輸入狀態(tài)空間急劇擴(kuò)大, 從而使模型難以在龐大的狀態(tài)空間中收斂, 給模型訓(xùn)練帶來(lái)挑戰(zhàn).
2) 訓(xùn)練速度緩慢: 訓(xùn)練速度相對(duì)較慢, 原因可能包括獎(jiǎng)勵(lì)機(jī)制設(shè)計(jì)不當(dāng)?shù)龋?導(dǎo)致需要耗費(fèi)大量時(shí)間訓(xùn)練模型以達(dá)到令人滿(mǎn)意的效果, 該問(wèn)題影響了深度強(qiáng)化學(xué)習(xí)的實(shí)際應(yīng)用效率.
3) 訓(xùn)練效果欠佳: 由于算法選擇不當(dāng)?shù)仍颍?訓(xùn)練效果可能出現(xiàn)不理想的情況, 表現(xiàn)為過(guò)高估計(jì)動(dòng)作價(jià)值等問(wèn)題, 這種情況通常需要較長(zhǎng)時(shí)間的訓(xùn)練, 給實(shí)際應(yīng)用帶來(lái)一定的困擾.
針對(duì)上述問(wèn)題, 本文提出一種創(chuàng)新性的解決方案. 在深度強(qiáng)化學(xué)習(xí)技術(shù)的基礎(chǔ)上, 重點(diǎn)對(duì)模型與算法設(shè)計(jì)、 模型部署和訓(xùn)練等方面進(jìn)行改進(jìn), 以提高系統(tǒng)性能和魯棒性.
1) 模型架構(gòu)優(yōu)化: 引入新的模型架構(gòu), 通過(guò)狀態(tài)信息轉(zhuǎn)換有效降低狀態(tài)空間的維度, 減少了輸入數(shù)據(jù)量.
2) 設(shè)計(jì)獎(jiǎng)勵(lì)機(jī)制: 通過(guò)精細(xì)化設(shè)計(jì)獎(jiǎng)勵(lì)函數(shù), 加速模型的收斂過(guò)程.
3) 模型部署: 將訓(xùn)練好的模型保存為ONNX格式, 并通過(guò)Unity的Barracuda插件實(shí)現(xiàn)模型的部署, 確保模型在實(shí)際游戲環(huán)境中能順利運(yùn)行.
2.2 算法模型
2.2.1 模型架構(gòu)
本文算法模型架構(gòu)如圖3所示. 由圖3可見(jiàn), 在環(huán)境初始化后, 輸出狀態(tài)信息至智能體, 智能體先將狀態(tài)信息進(jìn)行轉(zhuǎn)換進(jìn)而獲取到神經(jīng)網(wǎng)絡(luò)的輸入值, 網(wǎng)絡(luò)模型根據(jù)輸入值進(jìn)行計(jì)算并輸出動(dòng)作
, 將狀態(tài)、 獎(jiǎng)勵(lì)和動(dòng)作存入經(jīng)驗(yàn)池, 每隔一段時(shí)間就從經(jīng)驗(yàn)池中取出樣本用于更新網(wǎng)絡(luò)參數(shù), 輸出的動(dòng)作通過(guò)轉(zhuǎn)換后, 在環(huán)境中模擬玩家的操作進(jìn)行點(diǎn)擊, 然后由環(huán)境調(diào)用API獲取狀
態(tài)信息, 通過(guò)反饋轉(zhuǎn)換后, 再一同輸入給智能體, 如此循環(huán).
為使模型的收斂效果更好, 本文采用PPO算法, 該算法基于TRPO的思想, 在其基礎(chǔ)上進(jìn)行改進(jìn), 主要特點(diǎn)之一是采用了剪切操作, 其優(yōu)化目標(biāo)如下:
argmaxθ Eπθks~vEa~πθk(·s)minπθ(
as)πθk(as)Aπθk(s,a),clipπθ(as)πθk
(as),1-ε,1+εAπθk(s,a),(7)
其中clip(x,l,r)∶=max{min{x,r},l}, 即把x限制在[l,r]內(nèi), 如果Aπθk(s,a)gt;0, 說(shuō)明這個(gè)動(dòng)作的價(jià)值高于平均, 最大化該式會(huì)增大πθ(as)πθk(as),
但不會(huì)使其超過(guò)1+ε. 通過(guò)引入剪切函數(shù)限制新舊策略比值的變化范圍, 用于平衡策略更新的幅度, 防止在每次更新中引入過(guò)大的變化, 從而提高算法的穩(wěn)定性, 更容易收斂到較好的策略.
目前, 許多基于深度強(qiáng)化學(xué)習(xí)的小游戲智能體模型為避免將連續(xù)狀態(tài)離散化, 都將圖像直接作為模型輸入, 會(huì)導(dǎo)致處理過(guò)于復(fù)雜, 且可能出現(xiàn)模型難以收斂等情況. 針對(duì)該問(wèn)題, 本
文提出改進(jìn)的狀態(tài)信息及精細(xì)化的反饋獎(jiǎng)勵(lì), 以提升模型收斂效果, 加快模型的訓(xùn)練速度.
2.2.2 狀態(tài)信息設(shè)計(jì)
首先將青蛙和蜻蜓的位置信息轉(zhuǎn)換為一維, 進(jìn)行如下轉(zhuǎn)換:
pi,m+j=xfi,j,di,m+j=xdi,j,(8)
其中: 青蛙的位置信息表示為集合P={p1,p2,…,pN}, pi={0,1}, i={1,2,…,N}表示是否存在青蛙; 蜻蜓的位置表示為集合D={d1,d2,…,dN}, di={0,1}, i=
{1,2,…,N}表示是否存在蜻蜓. 每只青蛙的朝向表示為T(mén)={t1,t2,…,tN}, 其中ti={0,1,2,3,4}, i={1,2,…,N
}, 0表示當(dāng)前位置沒(méi)有青蛙, 1,2,3,4分別表示青蛙朝向是上、 右、 下、 左. 因此, 模型在第t步的狀態(tài)信息為
St=(Pt,Tt,Dt).(9)
2.2.3 動(dòng)作輸出設(shè)計(jì)
動(dòng)作主要為玩家的操作, 玩家共有N種操作方式, 設(shè)玩家在第t次的操作方式為At={1,2,…,N}, 則玩家點(diǎn)擊位置的計(jì)算方式如下:
rowt=Atn,(10)colt=(At+n-1) mod m,(11)
其中rowt表示在第t步時(shí)點(diǎn)擊的行數(shù), colt表示在第t步時(shí)點(diǎn)擊的列數(shù).
2.2.4 獎(jiǎng)勵(lì)函數(shù)設(shè)計(jì)
本文用Rt表示獎(jiǎng)勵(lì)值, 一般地, 如果能提供更精細(xì)的獎(jiǎng)勵(lì)反饋, 則訓(xùn)練效果和訓(xùn)練速度能得到有效提升. 本文在反復(fù)實(shí)驗(yàn)對(duì)比后, 設(shè)計(jì)精細(xì)化獎(jiǎng)勵(lì)如下:
1) 如果點(diǎn)擊到空白位置, 即沒(méi)有點(diǎn)到青蛙, 則表示無(wú)效操作, 返回-10;
2) 如果點(diǎn)擊到了青蛙, 但青蛙吐出舌頭只碰到了邊界, 則表示低效操作, 返回-2;
3) 如果點(diǎn)擊到了青蛙, 且該青蛙吐出舌頭碰到了另一只青蛙, 由于并不能完全確定是無(wú)效操作還是為了使某只青蛙轉(zhuǎn)向, 則返回0;
4) 如果點(diǎn)擊到了青蛙, 且該青蛙吐出舌頭碰到了另一只青蛙, 還導(dǎo)致另一只青蛙面向蜻蜓, 則表示有效操作, 返回2;
5) 如果點(diǎn)擊到了青蛙, 且該青蛙吐出舌頭碰到蜻蜓, 則表示最有效操作, 返回5.
3 實(shí)驗(yàn)結(jié)果與分析
3.1 實(shí)驗(yàn)環(huán)境與設(shè)置
為更好展示模型效果, 本文實(shí)驗(yàn)在自行開(kāi)發(fā)的Unity游戲程序上直接訓(xùn)練. 圖4為Unity開(kāi)發(fā)的實(shí)際展示效果, 通過(guò)封裝好的API獲取后臺(tái)信息,
并結(jié)合Socket通信實(shí)現(xiàn)Python和Unity程序的跨架構(gòu)通信, 游戲被設(shè)計(jì)為3個(gè)難度, 不同難度所需的點(diǎn)擊數(shù)會(huì)增加, 游戲地圖在保證一定有解的前提下隨機(jī)生成.
為分別驗(yàn)證獎(jiǎng)勵(lì)函數(shù)塑形和算法模型推理的實(shí)際應(yīng)用效果, 本文實(shí)驗(yàn)將進(jìn)行兩方面的對(duì)比.
3.1.1 獎(jiǎng)勵(lì)函數(shù)塑形與對(duì)比
為更清晰地展現(xiàn)獎(jiǎng)勵(lì)函數(shù)塑形技術(shù)的效果, 本文設(shè)計(jì)一種對(duì)比實(shí)驗(yàn), 該實(shí)驗(yàn)采用一種與蜻蜓數(shù)量變化直接正相關(guān)的獎(jiǎng)勵(lì)機(jī)制. 該獎(jiǎng)勵(lì)機(jī)制的核心是通過(guò)即時(shí)反饋游戲
中的關(guān)鍵指標(biāo)——蜻蜓數(shù)量的變化, 指導(dǎo)智能體的學(xué)習(xí)方向. 該獎(jiǎng)勵(lì)機(jī)制的計(jì)算公式為
Rt=A·(Dt+1-Dt),(12)
其中A為一正常數(shù), Dt和Dt+1分別表示在第t個(gè)操作和在第(t+1)個(gè)操作時(shí)的蜻蜓數(shù)量. 每當(dāng)智能體的執(zhí)行動(dòng)作導(dǎo)致游戲中蜻蜓數(shù)
量增加時(shí), 它將獲得正向獎(jiǎng)勵(lì); 反之, 如果動(dòng)作導(dǎo)致蜻蜓數(shù)量減少, 則會(huì)受到懲罰. 通過(guò)這種方式, 該獎(jiǎng)勵(lì)機(jī)制直接促進(jìn)了智能體對(duì)能增加蜻蜓數(shù)量行為的學(xué)習(xí), 進(jìn)而提高了其在游戲中的性能.
通過(guò)與本文提出的獎(jiǎng)勵(lì)函數(shù)塑形方法進(jìn)行對(duì)比實(shí)驗(yàn), 不僅可直觀地評(píng)估兩種不同獎(jiǎng)勵(lì)機(jī)制對(duì)智能體學(xué)習(xí)效率和最終性能的影響, 還能進(jìn)一步驗(yàn)證獎(jiǎng)勵(lì)函數(shù)塑形技術(shù)在提高模型訓(xùn)練速
度和性能方面的優(yōu)越性. 該對(duì)比實(shí)驗(yàn)的設(shè)計(jì), 為探索更高效、 更智能的游戲AI訓(xùn)練方法提供了有價(jià)值的參考.
3.1.2 模型訓(xùn)練與隨機(jī)策略對(duì)比測(cè)試
為驗(yàn)證本文模型的推理效果, 將其與隨機(jī)策略進(jìn)行對(duì)比, 即隨機(jī)點(diǎn)擊場(chǎng)上某一只青蛙. 深度強(qiáng)化學(xué)習(xí)部分基于Python的PyTorch庫(kù)實(shí)現(xiàn), 網(wǎng)絡(luò)采用3層全連接層, 隱藏層維度
為128, 折扣因子為0.99, 學(xué)習(xí)率為0.000 3, 并使用Adam優(yōu)化器. 對(duì)采用不同方法通關(guān)游戲所需的實(shí)際步數(shù)進(jìn)行對(duì)比.
3.2 實(shí)驗(yàn)結(jié)果與分析
圖5為不同獎(jiǎng)勵(lì)機(jī)制的獎(jiǎng)勵(lì)值變化曲線, 其中: 藍(lán)色線為本文獎(jiǎng)勵(lì)機(jī)制的訓(xùn)練情況; 橙色線為平滑曲線, 用于觀察趨勢(shì); 綠色線為對(duì)比設(shè)計(jì)的獎(jiǎng)勵(lì)機(jī)制; 紅色線為平滑曲線. 由圖5可見(jiàn), 本文提出的精
細(xì)化獎(jiǎng)勵(lì)機(jī)制能使模型的訓(xùn)練效果更好, 在4×106個(gè)時(shí)間步時(shí)即趨于穩(wěn)定, 而對(duì)比的獎(jiǎng)勵(lì)機(jī)制基本在6×106個(gè)時(shí)間步時(shí)才趨于穩(wěn)定, 訓(xùn)練速度提升約50%.
圖6為3種不同算法和獎(jiǎng)勵(lì)機(jī)制的訓(xùn)練效果對(duì)比, 其中: 綠色為本文基于深度強(qiáng)化學(xué)習(xí)的智能引導(dǎo)算法, 采用精細(xì)化獎(jiǎng)勵(lì)機(jī)制; 橙色為傳統(tǒng)深度強(qiáng)化學(xué)習(xí)算法, 采用簡(jiǎn)單的
對(duì)比獎(jiǎng)勵(lì)機(jī)制; 藍(lán)色為隨機(jī)點(diǎn)擊的效果, 隨機(jī)點(diǎn)擊場(chǎng)上的青蛙, 不使用任何智能引導(dǎo). 由圖6可見(jiàn), 前兩個(gè)均使用深度強(qiáng)化學(xué)習(xí)模型, 效果明顯優(yōu)于隨機(jī)點(diǎn)擊. 實(shí)驗(yàn)結(jié)果表明, 本文采用精細(xì)化獎(jiǎng)勵(lì)機(jī)制的訓(xùn)練效果優(yōu)于對(duì)比獎(jiǎng)勵(lì)機(jī)制.
3.3 算法部署
ONNX(open neural network exchange)是一種針對(duì)機(jī)器學(xué)習(xí)所設(shè)計(jì)的開(kāi)放式文件格式, 用于存儲(chǔ)訓(xùn)練好的模型, 它使不同的人工智能框架(如PyTorch, MXNet)可以采用相同
格式存儲(chǔ)模型數(shù)據(jù)并交互, 因此在訓(xùn)練完代碼后, 為能在Unity的游戲中直接使用, 本文將訓(xùn)練模型保存為ONNX格式, 并通過(guò)Unity的Barracuda插件實(shí)現(xiàn)打包部署, 實(shí)際效果與實(shí)驗(yàn)效果基本一致.
綜上所述, 針對(duì)傳統(tǒng)基于深度強(qiáng)化學(xué)習(xí)的游戲智能體算法模型輸入狀態(tài)信息維度過(guò)大以及訓(xùn)練速度較慢的問(wèn)題, 本文提出了一種基于深度強(qiáng)化學(xué)習(xí)的游戲智能引導(dǎo)算法. 該算法采
用一種新的模型架構(gòu), 通過(guò)狀態(tài)信息轉(zhuǎn)換, 能有效降低狀態(tài)信息維度, 同時(shí)精細(xì)化反饋獎(jiǎng)勵(lì)值, 從而提高模型訓(xùn)練速度和性能. 對(duì)比實(shí)驗(yàn)結(jié)果表明, 該算法相比于傳統(tǒng)算法, 在
訓(xùn)練速度上提升了約50%, 在性能上提升了25%以上, 證明了該算法的優(yōu)越性與有效性.
參考文獻(xiàn)
[1] 曹馨月. 數(shù)字經(jīng)濟(jì)時(shí)代中國(guó)游戲產(chǎn)業(yè)發(fā)展面臨的機(jī)遇、 挑戰(zhàn)和對(duì)策 [J]. 商業(yè)觀察, 2023, 9(23): 92-95. (CAO X Y. Opportunities, Challenges and Countermeasures
for the Development of China’s Game Industry in the Era of Digital Economy [J]. Business Observation, 2023, 9(23): 92-95.)
[2] 韓東林, 李振. 數(shù)字技術(shù)賦能網(wǎng)絡(luò)游戲產(chǎn)業(yè)高質(zhì)量發(fā)展路徑研究 [J]. 合肥師范學(xué)院學(xué)報(bào), 2022, 40(5): 74-80. (HAN D L, LI Z. Research on Digital Technology
Enabling High-Quality Development Path of Online Game Industry [J]. Journal of Hefei Normal University, 2022, 40(5): 74-80.)
[3] 陳勇. 人工智能技術(shù)在計(jì)算機(jī)游戲軟件中的應(yīng)用 [J]. 軟件, 2022, 43(10): 92-94. (CHEN Y. Application of Artificial Intelligence Tech
nology in Computer Game Software [J]. Software, 2022, 43(10): 92-94.)
[4] 宋丕丞. AI賦能游戲開(kāi)發(fā): 演化脈絡(luò)與應(yīng)用趨勢(shì) [J]. 北京文化創(chuàng)意, 2024(4): 4-16. (S
ONG P C. Empowering Game Development with AI: Evolution and Application Trends [J]. Beijing Cultural Creativity, 2024(4): 4-16.)
[5] 王一帆. 游戲化教學(xué)策略——AI繪畫(huà)應(yīng)用于中小學(xué)生計(jì)算思維培養(yǎng)的路徑探討 [C]//2024計(jì)算思維與STEM教育研討會(huì)暨Bebras中國(guó)社區(qū)年度工作會(huì)議論文集. 北京: 北京師范大學(xué)
, 2024: 1-13. (WANG Y F. Gamification in Education: Exploring the Path of AI-Powered Drawing for Cultivating Computational Thinking in Primary and Secondary School Students
[C]//Proceedings of the 2024 Symposium on Computational Thinking and STEM Education and the Annual Meeting of the Bebras China Community. Beijing: Beijing Normal University, 2024: 1-13.)
[6] 周飛, 李久艷. 人工智能在游戲開(kāi)發(fā)中的應(yīng)用現(xiàn)狀和展望 [J]. 中國(guó)管理信息化, 2020, 23(23): 183-185.(ZHOU F, LI J Y. The Application Status and Prospect of Art
ificial Intelligence in Game Development [J]. China Management Informationization, 2020, 23(23): 183-185.)
[7] KONSTANTINOS S, GEORGE K S, GEORGE A P. Reinforcement Learning in Game Industry—Revie
w, Prospects and Challenges [J]. Applied Sciences, 2023, 13(4): 2443-1-2443-23.
[8] 高陽(yáng), 陳世福, 陸鑫. 強(qiáng)化學(xué)習(xí)研究綜述 [J]. 自動(dòng)化學(xué)報(bào), 2004, 30(1): 86-100. (GAO Y, CHEN S F, LU X. Review of Reinforcement L
earning Research [J]. Acta Automatica Sinica, 2004, 30(1): 86-100.)
[9] KUMAR A S, GOPINATHA P, SOHOM C. Reinforcement Learning Algorithms: A Brief S
urvey [J]. Expert Systems with Applications, 2023, 231: 120495-1-120495-32.
[10] LECUN Y, BENGIO Y, HINTON G. Deep Learning [J]. Nature, 2015, 521(7553): 436-444.
[11] KAI A, MARC P D, MILES B, et al. Deep Reinforcement Lear
ning: A Brief Survey [J]. IEEE Signal Processing Magazine, 2017, 34(6): 26-38.
[12] ZHAO D B, SHAO K, ZHU Y H, et al. Review of Deep Reinforcement Learning and
Discussions on the Development of Computer Go [J]. Control Theory amp; Applications, 2016, 33(6): 701-717.
[13] WAN L P, LAN X G, ZHANG H B, et al. A Review of Deep Reinforcement Learning
Theory and Application [J]. Pattern Recognition and Artificial Intelligence, 2019, 32(1): 67-81.
[14] MHIN V, KAVUKCUOGLU K, SILVER D, et al. Human-Level Con
trol through Deep Reinforcement Learning [J]. Nature, 2015, 518(7540): 529-533.
[15] SILVER D, HUANG A, MADDISON C J, et al. Mastering the Game of Go with Deep N
eural Networks and Tree Search [J]. Nature, 2016, 529(7587): 484-489.
[16] SILVER D, SCHRITTWIESER J, SIMONYAN K, et al. Maste
ring the Game of Go without Human Knowledge [J]. Nature, 2017, 550(7676): 354-359.
[17] VINYALS O, EWALDS T, BARTUNOV S, et al. Grandmaster Level in StarCraft Ⅱ Usi
ng Multi-agent Reinforcement Learning [J]. Nature, 2019, 575(7782): 350-354.
[18] GREFF K, SRIVASTAVA R K, KOUTNIK J, et al. LSTM: A
Search Space Odyssey [J]. IEEE Transactions on Neural Networks and Learning Systems, 2016, 28(10): 2222-2232.
[19] SCHULMAN J, LEVINE S, ABBEEL P, et al. Trust Region
Policy Optimization [C]//International Conference on Machine Learning. New York: ACM, 2015: 1889-1897.
[20] SCHULMAN J, WOLSKI F, DHARIWAL P, et al. Proximal Po
licy Optimization Algorithms [EB/OL]. (2017-04-28)[2023-12-28]. https://arxiv.org/abs/1707.06347v2.
[21] YE D, LIU Z, SUN M, et al. Mastering Complex Control in MOBA Games with Deep
Reinforcement Learning [C]//Proceedings of the 34th AAAI Conference on Artificial Intelligence. Palo Alto: AAAI, 2020: 6672-6679.
[22] 張薛晴, 宋玉磊, 田萌, 等. 嚴(yán)肅游戲在認(rèn)知障礙人群中應(yīng)用的范圍綜述 [J]. 醫(yī)學(xué)信息, 2023, 36(21): 173-177. (ZHANG X Q, SONG Y L, TIAN M, et al. A Sco
ping Review of Serious Game in People with Cognitive Impairment [J]. Journal of Medical
Information, 2023, 36(21): 173-177.)
(責(zé)任編輯: 韓 嘯)