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