前沿 | 利用遺傳算法優化神經網絡:Uber提出深度學習訓練新方式

在深度學習領域,對於具有上百萬個連接的多層深度神經網絡(DNN),現在往往通過隨機梯度下降(SGD)算法進行常規訓練。許多人認爲,SGD 算法有效計算梯度的能力對於這種訓練能力而言至關重要。但是,Uber 近日發佈的五篇論文表明,神經進化(neuroevolution)這種利用遺傳算法的神經網絡優化策略,也是訓練深度神經網絡解決強化學習(RL)問題的有效方法。

Uber 涉及領域廣泛,其中許多領域都可以利用機器學習改進其運作。開發包括神經進化在內的各種有力的學習方法將幫助 Uber 發展更安全、更可靠的運輸方案。

遺傳算法——訓練深度學習網絡的有力競爭者

我們驚訝地發現,通過使用我們發明的一種新技術來高效演化 DNN,一個極其簡單的遺傳算法(GA)可以訓練含有超過 400 萬參數的深度卷積網絡,從而可以在像素級別上玩 Atari 遊戲;而且,它能在許多遊戲中比現代深度強化學習(RL)算法(例如 DQN 和 A3C)或進化策略(ES)表現得更好,同時由於更好的並行化能達到更快的速度。這個結果非常出乎意料:遺傳算法並非基於梯度進行計算,沒人能預料遺傳算法能擴展到如此大的參數空間;而且,使用遺傳算法卻能與最先進的強化學習算法媲美、甚至超過強化學習,這在以前看來是根本不可能的。我們進一步表明,現代遺傳算法的增強功能提高了遺傳算法的能力,例如新穎性搜索(novelty research),它同樣在 DNN 規模上發揮作用,且能夠促進對於欺騙性問題(存在挑戰性局部最優的問題)的探索。要知道,這些欺騙性問題通常對獎勵最優化算法形成障礙,例如 Q 學習(DQN)、策略梯度算法(A3C)、進化策略(ES)以及遺傳算法。

左:遺傳算法在 Frostbite 中得分 10500。DQN、AC3 和 ES 的得分均未超過 1000;右:遺傳算法在 Asteroids 也表現得很好。它的平均表現超越了 DQN 和 ES,但沒有超過 A3C。

通過梯度計算的安全突變

在論文「Safe Mutations for Deep and Recurrent Neural Networks through Output Gradients」中,我們展示瞭如何將神經進化和梯度相結合,以提高循環神經網絡和深度神經網絡的進化能力。這種方法可以使上百層的深度神經網絡成功進化,遠遠超過了以前的神經進化方法所展示的可能性。我們通過計算網絡輸出關於權重的梯度(即,和在傳統深度學習中使用誤差梯度不同)來實現這一點,使得在隨機突變的校準過程中,對最敏感的變量(相比其他變量而言)進行更加精細的處理,從而解決大型網絡中隨機變量的一個主要問題。

這兩個動畫展示了用於解決迷宮問題的單個網絡的一批突變(左下角是起點,左上角是終點)。一般的突變大多不能解決這個問題,但是安全突變很大程度地在產生多樣性的同時保留了解決問題的能力,表明了安全突變的顯著優勢。

ES 如何與 SGD 聯繫起來?

我們的論文對 A Visual Guide to Evolution Strategies(參見「從遺傳算法到 OpenAI 新方向:進化策略工作機制全解」)進行了補充和完善。這是由 OpenAI 團隊首先提出的想法(https://blog.openai.com/evolution-strategies/),即 ES 的變型——神經進化——可以在深度強化學習任務中競爭性地優化深度神經網絡。但是,迄今爲止,這個結果有沒有更廣泛的應用仍然只是猜想。通過進一步創新 ES,我們通過一個綜合研究「On the Relationship Between the OpenAI Evolution Strategy and Stochastic Gradient Descent」深入瞭解 ES 和 SGD 的關聯,探索 ES 梯度近似實際上和在 MNIST 中通過 SGD 在每個 mini-batch 上計算的的最優梯度的聯繫有多緊密,以及這種近似如何導致了優越的性能。我們發現,如果提供足夠的計算來改善梯度近似,ES 能在 MNIST 上實現 99% 的準確率,這暗示着 ES 何以愈發成爲深度強化學習的有力競爭者——因爲在並行計算增加時,還沒有方法能獲得完美的梯度信息。

ES 不只是傳統的有限差分

爲了增加理解,一個伴隨性研究「ES Is More Than Just a Traditional Finite-Difference Approximator」經驗地證實,ES(具有足夠大的擾動尺寸參數)的行爲與 SGD 表現得有差別。這是因爲 ES 優化的是一代策略羣體(由概率分佈描述,即搜索空間中的「雲」)的預期回報,但 SGD 僅爲單一的策略(搜索空間中的「點」)優化回報。這種變化使得 ES 可以訪問搜索空間的不同區域,無論是好是壞(這兩種情況都被示出)。對每代的參數擾動進行優化的另一個結果是,ES 獲得了魯棒性,這是 SGD 不能做到的。強調 ES 優化每代的參數這一做法,同樣強調了 ES 和貝葉斯算法中的有趣聯繫。

對步行者進行重量的隨機擾動,TRPO 訓練的步行者會產生明顯的不穩定步態,而 ES 進化的步行者步態顯得更加穩定。初始的訓練步行者位於每個 9 幀合成的中心(綠框)。

傳統的有限差分(梯度下降)不能跨越低適合度(fitness)的窄縫,但 ES 能容易地穿過並尋找另一側的更高適合度。

ES 會在高適合度的窄縫中慢慢停止,但傳統的有限差分(梯度下降)會毫無停頓地通過相同的路徑。這與前面的動畫一起說明了兩種不同方法的區別和權衡。

加強對 ES 的探索

深度神經進化有一個令人興奮的結果:之前爲神經進化開發的工具集,現在成爲了加強深度神經網絡訓練的候選者。我們通過引入新的算法「Improving Exploration in Evolution Strategies for Deep Reinforcement Learning via a Population of Novelty-Seeking Agents」進行探索,這種算法將 ES 的優化能力和可擴展性與神經進化所獨有的、通過羣體激勵將不同智能體區別開的促進強化學習領域的探索結合起來。這種基於羣體的探索有別於強化學習中單一智能體傳統,包括最近在深度強化學習領域的探究工作。我們的實驗表明,通過增加這種新的探索方式,能夠提高 ES 在許多需要探索的領域(包括一些 Atari 遊戲和 Mujoco 模擬器中的類人動作任務)的性能,從而避免欺騙性的局部最優。

通過使用我們的超參數,ES 迅速收斂到局部最優,即不需要再次吸入氧氣,因爲吸入氧氣暫時不能獲得獎勵。但是,通過探索,它學會了如何吸入氧氣,從而在未來獲得更高的獎勵。請注意,Salimans et al. 2017 並沒有報道 ES,根據他們的超參數,他們能夠實現特定的局部最優。但是,就像我們所展示的,沒有 ES,它很容易無限期地困在某些局部最優處(而那個探索能夠幫助它跳出局部最優)。

智能體需要學着跑得儘可能遠。ES 從未學過避免欺騙性的陷阱。但是,通過添加一個探索壓力,其中一個學會了繞過陷阱。

結論

對有志於轉向深度神經網絡的神經進化研究人員,有幾個重要因素值得考慮:首先,這種類型的實驗需要的計算量比以前更多;對於這些新論文中的實驗,我們經常需要運行成百上千個同步 CPU。但是,對 GPU 或 CPU 的需求不應該被視爲一個負擔;從長遠來看,面對即將到來的世界,向大規模並行計算中心的規模變化也許意味着神經進化最能利用未來的優勢。

新的結果與之前在低維神經進化中觀察到的結果有顯著差異。它們有效推翻了多年來的直覺,特別是對高維度探索的潛力的啓發。正如在深度學習中發現的那樣,在複雜性的某些閾值之上,在高維度的搜索似乎變得更加容易,因爲它不易受到局部最優的影響。雖然深度學習已經對這種思維方式非常熟悉,但它的含義最近纔在神經進化當中開始被理解。

神經進化的再度興起,是舊算法與當代計算量相結合產生驚人成果的另一個例子。神經進化的可行性非常有趣,因爲在神經進化社區中開發的許多技術可以立即在 DNN 規模上變得可行,它們每個都提供了不同工具以解決具有挑戰性的問題。此外,正如我們的論文所展示的,神經進化搜索與 SGD 不同,因此爲機器學習工具箱提供了有趣的替代方法。我們想知道,深度神經進化是否會像深度學習一樣經歷復興。如果是這樣,2017 年可能標誌着這個時代的開始,我們也非常期待未來會發生什麼!

下面是我們今天發佈的 5 篇論文及關鍵發現的總結:

  • Deep Neuroevolution: Genetic Algorithms are a Competitive Alternative for Training Deep Neural Networks for Reinforcement Learning

  • 用簡單、傳統、基於羣體的遺傳算法演化 DNN,在困難的深度強化學習問題上表現良好。在 Atari 遊戲中,遺傳算法表現良好,與 ES 以及基於 Q 學習(DQN)和政策梯度算法(A3C)的深度強化學習算法表現相當。

  • 「深度遺傳算法(Deep GA)」成功演化了有着 400 萬自由參數的網絡,這是通過一個傳統的進化算法演化的最大的神經網絡。

  • 表明了一個有趣的事實:在某些情況下,根據梯度更新不是優化性能的最佳選擇。

  • 將 DNN 和新穎性搜索(Novelty Search)相結合,這種探索算法被設計用於欺騙性任務和稀疏獎勵函數,以解決欺騙性的高維問題。其中,獎勵最大化算法(例如 GA 和 ES)都在這類問題中失敗了。

  • 表明 Deep GA 的並行度優於 DQN、A3C 和 ES,因此運行比它們都快。可實現當前最先進的緊湊編碼技術,只用幾千字節就可以表示百萬量級參數的 DNN。

  • 包含在 Atari 中隨機搜索的結果。令人驚訝的是,在一些遊戲中,隨機搜索大大優於 DQN、A3C 和 ES,不過它從沒有超過 GA。

令人驚訝的是,在一個 DNN 中,隨機搜索能比 DQN、A3C 和 ES 在 Frostbite 遊戲中表現得更好,但是還是不能超過 GA。

  • Safe Mutations for Deep and Recurrent Neural Networks through Output Gradients

  • 通過測量網絡敏感性改變特定連接權重,基於梯度的安全突變(SM-G)極大提高了大型深度循環網絡突變的效率。

  • 計算關於權重的「輸出」梯度,而非如常規深度學習中誤差或損失函數的梯度,以允許隨機但安全的搜索步驟。

  • 這兩種安全突變都不需要在領域當中的額外實驗或展示。

  • 結果:深層神經網絡(超過 100 層)和大型循環網絡現在只能通過 SM-G 的各種變形有效演化。

  • On the Relationship Between the OpenAI Evolution Strategy and Stochastic Gradient Descent

  • 通過比較不同情況下由 ES 計算的近似梯度和由 SGD 在 MNIST 中計算的準確梯度探究 ES 和 SGD 的關係。

  • 開發快速代理,預測不同羣體規模的 ES 預期表現。

  • 介紹並演示不同加速和改善 ES 性能的方法。

  • 有限擾動 ES(Limited perturbation ES)顯著加快了在並行基礎設施上的執行速度。

  • 「No-mini-batch ES」把針對 SGD 設計 mini-batch 傳統替換爲適用於 ES 的不同方法,從而改進梯度估計:這是這樣一種算法,它在算法的每次迭代中,將整個訓練批的一個隨機子集分配給 ES 羣體當中的每個成員。這種專用於 ES 的方法在等效計算的情況下提供了更好的準確度,且學習曲線甚至比 SGD 更加平滑。

  • 「No-mini-batch ES」在測試運行中達到了 99% 的準確率,這是在本次監督學習任務中,進化方法的最佳報告性能。

  • 總體上有助於說明爲什麼 ES 能在強化學習中成爲有力競爭者。通過搜索域的實驗獲得的梯度信息與監督學習的性能目標相比,信息量更少。

  • ES Is More Than Just a Traditional Finite Difference Approximator

  • 強調 ES 和傳統有限差分方法之間的重要區別,即 ES 優化的是最佳解決方案的分佈函數(而非單個最佳的解決方案)。

  • 一個有趣的結果:由 ES 發現的解決方案傾向於在參數擾動上保持魯棒性。例如,我們表明 ES 的仿人類行走解決方案比 GA 和 TRPO 實現的類似解決方案對參數擾動的魯棒性更強。

  • 另一個重要結果:ES 可能可以解決傳統方法困擾的一些問題,反之亦然。通過簡單的例子說明 ES 和傳統梯度跟隨之間的不同動力學。

  • Improving Exploration in Evolution Strategies for Deep Reinforcement Learning via a Population of Novelty-Seeking Agents

  • 增加在 ES 中鼓勵深度探索的能力。

  • 表明通過探究不同代的智能體羣體並用於促進小規模進化神經網絡中的探索性算法——特別是新穎性搜索(NS)和質量多樣性(QD)算法——能與 ES 結合,從而改善在稀疏或欺騙性深度強化學習任務當中的表現。

  • 證實由此產生的新算法——NS-ES 和一個稱爲 NSR-ES 的 QD-ES 版本——能夠避免 ES 所遭遇的局部最優問題,從而在某些任務中達到高性能。這些任務包括,模擬機器人學習繞過欺騙性陷阱達到高性能,以及 Atari 遊戲當中的高維像素任務。

  • 將這個基於羣體的搜索算法系列添加到深度強化學習工具箱中。

原文鏈接:https://eng.uber.com/deep-neuroevolution/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章