比 AlphaGo 還威!跑步 AI 攻破史上最難的小遊戲:QWOP

QWOP
QWOP 遊戲畫面

【為什麼我們要挑選這篇文章】有時候,網路上會有「智障小遊戲」,例如跑步遊戲 QWOP,玩家要用鍵盤控制人物的大小腿,讓它跑 100 公尺。雖然很蠢,但其實這遊戲的難度超高。

於是有玩家訓練 AI,經過長期的研究與改良後,終於在近日破了人類玩家的紀錄。有網友表示,對 AI 來說,這遊戲的難度比圍棋還高啊!(責任編輯:郭家宏)

本文經 AI 新媒體量子位(公眾號 ID:QbitAI)授權轉載,轉載請連繫出處
作者:量子位

13 年以前,有這樣一款「變態」級難度的遊戲曾風靡一時。

它的名字簡單粗暴——QWOP。意思是讓玩家用這四個鍵位控制遊戲人物的左右大腿和小腿,以最快的速度跑完 100 米。

實際上,大部分玩家剛上手的時候,可能連起點線都邁不過去就 Game Over 了。

如果你能跑出幾米遠,絶對算是一個高手,甚至能在朋友面前炫耀一番。

QWOP 的難點在於,一旦角色失去平衡就很難再挽回,需要在 100 米的距離內一直保持重心不過於向前後傾斜。

當你經過苦練第一次跑起來時,又會被 50 米處作者故意設置的欄杆擺一道:說好的 100 米短跑怎麼變跨欄了?

在那個 4399 小遊戲盛行的年代,這款也被戲稱為「是男人就跑 100 米」。因為難度過於「變態」,QWOP 開發者曾收到過很多辱罵郵件。

雖然絶大部分人難以跑到終點,但仍有一批骨灰級玩家樂此不疲,他們不僅能輕鬆跑完,至今還為競爭世界排名而不斷挑戰。

2 個月前,一位日本玩家創造了新的世界紀錄:48.34 秒。

看到這款「沙雕遊戲」,你是不是會想到強化學習來訓練雙足機器人的畫面?

一位來自波士頓顧問的數據分析師 Wesley Liao 也是這麼想的。

不過別以「變態」難度的遊戲到了 AI 面前就變成了毛毛雨。

Liao 綜合了之前多種強化學習算法,最後甚至請來了「世界名師」教學,費了好大一番功夫,才終於讓 AI 在上週打破人類玩家的記錄。

可見這款遊戲的難度一點都不比圍棋低啊。

AI 自學:AI 用摩擦膝蓋的方式跑步

一開始,Liao 使用 OpenAI Gym 強化學習環境來訓練 AI,先設定好遊戲的狀態、操作和獎懲機制。

狀態包括每個身體部位和關節的位置、速度和角度。操作方式限定為 11 種:4 個 QWOP 按鍵、6 種兩兩按鍵組合以及不按任何鍵。

用來訓練 AI 的算演法是 ACER(具有經驗回放能力的 Actor-Critic)。這種演算法的優點是,不僅可以從其最近獲得的經驗中學習,也可以學習儲存數據中更早的經驗。

由於 ACER 非常複雜,Liao 使用了別人的實現程式碼「Stable Baselines」。

Liao 首先嘗試了讓 AI 自己學習。經過多次實驗後,他發現 AI 只學會了「蹭膝蓋」這種方式跑過終點,速度很慢。

這和許多人類普通玩家以及其他強化學習演算法是一樣的,離高手的水平還差很遠,更不用談打破紀錄了。

仔細分析可以發現,AI 根本沒有學習到跨步機制,只是學習到了最安全、最慢的方法來到達終點。

看來靠 AI 完全自學是不行了。

開發者親自訓練:AI 擠進世界前 15 強

類似於 DeepMind 用頂級棋手教 AlphaGo 下棋,Liao 想到是不是也可以讓人類玩家來教一下 AI。

但是 Liao 本人的技術和頂級玩家差距太大,自己最多也只能跑到 28 米。

這都不重要,重要的是起碼 Liao 跨出更大步伐的技巧,只能寄希望於 AI 能從「渣技術」裡學到一點奔跑的技巧吧。

但是結果很不幸,AI 很好地詮釋了「邯鄲學步」:不僅沒掌握跑步技巧,反而在起點就跌倒了。

然後 Liao 讓 AI 自己繼續訓練。所謂師父領進門,修行在個人,AI 能否將人類技術和自學能力結合起來?

結果令人興奮,經過 90 個小時的訓練,AI 終於學會了像人一樣奔跑!

最終成績是 1 分 25 秒,已經能跑進全球排行榜的前 15 名,離超過人類不遠了。

接下來要做的就是再向 AI 教授更多技巧,奈何本人技術太渣。

所以要想進一步提高 AI 的水平,必須找頂級高手來幫忙。

注入高手的數據:AI 擠進前十名

Liao 觀察速通排行榜上的錄影,發現頂級玩家的技巧是把左腿抬高可以跑的更快。

排名第一玩家 gunmaneko 的踢腿技巧

他開始全球排名前二的玩家 gunmaneko 和 Kurodo 請教踢腿技巧的操作。

兩位玩家熱情地回答了他的問題。其中 Kurodo 指出這個技巧的關鍵在於減少遊戲角色在縱向的移動,並提出把保持身體高度加入 AI 的獎勵函數。

Liao 向 Kurodo 分享了他的程式碼,Kurodo 慷慨地使用程式碼記錄了 50 次自己遊戲時的按鍵記錄發給 Liao。

Liao 嘗試使用這些數據對 AI 進行預訓練,但效果並不好。AI 還沒來得及學會踢腿技巧,倒先把基本的跑步方法忘記了。

Liao 不得不改變方法,他把 Kurodo 的數據注入到 AI 的回放緩存(Replay Buffer)中。這相當於修改 AI 的記憶,使 AI 有一半的記憶是自己的,另一半來自 Kurodo。

並且是 AI 每自己玩一次,就注入一次 Kurodo 的數據,保證 AI 隨機從記憶中選取一段來學習時選到兩種記憶的機率相同,避免在學習新技巧的過程中把基本操作忘掉。

AI 使用 Kurodo 的數據訓練了 15 個小時,終於學會了踢腿,但因為兩種記憶無法協調在一起,跑時間長了動作會不穩定。

Liao 此時把 Kurodo 的記憶移除,又讓 AI 自己訓練了 25 小時,總訓練時間達到了 65 小時。

最終 AI 的成績達到 1 分 08 秒,終於進入前十。

更改演算法:AI 打破人類的世界紀錄

Liao 把教 AI 玩這個遊戲的過程做成影片發在網上。一個月前,外媒 Gismodo 問他:為什麼 AI 還沒有打破世界紀錄?

於是 Liao 重新訓練了一個只為優化速度而存在的新 AI。

新 AI 改用 Prioritized DDQN 演算法,因為這種演算法會給學習效率更高的狀態增加權重而不是均勻採樣,能使新 AI 迅速學會舊 AI 已經掌握了的技巧。

並且,新 AI 的獎勵函數去掉了身體高度,膝蓋彎曲角度等參數,改成只和前進速度相關。

新 AI 先用已有數據進行只有幾分鐘的預訓練,隨後是 40 小時的自訓練。最終,新 AI 每秒所做的動作數在訓練環境中由 9 提高到 18,並在測試環境中達到 25。

新 AI 對踢腿技巧的掌握非常穩定,即使被障礙物影響也能迅速恢復。

快速高效的動作使 AI 的成績提高到 47.34 秒,比人類最高紀錄 48.34 秒剛好快 1 秒。

這才終於算是,在人工智慧超越人類的遊戲列表中又增加了一項。

更難的挑戰:跑馬拉松

你以為這就完了?

跑完 100 米不算完,這款遊戲還有一種世界級難度:是男人就跑完馬拉松。

為 Liao 提供幫助的玩家 Kurodo 最近剛剛提交了世界紀錄,全球也只有兩人完成了這項壯舉。

很難想像他們在電腦前連續按幾個小時 QWOP 的畫面。

另外,QWOP 的開發者 Bennett Foddy 一直在堅持開發這類「變態」難度的獨立小遊戲。

有一款 Getting Over It with Bennett Foddy 名氣頗高,中文名「掘地求升」。玩法就是一個裝在罈子裡的人不停用鎚子讓自己升高。

Foddy 曾經在普林斯頓大學和牛津大學擔任博士後研究員,現在是一名獨立遊戲設計師。QWOP 就是他在普林斯頓大學時期開發的。

我只能說,學霸開發的遊戲,學渣真的玩不起。

QWOP 線上遊戲 傳送門

參考連結

GitHub》、《Speedrun》、《Gizmodo》、《Toward Data Science》、《YouTube》、《Wesley Liao

(本文經 量子位 授權轉載,並同意 TechOrange 編寫導讀與修訂標題,原文標題為 〈世界上最难的“沙雕”游戏被 AI 攻破了 〉。首圖來源:foddy.net

延伸閱讀

【AI 工作技能養成】微軟推全台首張 AI 證照,無資料科學背景也能免費上課考照
【科技救地球】用演算法辨識水流!AI 偵測到 962 起汙水排放事件
工程師被 AI 重複性工作搞到自我懷疑?你可能落入「冒名頂替症候群」圈套


參加線上講堂抽 AirPods!重磅解密 4 大雲端新技術

報名 《Cloud Innovation Summit》 觀看影片,並填寫問卷,就能參加 AirPods 抽獎! 2021 年微軟集結 K8s 聯合創辦人、 全球開源領域重量級廠商、台灣第一線雲端專家群,解析 4 大雲端主題 #開源 #數據與 AI #資安 #雲端原生 >> 立即報名

點關鍵字看更多相關文章: