編者按:笛卡爾遺傳規劃(Cartesian Genetic Programming)在圖像處理任務中已經發揮了不小的作用,這一方法同樣可以應用到雅達利游戲中。說起雅達利游戲,我們首先會想到深度學習在其中做過的努力,但是本項目的研究人員們卻用另一種有效的方法——演化算法,控制雅達利游戲的進行,結果顯示,演化算法的性能并不比深度學習差。以下是論智帶來的編譯。
隨著神經網絡和深度學習技術的發展,計算機科學領域幾乎被這些新技術占據。特別是神經網絡,已經在某些任務上達到甚至超過了人類水平,例如目標和人臉識別、棋類游戲和多種街機游戲比賽。
這些網絡都是根據人類大腦的工作原理建立的,因為人類大腦能產生最多的可能性,對嗎?
答案不盡然?,F在有一種全新的計算方式能比神經網絡和深度學習擁有更強大的計算力。這行技術是基于人腦形成的過程——演化。換句話說,一些列迭代變化和選擇生成了最復雜的機器——人類。演化的力量可以看成是奇跡。
自從30年前第一次應用于對生產線的優化后,進化計算就取得了令人矚目的成果。但是最近幾年,由于深度學習的發展和它取得的巨大成功,進化計算淡出了人們的視線。
今天,來自法國圖盧茲大學的研究人員Dennis Wilson等人的一項研究讓人們注意到了演化計算能達到和深度學習機器同樣的性能。在街機游戲,例如雅達利游戲中的《乓》、《打磚塊》、《太空侵略者》中表現出了超越人類的水平。這項工作表明,人們在重視深度學習方法的同時,也要給予演化算法相當的關注。
深度學習 VS 演化計算
演化計算和神經網絡完全不同,它的目標是創建能用反直覺式的方法解決特殊問題的代碼。通常代碼創建的一般方法是有了特定目標后按第一原理開始書寫。
而演化計算用的是另一種方法,它完全是隨機生成代碼,并且不只有一個版本,而是多個版本,有的時候甚至由成百上千個片段隨機拼湊起來形成代碼。
但是很多情況下,這些代碼片段的效果并不是很好。接著它們會再次重新生成,其中會加入更多的代碼片段。然而,第二次訓練和第一次的代碼不會完全相同,一定有某些改動。這些改變可能會導致某種計算點突變。
之后生成的新代碼會經過測試,看它們表現的如何。表現最好的代碼會優先進入下一批代碼生成,以此類推。
這一過程就是代碼演化的過程。隨著時間的推移,代碼表現得越來越好,多次迭代后,如果條件合適,它的表現會比人類設計的代碼更好。
計算機科學家們已經成功地將演化計算應用到很多問題上,包括機器人設計和建造航天器部件。
但是,深度學習的巨大成功讓演化計算“失寵”了。所以,一個很重要的問題是,演化計算能夠達到和深度學習同樣的水平。為了弄清楚這一點,Wilson和他的同事們用演化計算創建出了能玩雅達利游戲的代碼。
游戲設計
這些游戲目前在Arcade Learning Environment數據集中可用,該數據集經常被用來測試不同類型游戲的學習行為。數據集含有61種雅達利游戲,例如《乓》、《太空侵略者》、《打磚塊》和《功夫大師》等等。
任務的目的是創建一套算法,只需要看屏幕上輸出的效果,就能熟練地玩雅達利游戲,和人類玩游戲的方式一樣。所以算法必須分析每次游戲動作的位置,然后決定如何移動才能得到最多分數。
對所有游戲的控制方法都是相同的,它對應著八個不同的移動方向:上、下、左、右、以及左上、左下、右上、右下。另外還有一個可以和八個方向結合的按鈕,可以隨意進行組合。并不是所有游戲都能用到18個可能的結合,一些游戲只能用到四種。
首先,代碼創造出來之后,演化方法需要一系列術語來生成計算代碼,其中包括簡單的“ADD(x+y)/2”到更復雜的“return the 1-element x-vector if x is a scalar”。
同時,選擇何種術語來組成這一系列詞典是非常重要的,Wilson和他的同事們使用的是已經被稱為笛卡爾遺傳規劃(Cartesian Genetic Programming)的集合。
在這一過程的開始,系統隨機創建包含40個術語的代碼,這可以看作是該項目的“基因組”。之后,這些代碼經過游戲測試,看最終能得到多少分。根據它們的表現,“基因組”會不斷改變進行重復生成,再進行測試。最后,該研究小組用這種方法測試了10000個“基因組”。
實驗結果
結果很有趣。最初,代碼玩游戲的水平很差,但是經過一段時間的迭代,代碼的表現越來越好。經過多次代碼生成后,它們已經表現得很好了,甚至有時還超過了人類。
代碼在很多情況下都會生成全新的游戲策略,通常都很復雜。但是有時也會找到被人們忽略的簡單游戲方法。
例如,當計算機在玩《功夫大師》時,演化算法發現,最有價值的攻擊是下蹲拳。下蹲更加安全,因為它能躲避一半的子彈并且進行近身攻擊。算法最初的策略是重復使用這一技巧,不添加其他動作,事后想來這樣做也是有道理的。
這樣研究人員非常吃驚,他們表示:“運用這種策略比正常玩這種游戲得到的分數更好,而且現在代碼在這個游戲中只使用下蹲拳。”
總的來說,演化出的算法能很好地掌握多種游戲,甚至超過人類水平。更重要的是,這些算法能和深度學習相媲美。它同樣還有另一種結果:“雖然這一項目體積相對較小,很多控制器在這種方法上就非常有競爭力,所需的訓練時間就更少?!?/p>
生成的代碼還有另一個優點。由于它很小,就很容易觀察它的工作過程。相反,深度學習技術眾所周知的問題就是有時我們不知道它為什么會做出某種決策,這就會導致很多現實和法律問題。
小結
總的來說,這項有趣的工作也許能提醒那些只關注深度學習的科學家們,還有演化算法這樣的替代性技術。
Keras締造者、深度學習研究人員Fran?ois Chollet在推特上表示:“這項研究很了不起,通常用深度學習總會經歷多次微小迭代,而這項工作是不同類型的嘗試。通常,如果你能在老生常談的問題上得到小有競爭力的結果,那么最終一定有所作為?!?/p>
-
神經網絡
+關注
關注
42文章
4771瀏覽量
100720 -
深度學習
+關注
關注
73文章
5500瀏覽量
121117
原文標題:在深度學習“大行其道”的今天,不要忽視更強大的演化算法
文章出處:【微信號:jqr_AI,微信公眾號:論智】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論