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