較于深度學(xué)習(xí),這種全新的算法似乎更佳?
![](http://image.woshipm.com/wp-files/img/48.jpg)
編者按:深度學(xué)習(xí)的如日中天遮掩了進(jìn)化算法的光芒,但進(jìn)化算法也有望重歸大眾視野,畢竟在某些領(lǐng)域它可比深度學(xué)習(xí)領(lǐng)先得多。本文譯自MIT Technology Review中原標(biāo)題為”EVOLUTIONARY ALGORITHM OUTPERFORMS DEEP-LEARNING MACHINES AT VIDEO GAMES”的文章。
基于目前人類在神經(jīng)網(wǎng)絡(luò)算法和機(jī)器深度學(xué)習(xí)取得的成就,很容易讓人產(chǎn)生計(jì)算機(jī)科學(xué)只包含這兩部分的錯(cuò)覺(jué)。畢竟神經(jīng)網(wǎng)絡(luò)算法在人臉識(shí)別、棋類和各類街機(jī)游戲競(jìng)技中的表現(xiàn)已經(jīng)開(kāi)始超越人類了。
因?yàn)檫@些網(wǎng)絡(luò)算法都是基于人類的思考模式進(jìn)行的,好像沒(méi)什么比這個(gè)更有潛力了。但事實(shí)果真如此嗎?
答案是:不完全是。一種全新的算法甚至比深度學(xué)習(xí)和神經(jīng)網(wǎng)絡(luò)有更明顯的優(yōu)勢(shì):這種算法是基于創(chuàng)造人類大腦的方式——進(jìn)化來(lái)進(jìn)行的。
換句話說(shuō),人類是在一系列迭代和擇優(yōu)中產(chǎn)生的,由此誕生了眼睛、耳朵、大腦等精密的工具,足以可見(jiàn)進(jìn)化的力量。
這也就是計(jì)算機(jī)科學(xué)家一直試圖掌控這種能力的原因,況且這種所謂的進(jìn)化算法在自首次被投入企業(yè)生產(chǎn)線優(yōu)化中的30年里已經(jīng)創(chuàng)造了巨大的奇跡。
然而近幾年由于深度學(xué)習(xí)技術(shù)的如日中天,這種算法也只能屈居其后。
如今,在Dennis Wilson和法國(guó)圖盧茲大學(xué)其他同事的共同努力下這種局面似乎有所逆轉(zhuǎn),他們?cè)?013年的一次標(biāo)志性任務(wù)的完成中證明了進(jìn)化算法甚至能夠與深度學(xué)習(xí)相匹敵——在Pong、Breakout和Space invader等街機(jī)游戲的表現(xiàn)中均完勝人類,直接顯示出無(wú)限的潛力。
進(jìn)化算法的工作原理完全不同于神經(jīng)網(wǎng)絡(luò),其以一種看起來(lái)反直覺(jué)的方式來(lái)創(chuàng)建解決特定問(wèn)題的計(jì)算機(jī)代碼。
之所以這么說(shuō)是因?yàn)閭鹘y(tǒng)的代碼創(chuàng)建都是考慮到特定目標(biāo)依照基本原理進(jìn)行編譯的,而進(jìn)化算法則不同,它始于完全隨機(jī)生成的代碼,且不止有一個(gè)版本,而是諸多版本甚至數(shù)十萬(wàn)個(gè)代碼片段組裝而成。
每一個(gè)代碼都會(huì)經(jīng)過(guò)測(cè)試看是否符合目標(biāo)要求,當(dāng)然由于隨機(jī)組合結(jié)果也可能不理想。
但一旦發(fā)現(xiàn)某些代碼優(yōu)于其他代碼就會(huì)在新一代代碼中再現(xiàn)這些片段,其中會(huì)延展出優(yōu)質(zhì)代碼的更多副本。
但是下一代代碼不能完全是上一代的復(fù)制品,必須有所改變,這就涉及切換代碼中的兩個(gè)部分——即點(diǎn)突變,也可能涉及兩個(gè)代碼被各切一半相互交換——就像有性重組一樣。
接著在新一代中繼續(xù)測(cè)試,選擇優(yōu)質(zhì)代碼出現(xiàn)在下一代中,以此類推。
通過(guò)這種方法,代碼就進(jìn)化了。隨著時(shí)間的推移,這些代碼會(huì)變得越來(lái)越優(yōu)異,如果沒(méi)有偏離正確的方向,那么它們最終會(huì)比任何人為設(shè)計(jì)出的代碼都要完美。
計(jì)算機(jī)科學(xué)家也已成功地將進(jìn)化算法應(yīng)用在各種問(wèn)題中,小到制造機(jī)器人,大到制造航空儀器,到處都有它的身影。
但就是由于深度學(xué)習(xí)算法的熱潮,使得它失寵了。所以這就出現(xiàn)了一個(gè)值得深思的問(wèn)題:到底進(jìn)化算法能不能和深度學(xué)習(xí)匹敵?為了搞清事實(shí),Wilson和他的同事們使用這種方法來(lái)進(jìn)化能控制20世紀(jì)80到90年代街機(jī)游戲的代碼。
這些街機(jī)游戲可以在Arcade Learning Environment數(shù)據(jù)庫(kù)中進(jìn)行使用,目前該數(shù)據(jù)庫(kù)也越來(lái)越多地被用來(lái)測(cè)試各種算法的學(xué)習(xí)能力。該數(shù)據(jù)庫(kù)中有61款雅達(dá)利游戲,其中包括Pong,Breakout和Space invader等。
該種方法的任務(wù)是創(chuàng)建一種僅通過(guò)觀察屏幕顯示就能玩像Pong這種游戲的代碼,就和正常人打游戲一樣。為此,算法必須能認(rèn)真分析游戲位置,通過(guò)最優(yōu)化移動(dòng)力爭(zhēng)高分。
當(dāng)然,對(duì)任何游戲的控制都是如此。首先對(duì)應(yīng)地要控制八個(gè)方向的按鈕(上、下、左、右和四個(gè)對(duì)角線方向),接著要與不同的攻擊按鈕組合,但不是所有游戲都有18種組合方式,有些只有四種。
為了完成這項(xiàng)研究首先必須創(chuàng)建代碼。 進(jìn)化算法需要一個(gè)可以連接起來(lái)形成計(jì)算機(jī)代碼的指令集,這些指令的范圍從簡(jiǎn)單的指令(如ADD(x + y)/ 2)到更復(fù)雜的指令,例如“如果x是標(biāo)量,則返回1元素x向量”,每個(gè)指令即進(jìn)化算法中的算子或基因。
當(dāng)然這個(gè)指令集中的指令選擇非常重要,Wilson和同事們選用的是為笛卡爾遺傳規(guī)劃制定的集合。
該程序從隨機(jī)創(chuàng)建包含40個(gè)指令的代碼開(kāi)始,即該計(jì)劃的“基因組”,根據(jù)基因組在游戲中的測(cè)試得分判斷其表現(xiàn)能力。后根據(jù)基因組的執(zhí)行情況對(duì)其進(jìn)行突變?cè)僭旒尤胂乱淮螠y(cè)試中。研究團(tuán)隊(duì)以這種方法測(cè)試了10000個(gè)基因組。
測(cè)試結(jié)果十分耐人尋味:起初基因組在游戲中的表現(xiàn)都很糟糕,隨著不斷的再生能力直線上升,最后甚至比正常人類的表現(xiàn)更優(yōu)秀。
盡管大多基因組都在做一些全新的復(fù)雜游戲的游戲攻略,但它們有時(shí)也會(huì)發(fā)現(xiàn)一些人類很容易忽略的問(wèn)題。
例如在玩《功夫大師》時(shí),進(jìn)化算法發(fā)現(xiàn)最有效率的動(dòng)作是蹲伏拳,因?yàn)樵诙追惺亲畎踩模杭瓤梢缘謸跻话氲淖訌?,也能?duì)附近發(fā)起攻擊,游刃有余。于是該算法會(huì)在沒(méi)有其他動(dòng)作的情況下重復(fù)蹲伏拳。事實(shí)也證明這確實(shí)是有效的。
Wilson等研究人員均對(duì)此發(fā)現(xiàn)感到驚訝:“這種策略比正常玩得分更高,但一般人玩游戲只會(huì)在特殊情況下才發(fā)動(dòng)蹲伏拳。”
當(dāng)然這種進(jìn)化算法在其他游戲中的表現(xiàn)也相當(dāng)漂亮,甚至趕超了深度學(xué)習(xí)算法。此外還有一個(gè)優(yōu)點(diǎn),因?yàn)檫M(jìn)化算法比較小量,所以很容易探測(cè)它是如何工作的;而眾所周知,深度學(xué)習(xí)算法很難搞清楚為什么產(chǎn)生了特定結(jié)果,有時(shí)候很容易產(chǎn)生法律糾紛。
總之,這項(xiàng)研究不僅有趣,也為計(jì)算機(jī)科學(xué)家提了個(gè)醒:進(jìn)化算法是個(gè)強(qiáng)大的替代算法,應(yīng)用場(chǎng)景很多元化,錯(cuò)過(guò)它可能會(huì)很可惜。畢竟有些研究人員已經(jīng)用它來(lái)迭代深度學(xué)習(xí)了,不得不說(shuō)潛力巨大啊。
原文地址:?www.technologyreview.com
譯者:小灼,由36氪編譯組出品。編輯:郝鵬程
譯文地址:http://36kr.com/p/5144642.html
本文由 @郝鵬程 授權(quán)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)作者許可,禁止轉(zhuǎn)載。
題圖來(lái)自 Pixabay,基于 CC0 協(xié)議
更好的引流app推薦:https://wap.beeplay123.com/games/