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