《超级马里奥兄弟》通关了没?强化学习算法的AI成功拿下29个关卡!
《超級(jí)馬里奧兄弟》你能玩到第幾關(guān)?說起這款 FC 時(shí)代的經(jīng)典游戲,大家可能再熟悉不過了,大鼻子、留胡子,永遠(yuǎn)穿著背帶工裝服的馬里奧大叔,成為了很多 80/90 后的童年回憶。看著畫面中熟悉的馬里奧大叔一路跌跌撞撞,躲避半路殺出來的毒蘑菇,錘子烏龜,頭盔兔子、食人花,感覺又回到了小時(shí)候。
最早發(fā)行的這版《超級(jí)馬里奧兄弟》設(shè)置 8 個(gè)場景,每個(gè)場景分為 4 關(guān),共 32 個(gè)關(guān)卡,相信很多朋友至今還沒有完全通關(guān)。
Viet Nguyen 就是其中一個(gè)。這位來自德國的程序員表示自己只玩到了第 9 個(gè)關(guān)卡。因此,他決定利用強(qiáng)化學(xué)習(xí) AI 算法來幫他完成未通關(guān)的遺憾。
現(xiàn)在他訓(xùn)練出的 AI 馬里奧大叔已經(jīng)成功拿下了 29 個(gè)關(guān)卡。
不過,遺憾的是第4、7、8 場景中的第 4 關(guān)卡未通過。Viet Nguyen 解釋說,這與游戲規(guī)則的設(shè)置有關(guān)。在一場游戲結(jié)束后,玩家可以自行選擇通關(guān)路徑,但這可能出現(xiàn)重復(fù)訪問同一關(guān)卡的情況,所以 AI 未成功進(jìn)入到這三關(guān)游戲之中。
Viet Nguyen 使用的強(qiáng)化學(xué)習(xí)算法正是 OpenAI 研發(fā)的近端策略優(yōu)化算法(Proximal Policy Optimization,簡稱 PPO),他介紹,此前使用 A3C 代碼訓(xùn)練馬里奧闖關(guān),效果遠(yuǎn)不及此,這次能夠達(dá)到 29 關(guān)也是超出了原本的預(yù)期。
現(xiàn)在 Viet Nguyen 已經(jīng)將基于 PPO 編寫的完整 Python 代碼發(fā)布到了 Github 上,并給出了詳細(xì)的使用說明,感興趣的朋友可以體驗(yàn)一下:
Github 地址:https://github.com/uvipen/Super-mario-bros-PPO-pytorch
還會(huì)玩 Dota 的 AI 算法:PPO
據(jù)了解,PPO 是 OpenAI 在 2017 年開發(fā)的算法模型,主要用來訓(xùn)練虛擬游戲玩家 OpenAI Five,這位虛擬玩家在 2018 年的 Dota2 人機(jī)對抗賽中,戰(zhàn)勝過世界頂級(jí)職業(yè)選手,同時(shí)能夠打敗 99.95% 的普通玩家。
復(fù)雜的游戲環(huán)境一直被研究人員視為 AI 訓(xùn)練的最佳場景。為了讓 AI 掌握游戲規(guī)則,學(xué)會(huì)運(yùn)用策略,強(qiáng)化學(xué)習(xí)是研究人員常用的機(jī)器學(xué)習(xí)方法之一,它能夠描述和解決 AI 智能體(Agent)在與環(huán)境交互過程中通過學(xué)習(xí)策略實(shí)現(xiàn)特定目標(biāo)的問題。
近端策略優(yōu)化算法(PPO)已成為深度強(qiáng)化學(xué)習(xí)基于策略中效果最優(yōu)的算法之一。有關(guān)該算法的論文已經(jīng)發(fā)布在 arXiv 預(yù)印論文庫中。
論文中指出,PPO 是一種新型的策略梯度(Policy Gradient)算法,它提出新的“目標(biāo)函數(shù)”可以進(jìn)行多個(gè)訓(xùn)練步驟,實(shí)現(xiàn)小批量的更新,解決 PG 算法中步長難以確定的問題。固定步長的近端策略優(yōu)化算法如下:
(每次迭代時(shí),N個(gè) actor 中的每個(gè)都收集T個(gè)時(shí)間步長的數(shù)據(jù)。 然后在這些 NT 時(shí)間步長的數(shù)據(jù)上構(gòu)建替代損失,并使用 minibatch SGD 進(jìn)行K個(gè) epochs 的優(yōu)化。)
研究人員表明,該算法具有信任區(qū)域策略優(yōu)化(TRPO)的一些優(yōu)點(diǎn),但同時(shí)比它實(shí)施起來更簡單,更通用,具有更好的樣本復(fù)雜性(憑經(jīng)驗(yàn))。為了證實(shí) PPO 的性能,研究人員在一些基準(zhǔn)任務(wù)上進(jìn)行了模擬測試,包括人形機(jī)器人運(yùn)動(dòng)策略和 Atari 游戲的玩法。
PPO 算法的基準(zhǔn)任務(wù)測試
在游戲角色的 AI 訓(xùn)練中,一種基本的功能是具備連續(xù)性的運(yùn)行和轉(zhuǎn)向,如在馬里奧在遇到諸如地面或者空中障礙時(shí),能夠以此為目標(biāo)進(jìn)行跳轉(zhuǎn)和躲避。論文中,研究人員為了展示 PPO 的高維連續(xù)控制性能,采用 3D 人形機(jī)器人進(jìn)行了測試,測試任務(wù)分別為:
(1)僅向前運(yùn)動(dòng);(2)每 200 個(gè)時(shí)間步長或達(dá)到目標(biāo)時(shí),目標(biāo)位置就會(huì)隨機(jī)變化;(3)被目標(biāo)擊倒后,需要從地面站起來。以下從左至右依次為這三個(gè)任務(wù)的學(xué)習(xí)曲線。
研究人員從以上學(xué)習(xí)曲線中,隨機(jī)抽取了任務(wù)二在某一時(shí)刻的性能表現(xiàn)。如下圖,
可以看出,在第六幀的放大圖中,人形機(jī)器人朝目標(biāo)移動(dòng),然后隨機(jī)改變位置,機(jī)器人能夠跟隨轉(zhuǎn)向并朝新目標(biāo)運(yùn)行。說明 PPO 算法在連續(xù)轉(zhuǎn)控方面具備出色的性能表現(xiàn)。
那么它在具體游戲中“獲勝率”如何呢?研究人員運(yùn)用 Atari 游戲合集(含 49 個(gè))對其進(jìn)行驗(yàn)證,同時(shí)與 A2C 和 ACER 兩種算法進(jìn)行了對比。為排除干擾因素,三種算法全部使用了相同的策略網(wǎng)絡(luò)體系,同時(shí),對其他兩種算法進(jìn)行超參數(shù)優(yōu)化,確保其在基準(zhǔn)任務(wù)上的性能最大化。
如上圖,研究人員采用了兩個(gè)評(píng)估指標(biāo):(1)在整個(gè)訓(xùn)練期間每集的平均獲勝數(shù);(2)在持續(xù) 100 集訓(xùn)練中的每集的平均獲勝數(shù)。 前者更適合快速學(xué)習(xí),后者有助于最終的比賽表現(xiàn)。可以看出 PPO 在指標(biāo)一種的獲勝次數(shù)達(dá)到了 30,在小樣本下有更高的勝率。
最后研究人員還強(qiáng)調(diào),PPO 近端策略優(yōu)化的優(yōu)勢還在于簡潔好用,僅需要幾行代碼就可以更改為原始策略梯度實(shí)現(xiàn),適用于更常規(guī)的設(shè)置,同時(shí)也具有更好的整體效果。
更多論文詳細(xì)內(nèi)容,請參見地址:https://arxiv.org/abs/1707.06347
總結(jié)
以上是生活随笔為你收集整理的《超级马里奥兄弟》通关了没?强化学习算法的AI成功拿下29个关卡!的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 求谷字开头的成语接龙!
- 下一篇: 赤开头的成语有哪些啊?