2022年8月6日-7日,AISummit 全球人工智慧技術大會如期舉辦。在7日下午舉辦的《人工智慧前沿探索》分論壇上,西山居AI技術專家黃鴻波帶來了《遊戲中強化學習與行為樹融合實戰》的主題分享,詳細分享了強化學習在遊戲領域產生的價值。
黃鴻波表示,強化學習技術的落地並不在於將演算法改得多牛,而是將強化學習技術與深度學習、遊戲規劃相結合,形成一套完備的解決方案,並將其實現。
強化學習讓遊戲更加智能
強化學習在遊戲中的落地,能夠讓遊戲變得更加智能,可玩性變得更高,這就是在遊戲中採用強化學習的主要目的。
「強化學習是一種機器學習範式,它訓練代理的策略,以便可以做出一系列決策。」 黃鴻波表示,代理的目的是根據對環境的觀察來輸出動作。這些行動將導致更多的觀察和回報。當代理與環境互動時,培訓涉及大量的反覆試驗,並且每次迭代都可以改進策略。
在遊戲中,採取行動或執行行為的代理是遊戲智能體(Agent)。考慮遊戲中的角色或機器人,它必須了解遊戲的狀態,玩家在哪裡,然後基於此觀察,應根據遊戲的情況做出決定。在強化學習中,決策由獎勵決定,獎勵在遊戲中可以作為高分提供,也可以提供給達到特定目標的新層次。
黃鴻波表示,關於遊戲情況的最酷事情是,在遊戲的壓力下訓練了智能體的策略。例如,它可以了解受到攻擊時的處理方式,或如何行為以達到特定目標。
行為樹在遊戲中的作用
行為樹是一個包含邏輯節點和行為節點的樹結構體。通常情況下,每一種情況都可以抽象化成一個類型的節點,按照規範去寫節點,然後把這些節點連接成一棵樹。當使用者每次去找一個行為的時候,就會從樹的跟節點出發,從各個節點中尋找出一個和當前資料相符的行為。
簡單來說,在AI各模組耦合度較高、粒度較大的情況下,往往一個變動都牽扯到大量的修改,也很容易出現大量的重複程式碼。而行為樹的出現,給了廣大遊戲開發者提供了一個“方格本”,讓AI開發者比較方便的搭建出一整套可復用、好擴展維護的AI框架出來。可以說,強化學習是用訓練得來的,行為樹是若干個else、if的語句結合。
上圖所示,圖中有一個根節點,往下是一個樹節點,樹節點中又包括逃跑、攻擊、閒逛等。把上圖當成AI或機器人,讓他在叢林中巡邏。當AI看到一個ORC半獸人,並判斷打不過這個ORC,當觸發這個條件,AI會逃跑,逃跑就會執行Run動作。當判斷比較容易打,就會執行Fight操作。
在上圖中,有兩個節點,一個是Root,即根節點;一個是Selector節點,即邏輯節點。所有的節點都是按照一定順序,從左到右執行,這就是一個行為樹。因此,只需要寫好每個節點裡對應的邏輯,就能夠讓AI執行一些相關動作。若干個行為樹,最後就組成了一個遊戲。
強化學習和行為樹結合讓遊戲更豐富
如何使用強化學習和行為樹結合,讓遊戲更豐富呢?這是很多遊戲裡需要討論的一個比較難的應用。
在此之前,不妨先討論何時用增強學習比較好,什麼情況下用行為樹比較好。黃鴻波表示,用行為樹沒有辦法很好達到目標的,就可以用強化學習,例如在FPS(第一人稱射擊遊戲)中,應該用多大火力,應該朝誰開火,應該用什麼樣的武器等等,是比較難透過行為樹來決策的,一般來講用強化學習實現就會比較好。
什麼時候用行為樹?例如在遊戲中遇到障礙物時需要跳過去,可以選擇用強化學習來做,也可以選擇用行為樹來做。但如果用強化學習來做,訓練起來就會很麻煩。由於這種情況只有一個選擇,就是跳過去,因此用行為樹就會更簡單。
不難發現,如果把強化學習和行為樹結合起來用在遊戲中,就是比較好的方案。黃鴻波表示,強化學習與行為樹結合,有兩種比較大的實現方式:一種是以強化學習為主,行為樹為輔;另一種是以行為樹為主,強化學習為輔。
行為樹側:以行為樹為主要的AI運動方式,行為樹從遊戲客戶端接收obs輸入,根據自身的目標情況,針對於obs來寫相應的行為樹行為,在行為樹的各個行為中,將一些需要強化學習做決策的節點交給強化學習來進行,那麼在這裡,就需要強化學習針對一些特定的場景來做相應的訓練。
強化學習面:整體策略則變成了訓練若干個模型,每個模型執行一種策略,然後再嵌入到行為樹當中。
黃鴻波表示,這兩種不同的實現方式,究竟哪個好,這就需要根據不同的情況、不同的應用、不同的遊戲進行不同的考慮,因此不能一概而論。
在接下來的時間裡,黃鴻波詳細介紹了西山居在強化學習與行為樹中採用的技術框架,並結合大量的遊戲案例,詳細介紹了行為樹和強化學習在遊戲中是如何結合,讓遊戲更豐富。對個案實踐有興趣的用戶,不妨關注AISummit 全球人工智慧技術大會的精彩分享影片。 (https://www.php.cn/link/53253027fef2ab5162a602f2acfed431)
#以上是西山居AI技術專家黃鴻波:遊戲中強化學習與行為樹融合實戰的詳細內容。更多資訊請關注PHP中文網其他相關文章!