?2022年8月6日-7日,??AISummit 全球人工智能技術(shù)大會(huì)??如期舉辦。在7日下午舉辦的《人工智能前沿探索》分論壇上,西山居AI技術(shù)專家黃鴻波帶來(lái)了《游戲中強(qiáng)化學(xué)習(xí)與行為樹融合實(shí)戰(zhàn)》的主題分享,詳細(xì)分享了強(qiáng)化學(xué)習(xí)在游戲領(lǐng)域產(chǎn)生的價(jià)值。
黃鴻波表示,強(qiáng)化學(xué)習(xí)技術(shù)的落地并不在于要把算法改得多牛,而是要將強(qiáng)化學(xué)習(xí)技術(shù)與深度學(xué)習(xí)、游戲策劃相結(jié)合,形成一套完備的解決方案,并將其實(shí)現(xiàn)。
強(qiáng)化學(xué)習(xí)讓游戲更加智能
強(qiáng)化學(xué)習(xí)在游戲中的落地,能夠讓游戲變得更加智能,可玩性變得更高,這就是在游戲中采用強(qiáng)化學(xué)習(xí)的主要目的。
“強(qiáng)化學(xué)習(xí)是一種機(jī)器學(xué)習(xí)范式,它訓(xùn)練代理的策略,以便可以做出一系列決策?!?nbsp;黃鴻波表示,代理的目的是根據(jù)對(duì)環(huán)境的觀察來(lái)輸出動(dòng)作。這些行動(dòng)將導(dǎo)致更多的觀察和回報(bào)。當(dāng)代理與環(huán)境交互時(shí),培訓(xùn)涉及大量的反復(fù)試驗(yàn),并且每次迭代都可以改進(jìn)策略。
在游戲中,采取行動(dòng)或執(zhí)行行為的代理是游戲智能體(Agent)??紤]游戲中的角色或機(jī)器人,它必須了解游戲的狀態(tài),玩家在哪里,然后基于此觀察,應(yīng)根據(jù)游戲的情況做出決定。在強(qiáng)化學(xué)習(xí)中,決策由獎(jiǎng)勵(lì)決定,獎(jiǎng)勵(lì)在游戲中可以作為高分提供,也可以提供給達(dá)到特定目標(biāo)的新水平。
黃鴻波表示,關(guān)于游戲情況的最酷事情是,在游戲的壓力下訓(xùn)練了智能體的策略。 例如,它可以了解受到攻擊時(shí)的處理方式,或如何行為以達(dá)到特定目標(biāo)。
行為樹在游戲中的作用
行為樹是一個(gè)包含邏輯節(jié)點(diǎn)和行為節(jié)點(diǎn)的樹結(jié)構(gòu)體。通常情況下,可以將每一種情況都抽象成一個(gè)類型的節(jié)點(diǎn),按照規(guī)范去寫節(jié)點(diǎn),然后把這些節(jié)點(diǎn)連接成一棵樹。當(dāng)用戶每次去找一個(gè)行為的時(shí)候,就會(huì)從樹的跟節(jié)點(diǎn)出發(fā),從各個(gè)節(jié)點(diǎn)中尋找出一個(gè)和當(dāng)前數(shù)據(jù)相符合的行為。
簡(jiǎn)單來(lái)說(shuō),在AI各模塊耦合度較高、粒度較大的情況下,往往一個(gè)變動(dòng)都牽扯到大量的修改,也很容易出現(xiàn)大量的重復(fù)代碼。而行為樹的出現(xiàn),給了廣大游戲開發(fā)者提供了一個(gè)“方格本”,讓AI開發(fā)者比較方便的搭建出一整套可復(fù)用、好擴(kuò)展維護(hù)的AI框架出來(lái)??梢哉f(shuō),強(qiáng)化學(xué)習(xí)是用訓(xùn)練得來(lái)的,行為樹是若干個(gè)else、if的語(yǔ)句結(jié)合。
上圖所示,圖中有一個(gè)根節(jié)點(diǎn),往下是一個(gè)樹節(jié)點(diǎn),樹節(jié)點(diǎn)中又包括逃跑、攻擊、閑逛等。把上圖當(dāng)成一個(gè)AI或是機(jī)器人,讓他在叢林中巡邏。當(dāng)AI看到一個(gè)ORC半獸人,并判斷打不過(guò)這個(gè)ORC,當(dāng)觸發(fā)這個(gè)條件,AI會(huì)逃跑,逃跑就會(huì)執(zhí)行Run動(dòng)作。當(dāng)判斷比較容易打,就會(huì)執(zhí)行Fight操作。
在上圖中,有兩個(gè)節(jié)點(diǎn),一個(gè)是Root,即根節(jié)點(diǎn);一個(gè)是Selector節(jié)點(diǎn),即邏輯節(jié)點(diǎn)。所有的節(jié)點(diǎn)都是按照一定順序,從左往右執(zhí)行,這就是一個(gè)行為樹。因此,只需要寫好每個(gè)節(jié)點(diǎn)里對(duì)應(yīng)的邏輯,就能夠讓AI執(zhí)行一些相關(guān)動(dòng)作。若干個(gè)行為樹,最后就組成了一個(gè)游戲。
強(qiáng)化學(xué)習(xí)和行為樹相結(jié)合讓游戲更加豐富
如何使用強(qiáng)化學(xué)習(xí)和行為樹相結(jié)合,讓游戲更加豐富呢?這是很多游戲里需要討論的一個(gè)比較難的應(yīng)用。
在此之前,不妨先討論什么時(shí)候用強(qiáng)化學(xué)習(xí)比較好,什么情況下用行為樹比較好。黃鴻波表示,用行為樹沒(méi)有辦法很好達(dá)到目標(biāo)的,就可以用強(qiáng)化學(xué)習(xí),例如在FPS(第一人稱射擊游戲)中,應(yīng)該用多大火力,應(yīng)該朝誰(shuí)開火,應(yīng)該用什么樣的武器等等,是比較難通過(guò)行為樹來(lái)決策的,一般來(lái)講用強(qiáng)化學(xué)習(xí)實(shí)現(xiàn)就會(huì)比較好。
什么時(shí)候用行為樹?例如在游戲中遇到障礙物時(shí)需要跳過(guò)去,可以選擇用強(qiáng)化學(xué)習(xí)來(lái)做,也可以選擇用行為樹來(lái)做。但如果用強(qiáng)化學(xué)習(xí)來(lái)做,訓(xùn)練起來(lái)就會(huì)很麻煩。由于這種情況下只有一個(gè)選擇,就是跳過(guò)去,因此用行為樹就會(huì)更加簡(jiǎn)單。
不難發(fā)現(xiàn),如果把強(qiáng)化學(xué)習(xí)和行為樹結(jié)合起來(lái)用在游戲中,就是一個(gè)比較好的方案。黃鴻波表示,強(qiáng)化學(xué)習(xí)與行為樹相結(jié)合,有兩種比較大的實(shí)現(xiàn)方式:一種是以強(qiáng)化學(xué)習(xí)為主,行為樹為輔;另一種是以行為樹為主,強(qiáng)化學(xué)習(xí)為輔。
行為樹側(cè):以行為樹為主要的AI運(yùn)動(dòng)方式,行為樹從游戲客戶端接收obs輸入,根據(jù)自身的目標(biāo)情況,針對(duì)于obs來(lái)寫相應(yīng)的行為樹行為,在行為樹的各個(gè)行為中,將一些需要強(qiáng)化學(xué)習(xí)做決策的節(jié)點(diǎn)交給強(qiáng)化學(xué)習(xí)來(lái)進(jìn)行,那么在這里,就需要強(qiáng)化學(xué)習(xí)針對(duì)一些特定的場(chǎng)景來(lái)做相應(yīng)的訓(xùn)練。
強(qiáng)化學(xué)習(xí)側(cè):整體策略則變成了訓(xùn)練若干個(gè)模型,每一個(gè)模型執(zhí)行一種策略,然后再嵌入到行為樹當(dāng)中。
黃鴻波表示,這兩種不同的實(shí)現(xiàn)方式,究竟哪個(gè)好,這就需要根據(jù)不同的情況、不同的應(yīng)用、不同的游戲進(jìn)行不同的考慮,因此不能一概而論。
在接下來(lái)的時(shí)間里,黃鴻波詳細(xì)介紹了西山居在強(qiáng)化學(xué)習(xí)與行為樹中采用的技術(shù)框架,并結(jié)合大量的游戲案例,詳細(xì)介紹了行為樹和強(qiáng)化學(xué)習(xí)在游戲中是如何進(jìn)行結(jié)合,讓游戲變得更加豐富。對(duì)案例實(shí)踐感興趣的用戶,不妨關(guān)注AISummit 全球人工智能技術(shù)大會(huì)的精彩分享視頻。(https://aisummit.51cto.com/)