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