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




