AutoML新進展:用進化算法發現神經網絡架構

2020-12-05 IT168

  【IT168 編譯】大腦的進化進程持續已久,從5億年前的蠕蟲大腦到現如今各種現代結構。例如,人類的大腦可以完成各種各樣的活動,其中許多活動都是毫不費力的。例如,分辨一個視覺場景中是否包含動物或建築物對我們來說是微不足道的。為了執行這些活動,人工神經網絡需要專家經過多年的艱難研究仔細設計,並且通常需要處理一項特定任務,例如查找照片中的內容,稱為遺傳變異,或幫助診斷疾病。理想情況下,人們會希望有一個自動化的方法來為任何給定的任務生成正確的架構。

  如果神經網要完成這項任務,則需要專家經過多年研究以後進行精心的設計,才能解決一項專門的任務,比如發現照片中存在的物體,發現基因變異,或者幫助診斷疾病。理想情況下,人們希望有一個自動化的方法可以為任何給定的任務生成正確的網絡結構。

  生成這些網絡結構的方法之一是通過使用演化算法。傳統的拓撲學研究已經為這個任務奠定了基礎,使我們現如今能夠大規模應用這些算法,許多科研團隊正在研究這個課題,包括OpenAI、Uber實驗室、Sentient驗室和DeepMind。當然,谷歌大腦也一直在思考自動學習(AutoML)的工作。

  除了基於學習的方法(例如強化學習)之外,我們想知道是否可以使用我們的計算資源以前所未有的規模進行圖像分類器的編程演化。我們能否以最少的專家參與達成解決方案,今天的人工進化神經網絡能有多好的表現呢?我們通過兩篇論文來解決這些問題。

  在ICML 2017上發表的「圖像分類器的大規模演化」中,我們用簡單的構建模塊和初始條件建立了一個演化過程。這個想法簡單的說就是「從頭開始」,讓規模的演化做構建工作。從非常簡單的網絡開始,該過程發現分類器與當時手動設計的模型相當。這是令人鼓舞的,因為許多應用程式可能需要很少用戶參與。

  例如,一些用戶可能需要更好的模型,但可能沒有時間成為機器學習專家。接下來要考慮的一個自然問題是手工設計和進化的組合是否可以比單獨的任何一種方法做得更好。因此,在我們最近的論文「圖像分類器體系結構搜索的正則化演化」(2018年)中,我們通過提供複雜的構建模塊和良好的初始條件(下面討論)參與了該過程。而且,我們使用Google的新TPUv2晶片擴大了計算範圍。對現代硬體、專家知識和進化的結合共同產生了CIFAR-10和ImageNet兩種流行的圖像分類基準的最新模型。

  一個簡單的方法

  以下是我們第一篇論文的一個實驗例子。

  在下圖中,每個點都是在CIFAR-10數據集上訓練的神經網絡,通常用於訓練圖像分類器。每個點都是一個神經網絡,這個網絡在一個常用的圖像分類數據集(CIRAR-10)上進行了訓練。最初,人口由1000個相同的簡單種子模型組成(沒有隱藏層)。從簡單的種子模型開始非常重要,如果我們從初始條件包含專家知識的高質量模型開始,那麼最終獲得高質量模型會更容易。一旦用簡單的模型開始,該過程就會逐步推進。在每一步中,隨機選擇一對神經網絡。選擇更高精度的網絡作為父類,並通過複製和變異生成子節點,然後將其添加到群體中,而另一個神經網絡會消失。所有其他網絡在此步驟中保持不變。隨著許多這樣的步驟陸續得到應用,整個網絡就會像人類的進化一樣。

  進化實驗進程。每個點代表 population 中的一個元素。這四個列表是發現架構的示例,這些結構對應最好的個體(最右邊,根據驗證準確性篩選)和其三個 ancestor

  綜上所述,儘管我們通過簡單的初始架構和直觀的突變來最小化處理研究人員的參與,但大量專家知識進入了構建這些架構的構建塊之中。其中一些包括重要的發明,如卷積、ReLUs和批處理的歸一化層。我們正在發展一個由這些組件構成的體系結構。 「體系結構」這個術語並不是偶然的:這與構建高質量的磚房相似。

  結合進化和手工設計

  在我們的第一篇論文後,我們希望通過給算法提供更少的選擇來減少搜索空間,使其更易於管理。使用我們的架構推導,我們從搜索空間去掉了製作大規模錯誤的所有可能的方法,例如蓋房子,我們把牆放在屋頂上的可能性去除了。與神經網絡結構搜索類似,通過修復網絡的大規模結構,我們可以幫助算法解決問題。那麼如何做到這一點? Zoph等人引入了用於架構搜索的初始模塊。已經證明非常強大。他們的想法是有一堆稱為細胞的重複單元。堆棧是固定的,但各個模塊的體系架構是可以改變的。

  Zophet al. 中引入的構建模塊。圖左表示整個神經網絡對外部結構,其通過重複的單元從下到上解析輸入數據。右圖單元格的內部結構。該實驗的目的是發現能批生成高精度網絡的單元

  在我們的第二篇論文「圖像分類器體系結構搜索的正則化演化」(2018)中,我們介紹了將演化算法應用於上述搜索空間的結果。突變通過隨機重新連接輸入(圖中右側箭頭)或隨機替換操作來修改單元格(例如,它們可以替換圖中的「最大3x3」像素塊)。這些突變相對簡單,但最初的條件並不相同:現在的整體已經可以用模型進行初始化,這些模型必須符合由專家設計的細胞結構。

  儘管這些種子模型中的單元是隨機的,但我們不再從簡單模型開始,這使得最終獲得高質量模型變得更容易。如果演化算法的貢獻有意義,那麼,最終的網絡應該比我們已經知道可以在這個搜索空間內構建的網絡好得多。我們的論文表明,演化確實可以找到與手工設計相匹配或超越手藝設計的最先進模型。

  控制變量比較法

  即使突變/選擇進化過程並不複雜,也許更直接的方法(如隨機搜索)也可以做到這一點。其他選擇雖然不簡單,但也存在於文獻中(如強化學習)。正因為如此,我們的第二篇論文的主要目的是提供技術之間的控制變量比較。

  使用演化法、強化學習和隨機搜索法進行架構搜索結果對比。這些實驗在 CIFAR-10 數據集上完成,條件與 Zophet al. 相同,他們使用強化學習進行空間搜索。

  上圖比較了進化、強化學習和隨機搜索。在左邊,每條曲線代表一個實驗的進展,表明在搜索的早期階段進化比強化學習更快。這很重要,因為計算能力較低,實驗可能不得不提前停止。

  此外,演變對數據集或搜索空間的變化具有魯棒性。總的來說,這種對照比較的目標是為研究界提供計算昂貴的實驗結果。在這樣做的過程中,我們希望通過提供不同搜索算法之間關係的案例研究來促進每個人的架構搜索。例如,上圖顯示,使用更少的浮點運算時,通過進化獲取的最終模型可以達到非常高的精度。

  我們在第二篇論文中使用的進化算法的一個重要特徵是正則化的形式:不是讓最壞的神經網絡死掉,而是刪除最老的一個,無論它們有多好。這改善了正在優化的任務變化的魯棒性,並最終趨於產生更準確的網絡。其中一個原因可能是因為我們不允許權重繼承,所有的網絡都必須從頭開始訓練。因此,這種正則化形式選擇在重新訓練時仍然保持良好的網絡。換句話說,因為一個模型可能會更準確一些,訓練過程中的噪聲意味著即使是相同的體系結構也可能會得到不同的準確度值。只有在幾代中保持準確的體系結構才能長期存活,從而選擇重新訓練良好的網絡。篇猜想的更多細節可以在論文中找到。

  我們發展的最先進的模型被命名為AmoebaNets,是我們AutoML努力的最新成果之一。所有這些實驗通過使用幾百個的GPU/TPU進行了大量的計算。就像一臺現代計算機可以勝過數千年前的機器一樣,我們希望將來這些實驗能成為家用。這裡我們旨在提供對未來的一願。

  原文地址:

  https://research.googleblog.com/2018/03/using-evolutionary-automl-to-discover.html

相關焦點

  • 谷歌AutoML新進展,進化算法加持,僅用數學運算自動找出ML算法
    與此同時,這一領域研究中遇到的困難又催生了 AutoML,AutoML 旨在實現 ML 算法的自動化設計。目前,AutoML 主要通過結合複雜的手動設計組件來開發解決方案。神經架構搜索就是一個典型的示例,在這個子域中,研究人員基於複雜層(如卷積、批歸一化和 dropout)來自動構建神經網絡。
  • CVPR 2019 神經網絡架構搜索進展綜述
    (註:「博士生下降」英文為Grad Student Descent,簡單而言就是「找一個博士生,讓他不斷調參,直到算法工作」。這種說法歪曲自深度學習的Gradient Descent算法,僅作調侃)現在呢,我很想驕傲地宣布——「天天調參的鬼日子結束了!」——但是還為時過早。手動調參尋找神經網絡架構依然是個有趣的工作,尤其是對於那些帶了很多學生的導師而言(開玩笑啦~)。
  • 解讀| 如何用進化方法優化大規模圖像分類神經網絡?
    進化算法(evolutionary algorithms)提供了一種能夠自動發現這類網絡的技術。儘管其計算需求顯著,但是設計出能與大型人工設計的架構相媲美的進化模型如今已非天方夜譚。我們以空前的規模採用了簡單的進化技術,並從平凡的初始條件出發,來發現可用於 CIFAR-10 和 CIFAR-100 數據集的模型。
  • 74KB圖片也高清,谷歌用神經網絡打造圖像壓縮新算法
    最新的好消息是,谷歌團隊採用了一種GANs與基於神經網絡的壓縮算法相結合的圖像壓縮方式HiFiC,在碼率高度壓縮的情況下,仍能對圖像高保真還原。GAN(Generative Adversarial Networks,生成式對抗網絡)顧名思義,系統讓兩個神經網絡相互「磨鍊」,一個神經網絡負責生成接近真實的數據,另一個神經網絡負責區分真實數據與生成的數據。
  • 谷歌大腦開源項目 AutoML-Zero:用數學運算能探索出機器學習算法
    近年來,機器學習取得了巨大的成功,這些成功得益於機器學習算法的不斷優化,例如深度神經網絡。深度神經網絡在不斷發現問題和解決問題的過程中又推動了 AutoML 的發展。到目前為止,AutoML 一直致力於通過組合複雜的手工設計組件來構建解決方案。
  • 如何用自動機器學習實現神經網絡進化
    對大多數從事機器學習工作的人來說,設計一個神經網絡無異於製作一項藝術作品。神經網絡通常始於一個常見的架構,然後我們需要對參數不斷地進行調整和優化,直到找到一個好的組合層、激活函數、正則化器和優化參數。在一些知名的神經網絡架構,如VGG、Inception、ResNets、DenseNets等的指導下,我們需要對網絡的變量進行重複的操作,直到網絡達到我們期望的速度與準確度。
  • 告別調參煉丹,谷歌「權重無關」神經網絡開源了!
    當訓練神經網絡完成一項給定任務時,無論是圖像分類還是強化學習,通常都需要調優與網絡中每個連接相關的一組權重。另一種已經取得實質性進展的成功的神經網絡創建方法是神經架構搜索,它利用人工設計的組件(如卷積網絡組件或transformer blocks)來構建神經網絡架構。
  • 前沿| 利用遺傳算法優化神經網絡:Uber提出深度學習訓練新方式
    許多人認為,SGD 算法有效計算梯度的能力對於這種訓練能力而言至關重要。但是,Uber 近日發布的五篇論文表明,神經進化(neuroevolution)這種利用遺傳算法的神經網絡優化策略,也是訓練深度神經網絡解決強化學習(RL)問題的有效方法。
  • 谷歌和OpenAI新研究:如何使用達爾文進化論輔助設計人工智慧算法?
    30 年的發展取得了一些優秀成果,大多數腦啟發人工智慧技術的進展都圍繞著「神經網絡」,這一術語借用自神經生物學,其把機器思考描述為被稱作「神經元」的互相連接的數學函數中的數據流動。但是自然界也有其他好想法:現在計算機科學家正再次踏入生物進化這一研究領域,希望通過在人工智慧中植入生物進化元素的方式開發出更智能更有效的算法,恰如數十億年來生物進化塑造了人類大腦一樣。
  • 人工智慧神經網絡和生物大腦有什麼區別 神經網絡將如何發展
    正在進行有關無監督或自我監督的AI算法的研究,這些算法可以在很少或沒有人類指導的情況下學習表示。但是結果是非常基本的,低於監督學習所取得的結果。為什麼無監督學習是不夠的「可以想像,無監督學習,利用比尚未發現的算法更強大的算法,可以在建立感官表現和駕駛行為方面發揮作用。
  • 神經進化:一種不一樣的深度學習
    換句話說,神經進化算法只在遺傳編碼上操作,而不是在機器學習框架中複雜的數據結構上操作。當然,基因編碼允許這兩種表示之間存在映射關係。基因組的這些有效的遺傳表示被稱為基因型(genotypes),而相應映射的神經網絡被稱為顯型(phenotypes)。這兩個術語是從遺傳進化學科中化用的。畢竟神經進化也稱的上是遺傳進化。另外注意,這裡將所有顯型都限制為神經網絡。
  • 神經網絡算法原理_神經網絡算法的應用_神經網絡算法實例說明
    神經網絡算法原理   由於神經網絡算法的設計面太大,我們此處暫且只分析Microsoft神經網絡算法的原理,在Microsoft神經網絡算法中,我們可以簡化成下面這個圖片:   對那些受到懲罰的節點而說,也用同樣的方法來懲罰它前面的節點,直到輸入節點而止。這種稱為:回饋。 而我們學習的過程就是重複上面的介紹的流程,通過前向傳播得到輸入值,用回饋法進行學習。當把訓練集中的所有數據運行過一遍之後,則稱為一個訓練周期。訓練後得到神經網絡模型,包含了訓練集中相應值和受預測值影響變化的規律。
  • AutoML : 更有效地設計神經網絡模型
    在本文中,我們將介紹AutoML的以下內容:關於AutoKeras的一個簡短介紹通過AutoKeras這個神經架構搜索算法,我們可以找到最好的神經網絡架構,比如層中神經元的數量,架構的層數,加入哪些層,層的特定參數,比如Dropout中的濾波器大小或掉落神經元的百分比等等。
  • 【深度】機器學習進化史:從線性模型到神經網絡
    神經網絡其實算是上世紀80年代的技術,一些人甚至認為它起源於上世紀60年代,得益於計算機視覺的技術的最新進展,讓(卷積)神經網絡的使用顯得卓有成效。事實上,神經網絡已經開始在其他應用上「大展宏圖」,包括自然語言處理和機器翻譯等領域。但是有一個問題:在所有提及的機器學習分布式模型中,神經網絡可能是最具挑戰性的。那些早期模型都已經訓練成功被分布。
  • ICML 2020|提升神經網絡架構搜索穩定性,UCLA提出新型NAS算法
    機器之心專欄作者:陳相寧可微網絡架構搜索能夠大幅縮短搜索時間,但是穩定性不足。為此,UCLA 基於隨機平滑(random smoothing)和對抗訓練(adversarial training),提出新型 NAS 算法。可微網絡架構搜索(DARTS)能夠大幅縮短搜索時間,但是其穩定性受到質疑。
  • 谷歌大腦提出AutoML-Zero,只會數學運算就能找到AI算法|開源
    雖說是自動,但現階段的AutoML還要對搜索空間進行很大的限制,這使我們在使用AutoML的時候仍然需要一些專業知識去設計神經網絡的層。谷歌的目標是讓AutoML可以走得更遠,僅僅使用基本的數學運算作為構建塊,就可以自動發現完整的機器學習算法,進一步降低機器學習的門檻。
  • TPU加AutoML:50美元快速訓練高效的ImageNet圖像分類網絡
    昨日,Jeff Dean 在推特上表示他們在 ImageNet 圖像分類上發布了新的 DAWNBench 結果,新型 AmoebaNet-D 網絡在 TPU 上實現了最低的訓練時間和最少的訓練成本。在這一個基準測試上,基於進化策略的 DAWNBench 要比殘差網絡效果更好,且訓練成本降低了一倍。
  • Nature子刊批人工神經網絡:先天結構比後天訓練更重要
    用Yann Lecun的話說:「如果智能是一塊蛋糕,那麼大部分蛋糕都是無監督學習,蛋糕上的花就是監督學習,蛋糕上的櫻桃就是強化學習。」由於無監督算法不需要標記數據,因此它們可能會利用我們收到的大量原始未標記的感知數據。實際上,有幾種無監督算法產生的表示讓人聯想到那些在視覺系統中發現的表示。
  • 算法之「算法」:所有機器學習算法都可以表示為神經網絡
    圖源:unsplash大概從20世紀50年代的早期研究開始,機器學習的所有工作就都是隨著神經網絡的創建積累而來的。隨後出現了一個又一個新算法,從邏輯回歸到支持向量機。但是眾所周知,神經網絡是算法的算法及機器學習的巔峰。
  • 如何高效快速準確地完成ML任務,這4個AutoML庫了解一下
    更多 AutoSklearn 相關文檔請查閱:https://automl.github.io/auto-sklearn/master/。TPOTTPOT 是另一種基於 Python 的自動機器學習開發工具,該工具更關注數據準備、建模算法和模型超參數。