這個賽車AI不再只圖一時爽,學(xué)會了考慮長遠策略
甚至變成了只擅長彎道的“偏科”選手
博雯 發(fā)自 凹非寺
量子位 | 公眾號 QbitAI
玩賽車游戲的AI們現(xiàn)在已經(jīng)不僅僅是圖快圖爽了。
他們開始考慮戰(zhàn)術(shù)規(guī)劃,甚至有了自己的行車風(fēng)格和“偏科”項目。
比如這位只擅長轉(zhuǎn)彎的“偏科”選手,面對急彎我重拳出擊,驚險漂移,面對直線我唯唯諾諾,搖晃不停:
還有具備長遠目光,學(xué)會了戰(zhàn)術(shù)規(guī)劃的AI,也就是這兩位正在競速的中的綠色賽車,看似在轉(zhuǎn)彎處減緩了速度,卻得以順利通過急彎,免于直接GG的下場。
還有面對不管是多新的地圖,都能舉一反三,跑完全程的AI。
看起來就像是真的在賽車道上學(xué)會了思考一樣。
(甚至上面所說的那位偏科選手還在不懈努力后成功逆襲了)
這項訓(xùn)練結(jié)果一經(jīng)公布,便吸引了大批網(wǎng)友的圍觀:
強化學(xué)習(xí)讓AI學(xué)會“長遠考慮”
訓(xùn)練賽道來自一款叫做《賽道狂飆》(Trackmania)的游戲,以可深度定制的賽道編輯器聞名于玩家群體。
為了更大程度上激發(fā)賽車AI的潛力,開發(fā)者自制了這樣一張九曲十八彎的魔鬼地圖:
這位開發(fā)者名叫yoshtm,之間就已經(jīng)用AI玩過這款游戲,一度引發(fā)熱議:
一開始,yoshtm采用的是一種監(jiān)督學(xué)習(xí)模型,擁有2個隱藏層。
模型包含了16個輸入,包括如汽車當(dāng)前速度、加速度、路段位置等等,再通過神經(jīng)網(wǎng)絡(luò)對輸入?yún)?shù)進行分析,最終輸出6種動作中的一種:
基于這一模型架構(gòu),開發(fā)者讓多只AI在同一張地圖上競爭。
通過多次迭代,不同AI的神經(jīng)網(wǎng)絡(luò)會出現(xiàn)細微的差別,結(jié)果最好的AI將最終脫穎而出。
這種方法確實能讓AI學(xué)會駕駛,不過也帶來了一個問題:
AI常常只能以速度或最終沖線的時間等單一指標(biāo)來評估自己,難以更進一步。
這次,時隔兩年后的賽車AI,不僅學(xué)會了從長遠出發(fā)制定策略(比如在急彎時對速度作出調(diào)整),還大幅提高了對新地圖的適應(yīng)性。
主要原因就來自于開發(fā)者這次引入的新方法,強化學(xué)習(xí)。
這種方法的核心概念是“獎勵”,即通過選擇帶來更多獎勵的行為,來不斷優(yōu)化最終效果。
在訓(xùn)練賽車游戲中的AI時,yoshtm定義的獎勵很常規(guī):速度越快獎勵越多,走錯路或掉下賽道就會懲罰。
但問題是,一些行動,比如在臨近轉(zhuǎn)彎時的加速或許能導(dǎo)致短期的正面獎勵,但從長遠來看卻可能會產(chǎn)生負(fù)面的后果。
于是,yoshtm采用了一種叫做Deep Q Learning的方法。
這是一種無模型的強化學(xué)習(xí)技術(shù),對于給定狀態(tài),它能夠比較可用操作的預(yù)期效用,同時還不需要環(huán)境模型。
Deep Q Learning會通過深度網(wǎng)絡(luò)參數(shù) 的學(xué)習(xí)不斷提高Q值預(yù)測的準(zhǔn)確性,也就是說,能夠使AI在賽車游戲中預(yù)測每個可能的行動的預(yù)期累積獎勵,從而“具備一種長遠的策略目光”。
隨機出生點幫AI改正“偏科”
接下來開始進行正式訓(xùn)練。
yoshtm的思路是,AI會先通過隨機探索來盡可能多地收集地圖數(shù)據(jù),他將這一行為稱之為探索。
探索的比例越高,隨機性也就越強,而隨著比例降低,AI則會更加專注于贏取上述設(shè)置的獎勵,也即專注于跑圖。
不過,在訓(xùn)練了近3萬次,探索比例降低到5%時,AI“卡關(guān)”了:
核心問題是AI出現(xiàn)了“偏科”。
由于前期經(jīng)歷了多個彎道的跑圖,所以AI出現(xiàn)了過擬合現(xiàn)象,面對長直線跑道這種新的賽道類型,一度車身不穩(wěn),搖搖晃晃,最終甚至選擇了“自殺”:
要如何解決這個問題呢?
yoshtm并沒有選擇重新制作地圖,而是選擇修改AI的出生點:
每次開始訓(xùn)練時,AI的出發(fā)點都將在地圖上的一個隨機位置生成,同時速度和方向也會隨機。
這一辦法立竿見影,AI終于開始能夠完整跑完一條賽道了。
接下來就是進行不斷訓(xùn)練,最終,開發(fā)者yoshtm和AI比了一場,AI在這次跑到了最好成績:6分20秒。
雖然還是沒有真人操控的賽車跑得快,不過AI表現(xiàn)出了較強的場地適應(yīng)性,對草地還是泥地都能立馬舉一反三。
yoshtm最后這樣說道:
《賽車狂飆》本來就是一個需要大量訓(xùn)練的游戲,AI當(dāng)然也如此。
至少我現(xiàn)在很確定,這個AI可以打敗大量的初學(xué)者。
參考鏈接:
[1]https://www.youtube.com/watch?v=SX08NT55YhA
[2]https://www.reddit.com/r/Games/comments/tcj32m/ai_learns_to_drive_from_scratch_in_trackmania/
- 有道智能學(xué)習(xí)燈發(fā)布,通過“桌面學(xué)習(xí)分析引擎”實現(xiàn)全球最快指尖查詞2022-04-08
- 科學(xué)證明:狗勾真的懂你有多累,聽到聲音0.25秒后就知道你是誰,對人比對狗更親近2022-04-14
- 在M1芯片上跑原生Linux:編譯速度比macOS還快40%2022-04-05
- 小學(xué)生們在B站講算法,網(wǎng)友:我只會阿巴阿巴2022-03-28



