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