游戲開發(fā)是一個(gè)復(fù)雜且勞動(dòng)密集型的工作。游戲的環(huán)境、故事線和人物個(gè)性都需要被仔細(xì)地構(gòu)建。這需要視覺藝術(shù)家、編故事的人和軟件工程師一起密切協(xié)作才能完成。通常,在傳統(tǒng)編程的形式下,游戲會(huì)有一套專門編寫的行為;或是在有大量規(guī)則組合的形式下,會(huì)以更加有反饋的行為來構(gòu)成。在過去的幾年間,數(shù)據(jù)密集的機(jī)器學(xué)習(xí)解決方案已經(jīng)在企業(yè)(比如Amazon、Netflix和Uber)里消滅掉了基于規(guī)則的系統(tǒng)。在Unity,我們已經(jīng)在探索使用這樣的一些機(jī)器學(xué)習(xí)的技術(shù),比如用深度學(xué)習(xí)做內(nèi)容構(gòu)建,用深度增強(qiáng)學(xué)習(xí)來進(jìn)行游戲開發(fā)。我們已經(jīng)看到這一波的機(jī)器學(xué)習(xí)和人工智能在游戲領(lǐng)域的巨大潛力。
對(duì)于一些數(shù)據(jù)驅(qū)動(dòng)的大型企業(yè)而言,機(jī)器學(xué)習(xí)并不是什么新東西。2007年,當(dāng)Netflix發(fā)起了著名的NetflixPrize競(jìng)賽,讓最好的協(xié)同過濾算法來預(yù)測(cè)用戶對(duì)電影的評(píng)分時(shí),就是我們現(xiàn)在所體驗(yàn)的對(duì)人工智能的大量媒體報(bào)道的開端。但是在2000年初,一些大企業(yè)就已經(jīng)在嘗試使用數(shù)據(jù)驅(qū)動(dòng)的決策和機(jī)器學(xué)習(xí)來提升業(yè)務(wù)了。Amazon已經(jīng)非常努力地開發(fā)他們自己的推薦算法,嘗試去發(fā)現(xiàn)用戶的偏好,進(jìn)而把這些偏好轉(zhuǎn)化成更高的銷售業(yè)績(jī)。廣告業(yè)的技術(shù)則是另外一種早期采用機(jī)器學(xué)習(xí)者,機(jī)器學(xué)習(xí)被用來提升點(diǎn)擊率(CTR)。在過去的這些年里,機(jī)器學(xué)習(xí)技術(shù)已經(jīng)成熟并擴(kuò)散到非常多的行業(yè)。
例如,推薦算法已經(jīng)從僅僅通過推薦來探求更多的信息發(fā)展到了探索和搜索的組合。這里的挑戰(zhàn)是,當(dāng)Amazon和Netflix使用推薦系統(tǒng)來收集數(shù)據(jù)時(shí),如果他們僅僅是給用戶推薦高得分的物品,而不是他們商品目錄里的其他物品,他們獲得的是一個(gè)不完整的用戶偏好。這一問題的解決方案是微妙地從純搜索變化到添加一些因素來探索。
最近,因?yàn)樗鼈儍?nèi)在的可以探索和搜索的特性,諸如上下文老虎機(jī)這樣的算法變的流行起來。這些算法可以更好地學(xué)習(xí)到它們還不了解的客戶的東西。相信我,在你訪問的很多Amazon網(wǎng)頁的背后都潛伏著老虎機(jī)算法。我們?cè)赨nity的博客上有一篇不錯(cuò)的文章介紹上下文老虎機(jī)算法的威力。里面有一個(gè)對(duì)上下文老虎機(jī)算法的交互展示。
在2015年初,DeepMind將上下文老虎機(jī)算法進(jìn)一步發(fā)展,并發(fā)表了一篇論文。其中介紹了一個(gè)把深度神經(jīng)網(wǎng)絡(luò)和增強(qiáng)學(xué)習(xí)組合起來的大規(guī)模系統(tǒng)。這個(gè)系統(tǒng)可以精通Atari的2600個(gè)游戲里的很多個(gè),還僅僅只是依靠原始像素和得分作為輸入就能取得超越人類的水平。DeepMind的家伙把探索和搜索的概念變成了興奮劑。雖然上下文老虎機(jī)在學(xué)習(xí)行為上還比較得淺,但深度增強(qiáng)學(xué)習(xí)則能夠?qū)W習(xí)一系列的行為用以最大化未來的累積收益。換句話說就是,它們可以學(xué)習(xí)優(yōu)化長(zhǎng)期價(jià)值(LTV)的行為。在一些Atari的游戲里,LTV通常是只有人類玩家掌握的一些策略發(fā)展?催@里的一個(gè)Breakout游戲的視屏來了解這種策略發(fā)展的例子。
在Unity,我們問自己如何才能讓一只小雞學(xué)會(huì)穿過一條交通繁忙的道路而不被來往的卡車撞死,同時(shí)還能收集禮物包。我們用了一個(gè)通用的和DeepMind的試驗(yàn)類似的增強(qiáng)學(xué)習(xí)算法。它會(huì)給小雞一個(gè)正分如果它收集了一個(gè)禮物包,一個(gè)負(fù)分如果它被卡車撞死。另外,我們給小雞四種可能的行動(dòng):向前、后、左、右移動(dòng)。僅僅使用圖像的像素和得分作為輸入,以及這些非常簡(jiǎn)單的移動(dòng)指示,在6個(gè)小時(shí)的訓(xùn)練后,小雞就獲得了超越人類的水平?梢栽谶@里看相關(guān)的視頻:
我們具體是怎么實(shí)現(xiàn)這一切的?實(shí)際上很簡(jiǎn)單。一套Python的API讓我們可以把Unity的游戲與運(yùn)行在Amazon云服務(wù)(AmazonWebServices,AWS)上的TensorFlow的服務(wù)連接起來。TensorFlow是Google在2015年發(fā)布的一個(gè)深度學(xué)習(xí)的框架。如你在這個(gè)視頻里看到的,在訓(xùn)練的早期階段,小雞主要是在進(jìn)行探索。但隨著學(xué)習(xí)的深入,它逐漸地轉(zhuǎn)變到搜索了?梢钥吹竭@一學(xué)習(xí)系統(tǒng)的一個(gè)重要能力就是它能成功地應(yīng)對(duì)沒見過的情形?ㄜ嚦霈F(xiàn)和禮物包的位置的組合是完全隨機(jī)的。當(dāng)小雞被訓(xùn)練了幾個(gè)小時(shí)候后,統(tǒng)計(jì)意義上它還是會(huì)持續(xù)地的碰到?jīng)]有見過的場(chǎng)景。我們的PythonAPI能很容易地從游戲里讀取游戲框架和內(nèi)部狀態(tài),KUKA機(jī)器人示教器維修,并使用機(jī)器學(xué)習(xí)模型來反向控制游戲里的代理(比如小雞)。
現(xiàn)在讓我們對(duì)小雞和它超人的能力做一個(gè)反思。小雞游戲自身只是提醒了我們Amazon、Netflix和Uber是如何使用相同的技術(shù)來更好地服務(wù)他們的客戶(不管是Uber的無縫載客體驗(yàn)或是Netflix給我展示按照我的口味定制的內(nèi)容),工業(yè)機(jī)器人維修,不過它的確打開了在游戲開發(fā)中使用訓(xùn)練而不是硬編碼的大門。
設(shè)想一下在游戲里訓(xùn)練一個(gè)非玩家角色(NPC,non-playercharacter),機(jī)器人維修,而不是去編碼它的行為。游戲開發(fā)人員需要做的會(huì)涉及到創(chuàng)建一個(gè)NPC需要被訓(xùn)練的游戲場(chǎng)景,他們會(huì)使用前面提到的PythonAPI連接云端的增強(qiáng)學(xué)習(xí)的環(huán)境來進(jìn)行這個(gè)訓(xùn)練。這個(gè)場(chǎng)景可以是完全人工設(shè)計(jì)的,或者是有NPC要去學(xué)習(xí)的一群人類玩家參與的。當(dāng)NPC的表現(xiàn)令人滿意后,另外一套Unity的API會(huì)允許開發(fā)人員直接把TensorFlow的模型嵌入到他們的游戲里面去,從而消除了需要繼續(xù)把游戲連接到云端的TensorFlow服務(wù)的需求。
一些游戲開發(fā)人員可能會(huì)說他們?cè)?0到15年前最后嘗試機(jī)器學(xué)習(xí)時(shí)就已經(jīng)這樣做了。但那是一個(gè)不一樣的時(shí)代。那時(shí)候,通過富于表達(dá)的循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)比如長(zhǎng)短期記憶(LSTM)來學(xué)習(xí)序列數(shù)據(jù),以及通過卷積神經(jīng)網(wǎng)絡(luò)(CNN)來學(xué)習(xí)空間特征等技術(shù)都已經(jīng)被發(fā)明出來了。但缺乏計(jì)算能力以及缺乏可擴(kuò)展和精細(xì)的軟件框架阻止了這些技術(shù)在實(shí)際中的成功應(yīng)用,以及在諸如游戲開發(fā)這樣有需求的行業(yè)里被采用。
在游戲開發(fā)里使用深度增強(qiáng)學(xué)習(xí)依然處于它的早期階段。但對(duì)我們而言一切正在變得很清晰:類似于在其他大型企業(yè)里被證明的一樣,這是一個(gè)潛在的顛覆性游戲技術(shù)。諸如TensorFlow這樣成熟的、可擴(kuò)展的、運(yùn)行在云端并有集成的API接口的機(jī)器學(xué)習(xí)框架正在降低游戲開發(fā)人員和機(jī)器學(xué)習(xí)研究人員進(jìn)入這個(gè)領(lǐng)域的門檻。正如機(jī)器學(xué)習(xí)正在進(jìn)入企業(yè)的每個(gè)角落一樣,你應(yīng)該也會(huì)期待在你的下一個(gè)游戲里面機(jī)器學(xué)習(xí)會(huì)無處不在。
ThisarticleoriginallyappearedinEnglish:"BringinggamingtolifewithAIanddeeplearning".