AI打游戲已經不是什么新鮮事了,“沉迷”Dota 2、星際爭霸、LOL的AI一個接一個的出現。
但是你也許不知道,相比這些“游戲玩家”AI,還有一位優秀的AI,直接當起了“游戲策劃”,做的還是膾炙人口的“超級馬里奧”。
超級馬里奧:無限關卡
這位“策劃大大”誕生在由一個六位研究者組成的團隊中,成員來自多特蒙德大學、美國西南大學、倫敦大學瑪麗皇后學院、加利福尼亞大學及哥本哈根IT大學,它能用生成對抗網絡(GAN)自動“設計”海量的超級馬里奧關卡。
并且,這個超級馬里奧關卡策劃AI還能充分保證新關卡的可玩性,讓每個關卡在開始的時候都相對簡單,而后逐漸增加難度,保證玩家“沉迷游戲,無法自拔”。
馬里奧策劃AI成長史
馬里奧GAN的工作流程大概長這樣:
△ 馬里奧GAN原理圖
首先,GAN學習現有的超級馬里奧關卡(圖上黃色部分),get到關卡策劃這一技能后,生成網絡開始生成關卡,然后將“作業”案例提交給判別網絡,由判別網絡進行把關,判斷“作業”是否為一個合格的馬里奧關卡。
不合格的“作業”將被打回去重做,直到這一關合格為止。
神經網絡如何識別游戲
GAN學習的并不是每一關的畫面,而是用專有符號系統表示的“游戲地圖”。地圖以“方塊”為單位——有金幣的方塊、可以頂碎的磚塊、當地基的磚塊、管道的磚塊等,游戲地圖中的每個方塊都有獨特的表示方式,比如怪物方塊編號為5,用大寫的E來代指。
△ 游戲地圖方塊對照表
這樣,所有的游戲地圖都可以用一個符號的矩陣來表示,比如,下面這個游戲地圖中:
我們按照方塊把每個元素劃分開,并且加以不同的表達方式:
地板是0,怪物是0,右側的“山上”可以被頂壞的“天梯”則是1。另外,由于管道占了不只一個方塊,所以管道口的左右半截分別用單引號代指,用6、7表示,而管道身體的左右半截用方括號代指,用8、9表示。如果某個格子是空氣,什么都沒有,則用2表示。
所有的學習和生成系統,都是基于這樣的矩陣進行的。這套系統又被稱作視頻游戲關卡語料庫(Video Game Level Corpus,VGLC),每一個方塊都像圖像處理中的像素一樣,能夠被神經網絡解析或生成。
難度升級大法——LVE
正常的關卡游戲都有一個特點——每一關都比前面那一關難一點。
超級馬里奧也不例外。人類游戲策劃可以控制每一關的大致難度,但AI怎么控制呢?這要倚仗**潛變量進化(latent variable evolution,LVE)的方法。
LVE由紐約大學的Philip Bontrager等人在2017年提出,具體可以跳轉arXiv:1705.07386。
在LVE的幫助下,機器可以生成越來越難的關卡,比如,像下面這張圖一樣(關卡略長,請把手機橫過來看):
像這樣,從開頭的“一馬平川”到出現管道、山溝、山丘和怪物,直到怪物密布、溝壑縱橫,整個過程是越來越難的。
送進DCGAN訓練
訓練的過程使用的是深度卷積生成對抗網絡(Deep Convolutional GAN,DCGAN),使用WGAN算法進行訓練。
△ DCGAN生成網絡構架
△ DCGAN判別網絡構架
然而,生成結果并不100%完美
訓練后的GAN生成的結果究竟如何呢?
好壞參半。
有的部分歲月靜好,除了個別小困難之外,玩家可以輕松通過:
但是,也有下面這種奇葩地形,蜀道之難難于上青天啊!
甚至還會出現讓人退游的神秘管道:
請問管子君是異次元穿越來的嘛?
沒辦法,GAN一直都是這么皮。所以,研究者們還準備做進一步的優化,以期待在未來可以讓GAN生成永遠玩不完的超級馬里奧。
不完美,一樣拿獎
雖然馬里奧GAN的生成結果并不完美,但這并不妨礙它拿獎啊。
畢竟,在人類用計算機生成馬里奧游戲關卡的歷史上,這可是個巨大突破呢。
馬里奧AI錦標賽(http://www.marioai.org/)是一個在2009-2012年期間舉辦過幾屆的比賽,專門生成馬里奧關卡。在這項賽事中,雖然科學家們一直致力于創造出最好的自動生成馬里奧關卡的算法,但實際絕大多數時候,參賽者依然需要手動設置一些參數。
而GAN興起后,AI生成馬里奧關卡再也不需要進行任何手動了,程序員們可以和手動設置參數說bye-bye了。
因此,這篇論文也拿到了GECCO 2018的最佳論文。
傳送門全家桶
馬里奧GAN已經開源,量子位照例附上arXiv和github地址,歡迎自取~
論文:Evolving Mario Levels in the Latent Space of a Deep Convolutional Generative Adversarial Network
作者:Vanessa Volz, Jacob Schrum, Jialin Liu, Simon M. Lucas, Adam Smith, Sebastian Risi
GECCO 2018 Best Paper Award
arXiv:
https://arxiv.org/abs/1805.00728
data:
https://github.com/TheVGLC/TheVGLC
github:
https://github.com/TheHedgeify/DagstuhlGAN
原文發布時間為:2018-07-27
本文來自云棲社區合作伙伴“量子位”,了解相關信息可以關注“量子位”。