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