如何讓 NPC 更像真人?

5 評(píng)論 10626 瀏覽 11 收藏 39 分鐘

編輯導(dǎo)語(yǔ):NPC是游戲中不可或缺的一部分,它為玩家打造了一個(gè)有生命力的虛擬世界。與玩家串聯(lián)起了游戲世界。但傳統(tǒng)的AI還存在著很多缺陷,以致于背上“智障”的罵名。如何能夠制作出優(yōu)秀的游戲AI(游戲NPC)?疑是游戲開(kāi)發(fā)者苦苦探求的問(wèn)題,作者對(duì)如何NPC更像真人作出了分析與總結(jié)。

游戲中的?玩家??作為游戲的重要組成部分,對(duì)于游戲的可玩性的塑造有深遠(yuǎn)的影響。但是?久以來(lái)驅(qū)動(dòng)這些??的??智能技術(shù)?直存在巨?的缺陷,?使得這些游戲中的??智能飽受“??智障”的罵名。這不僅極?地影響了游戲的體驗(yàn),也制約了游戲開(kāi)發(fā)者設(shè)計(jì)游戲的思路。

隨著深度強(qiáng)化學(xué)習(xí)技術(shù)的發(fā)展,?動(dòng)化地制作智能體成為了現(xiàn)實(shí),但是這些智能體往往“勇猛”有余,“?性”不?。本?從??智能技術(shù)研究與實(shí)踐的?度探討了如何能夠制作出像人一樣操作的游戲智能體。

一、為什么游戲需要AI?

?電?游戲誕?之始,為了能夠?yàn)橥婕掖蛟?個(gè)有?命?的虛擬的世界,游戲中往往都會(huì)添加諸多的?玩家??(Non-Player Character, NPC)。他們最早可以追溯到?與地下城的桌游(DungeonsDragons)[1],在這類桌游中通常需要?個(gè)游戲主持?來(lái)扮演?玩家的??提供給玩家決策的選擇和下?步的指引。

他起到了串聯(lián)起玩家與游戲世界的作?,甚?可以說(shuō)整個(gè)游戲的進(jìn)?節(jié)奏都由他來(lái)掌控。

?到了電?游戲中,這種?玩家的??的職責(zé)就更加豐富了。他們或許是任務(wù)的發(fā)布者,或是關(guān)鍵劇情的?物,或是玩家要挑戰(zhàn)的對(duì)?,抑或僅僅是玩家擦肩?過(guò)的路?。

但是他們串聯(lián)起玩家與游戲世界的作?依然沒(méi)有變。如果沒(méi)有他們,游戲設(shè)計(jì)者是很難構(gòu)建出?個(gè)充盈豐富的虛擬世界的。

很多經(jīng)典的NPC由于背負(fù)著豐富的故事劇情,成為?代玩家?中寶貴的回憶。?如?家熟知的《超級(jí)??奧》中的碧琪公主(Princess Peach),就是玩家操控的??奧?直去努?營(yíng)救的對(duì)象。

盡管碧琪公主在游戲中更像?個(gè)花瓶NPC,與主?的交互并不多。但是正是由于她的存在,賦予了《超級(jí)??奧》整個(gè)游戲的原始驅(qū)動(dòng)?。

更有甚者,諸多游戲NPC的原型就是取材于我們的真實(shí)?活。

?如《魔獸世界》中的暗夜精靈?獵?凱莉達(dá)克(CayleeDak),她的原型就取材于現(xiàn)實(shí)?活中的?個(gè)獵?玩家,由于她經(jīng)常在游戲?幫助別??備受??玩家歡迎。

后來(lái)她因??病不幸逝世后, 游戲中的公會(huì)專?為她舉辦了盛?的虛擬葬禮以紀(jì)念她的樂(lè)觀友善。

葬禮上數(shù)百名玩家集結(jié)在暴?城的英雄?,?路游??暴?城的花園區(qū),并按照美式習(xí)俗鳴放了21響禮炮?!赌ЙF世界》官?得知后便專?為她設(shè)計(jì)了這個(gè)NPC和相關(guān)的劇情任務(wù),為游戲增添了不少溫度。

NPC可以說(shuō)是游戲中不可或缺的?部分。是他們點(diǎn)亮了整個(gè)游戲虛擬世界,???讓玩家更好地融?游戲,另???傳達(dá)了游戲的態(tài)度。但是隨著游戲創(chuàng)作者的野?越來(lái)越?,玩家對(duì)游戲的要求也越來(lái)越?,單純只會(huì)讀劇本的NPC已經(jīng)很難滿?構(gòu)建?個(gè)優(yōu)秀虛擬世界的要求。

這些NPC的?為必須變得更加豐富?些,能處理的問(wèn)題必須更復(fù)雜?些才能讓這個(gè)虛擬世界變得更有趣,更吸引玩家。其實(shí)早在1950年,游戲AI的概念就被引?到了電?游戲中[2],就是為了???智能的技術(shù)來(lái)設(shè)計(jì)出更智能的NPC,因此游戲AI也常常成為了游戲NPC的?種代稱。

但是傳統(tǒng)的游戲AI制作技術(shù)存在著諸多缺陷,使得這些游戲中的??智能?直飽受??“智障”的罵名,這不僅極?地影響了游戲的體驗(yàn),也制約了游戲開(kāi)發(fā)者設(shè)計(jì)游戲的思路。如何能夠制作出優(yōu)秀的游戲AI(游戲NPC)?疑是游戲開(kāi)發(fā)者苦苦探求的問(wèn)題。

二、為什么現(xiàn)在的AI是智障?

為什么現(xiàn)在的AI很多時(shí)候總是看上去像個(gè)智障呢?其實(shí)背后的主要原因是驅(qū)動(dòng)AI的模型太簡(jiǎn)單了。?前主流的游戲AI都是基于?為樹(shù)這樣的規(guī)則系統(tǒng)實(shí)現(xiàn)的,它的復(fù)雜度有限,并且規(guī)律易尋。反觀?類?腦?這么多神經(jīng)元錯(cuò)綜復(fù)雜的交匯著,?今科學(xué)家們也沒(méi)完全解開(kāi)?腦的秘密。

我們以經(jīng)典的《吃??》游戲?yàn)槔齺?lái)介紹?下如何??個(gè)規(guī)則系統(tǒng)實(shí)現(xiàn)游戲AI。吃??游戲的玩法如圖所示,就是要控制吃??盡可能多地吃掉散布在迷宮各處的??。但是其中的難點(diǎn)在于,會(huì)有能夠傷害吃??的幽靈在其中游蕩,吃??為了得到更多的??不得不躲避幽靈的進(jìn)攻。

那么如果要?規(guī)則系統(tǒng)設(shè)計(jì)?個(gè)吃??的AI,該怎么做呢??先,我們需要考慮吃??可能會(huì)遭遇哪些狀態(tài)??當(dāng)遭遇這些狀態(tài)后,吃???可以采取怎樣的操作?不同的操作?可以把吃??引?怎樣的狀態(tài)中去?當(dāng)把這些問(wèn)題答案羅列出來(lái)之后,我們就能夠組織出吃??在不同狀態(tài)下應(yīng)該如何決策的規(guī)則系統(tǒng),如下圖所示:

在“尋找??”狀態(tài)下,可以設(shè)置讓吃??隨機(jī)游?,如果看到??就去吃掉它的?為。?當(dāng)發(fā)現(xiàn)幽靈正在附近的時(shí)候,就進(jìn)?到“躲避幽靈”狀態(tài),這時(shí)可以將吃??的?為設(shè)置為遠(yuǎn)離幽靈,??視??的存在。

當(dāng)幽靈脫離了之后,狀態(tài)?可以轉(zhuǎn)換到“尋找??”。如果吃??很幸運(yùn)地吃到了?顆能量藥丸,那么他就獲得了擊敗幽靈的能?,此時(shí)狀態(tài)可以轉(zhuǎn)換為“追擊幽靈”……

從上?的吃??的例?中我們可以看出,基于規(guī)則的AI系統(tǒng)是有明顯的缺陷的。?先,如果游戲場(chǎng)景?較復(fù)雜或者說(shuō)對(duì)智能體的?為和能?有?較?的要求,會(huì)有?常復(fù)雜繁多的狀態(tài)。

分解出這些狀態(tài)、編寫狀態(tài)中的?為、設(shè)計(jì)狀態(tài)之間的轉(zhuǎn)移條件?疑會(huì)帶來(lái)巨?的游戲開(kāi)發(fā)成本。但是游戲開(kāi)發(fā)的成本是有限的,開(kāi)發(fā)?員的精?也是有限的。

其次,隨著游戲的設(shè)計(jì)越來(lái)越復(fù)雜,分解這些狀態(tài)、編寫規(guī)則系統(tǒng)也已經(jīng)變得越來(lái)越不太可能了,更別說(shuō)開(kāi)發(fā)?個(gè)栩栩如?的規(guī)則AI系統(tǒng)了。

但是,最重要的?點(diǎn)是當(dāng)?類與這些AI進(jìn)?交互的時(shí)候,可能會(huì)產(chǎn)?很多意料之外的狀態(tài),?這些規(guī)則系統(tǒng)是完全不具備泛化性的,對(duì)于這種意外狀態(tài)只能表現(xiàn)出智障?為。

三、為什么游戲AI需要像??

隨著游戲這么多年的發(fā)展,游戲的形態(tài)和玩法都變得越來(lái)越豐富。但是我們可以發(fā)現(xiàn),在那些特別吸引?的游戲中,有兩種類型的游戲是特別突出的。

?種是構(gòu)建了?個(gè)引??勝的虛擬世界,??的?和事是那么真實(shí),以?于讓我們深深沉浸其中。?如在《荒野?鏢客》中,當(dāng)你漫步在?鎮(zhèn)的街道上,也許會(huì)看到?個(gè)婦?倒在地上哭泣求助,如果你過(guò)去幫助她,她會(huì)突然變臉掏出槍指著你說(shuō)“搶劫!”。

這種看似對(duì)玩家的當(dāng)頭?棒,卻?是?常符合那個(gè)時(shí)代背景的事件真的讓玩家?法?拔。

?同樣也是打造了?個(gè)?部場(chǎng)景樂(lè)園的《?部世界》更是吸引了?數(shù)的權(quán)貴到其中游玩,它本質(zhì)上就是?個(gè)有?度擬?AI的動(dòng)作探險(xiǎn)游戲,只不過(guò)??AI的智能和外形都進(jìn)化到了?個(gè)遠(yuǎn)?于現(xiàn)在電?游戲的形態(tài)。

另外?種是構(gòu)建了?個(gè)合適的與真?在線競(jìng)技的場(chǎng)景。多?在線對(duì)戰(zhàn)變得越來(lái)越熱?,其背后的邏輯也可以解釋為在游戲消費(fèi)內(nèi)容有限的情況下,玩家還是希望更多地與更聰明的?類進(jìn)?游戲,因?yàn)?類的創(chuàng)造?和游戲?命?是旺盛的,即便在這個(gè)過(guò)程中可能要忍受謾罵與不快。如果我們??夠像?類玩家的AI來(lái)填充,這類游戲本質(zhì)上和第?類也沒(méi)有區(qū)別。

總??之,就是游戲中的??越像?,就越能給玩家?guī)?lái)吸引?。它并不?定需要像??玩家?樣將游戲玩得滾?爛熟,但是要能做出?類才會(huì)做出的反應(yīng),即便那些反應(yīng)是不理智的。

因此游戲???為的智能性對(duì)于打造整個(gè)游戲的游戲性、以及對(duì)玩家體驗(yàn)的塑造有著?關(guān)重要的作?。但是就像前?提及的?為樹(shù)?樣,這么多年過(guò)去游戲中誕?了?數(shù)的AI,但是?多數(shù)還是會(huì)被玩家認(rèn)為不像?,只會(huì)固定的套路,讓玩家對(duì)游戲興趣?減。

四、怎么判斷AI像不像?呢?

那怎么才能判斷AI到底像不像?呢?這個(gè)問(wèn)題并不好回答,具體到不同的場(chǎng)景?,答案可能都不?樣。?如機(jī)器可以很好地將?段復(fù)雜的中?翻譯成英?,但是?很難聽(tīng)懂“我去!我不去”“那么到底去不去呢?”這樣的對(duì)話。那么這個(gè)機(jī)器到底像不像?呢?

實(shí)際上,在??智能誕?之初,計(jì)算機(jī)之?圖靈(AlanTuring)就討論過(guò)這個(gè)問(wèn)題,并提出了著名的圖靈測(cè)試(TuringTest)[3]作為?種解決?案。如下圖所示,假設(shè)有?個(gè)?和?臺(tái)機(jī)器被隔離在?個(gè)?房間?,我們看不到??到底是?還是機(jī)器,但是我們可以通過(guò)?些裝置與他們進(jìn)?溝通。

通過(guò)?系列提問(wèn),我們需要判斷究竟哪個(gè)是機(jī)器哪個(gè)是?,如果我們的誤判?例超過(guò)30%,那么就可以說(shuō)機(jī)器通過(guò)了圖靈測(cè)試。圖靈認(rèn)為通過(guò)圖靈測(cè)試的機(jī)器具備了和?類?樣的智能。

在游戲中,我們其實(shí)也希望AI能夠達(dá)到類似這種以假亂真的效果,?少在游戲的某個(gè)具體任務(wù)上,AI能夠通過(guò)圖靈測(cè)試,讓玩家覺(jué)得AI是鮮活的,有?命?的。

雖然圖靈測(cè)試對(duì)于判斷AI像不像?直觀并且可靠,但是卻并不實(shí)?。?少在優(yōu)化AI的過(guò)程中,使?這樣的?式去評(píng)判成本太?了。因?yàn)槲覀兒茈y直接把?當(dāng)成AI的優(yōu)化器,讓?判斷了AI做的像不像?之后,再反饋到AI的模型上,讓AI去修改參數(shù),再讓?類判 斷。

這樣?把?的“??”智能,對(duì)于?的精?消耗?不說(shuō),也很難覆蓋到所有可能的場(chǎng)景。如何更好地度量AI的擬?性依然是?個(gè)?常重要的研究課題,但是最基本的我們可以從?類的?為數(shù)據(jù)和AI的?為數(shù)據(jù)的對(duì)?中羅列出哪些?為是不像?的、哪些是像?的,從?逐漸去優(yōu)化不合理的部分。這對(duì)于?個(gè)有限的問(wèn)題空間??并不是?件?常困難的事情。

五、從?類的?為?學(xué)習(xí)

接下來(lái)我們就要考慮如何得到?個(gè)像?的AI模型。既然像?為樹(shù)這種總結(jié)經(jīng)驗(yàn)式的AI制作?段對(duì)于提升AI的智能性?常困難,?個(gè)最直接的想法便是能不能直接從?類過(guò)往的游戲?為?學(xué)習(xí)經(jīng)驗(yàn)?zāi)兀看鸢甘强隙ǖ摹?類在玩游戲的時(shí)候,能夠產(chǎn)??系列的游戲狀態(tài)-游戲操作對(duì),這些游戲狀態(tài)-動(dòng)作對(duì)我們稱為?類示例。如果將?類?局游戲的示例按順序組織起來(lái),形成?條?為軌跡?條游戲的序列tr,即:

那由m條?類示例軌跡組成的數(shù)據(jù)集可以記為:

從?類?為?學(xué)習(xí)的?標(biāo)可以認(rèn)為是希望AI在游戲中的表現(xiàn)與?類的表現(xiàn)越接近越好。如果能夠從這種數(shù)據(jù)?估計(jì)出?類的策略分布,并且引??個(gè)回報(bào)函數(shù)來(lái)刻畫這個(gè)表現(xiàn)程度(?如游戲的技巧得分、游戲的競(jìng)技得分等的綜合表現(xiàn))。那么模仿?類?為的學(xué)習(xí)?標(biāo)就可以表示為找到?個(gè)AI策略,使得它盡量能夠取得和?類接近的回報(bào),即:

六、行為克隆

如何求解這個(gè)問(wèn)題呢??種直接的想法是通過(guò)?類的示例數(shù)據(jù)集:

來(lái)估計(jì)?類的?為策略pi* ,這種?式也被稱為?為克?。˙ehavior Cloning)[4]。?種常?的估計(jì)?法就是最?似然估計(jì)(Maximum Likelihood Estimation)。假設(shè)要求解的策略模型表示為pitheta(theta是模型的參數(shù)),那么它產(chǎn)??個(gè)數(shù)據(jù)樣本(s,a)的似然即可以表示為pitheta(a|s)。最?似然估計(jì)可以轉(zhuǎn)換為最?化對(duì)數(shù)似然,即:

這是?個(gè)凸優(yōu)化問(wèn)題,我們可以直接使??些強(qiáng)?的機(jī)器學(xué)習(xí)學(xué)習(xí)?法來(lái)求解。?如,近?年?速發(fā)展的深度學(xué)習(xí),由于?常強(qiáng)的學(xué)習(xí)擬合能??被?泛應(yīng)?到圖像、?然語(yǔ)?處理等領(lǐng)域,它同樣可以幫助我們來(lái)擬合?類的?為。

不過(guò)值得注意的是,在進(jìn)?機(jī)器學(xué)習(xí)的時(shí)候,每個(gè)樣本都是作為獨(dú)?的樣本去對(duì)待的(機(jī)器學(xué)習(xí)的樣本獨(dú)?同分布假設(shè)),但是樣本實(shí)際上都是從序列數(shù)據(jù)中收集?來(lái),并不滿?獨(dú)?同分布的假設(shè)。

這就會(huì)導(dǎo)致策略模型如果在某?步發(fā)?了?丁點(diǎn)?的錯(cuò)誤預(yù)測(cè),那么這個(gè)錯(cuò)誤會(huì)被?直累積下去,導(dǎo)致AI遇到?些?類從來(lái)沒(méi)有遇到過(guò),并且AI也沒(méi)有被訓(xùn)練過(guò)的場(chǎng)景。這時(shí)候AI的表現(xiàn)就會(huì)?常糟糕。

如下圖所示,我們可以很直觀地從?個(gè)賽?游戲的例?中明?,假如在學(xué)習(xí)?類的賽?軌跡的時(shí)候,在彎道的控制上出現(xiàn)了?定的誤差,那么這個(gè)誤差會(huì)被?直延續(xù)下去,直到賽?撞出賽道。但是如果沒(méi)有?類撞出賽道之后的補(bǔ)救?為數(shù)據(jù),?為克隆將很難幫助我們得到?個(gè)滿意的?為策略。

不難看出,?為克隆雖然簡(jiǎn)單并且?效,但是決策序列越??為克隆就越可能累積很?的誤差,導(dǎo)致后續(xù)的決策越來(lái)越離譜。如果能夠獲取?以應(yīng)付各種意外情況的海量?類示例數(shù)據(jù),那么這個(gè)累積誤差問(wèn)題才能得到緩解,但是這?點(diǎn)在游戲研發(fā)階段通常都很難滿?。不然我們只能寄希望于這些累積誤差不會(huì)導(dǎo)致對(duì)游戲致命的影響。

為了解決這個(gè)問(wèn)題,也有學(xué)者提出名為DAgger(DatasetAggregation)[5]的?法。這個(gè)?法的基本思想是不斷利??類來(lái)糾正?為克隆中出現(xiàn)的錯(cuò)誤。具體算法可以描述為:

  1. ?先將?為克隆得到的策略繼續(xù)與環(huán)境交互,來(lái)產(chǎn)?新的數(shù)據(jù)
  2. 然后將這些數(shù)據(jù)提供給?類,以獲得?類在這些數(shù)據(jù)上的?為,從?得到?個(gè)增?的數(shù)據(jù)
  3. 在增?后的數(shù)據(jù)集上,重新進(jìn)??為克隆,以得到新的策略
  4. 重復(fù)上述過(guò)程

由于在不停和環(huán)境交互的過(guò)程中利??類的知識(shí)對(duì)數(shù)據(jù)進(jìn)?了增?,DAgger算法會(huì)??增加數(shù)據(jù)對(duì)狀態(tài)空間的覆蓋度,從?減少學(xué)習(xí)時(shí)候的誤差。

但是也需要注意,不停地讓?類提供指導(dǎo)本身也并不是?件簡(jiǎn)單的事情,即便是?個(gè)狂熱的玩家也很難不厭其煩地教AI玩游戲,況且如果游戲?夠復(fù)雜,游戲策略?夠豐富, 那么DAgger需要向?類請(qǐng)教的示例數(shù)量同樣可能?常海量。

六、逆強(qiáng)化學(xué)習(xí)

上?節(jié)中我們提到,藉由?為克隆學(xué)習(xí)得到的策略?般會(huì)受到累積誤差問(wèn)題的影響,那么有沒(méi)有另?種?法能夠減輕累積誤差問(wèn)題帶來(lái)的影響呢?答案是肯定的,這就是逆強(qiáng)化學(xué)習(xí)[6]。

逆強(qiáng)化學(xué)習(xí)與?為克隆不同,并不直接求解智能體的?為策略,?是嘗試從示例數(shù)據(jù)集中求解出?類所使?的獎(jiǎng)勵(lì)函數(shù)?于解釋?類策略的?為。在使?逆強(qiáng)化學(xué)習(xí)解決模仿學(xué)習(xí)問(wèn)題時(shí),我們就可以使?強(qiáng)化學(xué)習(xí)在學(xué)到的獎(jiǎng)勵(lì)函數(shù)上求解最優(yōu)的?為策略。

換句話說(shuō),?為克隆是單純的“模仿”,?基于逆強(qiáng)化學(xué)習(xí)的模仿學(xué)習(xí)則是嘗試“理解”?類?為的內(nèi)在邏輯(獎(jiǎng)賞函數(shù)),再根據(jù)它“學(xué)習(xí)”??的?為,?然??為克隆更容易適應(yīng)環(huán)境中的?誤差。

在逆強(qiáng)化學(xué)習(xí)中,最核?的部分就是根據(jù)示例數(shù)據(jù)集求解得出的獎(jiǎng)勵(lì)函數(shù),我們通常要求其滿?這個(gè)性質(zhì):當(dāng)使?這個(gè)獎(jiǎng)勵(lì)函數(shù)時(shí),使??類策略獲得的累積期望獎(jiǎng)賞,?使?其他任意策略所能獲得的累積期望獎(jiǎng)賞都要多。換句話說(shuō),我們認(rèn)為?類策略是在使?這個(gè)獎(jiǎng)勵(lì)函數(shù)時(shí)的最優(yōu)策略,也就是:

得到?類策略使?的獎(jiǎng)勵(lì)函數(shù)后,我們就可以使?這個(gè)獎(jiǎng)勵(lì)函數(shù)構(gòu)建?個(gè)新的任務(wù):

并在這個(gè)新的任務(wù)上?強(qiáng)化學(xué)習(xí)來(lái)求解最優(yōu)的?動(dòng)策略pi*。根據(jù)我們之前對(duì)性質(zhì)的描述,在這個(gè)任務(wù)上表現(xiàn)最好的?為策略就是?類策略 ,即:

通過(guò)這種?式,我們就得到了?個(gè)能夠模仿?類的AI策略。

逆強(qiáng)化學(xué)習(xí)雖然能夠解決?為克隆中存在累積誤差的問(wèn)題,但它本身也存在諸多問(wèn)題,?如逆強(qiáng)化學(xué)習(xí)假設(shè)?類總是做出最優(yōu)的選擇,這個(gè)假設(shè)通常在模仿?類?類的問(wèn)題中顯得過(guò)強(qiáng)了。

此外,逆強(qiáng)化學(xué)習(xí)問(wèn)題本身并不是?個(gè)良定義的問(wèn)題,通常有多個(gè)可能的獎(jiǎng)賞函數(shù)能夠滿?要求,例如對(duì)任意狀態(tài)-動(dòng)作對(duì)都給出0值的平凡獎(jiǎng)勵(lì)函數(shù)可以成為任意逆強(qiáng)化學(xué)習(xí)的解。

七、對(duì)抗式模仿學(xué)習(xí)

?為克隆和逆強(qiáng)化學(xué)習(xí)作為兩種模仿學(xué)習(xí)的?法,都存在?定的缺陷,我們?然就會(huì)考慮是否有?種?法可以將?者的優(yōu)勢(shì)結(jié)合起來(lái),既能直接求解?為策略,?不會(huì)受到累積誤差問(wèn)題的影響呢?

在逆強(qiáng)化學(xué)習(xí)中,我們學(xué)習(xí)了?個(gè)獎(jiǎng)勵(lì)函數(shù), 我們可以?這個(gè)獎(jiǎng)勵(lì)函數(shù)來(lái)評(píng)估智能體策略與?類策略的相似度,但是這個(gè)獎(jiǎng)勵(lì)函數(shù)不能直接指導(dǎo)智能體進(jìn)??動(dòng)。那么既然智能體的?標(biāo)是模仿?類的策略,那么我們是否可以不?顯式的求出?個(gè)獎(jiǎng)勵(lì)函數(shù)?來(lái)評(píng)估AI策略與?類策略的相似性呢?

有沒(méi)有可能直接?“和?類?為的相似度”這樣的指標(biāo)來(lái)引導(dǎo)強(qiáng)化學(xué)習(xí)對(duì)?為策略的學(xué)習(xí)呢?從這樣的思路出發(fā),我們就得到了?成對(duì)抗模仿學(xué)習(xí)(Generative Adversarial Imitation Learning, GAIL)[7],它通過(guò)??個(gè)評(píng)估智能體與?類的相似度的函數(shù)作為獎(jiǎng)勵(lì)函數(shù)的?式來(lái)對(duì)?類的策略進(jìn)?模仿。

GAIL是?種基于?成式對(duì)抗?絡(luò)的?法,與各種使??成式對(duì)抗?絡(luò)的?法相似,它也會(huì)構(gòu)建?個(gè)?成器G和?個(gè)判別器D,并讓?者不斷進(jìn)?博弈并交替進(jìn)?更新。在GAIL中,判別器D是?個(gè)?分類器,通常是?個(gè)深度神經(jīng)?絡(luò),它的輸?是狀態(tài)-動(dòng)作對(duì)(s,a),輸出則是?個(gè)(0,1)區(qū)間內(nèi)的概率值,代表輸?的狀態(tài)-動(dòng)作對(duì)由?類?成的概率。和?般的?分類任務(wù)相似的,每輪訓(xùn)練中我們可以可以簡(jiǎn)單的通過(guò)最?化交叉熵?fù)p失函數(shù):

接著對(duì)D進(jìn)?更新。?????????????????????????????

GAIL中的?成器G則是智能體的?為策略,訓(xùn)練中需要與環(huán)境不斷交互?成軌跡,它會(huì)使?強(qiáng)化學(xué)習(xí)?法進(jìn)?更新,使?判別器的輸出作為強(qiáng)化學(xué)習(xí)任務(wù)中的獎(jiǎng)勵(lì)函數(shù)。這就意味著,被判別器D認(rèn)為更像?類的?為會(huì)得到更多的獎(jiǎng)賞,因此隨著訓(xùn)練的推進(jìn)會(huì)逐漸向?類?為策略逼近。

?者經(jīng)過(guò)多輪迭代最終收斂后,判別器D?法區(qū)分出真實(shí)軌跡與?成器?成的軌跡,此時(shí)我們的?成器G 就是?個(gè)能夠有效模仿?類?為策略的AI策略。

當(dāng)然,作為?種基于?成對(duì)抗式?絡(luò)的?法,GAIL也有與GAN相似的缺點(diǎn):實(shí)際應(yīng)?時(shí)需要?量經(jīng)驗(yàn)性的trick,某些情景下很難訓(xùn)練到理想的收斂結(jié)果。但由于GAIL能給模型帶來(lái)的更強(qiáng)的泛化性,以及更少的示例數(shù)據(jù)需求仍然使它成為了?個(gè)優(yōu)秀的模仿學(xué)習(xí)?法。

八、Avatar平臺(tái)中的模仿學(xué)習(xí)

Avatar是IEG研發(fā)效能部游戲AI研究中?團(tuán)隊(duì)?研的分布式在線強(qiáng)化學(xué)習(xí)訓(xùn)練框架,已經(jīng)在如競(jìng)速、格?、FPS、Moba等多個(gè)品類的游戲上進(jìn)?探索和實(shí)踐,部分游戲AI已經(jīng)上線。

本章我們重點(diǎn)討論在真實(shí)游戲業(yè)務(wù)場(chǎng)景中訓(xùn)練強(qiáng)化學(xué)習(xí)模型的過(guò)程中,為什么需要模仿學(xué)習(xí),并介紹我們?cè)贏vatar訓(xùn)練框架下在模仿學(xué)習(xí)上做的探索。

1. 真實(shí)業(yè)務(wù)需求

以我們?cè)?作中的真實(shí)業(yè)務(wù)場(chǎng)景為例,當(dāng)游戲業(yè)務(wù)與接?Avatar強(qiáng)化學(xué)習(xí)訓(xùn)練框架時(shí),除通過(guò)AvatarServiceAPI將游戲客戶端與訓(xùn)練框架交互接?對(duì)?之外,都不可避免地需要實(shí)現(xiàn)下列內(nèi)容。

  • 特征?程:將游戲原始數(shù)據(jù)轉(zhuǎn)換為形如MDP(state/action)格式的數(shù)據(jù),并設(shè)計(jì)狀態(tài)和動(dòng)作的數(shù)據(jù)內(nèi)容
  • 獎(jiǎng)賞設(shè)計(jì):針對(duì)當(dāng)前對(duì)局狀態(tài)和模型預(yù)測(cè)的動(dòng)作給出正負(fù)反饋
  • ?絡(luò)設(shè)計(jì):根據(jù)MDP設(shè)計(jì)對(duì)應(yīng)的神經(jīng)?絡(luò)結(jié)構(gòu)

經(jīng)歷過(guò)的同學(xué)?定能夠體會(huì)到被調(diào)參?配的恐懼,?這三項(xiàng)每個(gè)都是調(diào)參地獄。例如[8]詳解了獎(jiǎng)賞設(shè)計(jì)(reward shaping),?章有多?,說(shuō)明reward shaping這?過(guò)程有多困難。

調(diào)參?作每?次微?調(diào)整都需要數(shù)??時(shí)甚?數(shù)??的驗(yàn)證,?指東打?的結(jié)果太容易使?崩潰。

不同于研究領(lǐng)域中RL的重點(diǎn)更多傾向于關(guān)注“更?的分?jǐn)?shù)、更強(qiáng)的決策”,?實(shí)際業(yè)務(wù)中甲?爸爸的要求是“?擬?性、?多樣性、?可靠性、覆蓋各個(gè)能?段”。這?者之間的?標(biāo)差距為reward shaping帶來(lái)了更?量的?作量。

?遠(yuǎn)來(lái)看,?絡(luò)設(shè)計(jì)在學(xué)術(shù)界已有諸多的NAS(NetworkArchitectureSearch)相關(guān)研究,可以?適應(yīng)的?成效果差不多的?絡(luò)結(jié)構(gòu),與實(shí)際業(yè)務(wù)的相關(guān)性較低。

?特征?程和獎(jiǎng)賞設(shè)計(jì)則都與業(yè)務(wù)強(qiáng)相關(guān),不僅要對(duì)ML/DL/RL有相當(dāng)?shù)慕?jīng)驗(yàn),也需要對(duì)業(yè)務(wù)有相應(yīng)的理解才能訓(xùn)練出甲?爸爸滿意的、“像??樣的”強(qiáng)化學(xué)習(xí)模型。

當(dāng)有了“模型能夠做出像各種各樣不同玩家能做出的?為”,這?普遍需求后,如何利?真實(shí)玩家?為引導(dǎo)強(qiáng)化學(xué)習(xí)模型訓(xùn)練的想法就會(huì)?然?然地浮現(xiàn)出來(lái)。也就是如何利?模仿學(xué)習(xí),推進(jìn)現(xiàn)有的強(qiáng)化學(xué)習(xí)訓(xùn)練進(jìn)?步提升擬?性、多樣性。

九、Avatar框架內(nèi)設(shè)計(jì)

1. Avatar設(shè)計(jì)簡(jiǎn)介

以PVE游戲?yàn)槔?,Avatar訓(xùn)練框架核?包含了三個(gè)服務(wù)——Agent Server, Actor Server和Learner Server。核?交互、MDP處理?作由Agent Server完成,其處理與游戲客戶端和另外兩個(gè)server的交互(如下圖所示,紅?部分由業(yè)務(wù)?實(shí)現(xiàn))當(dāng)客戶端連接后,輪詢等待預(yù)測(cè)請(qǐng)求,并從對(duì)應(yīng)的預(yù)測(cè)服務(wù)中獲取結(jié)果,返回給客戶端。

當(dāng)積累夠?定數(shù)量的預(yù)測(cè)數(shù)據(jù)后,Agent Server將其組裝成訓(xùn)練樣本發(fā)送給訓(xùn)練服務(wù);

Actor Server預(yù)測(cè)訓(xùn)練?絡(luò)當(dāng)前policy返回的動(dòng)作結(jié)果;Learner Server則負(fù)責(zé)對(duì)?絡(luò)進(jìn)?異步訓(xùn)練,并定期同步參數(shù)給Actor Server。

本?不具體介紹Avatar框架的具體實(shí)現(xiàn)?式和?作原理,詳?我們的iwiki?檔[9]以及《Avatar?規(guī)模分布式訓(xùn)練優(yōu)化實(shí)踐》[10]。

2. 輔助?絡(luò)設(shè)計(jì)

從框架設(shè)計(jì)?度考慮,模仿學(xué)習(xí)可以理解為利?某種監(jiān)督學(xué)習(xí)?段提升強(qiáng)化學(xué)習(xí)訓(xùn)練效果的?種?法,我們將這類?絡(luò)稱之為輔助?絡(luò)(Auxiliary Model)。為了降低業(yè)務(wù)?的學(xué)習(xí)成本,以及盡可能保證框架的模塊化、通?性,我們完全復(fù)?了Actor和Learner 模塊,僅新增對(duì)監(jiān)督學(xué)習(xí)模型配置、輸?數(shù)據(jù)標(biāo)準(zhǔn)標(biāo)準(zhǔn)定義以及l(fā)oss function?持。

這設(shè)計(jì)過(guò)程中,我們重點(diǎn)處理的依然是模型間的交互流程,以及模型與游戲間的交互?式的變化。我們認(rèn)為,在MDP結(jié)構(gòu)下,輔助?絡(luò)對(duì)強(qiáng)化學(xué)習(xí)主模型訓(xùn)練主要影響位點(diǎn)有以下三處:影響policy action;影響某個(gè)state,或state/action組合的reward;增加額外的loss。

由此,我們額外開(kāi)放了交互接?(如下圖所示),業(yè)務(wù)實(shí)現(xiàn)代碼可以獲取每個(gè)?絡(luò)的預(yù)測(cè)結(jié)果,并?由選擇交互時(shí)機(jī)。

3. 模仿學(xué)習(xí)實(shí)現(xiàn)

具體到模仿學(xué)習(xí)的實(shí)現(xiàn),我們實(shí)現(xiàn)了對(duì)抗式模仿學(xué)習(xí),模仿學(xué)習(xí)被認(rèn)為是“影響到reward的監(jiān)督學(xué)習(xí)模型”,主要負(fù)責(zé)判別當(dāng)前狀態(tài)(動(dòng)作)是否是符合?類?為的狀態(tài)(動(dòng)作)。在實(shí)際訓(xùn)練過(guò)程中,模仿學(xué)習(xí)模型和強(qiáng)化學(xué)習(xí)模型?同訓(xùn)練。

??

在業(yè)務(wù)同學(xué)側(cè),使?模仿學(xué)習(xí)僅除了設(shè)計(jì)?絡(luò)結(jié)構(gòu)之外,僅需要處理主模型在?成訓(xùn)練樣本時(shí)疊加模仿學(xué)習(xí)輸出的獎(jiǎng)賞,以及將?類?為數(shù)據(jù)引?到模仿學(xué)習(xí)訓(xùn)練過(guò)程中即可。

十、模仿學(xué)習(xí)在競(jìng)速類游戲上的探索

我們已經(jīng)嘗試在競(jìng)速類游戲上對(duì)對(duì)抗式模仿學(xué)習(xí)進(jìn)?了初期探索,將不同賽道地圖中使?業(yè)務(wù)中已上線的不同能?段模型的錄像數(shù)據(jù)視為模仿學(xué)習(xí)的?為數(shù)據(jù)。

同時(shí),我們?nèi)コ藃eward_shaping中所有??設(shè)計(jì)的獎(jiǎng)賞,僅??保留模仿學(xué)習(xí)輸出和最終圈速與?標(biāo)圈速的相近程度作為實(shí)際獎(jiǎng)賞。

在其中?個(gè)賽道上的圈速收斂曲線如下圖所示:

借助對(duì)抗式模仿學(xué)習(xí),使?不同能?段位的?為數(shù)據(jù),最終訓(xùn)練出的強(qiáng)化學(xué)習(xí)模型能?段位?分貼近于?標(biāo)能?段位,且實(shí)際?較發(fā)現(xiàn)其收斂速度與原始的僅通過(guò)reward_shaping收斂效率相當(dāng)。

在競(jìng)速類游戲中初步實(shí)現(xiàn)了我們預(yù)期?標(biāo):減少繁瑣的獎(jiǎng)勵(lì)調(diào)整?作量,并實(shí)現(xiàn)模型能?多樣化。

十一、總結(jié)與展望

打造?智能的游戲AI?直是游戲制作中繞不開(kāi)的話題,但是過(guò)去由于技術(shù)所限,導(dǎo)致游戲AI的智能?平?較低,因此游戲制作者天然地考慮了這個(gè)缺陷,?將游戲的亮點(diǎn)設(shè)計(jì)在其他地?,游戲AI僅僅只起到?個(gè)補(bǔ)充的作?。

但是基于示例的強(qiáng)化學(xué)習(xí)?法讓我們看到?線希望,就是僅通過(guò)少許的?類示例數(shù)據(jù),也能夠讓游戲AI獲得相當(dāng)?程度的智能。

我們相信在未來(lái),只要能夠打造更為擬?、更為智能的AI,他們不僅可以幫助我們?yōu)橥婕掖蛟旄玫挠螒蝮w驗(yàn),甚?還會(huì)對(duì)游戲的制作思路和?度帶來(lái)翻天覆地的變化。游戲AI或許會(huì)成為整個(gè)游戲的最核?資產(chǎn),游戲的玩法也將是由玩家與這些AI來(lái)共同定義的。

?????????????

注釋:

  1. ?與地下城桌游Dungeons&Dragon
  2. 第?款帶有AI的游戲Nim
  3. 圖靈測(cè)試Turing Test
  4. Dean Pomerleau. “Efficient Training of Artificial Neural Networks for Autonomous Navigation”. In: Neural Computation 3.1 (1991), pp. 88–97.
  5. St.phaneRoss, Geoffrey J. Gordon, and DrewBagnell. “AReduction of Imitation Learning and Structured Prediction to No-Regret Online Learning”. In: Proceedings of the 14th International Conference on Artificial Intelligence and Statistics. 2011, pp. 627–635.
  6. RUSSELL S J. Learning Agents for Uncertain Environments[C] // Proceedings of the Eleventh Annual Conference on Computational Learning Theory. 1998 : 101 – 103.
  7. HO J, ERMON S. Generative Adversarial Imitation Learning[C] // Proceedings of the 30th Annual Conference on Neural InformationProcessing System. 2016 : 4565 – 4573.
  8. Reward Shaping https://cloud.tencent.com/developer/article/1693899
  9. Avatar 框 架 iwiki https://iwiki.woa.com/pages/viewpage.action? pageId=612412665
  10. Avatar?規(guī)模分布式訓(xùn)練優(yōu)化實(shí)踐https://km.woa.com/articles/show/522742?ts=1632620082

 

作者:楊敬文 、姜允執(zhí)、李昭,IEG研發(fā)效能部 游戲AI研究中心;公眾號(hào):騰訊研究院(ID:cyberlawrc)

本文由 @騰訊研究院 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載

題圖來(lái)自Unsplash,基于CC0協(xié)議

更多精彩內(nèi)容,請(qǐng)關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號(hào)或下載App
評(píng)論
評(píng)論請(qǐng)登錄
  1. 看懂了,但不完全懂

    來(lái)自廣東 回復(fù)
  2. 發(fā)錯(cuò)地方了吧

    來(lái)自上海 回復(fù)
  3. 寫那么復(fù)雜干啥

    來(lái)自四川 回復(fù)
  4. 認(rèn)真看了一遍文章,確定是我不能理解的內(nèi)容。

    來(lái)自廣東 回復(fù)
  5. 這篇干貨真的絕了,挺多有用的知識(shí)的,愛(ài)了,收藏了

    來(lái)自廣東 回復(fù)