?2022年8月6日-7日,??AISummit 全球人工智能技術(shù)大會??如期舉辦。在7日下午舉辦的《人工智能前沿探索》分論壇上,西山居AI技術(shù)專家黃鴻波帶來了《游戲中強化學(xué)習(xí)與行為樹融合實戰(zhàn)》的主題分享,詳細(xì)分享了強化學(xué)習(xí)在游戲領(lǐng)域產(chǎn)生的價值。
黃鴻波表示,強化學(xué)習(xí)技術(shù)的落地并不在于要把算法改得多牛,而是要將強化學(xué)習(xí)技術(shù)與深度學(xué)習(xí)、游戲策劃相結(jié)合,形成一套完備的解決方案,并將其實現(xiàn)。
強化學(xué)習(xí)讓游戲更加智能
強化學(xué)習(xí)在游戲中的落地,能夠讓游戲變得更加智能,可玩性變得更高,這就是在游戲中采用強化學(xué)習(xí)的主要目的。
“強化學(xué)習(xí)是一種機器學(xué)習(xí)范式,它訓(xùn)練代理的策略,以便可以做出一系列決策。” 黃鴻波表示,代理的目的是根據(jù)對環(huán)境的觀察來輸出動作。這些行動將導(dǎo)致更多的觀察和回報。當(dāng)代理與環(huán)境交互時,培訓(xùn)涉及大量的反復(fù)試驗,并且每次迭代都可以改進(jìn)策略。
在游戲中,采取行動或執(zhí)行行為的代理是游戲智能體(Agent)。考慮游戲中的角色或機器人,它必須了解游戲的狀態(tài),玩家在哪里,然后基于此觀察,應(yīng)根據(jù)游戲的情況做出決定。在強化學(xué)習(xí)中,決策由獎勵決定,獎勵在游戲中可以作為高分提供,也可以提供給達(dá)到特定目標(biāo)的新水平。
黃鴻波表示,關(guān)于游戲情況的最酷事情是,在游戲的壓力下訓(xùn)練了智能體的策略。 例如,它可以了解受到攻擊時的處理方式,或如何行為以達(dá)到特定目標(biāo)。
行為樹在游戲中的作用
行為樹是一個包含邏輯節(jié)點和行為節(jié)點的樹結(jié)構(gòu)體。通常情況下,可以將每一種情況都抽象成一個類型的節(jié)點,按照規(guī)范去寫節(jié)點,然后把這些節(jié)點連接成一棵樹。當(dāng)用戶每次去找一個行為的時候,就會從樹的跟節(jié)點出發(fā),從各個節(jié)點中尋找出一個和當(dāng)前數(shù)據(jù)相符合的行為。
簡單來說,在AI各模塊耦合度較高、粒度較大的情況下,往往一個變動都牽扯到大量的修改,也很容易出現(xiàn)大量的重復(fù)代碼。而行為樹的出現(xiàn),給了廣大游戲開發(fā)者提供了一個“方格本”,讓AI開發(fā)者比較方便的搭建出一整套可復(fù)用、好擴展維護的AI框架出來。可以說,強化學(xué)習(xí)是用訓(xùn)練得來的,行為樹是若干個else、if的語句結(jié)合。

上圖所示,圖中有一個根節(jié)點,往下是一個樹節(jié)點,樹節(jié)點中又包括逃跑、攻擊、閑逛等。把上圖當(dāng)成一個AI或是機器人,讓他在叢林中巡邏。當(dāng)AI看到一個ORC半獸人,并判斷打不過這個ORC,當(dāng)觸發(fā)這個條件,AI會逃跑,逃跑就會執(zhí)行Run動作。當(dāng)判斷比較容易打,就會執(zhí)行Fight操作。
在上圖中,有兩個節(jié)點,一個是Root,即根節(jié)點;一個是Selector節(jié)點,即邏輯節(jié)點。所有的節(jié)點都是按照一定順序,從左往右執(zhí)行,這就是一個行為樹。因此,只需要寫好每個節(jié)點里對應(yīng)的邏輯,就能夠讓AI執(zhí)行一些相關(guān)動作。若干個行為樹,最后就組成了一個游戲。
強化學(xué)習(xí)和行為樹相結(jié)合讓游戲更加豐富
如何使用強化學(xué)習(xí)和行為樹相結(jié)合,讓游戲更加豐富呢?這是很多游戲里需要討論的一個比較難的應(yīng)用。
在此之前,不妨先討論什么時候用強化學(xué)習(xí)比較好,什么情況下用行為樹比較好。黃鴻波表示,用行為樹沒有辦法很好達(dá)到目標(biāo)的,就可以用強化學(xué)習(xí),例如在FPS(第一人稱射擊游戲)中,應(yīng)該用多大火力,應(yīng)該朝誰開火,應(yīng)該用什么樣的武器等等,是比較難通過行為樹來決策的,一般來講用強化學(xué)習(xí)實現(xiàn)就會比較好。
什么時候用行為樹?例如在游戲中遇到障礙物時需要跳過去,可以選擇用強化學(xué)習(xí)來做,也可以選擇用行為樹來做。但如果用強化學(xué)習(xí)來做,訓(xùn)練起來就會很麻煩。由于這種情況下只有一個選擇,就是跳過去,因此用行為樹就會更加簡單。
不難發(fā)現(xiàn),如果把強化學(xué)習(xí)和行為樹結(jié)合起來用在游戲中,就是一個比較好的方案。黃鴻波表示,強化學(xué)習(xí)與行為樹相結(jié)合,有兩種比較大的實現(xiàn)方式:一種是以強化學(xué)習(xí)為主,行為樹為輔;另一種是以行為樹為主,強化學(xué)習(xí)為輔。
行為樹側(cè):以行為樹為主要的AI運動方式,行為樹從游戲客戶端接收obs輸入,根據(jù)自身的目標(biāo)情況,針對于obs來寫相應(yīng)的行為樹行為,在行為樹的各個行為中,將一些需要強化學(xué)習(xí)做決策的節(jié)點交給強化學(xué)習(xí)來進(jìn)行,那么在這里,就需要強化學(xué)習(xí)針對一些特定的場景來做相應(yīng)的訓(xùn)練。
強化學(xué)習(xí)側(cè):整體策略則變成了訓(xùn)練若干個模型,每一個模型執(zhí)行一種策略,然后再嵌入到行為樹當(dāng)中。
黃鴻波表示,這兩種不同的實現(xiàn)方式,究竟哪個好,這就需要根據(jù)不同的情況、不同的應(yīng)用、不同的游戲進(jìn)行不同的考慮,因此不能一概而論。

在接下來的時間里,黃鴻波詳細(xì)介紹了西山居在強化學(xué)習(xí)與行為樹中采用的技術(shù)框架,并結(jié)合大量的游戲案例,詳細(xì)介紹了行為樹和強化學(xué)習(xí)在游戲中是如何進(jìn)行結(jié)合,讓游戲變得更加豐富。對案例實踐感興趣的用戶,不妨關(guān)注AISummit 全球人工智能技術(shù)大會的精彩分享視頻。(https://aisummit.51cto.com/)































