世界上最難的“沙雕”游戲被AI攻破了
本文經(jīng)AI新媒體量子位(公眾號(hào)ID:QbitAI)授權(quán)轉(zhuǎn)載,轉(zhuǎn)載請(qǐng)聯(lián)系出處。
13年以前,有這樣一款“變態(tài)”級(jí)難度的游戲曾風(fēng)靡一時(shí)。
它的名字簡(jiǎn)單粗暴——QWOP。意思是讓玩家用這四個(gè)鍵位控制游戲人物的左右大腿和小腿,以最快的速度跑完100米。
實(shí)際上,大部分玩家剛上手的時(shí)候,可能連起點(diǎn)線都邁不過(guò)去就Game Over了。

如果你能跑出幾米遠(yuǎn),絕對(duì)算是一個(gè)高手,甚至能在朋友面前炫耀一番。

QWOP的難點(diǎn)在于,一旦角色失去平衡就很難再挽回,需要在100米的距離內(nèi)一直保持重心不過(guò)于向前后傾斜。
當(dāng)你經(jīng)過(guò)苦練第一次跑起來(lái)時(shí),又會(huì)被50米處作者故意設(shè)置的欄桿擺一道:說(shuō)好的100米短跑怎么變跨欄了?
△某小編當(dāng)年的游戲截圖
在那個(gè)4399小游戲盛行的年代,這款也被戲稱為“是男人就跑100米”。因?yàn)殡y度過(guò)于“變態(tài)”,QWOP開(kāi)發(fā)者曾收到過(guò)很多辱罵郵件。
雖然絕大部分人難以跑到終點(diǎn),但仍有一批骨灰級(jí)玩家樂(lè)此不疲,他們不僅能輕松跑完,至今還為競(jìng)爭(zhēng)世界排名而不斷挑戰(zhàn)。
2個(gè)月前,一位日本玩家創(chuàng)造了新的世界紀(jì)錄:48.34秒。

看到這款“沙雕游戲”,你是不是會(huì)想到強(qiáng)化學(xué)習(xí)來(lái)訓(xùn)練雙足機(jī)器人的畫面?

一位來(lái)自波士頓咨詢的數(shù)據(jù)分析師Wesley Liao也是這么想的。
不過(guò)別以為“變態(tài)”難度的游戲到了AI面前就變成了毛毛雨。
Liao綜合了之前多種強(qiáng)化學(xué)習(xí)算法,最后甚至請(qǐng)來(lái)了“世界名師”教學(xué),費(fèi)了好大一番功夫,才終于讓AI在上周打破人類玩家的記錄。
可見(jiàn)這款游戲的難度一點(diǎn)都不比圍棋低啊。(手動(dòng)狗頭)

小試牛刀
一開(kāi)始,Liao使用OpenAI Gym強(qiáng)化學(xué)習(xí)環(huán)境來(lái)訓(xùn)練AI,先設(shè)定好游戲的狀態(tài)、操作和獎(jiǎng)懲機(jī)制。
狀態(tài)包括每個(gè)身體部位和關(guān)節(jié)的位置、速度和角度。操作方式限定為11種:4個(gè)QWOP按鍵、6種兩兩按鍵組合以及不按任何鍵。
用來(lái)訓(xùn)練AI的算法是ACER(具有經(jīng)驗(yàn)回放能力的Actor-Critic)。這種算法的優(yōu)點(diǎn)是,不僅可以從其最近獲得的經(jīng)驗(yàn)中學(xué)習(xí),也可以學(xué)習(xí)存儲(chǔ)數(shù)據(jù)中更早的經(jīng)驗(yàn)。

由于ACER非常復(fù)雜,Liao使用了別人的實(shí)現(xiàn)代碼“Stable Baselines”。
Liao首先嘗試了讓AI自己學(xué)習(xí)。經(jīng)過(guò)多次實(shí)驗(yàn)后,他發(fā)現(xiàn)AI只學(xué)會(huì)了“蹭膝蓋”這種方式跑過(guò)終點(diǎn),速度很慢。

這和許多人類普通玩家以及其他強(qiáng)化學(xué)習(xí)算法是一樣的,離高手的水平還差很遠(yuǎn),更不用談打破紀(jì)錄了。
仔細(xì)分析可以發(fā)現(xiàn),AI根本沒(méi)有學(xué)習(xí)到跨步機(jī)制,只是學(xué)習(xí)到了最安全、最慢的方法來(lái)到達(dá)終點(diǎn)。
看來(lái)靠AI完全自學(xué)是不行了。
學(xué)會(huì)奔跑
類似于DeepMind用頂級(jí)棋手教AlphaGo下棋,Liao想到是不是也可以讓人類玩家來(lái)教一下AI。
但是Liao本人的技術(shù)和頂級(jí)玩家差距太大,自己最多也只能跑到28米。
這都不重要,重要的是起碼Liao跨出更大步伐的技巧,只能寄希望于AI能從“渣技術(shù)”里學(xué)到一點(diǎn)奔跑的技巧吧。
但是結(jié)果很不幸,AI很好地詮釋了“邯鄲學(xué)步”:不僅沒(méi)掌握跑步技巧,反而在起點(diǎn)就跌倒了。

然后Liao讓AI自己繼續(xù)訓(xùn)練。所謂師父領(lǐng)進(jìn)門,修行在個(gè)人,AI能否將人類技術(shù)和自學(xué)能力結(jié)合起來(lái)?
結(jié)果令人興奮,經(jīng)過(guò)90個(gè)小時(shí)的訓(xùn)練,AI終于學(xué)會(huì)了像人一樣奔跑!

最終成績(jī)是1分25秒,已經(jīng)能跑進(jìn)全球排行榜的前15名,離超過(guò)人類不遠(yuǎn)了。
接下來(lái)要做的就是再向AI教授更多技巧,奈何本人技術(shù)太渣。
所以要想進(jìn)一步提高AI的水平,必須找頂級(jí)高手來(lái)幫忙。
頂級(jí)高手助陣
Liao觀察速通排行榜上的錄像,發(fā)現(xiàn)頂級(jí)玩家的技巧是把左腿抬高可以跑得更快。
△排名第一玩家gunmaneko的踢腿技巧
他開(kāi)始全球排名前二的玩家gunmaneko和Kurodo請(qǐng)教踢腿技巧的操作。

兩位玩家熱情地回答了他的問(wèn)題。其中Kurodo指出這個(gè)技巧的關(guān)鍵在于減少游戲角色在縱向的移動(dòng),并提出把保持身體高度加入AI的獎(jiǎng)勵(lì)函數(shù)。

Liao向Kurodo分享了他的代碼,Kurodo慷慨地使用代碼記錄了50次自己游戲時(shí)的按鍵記錄發(fā)給Liao。
Liao嘗試使用這些數(shù)據(jù)對(duì)AI進(jìn)行預(yù)訓(xùn)練,但效果并不好。AI還沒(méi)來(lái)得及學(xué)會(huì)踢腿技巧,倒先把基本的跑步方法忘記了。

Liao不得不改變方法,他把Kurodo的數(shù)據(jù)注入到AI的回放緩存*(Replay Buffer)*中。這相當(dāng)于修改AI的記憶,使AI有一半的記憶是自己的,另一半來(lái)自Kurodo。

并且是AI每自己玩一次,就注入一次Kurodo的數(shù)據(jù),保證AI隨機(jī)從記憶中選取一段來(lái)學(xué)習(xí)時(shí)選到兩種記憶的概率相同,避免在學(xué)習(xí)新技巧的過(guò)程中把基本操作忘掉。
AI使用Kurodo的數(shù)據(jù)訓(xùn)練了15個(gè)小時(shí),終于學(xué)會(huì)了踢腿,但因?yàn)閮煞N記憶無(wú)法協(xié)調(diào)在一起,跑時(shí)間長(zhǎng)了動(dòng)作會(huì)不穩(wěn)定。
Liao此時(shí)把Kurodo的記憶移除,又讓AI自己訓(xùn)練了25小時(shí),總訓(xùn)練時(shí)間達(dá)到了65小時(shí)。
最終AI的成績(jī)達(dá)到1分08秒,終于進(jìn)入前十。
打破世界紀(jì)錄
Liao把教AI玩這個(gè)游戲的過(guò)程做成視頻發(fā)在網(wǎng)上。一個(gè)月前,外媒Gismodo問(wèn)他:為什么AI還沒(méi)有打破世界紀(jì)錄?

于是Liao重新訓(xùn)練了一個(gè)只為優(yōu)化速度而存在的新AI。
新AI改用Prioritized DDQN算法,因?yàn)檫@種算法會(huì)給學(xué)習(xí)效率更高的狀態(tài)增加權(quán)重而不是均勻采樣,能使新AI迅速學(xué)會(huì)舊AI已經(jīng)掌握了的技巧。
并且,新AI的獎(jiǎng)勵(lì)函數(shù)去掉了身體高度,膝蓋彎曲角度等參數(shù),改成只和前進(jìn)速度相關(guān)。
新AI先用已有數(shù)據(jù)進(jìn)行只有幾分鐘的預(yù)訓(xùn)練,隨后是40小時(shí)的自訓(xùn)練。最終,新AI每秒所做的動(dòng)作數(shù)在訓(xùn)練環(huán)境中由9提高到18,并在測(cè)試環(huán)境中達(dá)到25。
新AI對(duì)踢腿技巧的掌握非常穩(wěn)定,即使被障礙物影響也能迅速恢復(fù)。

快速高效的動(dòng)作使AI的成績(jī)提高到47.34秒,比人類最高紀(jì)錄48.34秒剛好快1秒。

這才終于算是,在人工智能超越人類的游戲列表中又增加了一項(xiàng)。
One More Thing
你以為這就完了?
跑完100米不算完,這款游戲還有一種世界級(jí)難度——“是男人就跑完馬拉松”。

為L(zhǎng)iao提供幫助的玩家Kurodo最近剛剛提交了世界紀(jì)錄,全球也只有兩人完成了這項(xiàng)壯舉。
很難想象他們?cè)陔娔X前連續(xù)按幾個(gè)小時(shí)QWOP的畫面。
另外,QWOP的開(kāi)發(fā)者Bennett Foddy一直在堅(jiān)持開(kāi)發(fā)這類“變態(tài)”難度的獨(dú)立小游戲。
有一款Getting Over It with Bennett Foddy名氣頗高,中文名“掘地求升”。玩法就是一個(gè)裝在壇子里的人不停用錘子讓自己升高。
Foddy曾經(jīng)在普林斯頓大學(xué)和牛津大學(xué)擔(dān)任博士后研究員,現(xiàn)在是一名獨(dú)立游戲設(shè)計(jì)師。QWOP就是他在普林斯頓大學(xué)時(shí)期開(kāi)發(fā)的。
我只能說(shuō),學(xué)霸開(kāi)發(fā)的游戲,學(xué)渣真的玩不起。