PCG —— 程序內(nèi)容生成,通過(guò)算法創(chuàng)建游戲內(nèi)容,例如游戲規(guī)則,關(guān)卡,角色,背景故事,紋理和聲音。近年來(lái)國(guó)際會(huì)議組織了各種比賽,例如馬里奧AI級(jí)別生成比賽,Platformer AI比賽,AI鳥(niǎo)類(lèi)等級(jí)生成比賽和一般視頻游戲AI(GVGAI)等級(jí)生成比賽 。今天為大家介紹一項(xiàng)關(guān)于 PCGML 的最新研究(PCG 通過(guò)機(jī)器學(xué)習(xí)的例子),這篇論文也被 GECCO 2018提名為 Best Paper Award ,這也是一個(gè)新興的研究領(lǐng)域。
研究中以無(wú)監(jiān)督學(xué)習(xí)方式訓(xùn)練生成對(duì)抗網(wǎng)絡(luò)(近期關(guān)于無(wú)監(jiān)督學(xué)習(xí)與GAN的內(nèi)容我們也給大家介紹了不少),模型根據(jù)視頻游戲級(jí)語(yǔ)料庫(kù)中的實(shí)際游戲級(jí)別進(jìn)行訓(xùn)練。并引入了隱變量進(jìn)化(LVE)的概念;為了在這個(gè)潛在空間內(nèi)找到最佳水平段,進(jìn)化算法協(xié)方差矩陣自適應(yīng)進(jìn)化策略(CMA-ES)用于找到產(chǎn)生水平段的潛在向量,由此產(chǎn)生的系統(tǒng)有助于發(fā)現(xiàn)人類(lèi)專(zhuān)家創(chuàng)建的示例空間中的新級(jí)別。
▌?wù)?/p>
生成性對(duì)抗網(wǎng)絡(luò)(GAN)是能夠在給定的訓(xùn)練樣本空間內(nèi)生成新的樣本輸出的一種機(jī)器學(xué)習(xí)方法。視頻游戲中的程序內(nèi)容生成(PCG)可以從這種模型中受益,特別是對(duì)于那些預(yù)先存有語(yǔ)料信息的游戲。本文,我們利用視頻游戲語(yǔ)料庫(kù),訓(xùn)練一個(gè)GAN模型為超級(jí)馬里奧兄弟生成游戲級(jí)別(Super Mario Bros)。
我們的方法不僅能夠成功地生成與原始視頻語(yǔ)料庫(kù)中級(jí)別相當(dāng)?shù)母鞣N游戲,還能通過(guò)應(yīng)用協(xié)方差矩陣自適應(yīng)進(jìn)化策略(CMA-ES)進(jìn)一步改進(jìn)游戲級(jí)別。具體地說(shuō),我們使用各種適應(yīng)度函數(shù)(fitness function)來(lái)探索GAN模型潛在空間水平,以最大化期望屬性,而諸如tile類(lèi)型分布的靜態(tài)屬性都能夠被進(jìn)一步優(yōu)化。此外,我們使用2009版Mario AI比賽的冠軍A*智能體,用于評(píng)估游戲級(jí)別的可玩性,以及需要多少跳躍動(dòng)作來(lái)?yè)魯∷_@些適應(yīng)度函數(shù)允許模型在專(zhuān)家設(shè)計(jì)的樣本空間中探索各種游戲級(jí)別,并指導(dǎo)進(jìn)化朝著滿足一個(gè)或多個(gè)指定目標(biāo)水平的方向。
▌方法
我們的方法分為兩個(gè)主要階段,如下圖1所示。
圖1 GAN訓(xùn)練流程及隱向量進(jìn)化概述。我們的方法可以分為兩個(gè)截然的階段。在第一階段中,GAN以無(wú)監(jiān)督學(xué)習(xí)的方式進(jìn)行訓(xùn)練并生成馬里奧游戲水平。在第二階段,我們搜索潛在向量空間產(chǎn)生具有特定屬性的游戲級(jí)別。
首先,GAN在現(xiàn)有的Mario級(jí)別上進(jìn)行訓(xùn)練(下圖2所示)。該級(jí)別將被編碼為多維數(shù)組,并在黃色框中描繪。模型中生成器(用綠色表示)輸入的是高斯噪聲向量(用紅色表示),并以相同表征水平輸出。而判別器用于區(qū)分現(xiàn)有級(jí)別和生成級(jí)別之間的差異性。我們使用對(duì)抗性學(xué)習(xí)的原則來(lái)訓(xùn)練生成器和判別器。
圖2訓(xùn)練水平。通過(guò)水平從左向右滑動(dòng)一個(gè)28×14窗口生成訓(xùn)練數(shù)據(jù)。
一旦訓(xùn)練過(guò)程完成,生成器網(wǎng)絡(luò)可以被視為是我們學(xué)習(xí)到的genotype-to-phenotype映射,它能夠?qū)撛诘膶?shí)數(shù)向量(用藍(lán)色表示)作為輸入(我們的論文實(shí)驗(yàn)中將其大小設(shè)置為32),并產(chǎn)生一個(gè)tile-level的馬里奧游戲級(jí)別。相比于簡(jiǎn)單地繪制來(lái)自潛在空間的獨(dú)立隨機(jī)樣本,我們?cè)谶M(jìn)化控制策略下(在這種情況下使用CMA-ES)進(jìn)行探索。換句話說(shuō),我們?cè)陔[向量空間搜索并產(chǎn)生想要的不同屬性的游戲級(jí)別,如tile分布,難度等。
CMA-ES
協(xié)方差矩陣自適應(yīng)進(jìn)化策略(CMA-ES)是一種功能強(qiáng)大而又廣泛使用的進(jìn)化算法,特別適合于實(shí)數(shù)向量的進(jìn)化過(guò)程。CMA-ES是一種二階方法,通過(guò)有限差異法不斷迭代估計(jì)協(xié)方差矩陣。它無(wú)需依賴(lài)一個(gè)光滑的自適應(yīng)先驗(yàn),而能夠有效地處理連續(xù)域中非線性、非凸問(wèn)題的優(yōu)化。我們采用CMA-ES策略來(lái)進(jìn)化潛在向量,并生成的游戲級(jí)別上應(yīng)用幾種自適應(yīng)度函數(shù)。所使用的自適應(yīng)函數(shù)是基于生成的游戲級(jí)別的靜態(tài)屬性,或使用人工智能體進(jìn)行游戲模擬結(jié)果。
游戲級(jí)別表征
在視頻游戲中,馬里奧游戲級(jí)別有不同的表征Level Corpus (VGLC)和Mario AI框架,這兩種都是基于tile的表征形式。具體地說(shuō),以VGLC表征的馬里奧級(jí)別使用特定的字符符號(hào)來(lái)表示每個(gè)可能的tile類(lèi)型。然而,應(yīng)該注意的是這個(gè)VGLC表征主要是關(guān)注tile的功能特性而不是其藝術(shù)屬性,因此無(wú)法區(qū)分視覺(jué)上某些特定的tile類(lèi)型。此外,通過(guò)僅提供的單個(gè)字符符號(hào)來(lái)表示不同的敵人類(lèi)型,VGLC編碼忽略了不同敵人之間的功能差異,因此我們可以選擇將其映射到通用的Goomba敵人類(lèi)型上。
為了對(duì)訓(xùn)練的水平進(jìn)行編碼,我們用不同的整數(shù)來(lái)表示每種tile類(lèi)型,它在輸入到判別器前被進(jìn)一步轉(zhuǎn)換為一個(gè)獨(dú)熱編碼(one-hot)。此外,生成器網(wǎng)絡(luò)同樣用獨(dú)one-hot編碼形式輸出再將其轉(zhuǎn)換回整數(shù)值。基于整數(shù)格式的級(jí)別隨后將被發(fā)送到用于渲染的Mario AI框架。Mario AI框架允許其tile類(lèi)型產(chǎn)生更廣泛的藝術(shù)多樣性,但由于其VGLC編碼的簡(jiǎn)單性,只有小部分子集的Mario AI tile是可用的。從VGLC tile類(lèi)型和符號(hào),到GAN的訓(xùn)練數(shù)字編碼再到最后Mario AI tile的整個(gè)可視化流程如下表1所示。
表1生成的Mario游戲級(jí)別所使用的tile類(lèi)型。符號(hào)字符是來(lái)自VGLC編碼,然后數(shù)字標(biāo)識(shí)被映射到相應(yīng)的值并用于生成可視化的Mario AI框架。在GAN訓(xùn)練期間,該數(shù)字標(biāo)識(shí)值將被擴(kuò)展為獨(dú)熱向量(one-hot)輸入到判別器網(wǎng)絡(luò)。
GAN模型
我們采用深度卷積生成對(duì)抗網(wǎng)絡(luò)DCGAN結(jié)構(gòu),并使用WGAN算法進(jìn)行訓(xùn)練,模型的結(jié)構(gòu)示意圖如下圖3所示。遵循原始的DCGAN架構(gòu),判別器網(wǎng)絡(luò)中采用跨步長(zhǎng)卷積(strided convolutions),而生成器中采用小步長(zhǎng)卷積(fractional-strided convolutions),在生成器和判別器的每層后都接上batchnorm以正則化。此外,在生成器中每一層我們都使用ReLU激活函數(shù)(包括輸出層,原始結(jié)構(gòu)中輸出層采用Tanh激活函數(shù)),我們發(fā)現(xiàn)這能帶更好的結(jié)果表現(xiàn)。而判別器中每一層我們采用LeakyReLU激活函數(shù)。
圖3訓(xùn)練Mario游戲的DCGAN模型結(jié)構(gòu)
▌實(shí)驗(yàn)結(jié)果
為驗(yàn)證我們的方法,在實(shí)驗(yàn)部分我們通過(guò)兩組不同實(shí)驗(yàn)分別進(jìn)行基于表征測(cè)試(representation-based testing)和基于代理測(cè)試(agent-based testing)。實(shí)驗(yàn)結(jié)果如下。
基于表征測(cè)試(representation-based testing)
下圖4顯示了該方法優(yōu)化的ground tile百分比與特定目標(biāo)分布的接近程度。結(jié)果表明,每次運(yùn)行中我們幾乎都可以非常接近目標(biāo)的百分比。
圖4優(yōu)化不同百分比的ground tiles。運(yùn)行20次后將平均每次的結(jié)果并產(chǎn)生一個(gè)標(biāo)準(zhǔn)差。除去20%的地面外,該方法總能夠發(fā)現(xiàn)用于生成ground tiles所需目標(biāo)百分比的潛在編碼。
此外,圖5顯示了逐級(jí)遞增的游戲水平難度:其中第1和第2部分的地面覆蓋率達(dá)100%,第3-5部分的地面覆蓋率達(dá)70%,而第4、5節(jié)中我們還同時(shí)最大化敵人的總數(shù)n。實(shí)驗(yàn)結(jié)果表明我們的方法能夠同時(shí)優(yōu)化地面分配以及敵人的數(shù)量。
圖5逐級(jí)遞增的游戲難度。我們的LVE方法能夠創(chuàng)建含多個(gè)組成部分的游戲級(jí)別,這些級(jí)別的難度逐漸增加(即越來(lái)越少的地磚伴隨著越來(lái)越多的敵人)。將來(lái),這種方法可以用來(lái)創(chuàng)建一個(gè)實(shí)時(shí)的水平,以適應(yīng)玩家的特殊技能(動(dòng)態(tài)難度適應(yīng))。
基于代理測(cè)試(agent-based testing)
圖6顯示了自適應(yīng)函數(shù)F1和F2的一些最佳和最差結(jié)果。我們可以看到,CMA-ES策略確實(shí)可以發(fā)現(xiàn)一些不可玩的等級(jí)(如圖6c所示)。自適應(yīng)函數(shù)F1的最佳效果(即具有大量所需跳躍操作的可玩級(jí)別)如下圖6a和6d所示。而圖6b描述是自適應(yīng)函數(shù)F2所產(chǎn)生的最佳結(jié)果(即只需少量跳躍操作的可玩級(jí)別)。該級(jí)別只需要跳躍一次就能很容易地解決敵人。
圖6基于代理的優(yōu)化示例。a和b顯示了F1自適應(yīng)函數(shù)下最大化跳躍次數(shù)的例子,此時(shí)最小化F2函數(shù)。c顯示了一個(gè)最差的結(jié)果,即在F1自適應(yīng)函數(shù)下不可玩的游戲級(jí)別例子。在d中顯示了高適應(yīng)性的結(jié)果(即F1下最大化跳躍步數(shù)),但同時(shí)破壞了標(biāo)題的例子。
▌結(jié)論
本文提出了一種新的隱變量進(jìn)化方法,它能夠以無(wú)監(jiān)督學(xué)習(xí)的方式,在現(xiàn)有的Mario游戲水平上,進(jìn)化并產(chǎn)生新的Mario游戲級(jí)別。我們的方法不僅能夠優(yōu)化不同分布水平,并將tile類(lèi)型結(jié)合起來(lái),還可以使用基于代理的評(píng)估函數(shù)來(lái)優(yōu)化游戲級(jí)別。雖然我們的GAN模型通常能夠捕捉到高水平的訓(xùn)練結(jié)構(gòu),但有時(shí)也會(huì)產(chǎn)生破碎的結(jié)構(gòu)。將來(lái)的工作我們可以通過(guò)采用更適合視頻游戲離散表征的GAN模型來(lái)優(yōu)化這個(gè)問(wèn)題,我們希望LVE能夠作為一種很有前景的快速生成方法,擴(kuò)展到各種視頻游戲以及其他類(lèi)型的游戲。
-
GaN
+關(guān)注
關(guān)注
19文章
2190瀏覽量
76487 -
機(jī)器學(xué)習(xí)
+關(guān)注
關(guān)注
66文章
8499瀏覽量
134337 -
智能體
+關(guān)注
關(guān)注
1文章
291瀏覽量
11024
原文標(biāo)題:AI為超級(jí)馬里奧兄弟創(chuàng)造了游戲新級(jí)別——GECCO 2018最佳論文提名
文章出處:【微信號(hào):AI_Thinker,微信公眾號(hào):人工智能頭條】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
基于ESP32制造有趣的超級(jí)馬里奧主題時(shí)鐘

用labview設(shè)計(jì)超級(jí)馬里奧游戲時(shí)如何加障礙物?
fpga通過(guò)什么實(shí)現(xiàn)邏輯功能
求助labview游戲
iPhone7發(fā)布會(huì)上提到的游戲 馬里奧大叔15日可以在iOS平臺(tái)試玩了!
超級(jí)馬里奧Run安卓版即將上市,國(guó)內(nèi)玩家先別激動(dòng)
漢語(yǔ)口語(yǔ)互動(dòng)分級(jí)語(yǔ)料庫(kù)的構(gòu)建

馬里奧忠實(shí)粉絲稱(chēng)其自制的渲染圖被超級(jí)任天堂世界官網(wǎng)盜用
創(chuàng)建一個(gè)動(dòng)畫(huà)馬里奧時(shí)鐘的教程分享

帶有壓電蜂鳴器和Arduino的超級(jí)馬里奧主題曲

基于Microchip 8位微控制器制作超級(jí)馬里奧的蘑菇徽章

數(shù)據(jù)語(yǔ)料庫(kù)、算法框架和算力芯片在AI大模型中的作用和影響
樹(shù)莓派復(fù)古游戲機(jī):用科技重現(xiàn)經(jīng)典,讓童年永不落幕!

評(píng)論