2013年 倫敦的deepmind 發(fā)了一篇workshop paper:
Playing Atari with Deep Reinforcement Learning
當(dāng)時(shí)真是“天空一聲巨響老子閃亮登場(chǎng)”,看完這篇paper和同事都驚呆了匆瓜,雖然思路上并沒有特別奇特的點(diǎn),但是就這么一個(gè)理論上應(yīng)該可以實(shí)現(xiàn),真正實(shí)現(xiàn)的時(shí)候,大家還是在感嘆, 這樣這樣也行.
2014年 deepmind 被google收購(gòu)了华匾,有人說$400+m, 有人說$600+m. 在這個(gè)錢比什么都便宜的時(shí)代鳞尔,這個(gè)價(jià)錢也沒什么稀奇。近幾年的cs research里面蟆融,英國(guó)一直在主流之外,但現(xiàn)在 deepmind 以完全不同于主流進(jìn)化路線的方式野蠻生長(zhǎng)著守呜。(想起大洋洲上獨(dú)立的進(jìn)化)型酥。包括之后出的neural turing machine,讓人覺得他們所在進(jìn)行的項(xiàng)目或許是超越這個(gè)時(shí)代的查乒,或者才是正確的方向弥喉。
回到游戲ai,有人說dota風(fēng)靡全球不可缺少的因素就是因?yàn)橛衋i地圖玛迄。不知道這是不是真相由境,但我現(xiàn)在還記得大學(xué)宿舍里12點(diǎn)斷電后,黑暗里摸著鍵盤在ai地圖里練補(bǔ)刀。
無(wú)論是warcraft還是starcraft虏杰,游戲的核心其實(shí)就是傷害判定和范圍判定讥蟆,因?yàn)榉秶卸ǎ叛苌俗呶坏膯栴}纺阔。ai 的關(guān)鍵就是決定什么時(shí)候追逐什么時(shí)候逃跑瘸彤,什么時(shí)候觸發(fā)攻擊,觸發(fā)什么樣的攻擊笛钝。傳統(tǒng)的 ai 一般是有限狀態(tài)機(jī)质况,根據(jù)玩家出的兵種,生產(chǎn)對(duì)應(yīng)的兵種玻靡;根據(jù)對(duì)方兵力的強(qiáng)弱结榄,決定是打架還是逃跑;dota里面根據(jù)自己的血量囤捻,離塔的遠(yuǎn)近臼朗,決定追敵人還是跑回家。就是因?yàn)檫@個(gè)實(shí)現(xiàn)蝎土,所以經(jīng)常有半血ai追殘血英雄到塔下卻半路跑回家视哑,要是人類玩家估計(jì)就咬咬牙上了。
但是像dota這樣動(dòng)輒接近100個(gè)英雄瘟则,寫起這種狀態(tài)機(jī),應(yīng)該會(huì)是一個(gè)噩夢(mèng)枝秤〈着。看了眼 google code 上開源的 dota ai, 不知道這個(gè)是不是網(wǎng)上流傳的 ai 地圖。覺得他們嘗試的artificial neural network 的思路淀弹,才是應(yīng)該努力的方向丹壕。deepmind 的reinforcement learning就是在這個(gè)方向上更近了一步。當(dāng)然deepmind所實(shí)現(xiàn)的ai離即時(shí)戰(zhàn)略ai的距離還很遙遠(yuǎn)薇溃,論文針對(duì)的是好多年前的atari 游戲菌赖,是黑白機(jī)時(shí)代的游戲,小蜜蜂沐序,潛艇等琉用。
相比于現(xiàn)有游戲的各種ai,這篇 paper 才是第一個(gè)真正意義上的游戲ai策幼。這篇paper讓一個(gè)ai不停地通過 reinforcement learning 自我學(xué)習(xí)邑时,直接以屏幕上的像素作為ai的輸入,通過游戲里積分的反饋來教育ai特姐,最后讓ai學(xué)會(huì)玩這個(gè)游戲晶丘。玩游戲的過程和人類玩家是一致的,整個(gè)游戲?qū)τ赼i來講是一個(gè)黑盒子。ai和人類一樣浅浮,只能看到屏幕上的內(nèi)容沫浆,直接把屏幕上的像素傳給ai。
dota2的ai滚秩,其實(shí)是人工定義各種狀態(tài)的专执,多少血,追逐還是逃跑叔遂,都是手動(dòng)定義的他炊。而deep mind的這篇paper是自動(dòng)學(xué)習(xí)的,ai甚至連哪個(gè)操作是向左已艰,哪個(gè)操作是向右都不知道痊末。ai的學(xué)習(xí)完全依賴于每一次操作之后,屏幕上發(fā)生的變化哩掺。
這篇paper最后達(dá)到的結(jié)果是凿叠,這個(gè)ai測(cè)試了 7個(gè) atari 游戲,在其中的6個(gè)超過了以前的ai performance嚼吞,而且在其中三個(gè)游戲的測(cè)試中超過了人類專業(yè)玩家的水平盒件。其中和人類玩家的比較,是讓專業(yè)玩家連續(xù)玩2小時(shí)舱禽,取平均成績(jī)炒刁。
deep mind reinforcement learning demo
視頻里有剛開始的運(yùn)行結(jié)果,訓(xùn)練一小時(shí)以后的結(jié)果誊稚,最終的運(yùn)行結(jié)果翔始。
另外之所以講這是真正意義的游戲ai,是因?yàn)檫@篇paper用一個(gè)model處理了所有7個(gè)游戲里伯,并不是傳統(tǒng)地為每一個(gè)游戲做一個(gè)單獨(dú)的model.
這篇文章的成功同時(shí)也說明了一個(gè)人類水平的ai有多困難城瞎。atari 游戲的操作都非常簡(jiǎn)單,只有上下左右 以及一個(gè)額外的觸發(fā)鍵疾瓮,任何一個(gè)即時(shí)戰(zhàn)略游戲都不會(huì)這么簡(jiǎn)單脖镀。但是如果不討論這種廣義上的ai,其實(shí)狹義上的游戲機(jī)器人并沒有那么難狼电。Mario AI Championship 2012 以前有一個(gè)mario ai championship比賽蜒灰,youtube上有很多render比賽結(jié)果的視頻。人力搬運(yùn)了幾個(gè)回來肩碟。
還有一個(gè)跟著鼠標(biāo)跑的卷员,操作更加浮夸。
Infinite Mario AI- Mario follows Mouse
這個(gè)比賽里腾务,一開始大家也是用特別fancy的Bayesian去做毕骡,做到后來有人發(fā)現(xiàn)因?yàn)榭梢灾苯咏佑|到mario內(nèi)部的狀態(tài),所以 a* path search 也能跑得很好,然后Bayesian也做不過 a* , 每年的冠軍好像都是通過 a* path search 實(shí)現(xiàn)的. 一旦這個(gè) ai problem 不valid了未巫,主辦的人也放棄了這個(gè)比賽窿撬。
還有berkeley的overmind項(xiàng)目,Berkeley Overmind 是星際的ai叙凡,作者好像是星際高玩劈伴,認(rèn)為蟲族飛龍是這里面最實(shí)惠地兵種,單純暴飛龍握爷,1024線甩飛龍跛璧,然后一路過關(guān)斬將最后奪冠。隱約記得之后還有一篇文章介紹關(guān)于甩飛龍的微操作是怎么實(shí)現(xiàn)的新啼,好像是用了一個(gè)特別詭異的數(shù)學(xué)模型追城。
結(jié)尾想起robotics里的一個(gè)小故事,做機(jī)器人的教授特別羨慕小狗的撿球能力燥撞,就想做一個(gè)能撿球的機(jī)器人座柱,覺得不和人比 和狗比還是有信心的。于是開發(fā)了各種拋物線模型物舒,牛逼空氣動(dòng)力色洞,研究拋球的姿勢(shì),最后冠胯。火诸。。荠察。置蜀。還是撿不過小狗。小狗撿球完全不用這些高大上的數(shù)學(xué)割粮,只要保持45度仰望球盾碗,球就會(huì)自然而然的進(jìn)入嘴里媚污。度數(shù)小于45度了舀瓢,就跑遠(yuǎn)一些,度數(shù)大了耗美,就跑近一些京髓。
萬(wàn)一奧特曼打不贏小怪獸
那就扶他逃回到小小星球
有陽(yáng)光 有鮮花 什么都有
也不缺女粉絲溫柔包扎傷口
不久后神功練就 小怪獸捏在指縫
reference: