雷鋒網 AI 科技評論按:一直低調的 Uber AI 研究院近日連發 5 篇論文,介紹了他們在基因算法(genetic algorithm)、突變方法(mutation)和進化策略(evolution strategies)等神經演化思路方面的研究成果,同時也理論結合實驗證明了神經演化可以取代 SGD 等現有主流方法用來訓練深度強化學習模型,同時取得更好的表現。
神經演化(Neuroevolution)是一種符合直覺的、近年正在重新獲得關注的機器學習研究思路。生物進化是在繁衍中不斷產生突變、不斷出現帶有新的特性的個體,然後整個種群中能適應環境的個體生存下來、不能適應環境的就被淘汰。機器學習領域的研究者們就已經反覆嘗試過用這樣的思路探索高效的神經網絡架構(不再憑研究人員的直覺去設計),比如初始化一百個互相之間略有區別的網絡,訓練以後選出表現最好的那個,然後再拷貝出 100 個它的帶有小的隨機改變的副本(模擬生物進化中的突變),進行下一輪測試篩選和帶突變複製;前沿學術研究機構谷歌大腦(Google Brain)的負責人 Jeff Dean 也表示過神經演化是一個非常有潛力的研究方向(另一個他覺得很有潛力的方向是稀疏激活的網絡)。
但是根據這樣反覆變化+篩選的過程,我們已經可以推斷出用神經演化搜索神經網絡架構是一件非常耗費計算能力的事情,所以目前為止能得到的網絡規模也不大、完成的任務也不夠複雜。雷鋒網 AI 科技評論前段時間也報導過一篇在減小計算能力需求方面做出了很大進步的論文《進化算法可以不再需要計算集群,開普敦大學的新方法用一塊 GPU 也能刷新 MNIST 記錄》。
而這次 Uber 的論文探索了神經進化的另一種用法,就是用它訓練神經網絡。比如對於架構固定的神經網絡,用基於神經進化思路的微小擾動和突變改變連接權重,從而實現了網絡的訓練。並且他們新開發的技術可以讓網絡高效地進化,並在某些應用下取得了比基於傳統基於梯度的方法(SGD 和策略梯度)更好的表現。雷鋒網 AI 科技評論把 Uber AI 研究院綜述博文和論文簡介編譯如下。
在深度學習領域,大家已經習慣了用隨機梯度下降 SGD 來訓練上百層的、包含幾百萬個連接的深度神經網絡。雖然一開始沒能嚴格地證明 SGD 可以讓非凸函數收斂,但許多人都認為 SGD 能夠高效地訓練神經網絡的重要原因是它計算梯度的效率很高。
不過在 Uber 看來,SGD 雖然熱門,但它不一定總是最好的選擇。近日 Uber 就一口氣發布了關於神經演化(Neuroevolution)的 5 篇論文,其中的訓練方法不再是 SGD,而是進化算法;他們的研究結果表明,進化算法同樣可以高效地為強化學習模型訓練深度神經網絡。對 Uber 來說,能夠藉助數據持續自我改進的機器學習模型已經在他們的業務中佔據了不少地位,而開發出多種多樣的強有力的學習方法(比如神經進化算法)就能夠幫助他們更好地達成自己「開發更安全、更可靠的交通解決方案」的目標。
藉助新開發出的技術,Uber AI 的研究人員已經可以讓深度神經網絡高效地進化。同時他們也驚訝地發現,一個非常簡單的基因算法(genetic algorithm)就可以訓練帶有超過四百萬個參數的卷積網絡,讓它能夠直接看著遊戲畫面玩 Atari 遊戲;這個網絡可以在許多遊戲裡取得比現代深度強化學習算法(比如 DQN 和 A3C)或者進化策略(evolution strategies)更好的表現,同時由於算法有更強的並行能力,還可以運行得比這些常見方法更快。
這個結果令人十分驚喜,一個原因是基因算法並不是基於梯度的,此前也沒人期待它對於四百萬個參數這樣大的參數空間還有很好的拓展性;另一個原因是,用簡單的基因算法就能達到與頂級的現代強化學習方法同等甚至更好的表現,此前也沒人覺得這事有任何可能性。
Uber AI 的研究人員們進一步的研究表明,現代的一些基因算法改進方案,比如新穎性搜索算法(novelty search)不僅在基因算法的效果基礎上得到提升,也可以在大規模深度神經網絡上工作,甚至還可以改進探索效果、對抗帶有欺騙性的問題(帶有有挑戰性的局部極小值的問題);Q-learning(DQN)、策略梯度(A3C)、進化策略、基因算法之類的基於反饋最大化思路的算法在這種狀況下的表現並不理想。
在另一篇論文中,Uber AI 的研究人員們展示出可以把梯度結合在神經演化中,提升它進化循環神經網絡和非常深的深度神經網絡的能力。這樣一來,超過一百層的深度神經網絡也可以進化,這要比之前的神經演化研究中得到的結果高出一個數量級。作者們的方法是計算網絡輸出關於連接權重的梯度(並不是傳統深度學習中計算訓練誤差的梯度),從而可以對隨機突變進行調節,對於最敏感那些的網絡參數也就可以處理得比以往精細得多。這樣一來就解決了以往大規模神經網絡中的隨機突變效果不好的問題。
這項研究是對研究領域中已經出現的技巧運用的補充。OpenAI 的研究人員們首先注意到,神經演化中的各種進化策略(evolution strategy)可以用來優化深度神經網絡,尤其在深度強化學習任務中可以取得有競爭力的表現。不過目前為止這個結果更廣泛的意義和作用都還僅限於大家的猜測中。
在這項研究中,Uber AI 的研究人員們把注意力放在進化策略的進一步創新上,他們在 MNIST 數據集上進行測試,看看進化策略近似計算出的梯度和 SGD 算出的每個 mini-batch 的最優梯度到底有多大區別,以及它們之間的區別需要保持在什麼程度才能讓進化策略發揮出良好表現。實驗表明,只要提供了足夠計算資源用來提高梯度近似計算的質量,進化策略可以在 MNIST 上達到 99% 準確率。這同時也解釋了為什麼進化策略越來越成為深度強化學習領域的重要方法,就是因為隨著並行計算的程度越來越高,沒有什麼方法可以有獲得完美的梯度信息的「特權」,那麼只需近似的梯度就能發揮良好表現的進化策略在這時就會體現出優勢。
這項研究進一步拓展了對進化策略的理解。通過實證實驗表明,在足夠多的參數受到擾動時,進化策略的表現和 SGD 有所不同,因為進化策略優化的目標是由一個概率分布(體現為搜索空間中的點雲)描述的策略群落的預期回報,而 SGD 優化的目標是單獨一個策略的預期回報(搜索空間中的一個點)。 這種區別就會讓進化策略更多地在搜索空間中的不同位置上走來走去,不管最後的結果是更好還是更糟(兩種情況在論文中都有詳細介紹)。
為一個群落的參數擾動做優化還帶來另外一個結果,就是進化策略訓練出的模型要比 SGD 訓練出模型的健壯性好得多。進化策略優化一個參數群落的特點也體現出了進化策略和貝葉斯方法之間的有趣聯繫。
深度神經演化方面的研究帶來一個非常討人喜歡的結果,那就是本來為神經演化開發的各種工具如今都可以用來增強深度神經網絡的訓練過程。Uber AI 的研究人員們開發了一種新算法,它可以把進化策略的優化能力和可拓展性與神經演化中獨有的方法結合起來,用一個鼓勵各自做出不同行為的智能體群落提升強化學習任務中的探索能力。
這種基於群落的探索方式和傳統強化學習中只有一個智能體進行探索的做法有很大不同,其實乃至近期的關於深度強化學習的探索能力的研究都只靠一個智能體進行探索。Uber AI 的研究人員們通過實驗表明,增加的這種新的探索方式可以提高進化策略在許多領域的表現,包括一些 Atari 遊戲、模擬器中的仿人類行走,在這些任務中都需要躲開具有欺騙性的局部極小值。
對於有興趣往深度神經網絡方面多做探索的神經演化研究者們來說,有這麼幾件重要的事情需要考慮:首先,這些實驗需要的計算量要比以往大得多,Uber 這幾篇新論文中的實驗,往往需要在上百個甚至上千個同步的 CPU 集群上運行。不過,對更多 CPU 和 GPU 性能的渴求不應該被看作是對研究的阻礙。長遠來看,把演化算法拓展到大規模並行計算機系統上有很好的便捷性,也就意味著神經演化很有可能是最能在未來世界中佔到好處的算法。
這些新結果和以往在低維神經演化研究中得到的結果大有不同,它們推翻了這些年以來人們對神經演化的直覺,尤其為高維空間的搜索帶來了全新的啟示。就像人們在深度學習中發現的一樣,一旦方法的複雜度超過了某個閾值,高維空間的搜索好像反倒更容易了,因為它對局部極小值不再那麼敏感了。深度學習領域的研究者們當然已經對這種思考方法習以為常,不過神經演化領域的研究者們還只是剛剛開始消化這些見解。
舊算法和現代的海量計算能力結合起來就可以帶來好得令人驚訝的結果,神經演化的重新復興就是又一個有力的例子。神經演化方法的活力也很讓人感興趣,因為神經演化研究界開發出的許多技巧可以直接用在深度神經網絡尺度的網絡中,為有挑戰性的問題帶來各種各樣的工具。更進一步地,正如 Uber AI 在論文中展示的,神經演化的搜索方法和 SGD 的搜索方法不一樣,從而也給機器學習的各種方法裡新增了一個有趣的替代方案。Uber AI 已經開始琢磨神經演化會不會像深度學習那樣迎來一次全面復興,如果能的話,2017 年就會是這個時代的元年,而他們也非常期待在未來的幾年裡神經演化領域還能產生哪些精彩成果。
《Deep Neuroevolution: Genetic Algorithms are a Competitive Alternative for Training Deep Neural Networks for Reinforcement Learning》
https://arxiv.org/abs/1712.06567
深度神經進化:在強化學習中,基因算法是訓練深度神經網絡的有競爭力的替代方案
重點內容概要:
用一個簡單、傳統、基於群落的基因算法 GA(genetic algorithm)就可以讓深度神經網絡進化,並且在有難度的強化學習任務中發揮良好表現。在 Atari 遊戲中,基因算法的表現和進化策略 ES(evolution strategies)以及基於 Q-learning(DQN)和策略梯度的深度強化學習算法表現一樣好。
深度基因算法「Deep GA」可以成功讓具有超過四百萬個自由參數的網絡進化,這也是有史以來用傳統進化算法進化出的最大的神經網絡。
論文中展現出一個有意思的現象:如果想要優化模型表現,在某些情況下沿著梯度走並不是最佳選擇
新穎性搜索算法(Novelty Search)是一種探索算法,它適合處理反饋函數帶有欺騙性、或者反饋函數稀疏的情況。把它和深度神經網絡結合起來,就可以解決一般的反饋最大化算法(比如基因算法 GA 和進化策略 ES)無法起效的帶有欺騙性的高維度問題。
論文中也體現出,深度基因算法「Deep GA」具有比進化策略 ES、A3C、DQN 更好的並行性能,那麼也就有比它們更快的運行速度。這也就帶來了頂級的編碼壓縮能力,可以用幾千個字節表示帶有數百萬個參數的深度神經網絡。
論文中還嘗試了在 Atari 上做隨機搜索實驗。令人驚訝的是,在某些遊戲中隨機搜索的表現遠遠好於 DQN、A3C 和進化策略 ES,不過隨機搜索的表現總還是不如基因算法 GA。
《Safe Mutations for Deep and Recurrent Neural Networks through Output Gradients》
https://arxiv.org/abs/1712.06563
通過輸出梯度在深度神經網絡和循環神經網絡中安全地進行突變
重點內容概要:
藉助梯度的安全突變 SM-G(Safe mutations through gradients)可以大幅度提升大規模、深度、循環網絡中的突變的效果,方法是測量某些特定的連接權重發生改變時網絡的敏感程度如何。
計算輸出關於權重的梯度,而不是像傳統深度學習那樣計算訓練誤差或者損失函數的梯度,這可以讓隨機的更新步驟也變得安全、帶有探索性。
以上兩種安全突變的過程都不要增加新的嘗試或者推演過程。
實驗結果:深度神經網絡(超過 100 層)和大規模循環神經網絡只通過藉助梯度的安全突變 SM-G 的變體就可以高效地進化。
《On the Relationship Between the OpenAI Evolution Strategy and Stochastic Gradient Descent》
https://arxiv.org/abs/1712.06564
對 OpenAI 的進化策略和隨機梯度下降之間的關係的討論
重點內容概要:
在 MNIST 數據集上的不同測試條件下,把進化策略 ES 近似計算出的梯度和隨機梯度下降 SGD 精確計算出的梯度進行對比,以此為基礎討論了進化策略 ES 和 SGD 之間的關係。
開發了快速的代理方法,可以預測不同群落大小下進化策略 ES 的預期表現
介紹並展示了多種不同的方法用於加速以及提高進化策略 ES 的表現。
受限擾動的進化策略 ES 在並行化的基礎設施上可以大幅運行速度。
把為 SGD 設計的 mini-batch 這種使用慣例替換為專門設計的進化策略 ES 方法:無 mini-batch 的進化策略 ES,它可以改進對梯度的估計。這種做法中會在算法的每次迭代中,把整個訓練 batch 的一個隨機子集分配給進化策略 ES 群落中的每一個成員。這種專門為進化策略 ES 設計的方法在同等計算量下可以提高進化策略 ES 的準確度,而且學習曲線即便和 SGD 相比都要順滑得多。
在測試中,無 mini-batch 的進化策略 ES 達到了 99% 準確率,這是進化方法在這項有監督學習任務中取得的最好表現。
以上種種結果都可以表明在強化學習任務中進化策略 ES 比 SGD 更有優勢。與有監督學習任務相比,強化學習任務中與環境交互、試錯得到的關於模型表現目標的梯度信息的信息量要更少,而這樣的環境就更適合進化策略 ES。
《ES Is More Than Just a Traditional Finite Difference Approximator》
https://arxiv.org/abs/1712.06568
進化策略遠不止是一個傳統的帶來有限個結果的近似方法
重點內容概要:
提出了進化策略 ES 和傳統產生有限個結果的方法的一個重大區別,即進化策略 ES 優化的是數個解決方案的最優分布(而不是單獨一個最優解決方案)。
得到了一個有意思的結果:進化策略 ES 找到的解決方案對參數擾動有很好的健壯性。比如,作者們通過仿人類步行實驗體現出,進化策略 ES 找到的解決方案要比基因算法 GA 和信賴域策略優化 TRPO 找到的類似解決方案對參數擾動的健壯性強得多。
另一個有意思的結果:進化策略 ES 在傳統方法容易困在局部極小值的問題中往往會有很好的表現,反過來說也是。作者們通過幾個例子展示出了進化策略 ES 和傳統的跟隨梯度的方法之間的不同特性。
《Improving Exploration in Evolution Strategies for Deep Reinforcement Learning via a Population of Novelty-Seeking Agents》
https://arxiv.org/abs/1712.06560
通過一個尋找新穎性的智能體群落,改進用於深度強化學習的進化策略的探索能力
重點內容概要:
對進化策略 ES 做了改進,讓它可以更好地進行深度探索
通過形成群落的探索智能體提高小尺度神經網絡進化的探索的算法,尤其是新穎性搜索算法(novelty search)和質量多樣性算法(quality diversity),可以和進化策略 ES 組合到一起,提高它在稀疏的或者欺騙性的深度強化學習任務中的表現,同時還能夠保持同等的可拓展性。
確認了組合之後得到的新算法新穎性搜索進化策略 NS-ES 和質量多樣性進化策略 QD-ES 的變體 NSR-ES 可以避開進化策略 ES 會遇到的局部最優,並在多個不同的任務中取得更好的表現,包括從模擬機器人在欺騙性的陷阱附近走路,到玩高維的、輸入圖像輸出動作的 Atari 遊戲等多種任務。
這一基於群落的探索算法新家庭現在已經加入了深度強化學習工具包。
via Uber Engineering Blog,雷鋒網(公眾號:雷鋒網) AI 科技評論編譯
相關文章:
即使自動駕駛前途未卜,Uber還是建了一座模擬城市進行測試
Uber博客剛剛發文:展示其自動駕駛中的可視化工具
進化算法可以不再需要計算集群,開普敦大學的新方法用一塊GPU也能刷新MNIST記錄
谷歌最新研究成果:手工搭建神經網絡太費勁?來試試精確度高達94.1%的進化算法
雷鋒網版權文章,未經授權禁止轉載。詳情見轉載須知。