0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

利用視頻游戲語料庫,訓(xùn)練一個GAN模型為超級馬里奧兄弟生成游戲級別

8g3K_AI_Thinker ? 來源:未知 ? 作者:李倩 ? 2018-07-25 17:59 ? 次閱讀

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ò)展到各種視頻游戲以及其他類型的游戲。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • GaN
    GaN
    +關(guān)注

    關(guān)注

    19

    文章

    1950

    瀏覽量

    73776
  • 機(jī)器學(xué)習(xí)

    關(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)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    基于ESP32制造有趣的超級馬里奧主題時鐘

    這是超級馬里奧主題的時鐘,基于 ESP32 和彩色點陣制造,非常生動有趣。使用 ESP32 來控制 LED 矩陣。對于沒法自制 PCB 板的新手來說 ESP32 開發(fā)板是非常不錯的選擇。如何
    的頭像 發(fā)表于 10-28 11:54 ?4765次閱讀
    基于ESP32制造有趣的<b class='flag-5'>超級</b><b class='flag-5'>馬里奧</b>主題時鐘

    用labview設(shè)計超級馬里奧游戲時如何加障礙物?

    用labview設(shè)計超級馬里奧游戲時如何加障礙物
    發(fā)表于 05-09 13:33

    Flair如何使用加載語料庫

    工具篇Flair之使用加載語料庫教程
    發(fā)表于 04-27 10:03

    fpga通過什么實現(xiàn)邏輯功能

    fpga通過什么實現(xiàn)邏輯功能,以超級馬里奧例子講述FPGA有些制作。1、FPGA游戲目標(biāo)沒有CPU,單純用 FPGA 的verilog硬件語言來實現(xiàn)
    發(fā)表于 07-22 07:07

    求助labview游戲

    想找labview馬里奧游戲代碼運行的視頻講解 ,我有詳細(xì)代碼,我提供代碼有大神可以講解下嗎?也可以有償。有意加qq1050440255
    發(fā)表于 03-23 16:25

    RFID技術(shù)讓現(xiàn)實版馬里奧賽車成為可能

    自奧斯汀滑鐵盧實驗室決定將RFID標(biāo)簽應(yīng)用于游戲,這樣來,在現(xiàn)實世界里,你也可以玩馬里奧賽車了。
    發(fā)表于 01-30 11:11 ?550次閱讀

    iPhone7發(fā)布會上提到的游戲 馬里奧大叔15日可以在iOS平臺試玩了!

    App Store了。這款名為《超級馬里奧Run》的游戲款跑酷游戲,該游戲將于下月15日正式
    發(fā)表于 11-16 11:14 ?915次閱讀

    超級馬里奧Run安卓版即將上市,國內(nèi)玩家先別激動

    12 月 29 日,任天堂官方在國外社交網(wǎng)站推特上宣布,超級馬里奧Run已經(jīng)登錄了Google Play 并開啟預(yù)約注冊,現(xiàn)在注冊的用戶,未來可以第時間獲知安卓版超級
    發(fā)表于 12-30 17:29 ?796次閱讀

    漢語口語互動分級語料庫的構(gòu)建

    介紹了漢語口語互動分級語料庫的構(gòu)建工作。該語料庫國內(nèi)首個漢語口語互動分級語料庫,記錄了測試
    發(fā)表于 12-05 13:43 ?0次下載
    漢語口語互動分級<b class='flag-5'>語料庫</b>的構(gòu)建

    馬里奧忠實粉絲稱其自制的渲染圖被超級任天堂世界官網(wǎng)盜用

    ,但它最近卻被發(fā)現(xiàn)盜用了粉絲制作的渲染圖。 推特用戶“uJIdow”是馬里奧的忠實粉絲,他致力于制作各種馬里奧的渲染圖。昨日(1.7),“uJIdow”發(fā)表推文表示,超級任天堂世界
    的頭像 發(fā)表于 01-08 12:52 ?1906次閱讀

    Labview編的超級馬里奧8.0源碼

    Labview編的超級馬里奧8.0源碼
    發(fā)表于 11-02 16:35 ?27次下載

    創(chuàng)建動畫馬里奧時鐘的教程分享

    本文將指導(dǎo)您以非常簡單的步驟創(chuàng)建動畫馬里奧時鐘,它可以成為任何環(huán)境的復(fù)古裝飾物。
    發(fā)表于 07-25 16:32 ?2513次閱讀
    創(chuàng)建<b class='flag-5'>一</b><b class='flag-5'>個</b>動畫<b class='flag-5'>馬里奧</b>時鐘的教程分享

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

    電子發(fā)燒友網(wǎng)站提供《帶有壓電蜂鳴器和Arduino的超級馬里奧主題曲.zip》資料免費下載
    發(fā)表于 11-01 09:32 ?1次下載
    帶有壓電蜂鳴器和Arduino的<b class='flag-5'>超級</b><b class='flag-5'>馬里奧</b>主題曲

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

    今天給大家?guī)?b class='flag-5'>一期致敬經(jīng)典的超級馬里奧的徽章??蓯鄣哪⒐交照?,經(jīng)典的紅黃配色,立馬把我們拉回到兒時的快樂的時光里(不小心暴露了年齡)。
    的頭像 發(fā)表于 09-11 10:16 ?969次閱讀
    基于Microchip 8位微控制器制作<b class='flag-5'>超級</b><b class='flag-5'>馬里奧</b>的蘑菇徽章

    數(shù)據(jù)語料庫、算法框架和算力芯片在AI大模型中的作用和影響

    數(shù)據(jù)語料庫、算法框架和算力芯片的確是影響AI大模型發(fā)展的三大重要因素。
    的頭像 發(fā)表于 03-01 09:42 ?1195次閱讀