對于那些數(shù)據(jù)導向型的大企業(yè)來說,機器學習已經不算是新興技術了。而現(xiàn)在金融、視覺領域外,AI也成為游戲開發(fā)的顛覆性技術,機器學習為我們開啟了游戲開發(fā)訓練的大門,而非游戲編程的大門。
“游戲開發(fā)”是一項非常復雜的任務,并且需要耗費大量的人力資源。圖形藝術家、故事敘述者和軟件工程師需要共同努力,才能打造出比較好的游戲環(huán)境、游戲情節(jié)和人物角色行為。
通常,游戲是以傳統(tǒng)代碼的形式出現(xiàn)的“硬線行為”的微妙組合,也是以大量規(guī)則的形式出現(xiàn)的更具響應性的行為集合。
在過去的幾年間,數(shù)據(jù)導向型的“機器學習”已經逐漸取代了一些企業(yè)(比如亞馬遜、Netflix和優(yōu)步)中的規(guī)則導向型系統(tǒng)。在Unity,我們探究了“機器學習”技術的使用,包括“深度學習”在文本創(chuàng)作中的應用,以及“深度強化學習”在游戲開發(fā)中的應用。在機器學習和人工智能的浪潮中,我們看到了巨大的希望和發(fā)展空間。
2007年,Netflix發(fā)起了一個“過濾算法”的公開賽,為能夠預測電影用戶評分的最佳過濾算法專門設立了“Netflix獎”,這正是我們現(xiàn)在所經歷的人工智能媒體報道浪潮的開端。
不過早在2000年年初,一些大企業(yè)為了謀求更好的發(fā)展,已經對“數(shù)據(jù)導向型決策”和“機器學習”有所涉獵了。為了充分了解顧客們的偏好,進而將顧客偏好轉化為更高的銷售額,亞馬遜一直在潛心研究他們的“推薦算法”。
除了亞馬遜的“推薦算法”之外,廣告技術是另一個較早利用“機器學習”來提高網站點入率的領域。近年來,機器學習已經擴展至更多的行業(yè),并且不斷趨于成熟。
舉例來說,我們在前面提到過的“推薦算法”最初只是作簡單的推薦方案,如今已經發(fā)展到能夠通過“探索”和“開發(fā)”尋求更多的信息。
而亞馬遜和Netflix在使用他們的推薦系統(tǒng)進行數(shù)據(jù)收集時所面臨的挑戰(zhàn)是,如果只向客戶展示推薦頻率高的產品,而不展示其他的產品,那么他們獲得的客戶偏好信息就不全面。
而解決這一問題的方法是:將純開發(fā)行為轉變?yōu)榧尤肓颂剿髟氐拈_發(fā)行為。最近,由于同時具備了“開發(fā)”和“探索”能力,像“上下文老虎機”(contextual bandits)這樣的算法能夠更好地了解客戶的未知信息,也因此越來越受歡迎。
相信我,“上下文老虎機” (contextual bandits)算法肯定會在你瀏覽亞馬遜商城的時候隱藏了一些網頁。
在2015年,DeepMind進一步發(fā)展了“上下文老虎機” (contextual bandits)算法,并且將其從一個 深度神經網絡與強化學習大規(guī)模結合的系統(tǒng) 上發(fā)布出來。
該系統(tǒng)僅靠一些作為輸入的原始像素和分數(shù)就能以超人類的水平掌握各種范圍的Atari 2600游戲。DeepMind的研究人員將“開發(fā)”和“探索”的概念完全對立,“上下文老虎機” (contextual bandits)算法不太擅長行為學習,但是“深度強化學習”卻能夠學習用于最大化“未來累積紅利”的行為順序。
換句話來說, 深度強化學習會學習那些能夠實現(xiàn)“長期價值”(LTV)最優(yōu)的行為。在一些Atari游戲中,“長期價值”表現(xiàn)在那些通常為人類玩家保留的策略發(fā)展上。
在Unity,我們給自己提出了這樣一個問題:如何讓一只雞學會穿過繁忙的道路而不被迎面而來的汽車撞上,同時還要收集道路上的禮包?我們采用了一種與DeepMind實驗非常類似的通用“強化學習”算法,并且規(guī)定如果小雞撿到禮包獲得正分,被車撞到則獲得負分。
除此之外,我們還給小雞設定了四個動作:左移、右移、前進和后退。依靠這些原始像素和分數(shù)輸入,以及幾個非常簡單的指令,小雞在不足六個小時的訓練后就達到了超人類水平的性能。
那么我們究竟是如何從實際應用的角度做到這一點的呢?其實很簡單。我們使用了一組Python APIs,將Unity游戲與運行于“亞馬遜網絡服務器”(AWS)的TensorFlow服務相聯(lián)系,TensorFlow是谷歌在2005年首次發(fā)布的深度學習框架。
仔細觀看,你會發(fā)現(xiàn)小雞在訓練的初期階段主要是探索如何不被汽車撞上(探索階段),隨著訓練的深入,小雞開始學習收集禮包(開發(fā)階段)。
值得關注的是,這個學習系統(tǒng)的一個重要能力就是處理從未遇到的狀況。游戲中汽車的出現(xiàn)和禮包的放置都是完全任意的,而盡管小雞已經經過了幾個小時的訓練,它還是會遇到之前訓練中沒有經歷過的情境。有了我們的Python API,讀取游戲框架和游戲內部狀態(tài),使用機器學習對游戲進行反向操作就變得非常簡單了。
這只游戲小雞的訓練給亞馬遜、Netflix和優(yōu)步的發(fā)展提供了一些靈感,他們可以運用相同的技術來優(yōu)化其客戶服務。
想象一下,假如要訓練一個“非玩家游戲角色”(NPC),而不是對其行為進行編碼,那么游戲開發(fā)者就需要創(chuàng)建一個游戲場景。在這個場景中,我們將會利用與Python API相聯(lián)的“云強化學習”來訓練NPC。
這個游戲場景可以是完全虛擬合成的,也可以在其中加入一些人類玩家。當訓練到一定程度,這個NPC的性能已經相當不錯的時候,游戲開發(fā)者就能利用另一組Unity API將TensorFlow模型直接嵌入他們的游戲中,這樣一來,游戲就不需要連接TensorFlow的云服務了。
有些游戲開發(fā)者可能會說:“早在10到15年前,我們就已經這么做過了?!?/p>
但是時代已經發(fā)生了巨大的變遷。盡管我們已經發(fā)明了“遞歸神經網絡”(RNN),比如用于序列學習的“長短時記憶”(LSTM)和用于空間特征學習的“卷積神經網絡”(CNN),但是由于計算能力的欠缺,以及大規(guī)模、精細軟件框架的缺失,這些神經網絡在實際應用方面,如游戲開發(fā),仍面臨巨大的阻礙。
“深度強化學習”在游戲開發(fā)中的運用盡管仍處于初期發(fā)展階段,但是我們清楚地知道它將很可能成為一項顛覆性的游戲技術。像TensorFlow這樣成熟的機器學習框架正在不斷降低游戲開發(fā)者和機器學習研究者的入門門檻。機器學習現(xiàn)在正不斷進入企業(yè)的各個角落,那么我們完全有可能在未來游戲中的發(fā)現(xiàn)機器學習的影子。
電子發(fā)燒友App











評論