較于深度學習,這種全新的算法似乎更佳?

2 評論 3668 瀏覽 6 收藏 9 分鐘

編者按:深度學習的如日中天遮掩了進化算法的光芒,但進化算法也有望重歸大眾視野,畢竟在某些領域它可比深度學習領先得多。本文譯自MIT Technology Review中原標題為”EVOLUTIONARY ALGORITHM OUTPERFORMS DEEP-LEARNING MACHINES AT VIDEO GAMES”的文章。

基于目前人類在神經網絡算法和機器深度學習取得的成就,很容易讓人產生計算機科學只包含這兩部分的錯覺。畢竟神經網絡算法在人臉識別、棋類和各類街機游戲競技中的表現已經開始超越人類了。

因為這些網絡算法都是基于人類的思考模式進行的,好像沒什么比這個更有潛力了。但事實果真如此嗎?

答案是:不完全是。一種全新的算法甚至比深度學習和神經網絡有更明顯的優勢:這種算法是基于創造人類大腦的方式——進化來進行的。

深度學習不是萬能的,進化算法在游戲中表現更佳

換句話說,人類是在一系列迭代和擇優中產生的,由此誕生了眼睛、耳朵、大腦等精密的工具,足以可見進化的力量。

這也就是計算機科學家一直試圖掌控這種能力的原因,況且這種所謂的進化算法在自首次被投入企業生產線優化中的30年里已經創造了巨大的奇跡。

然而近幾年由于深度學習技術的如日中天,這種算法也只能屈居其后。

如今,在Dennis Wilson和法國圖盧茲大學其他同事的共同努力下這種局面似乎有所逆轉,他們在2013年的一次標志性任務的完成中證明了進化算法甚至能夠與深度學習相匹敵——在Pong、Breakout和Space invader等街機游戲的表現中均完勝人類,直接顯示出無限的潛力。

進化算法的工作原理完全不同于神經網絡,其以一種看起來反直覺的方式來創建解決特定問題的計算機代碼。

之所以這么說是因為傳統的代碼創建都是考慮到特定目標依照基本原理進行編譯的,而進化算法則不同,它始于完全隨機生成的代碼,且不止有一個版本,而是諸多版本甚至數十萬個代碼片段組裝而成。

每一個代碼都會經過測試看是否符合目標要求,當然由于隨機組合結果也可能不理想。

但一旦發現某些代碼優于其他代碼就會在新一代代碼中再現這些片段,其中會延展出優質代碼的更多副本。

但是下一代代碼不能完全是上一代的復制品,必須有所改變,這就涉及切換代碼中的兩個部分——即點突變,也可能涉及兩個代碼被各切一半相互交換——就像有性重組一樣。

接著在新一代中繼續測試,選擇優質代碼出現在下一代中,以此類推。

通過這種方法,代碼就進化了。隨著時間的推移,這些代碼會變得越來越優異,如果沒有偏離正確的方向,那么它們最終會比任何人為設計出的代碼都要完美。

計算機科學家也已成功地將進化算法應用在各種問題中,小到制造機器人,大到制造航空儀器,到處都有它的身影。

但就是由于深度學習算法的熱潮,使得它失寵了。所以這就出現了一個值得深思的問題:到底進化算法能不能和深度學習匹敵?為了搞清事實,Wilson和他的同事們使用這種方法來進化能控制20世紀80到90年代街機游戲的代碼。

這些街機游戲可以在Arcade Learning Environment數據庫中進行使用,目前該數據庫也越來越多地被用來測試各種算法的學習能力。該數據庫中有61款雅達利游戲,其中包括Pong,Breakout和Space invader等。

該種方法的任務是創建一種僅通過觀察屏幕顯示就能玩像Pong這種游戲的代碼,就和正常人打游戲一樣。為此,算法必須能認真分析游戲位置,通過最優化移動力爭高分。

當然,對任何游戲的控制都是如此。首先對應地要控制八個方向的按鈕(上、下、左、右和四個對角線方向),接著要與不同的攻擊按鈕組合,但不是所有游戲都有18種組合方式,有些只有四種。

為了完成這項研究首先必須創建代碼。 進化算法需要一個可以連接起來形成計算機代碼的指令集,這些指令的范圍從簡單的指令(如ADD(x + y)/ 2)到更復雜的指令,例如“如果x是標量,則返回1元素x向量”,每個指令即進化算法中的算子或基因。

當然這個指令集中的指令選擇非常重要,Wilson和同事們選用的是為笛卡爾遺傳規劃制定的集合。

該程序從隨機創建包含40個指令的代碼開始,即該計劃的“基因組”,根據基因組在游戲中的測試得分判斷其表現能力。后根據基因組的執行情況對其進行突變再造加入下一次測試中。研究團隊以這種方法測試了10000個基因組。

測試結果十分耐人尋味:起初基因組在游戲中的表現都很糟糕,隨著不斷的再生能力直線上升,最后甚至比正常人類的表現更優秀。

盡管大多基因組都在做一些全新的復雜游戲的游戲攻略,但它們有時也會發現一些人類很容易忽略的問題。

例如在玩《功夫大師》時,進化算法發現最有效率的動作是蹲伏拳,因為在蹲伏中是最安全的:既可以抵擋一半的子彈,也能對附近發起攻擊,游刃有余。于是該算法會在沒有其他動作的情況下重復蹲伏拳。事實也證明這確實是有效的。

Wilson等研究人員均對此發現感到驚訝:“這種策略比正常玩得分更高,但一般人玩游戲只會在特殊情況下才發動蹲伏拳?!?/p>

當然這種進化算法在其他游戲中的表現也相當漂亮,甚至趕超了深度學習算法。此外還有一個優點,因為進化算法比較小量,所以很容易探測它是如何工作的;而眾所周知,深度學習算法很難搞清楚為什么產生了特定結果,有時候很容易產生法律糾紛。

總之,這項研究不僅有趣,也為計算機科學家提了個醒:進化算法是個強大的替代算法,應用場景很多元化,錯過它可能會很可惜。畢竟有些研究人員已經用它來迭代深度學習了,不得不說潛力巨大啊。

 

原文地址:?www.technologyreview.com

譯者:小灼,由36氪編譯組出品。編輯:郝鵬程

譯文地址:http://36kr.com/p/5144642.html

本文由 @郝鵬程 授權發布于人人都是產品經理,未經作者許可,禁止轉載。

題圖來自 Pixabay,基于 CC0 協議

更多精彩內容,請關注人人都是產品經理微信公眾號或下載App
評論
評論請登錄
  1. 更好的引流app推薦:https://wap.beeplay123.com/games/

    來自江蘇 回復