Nature 机器智能综述:AI如何自动生成游戏
近年來(lái),很多AI技術(shù)的突破都離不開(kāi)游戲的影響,不論是古老的圍棋還是即時(shí)戰(zhàn)略類的星際爭(zhēng)霸都體現(xiàn)著這樣的交融。同時(shí),游戲和AI的跨界合作,還在通過(guò)算法,生成新的游戲規(guī)則上有所展現(xiàn),從而讓機(jī)器學(xué)習(xí)的算法,具有更強(qiáng)的泛化能力。8月3日的 Nature Machine Intelligence 推出的綜述論文,先介紹了游戲行業(yè)中的“過(guò)程生成”(Procedural content generation)這一概念,從現(xiàn)有應(yīng)用,和機(jī)器學(xué)習(xí)的關(guān)系,以及面臨的問(wèn)題,全面闡述了這一新的跨學(xué)科研究方向。
1. 讓游戲每一次玩都不一樣
通過(guò)算法,產(chǎn)生游戲中的背景信息,例如游戲中的關(guān)卡,任務(wù),環(huán)境等,在游戲界被稱為“過(guò)程生成”。自從1980年首次提出后,該技術(shù)在游戲界得到了廣泛地應(yīng)用。從最簡(jiǎn)單的俄羅斯方塊,到我的世界Minecraft這樣的開(kāi)放游戲,都能見(jiàn)到該技術(shù)的身影。
在著名的策略類游戲“席德梅爾的文明”系列中,每一局游戲的地圖,都會(huì)有所不同,正因如此,使得玩家愿意多次玩該游戲。為了保證每局地圖不一致,一種做法是在游戲中預(yù)設(shè)很多地圖,另一種做法是通過(guò)算法,每次開(kāi)始時(shí)自動(dòng)生成地圖。顯然后者能減少游戲所需的計(jì)算機(jī)存儲(chǔ)空間。
?
如何在產(chǎn)生上述地圖時(shí),既保證每一局游戲的開(kāi)局都不同,又確保玩家不會(huì)由于開(kāi)局的隨機(jī)因素,覺(jué)得游戲難度發(fā)生顯著變化。一種可能的生產(chǎn)方式是元胞自動(dòng)機(jī),通過(guò)玩家給定的參數(shù),算法能夠從某一點(diǎn)出發(fā),逐步依據(jù)游戲設(shè)計(jì)者預(yù)設(shè)的規(guī)則,逐格擴(kuò)展,產(chǎn)生新的地圖。
2.數(shù)據(jù)增強(qiáng),機(jī)器學(xué)習(xí)中的過(guò)程生成
在機(jī)器學(xué)習(xí)中,要想提升模型的泛化能力,一種常用的技巧是數(shù)據(jù)增強(qiáng)(data argumentation),即在有監(jiān)督學(xué)習(xí)范式下,通過(guò)加入基于現(xiàn)有訓(xùn)練數(shù)據(jù)集,經(jīng)過(guò)特定轉(zhuǎn)換的模擬數(shù)據(jù)集,從而擴(kuò)大訓(xùn)練數(shù)據(jù)集包含的多樣性,進(jìn)而提升訓(xùn)練得出模型的泛化能力。
具體來(lái)看,在貓狗圖像分類任務(wù)中,可以將原圖拉伸,翻轉(zhuǎn),或者裁剪部分區(qū)域,再將新生成的數(shù)據(jù)和原數(shù)據(jù)一起進(jìn)行訓(xùn)練。如此訓(xùn)練出的模型,能夠更好的提取貓和狗的本質(zhì)特征,從而使得模型在新數(shù)據(jù)集上表現(xiàn)更優(yōu),穩(wěn)健型更強(qiáng)。
在強(qiáng)化學(xué)習(xí)范式下,通過(guò)在訓(xùn)練環(huán)境中引入隨機(jī)因素,例如訓(xùn)練掃地機(jī)器人時(shí),每次的環(huán)境都有所不同,也可以提升模型的泛化能力。而如果將掃地機(jī)器人執(zhí)行的任務(wù)看成一次游戲,那么機(jī)器學(xué)習(xí)中的數(shù)據(jù)增強(qiáng),就相當(dāng)于游戲設(shè)計(jì)中的“過(guò)程生成”。兩者都是通過(guò)隨機(jī)數(shù)據(jù),讓玩家能夠透過(guò)現(xiàn)象看到本質(zhì)。
3. 數(shù)學(xué)化的網(wǎng)絡(luò)科學(xué)
在未來(lái)會(huì)有哪些突破?
在機(jī)器學(xué)習(xí)成為主流之前,AI領(lǐng)域常用的方法是從一系列可能的解中,通過(guò)搜索找出(局部)最優(yōu)解。將該類方法,應(yīng)用到游戲生成中,下面是一個(gè)典型的案例[1],即自動(dòng)生成超級(jí)馬里奧的關(guān)卡。
具體方法是將游戲的地圖分為微觀(mirco),中觀(meso)和宏觀(marco)模式,算法的目標(biāo)是根據(jù)不同的難度,設(shè)定需要得出的對(duì)應(yīng)宏觀模式,之后通過(guò)搜索中觀模式的組合,組成宏觀模式,再通過(guò)逐個(gè)搜索不同的微觀模式組合,得到對(duì)應(yīng)的中觀模式。
?
通過(guò)逐層的自下而上的搜索,該算法能夠根據(jù)最初的游戲地圖,生成在統(tǒng)計(jì)上呈現(xiàn)出相同特征,進(jìn)而具有相近游戲難度的全新關(guān)卡地圖。下圖是超級(jí)馬里奧原版的第一關(guān),和由算法生成的第一關(guān)。
?
未來(lái),研究人員和具有科學(xué)頭腦的政策制定者或許可以利用這些進(jìn)展,對(duì)尚未觀測(cè)到的復(fù)雜網(wǎng)絡(luò)現(xiàn)象進(jìn)行定量預(yù)測(cè)。
4 通過(guò)深度學(xué)習(xí)生成新游戲:
對(duì)抗生成網(wǎng)絡(luò)的例子
對(duì)抗生成網(wǎng)絡(luò)(GAN)是近五年來(lái),深度學(xué)習(xí)中進(jìn)展最快的領(lǐng)域之一。如果將生成新的超級(jí)馬里奧的任務(wù)交給GAN,它會(huì)怎樣完成?18年的ACM論文給出了回答[2]。
?
該文采用深度卷積對(duì)抗神經(jīng)網(wǎng)絡(luò),使用已有游戲地圖的一部分,作為訓(xùn)練數(shù)據(jù),通過(guò)生成器,產(chǎn)生新的游戲地圖,再通過(guò)判別器,判斷生成的游戲地圖,是不是和真實(shí)地圖類似。之后通過(guò)在最初的圖片中進(jìn)行修改,據(jù)此迭代,不斷改進(jìn)生成器。
?
由此,使得生成的地圖中,先不會(huì)諸如出現(xiàn)QQ號(hào)碼拍賣(mài)平臺(tái)無(wú)法跳過(guò)的溝等影響可玩性的特征,再逐漸模仿不同難度的游戲關(guān)卡中所會(huì)出現(xiàn)的障礙物,使得生成的游戲地圖具有相近的難度。
相比傳統(tǒng)的方法,基于GAN的關(guān)卡生成,能夠在玩家游戲的過(guò)程中,根據(jù)玩家的操作,動(dòng)態(tài)地改變下一關(guān)游戲的難度,這是傳統(tǒng)的基于搜索的方法無(wú)法實(shí)現(xiàn)的。除此之外,還能按照特定的目標(biāo),設(shè)計(jì)關(guān)卡。
例如,如果想要玩家在游戲中盡可能多的跳躍,通過(guò)修改GAN的約束條件,可以生成左圖的地圖,而若想要最小化跳躍,則可以生成類似右圖的關(guān)卡。
5 通過(guò)強(qiáng)化學(xué)習(xí)生成游戲
另一類生成游戲關(guān)卡的方式,是強(qiáng)化學(xué)習(xí)。如果要用強(qiáng)化學(xué)習(xí)生成超級(jí)馬里奧的地圖,算法需要一個(gè)估值函數(shù),計(jì)算不同游戲圖片,距離理想的關(guān)卡有多遠(yuǎn)。和GAN類似,強(qiáng)化學(xué)習(xí)范式下,同樣是從隨機(jī)的關(guān)卡開(kāi)始,不斷改進(jìn),通過(guò)迭代完善設(shè)計(jì)。不同的是,由于估值函數(shù)的存在,每一次的改變不是隨機(jī)的,而是有方向的。
?
上圖中[3],關(guān)鍵的一點(diǎn)是如何對(duì)游戲的設(shè)計(jì)進(jìn)行表征,不同的表征,決定了設(shè)計(jì)出的游戲關(guān)卡會(huì)具有不同的特征。上圖中的估值函數(shù),除了判斷相比上一次,本次生成的游戲關(guān)卡是不是更優(yōu),還會(huì)判斷生成的關(guān)卡是否是“可玩的”,如果是,則停止迭代。
?
例如推箱子這個(gè)游戲,玩家通過(guò)上下左右,操縱小人行動(dòng),推動(dòng)箱子到指定的位置,則算通關(guān),上圖是推箱子地圖的二維矩陣表示。每輪迭代,修改的就是左圖的矩陣。
設(shè)計(jì)游戲關(guān)卡的智能體(agent),需要在給定箱子和目標(biāo)的距離時(shí),讓小人走的步數(shù)盡可能多,從而提升游戲的難度,這就是前文提到的獎(jiǎng)勵(lì)函數(shù)。
而如何判斷每張地圖需要多少步才能走完,則需要智能體通過(guò)搜索完成。如果搜索時(shí),智能體只能記住這一步所走格子和改變的那個(gè)格子狀態(tài),那么稱之為狹窄表征;如果能記住運(yùn)行方向上的每個(gè)格子以及自己改變了那些格子的狀態(tài),稱之為T(mén)urtle式的表征;而如果能記住當(dāng)前格子周?chē)懈褡拥臓顟B(tài),稱為寬表征。
?
上圖中,最左列是初始的隨機(jī)游戲地圖;之后的三列,分別是不同表征下,生成的游戲關(guān)卡。如果將18部以內(nèi)就能完成的關(guān)卡定義為簡(jiǎn)單難度,那么不同的表征下,產(chǎn)生的簡(jiǎn)單關(guān)卡的比例分別是86.7%,88.3%,以及67.5%,由此說(shuō)明不同的表征方式會(huì)設(shè)計(jì)出游戲的難度。
在強(qiáng)化學(xué)習(xí)的框架下進(jìn)行游戲設(shè)計(jì),該文指出了3條經(jīng)驗(yàn),一是需要初始條件不同,二是需設(shè)定合適的估值函數(shù),三是每次迭代變化的比例要小,以免算法收斂到相近的解,使得生成的關(guān)卡大同小異。
6 提升走路機(jī)器人的可靠性,讓它玩游戲通關(guān)
與通過(guò)機(jī)器學(xué)習(xí),提升游戲中關(guān)卡生成相對(duì)應(yīng)的,是利用生成的關(guān)卡,來(lái)提升機(jī)器學(xué)習(xí)模型的魯棒性。下面的例子,來(lái)自Uber的AI實(shí)驗(yàn)室[4],該研究的目標(biāo)是訓(xùn)練一個(gè)能夠雙足站立行走的機(jī)器人操控算法。
?
傳統(tǒng)上,通過(guò)進(jìn)化算法,能夠訓(xùn)練操控算法適應(yīng)不同的環(huán)境。但是通過(guò)生成一組包含大量斜坡的訓(xùn)練環(huán)境,再生成一組包含大量深谷的環(huán)境,可以定向地訓(xùn)練操控算法在特定環(huán)境下,該如何行走,從而使得算法能夠逐個(gè)攻克不同環(huán)境中面對(duì)的障礙。
?
在訓(xùn)練過(guò)程中,如果在某類障礙中遇到困難,訓(xùn)練算法,會(huì)生成類似的環(huán)境副本,讓智能體先在該環(huán)境副本中學(xué)習(xí)如何越過(guò)障礙,之后,再在原環(huán)境中行走。
通過(guò)引入環(huán)境副本,在相同的計(jì)算量下,由于智能體采取了更好的,在環(huán)境副本中學(xué)到的走路姿勢(shì),能夠獲得更高的得分,并有更大的幾率,在挑戰(zhàn)更高的路段上走完全程。由此提升了算法的泛化能力。
?
另一個(gè)通過(guò)游戲來(lái)提升AI泛化能力的例子,來(lái)自馬斯克的openAI實(shí)驗(yàn)室,是訓(xùn)練機(jī)器手玩魔方[5],通過(guò)強(qiáng)化學(xué)習(xí)和卷積神經(jīng)網(wǎng)絡(luò),借助玩魔方這樣一個(gè)封閉環(huán)境下的任務(wù),研究者提升了對(duì)機(jī)械手的控制和手眼協(xié)調(diào)能力,提升了機(jī)械手在實(shí)際應(yīng)用場(chǎng)景下的泛化能力。
在強(qiáng)化學(xué)習(xí)中,通過(guò)生成新的游戲關(guān)卡,也可以提升訓(xùn)練的游戲AI的可泛化性[6],對(duì)比在單一難度,人類設(shè)計(jì)的關(guān)卡,以及由算法設(shè)計(jì)的關(guān)卡上訓(xùn)練的游戲AI,結(jié)果顯示,基于算法設(shè)計(jì)的關(guān)卡,需要更少的訓(xùn)練時(shí)間,能取得更高的訓(xùn)練精度。
7 過(guò)程生成面臨的六個(gè)挑戰(zhàn)與機(jī)遇
該綜述的最后一部分,討論游戲規(guī)則生成相關(guān)研究目前面臨著那些挑戰(zhàn)。
首先是相比傳統(tǒng)的機(jī)器學(xué)習(xí)問(wèn)題,訓(xùn)練數(shù)據(jù)集偏小,例如超級(jí)馬里奧中,只有36個(gè)由人手工設(shè)計(jì)的關(guān)卡。
其次是相比生成游戲中的某個(gè)組成部分,由算法產(chǎn)生完整的游戲還相對(duì)困難。目前較為成熟的生成完整游戲的案例,是基于生成語(yǔ)言模型CPT-2,產(chǎn)生完整的文本式冒險(xiǎn)游戲。這是由于一個(gè)好的游戲,本身就會(huì)相當(dāng)復(fù)雜,并難以使用一個(gè)簡(jiǎn)單的公式來(lái)衡量可玩性。
第三點(diǎn)是通過(guò)持續(xù)的生產(chǎn)新的游戲關(guān)卡,讓智能體實(shí)現(xiàn)終身學(xué)習(xí)。通過(guò)不斷改進(jìn)已學(xué)到的策略,過(guò)程生成可以讓智能體不斷適應(yīng)越來(lái)越復(fù)雜的環(huán)境。
第四點(diǎn)是如何在強(qiáng)化學(xué)習(xí)范式下,基于過(guò)程生成,產(chǎn)生標(biāo)準(zhǔn)的數(shù)據(jù)集和對(duì)應(yīng)任務(wù)金標(biāo)準(zhǔn)。之前的強(qiáng)化學(xué)習(xí)任務(wù),大多是人類設(shè)計(jì)的電子游戲。未來(lái),可以讓算法設(shè)計(jì)出新的任務(wù),這些任務(wù)會(huì)模擬動(dòng)物及人類在真實(shí)環(huán)境下所遇到的問(wèn)題,從而更加準(zhǔn)確地能夠考察強(qiáng)化學(xué)習(xí)模型是否學(xué)到了人類認(rèn)知能力的本質(zhì)。
第五是如何讓游戲中的關(guān)卡設(shè)計(jì),能夠不止應(yīng)用到模擬環(huán)境,還能應(yīng)用到真實(shí)場(chǎng)景中。一個(gè)腦洞的例子是:通過(guò)算法生成類似極品風(fēng)車(chē)的游戲環(huán)境,讓算法在游戲環(huán)境中,先做到盡可能安全的駕駛,之后在訓(xùn)練真實(shí)無(wú)人駕駛的算法時(shí),借鑒模擬算法所具有的特征。
第六點(diǎn)則是,如何將過(guò)程生成的本質(zhì),即通過(guò)讓學(xué)習(xí)環(huán)境多樣化,提升智能體的泛化能力,應(yīng)用到諸如人類學(xué)習(xí),神經(jīng)科學(xué)等其他領(lǐng)域。例如未來(lái)的智能課堂中,要想做到因材施教,就可以通過(guò)自動(dòng)設(shè)計(jì)的游戲化交互,提升學(xué)生的學(xué)習(xí)效率。
總結(jié)來(lái)看,對(duì)于應(yīng)對(duì)復(fù)雜系統(tǒng)帶來(lái)的挑戰(zhàn),仿真建模與試錯(cuò),一個(gè)是高屋建瓴的重構(gòu)出全局特征,另一個(gè)是自下而上的生成相應(yīng)的認(rèn)知地圖。而游戲領(lǐng)域的過(guò)程生成,則是打通了上述兩條路,通過(guò)模仿多主體之間已有的模式,產(chǎn)生更多樣化的環(huán)境,從而避免試錯(cuò)過(guò)程變成了管中窺豹井底觀天。
不論對(duì)于強(qiáng)化學(xué)習(xí),還是有監(jiān)督學(xué)習(xí),引入過(guò)程生成,都可以作為一種升級(jí)版的數(shù)據(jù)增強(qiáng)技巧,提升模型的泛化能力。另一方面,在使用機(jī)器學(xué)習(xí),產(chǎn)生游戲的過(guò)程中,所應(yīng)用的技術(shù),所展現(xiàn)的能力,不止能用于游戲相關(guān)的問(wèn)題,對(duì)眾多其他機(jī)器學(xué)習(xí)領(lǐng)域的任務(wù)都有借鑒意義。
總結(jié)
以上是生活随笔為你收集整理的Nature 机器智能综述:AI如何自动生成游戏的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 五个简单的原则,带你写出整洁代码
- 下一篇: 在游戏里模拟天空的颜色,太迷人了!