當前位置:
首頁 > 科技 > 業界 | 進化演算法 + AutoML,谷歌提出新型神經網路架構搜索方法

業界 | 進化演算法 + AutoML,谷歌提出新型神經網路架構搜索方法


選自

Google Research Blog


作者:

Esteban Real


機器之心編譯


參與:劉曉坤、路雪、李亞洲





通過在 AutoML 中結合進化演算法執行架構搜索,谷歌開發出了當前最佳的圖像分類模型 AmoebaNet。本文是谷歌對該神經網路架構搜索演算法的技術解讀,其中涉及兩篇論文,分別是《Large-Scale Evolution of Image Classifiers》和《Regularized Evolution for Image Classifier Architecture Search》。




從 5 億年前的超簡單的蠕蟲腦到今天的各種各樣的現代結構,大腦經歷了漫長的進化過程。例如,人類大

腦可以指導完成非常廣泛的活動,大部分活動都能輕而易舉地完成,例如辨別一個視覺場景中是否包含動物或建築對我們來說是很簡單的事。而要執行類似的活動,人工神經網路需要專家數年的艱苦研究、精心設計,且通常只能執行單個具體的任務,例如識別照片中的目標、調用遺傳變異,或者幫助診斷疾病等。人們希望擁有自動化的方法,為任意給定的任務生成合適的網路架構。




使用進化演算法生成這些架構是其中一種方法。傳統的拓撲神經進化研究(如《Evolving Neural Networks through Augmenting Topologies》Stanley and Miikkulainen,2002)為大規模應用進化演算法奠定了基礎,很多團隊都在研究這個主題,例如 OpenAI、Uber Labs、Sentient Labs 和 DeepMind。當然,Google Brain 團隊也在嘗試用 AutoML 執行架構搜索。除了基於學習的方法(如強化學習),谷歌想了解使用谷歌的計算資源以前所未有的規模來程序化地演化圖像分類器,會得到什麼樣的結果。可以用最少的專家參與獲得足夠好的解決方案嗎?目前的人工進化神經網路能達到什麼樣的程度?谷歌通過兩篇論文來解決這個問題。


在 ICML 2017 大會中展示的論文《Large-Scale Evolution of Image Classifiers》中,谷歌用簡單的構建模塊和常用的初始條件設置了一個進化過程。其主要思想是讓人「袖手旁觀」,讓進化演算法大規模構建網路架構。當時,從非常簡單的網路開始,該過程可以找到與手動設計模型性能相當的分類器。這個結果振奮人心,因為很多應用可能需要較少的用戶參與。例如,一些用戶可能需要更好的模型,但沒有足夠的時間成為機器學習專家。接下來要考慮的問題自然就是手動設計和進化的組合能不能獲得比單獨使用一個方法更好的結果。因此,在近期論文《Regularized Evolution for Image Classifier Architecture Search》(2018)中,谷歌通過提供複雜的構建模塊和較好的初始條件(參見下文)來參與進化過程。此外,谷歌還使用其新型 TPUv2 晶元來擴大計算規模。通過現代硬體、專家知識和進化過程的組合,谷歌獲得了在兩個流行的圖像分類基準 CIFAR-10 和 ImageNet 上的當前最優模型。


簡單方法

接下來我們介紹第一篇論文中的一個例子。下圖中,每個點都是一個在 CIFAR-10 數據集(通常用於訓練圖像分類器)上訓練的神經網路。在初始階段,該群體中有 1000 個相同的簡單種子模型(沒有隱藏層)。從簡單的種子模型開始非常重要:假如從初始條件包含專家知識的高質量模型開始,則系統將更容易最終獲得高質量模型。而一旦從簡單的模型開始,進化過程就可以隨時間步逐漸提高模型質量。在每個時間步,進化演算法會隨機選擇一對神經網路,具備更高準確率的網路被選為親代網路,並通過複製和變異獲得子代網路,然後該子代網路被加入原來的群體中,而另一個準確率較低的網路則被移除。在這個時間步內,所有其它的網路都保持不變。通過持續應用多個此類時間步,該群體得以不斷進化。




進化實驗過程。每個點表示群體中的一個個體。四個 diagram 是演算法發現的架構。它們對應最佳個體(最右、通過驗證準確率選出)及其三個 ancestor。



谷歌第一篇論文中的變異設置得很簡單:隨機刪除卷積層,在任意層之間添加 skip connection,或者改變學習率等等。通過這種方式,研究結果證實了進化演算法的潛力,與搜索空間的質量成反比。例如,如果我們使用單個變異,在某一步將一個種子網路變換成 Inception-ResNet 分類器,那麼我們會錯誤地認為該演算法找到了優秀的答案。但是,在那種情況中,我們只能將最終答案硬編碼為複雜的變異,控制輸出。而如果我們堅持使用簡單的變異,則這種情況不會發生,進化演算法能夠真正完成任務。在圖中的實驗中,簡單的變異和選擇過程導致網路隨著時間不斷改進,並達到了很高的測試準確率,且測試集在訓練過程中不曾出現。在這篇論文中,網路可以繼承其親代網路的權重。因此,除了促進架構進化以外,群體可以訓練其網路,同時探索初始條件和學習率調度(learning-rate schedule)的搜索空間。因此,該過程獲得了完全訓練的模型,且該模型具備優化過的超參數。實驗開始後不需要專家輸入。

上述情況中,即使我們通過掌握簡單的初始架構和直觀變異最小化研究人員的參與,這些架構的構建模塊中也存在大量專家知識,包括卷積、ReLU 和批歸一化層等重要創新。谷歌對這些組件構成的架構進行了進化操作。「架構」一詞並非偶然:它就像用高質量磚石建築房屋。


結合進化和手動設計


在第一篇論文發布後,谷歌想通過給予演算法更少探索選擇來減少搜索空間,提高可控性。就像剛才那個關於架構的類比一樣,谷歌去除了搜索空間中所有可能導致大型誤差的方式,比如建築房屋時把牆建在屋頂上。類似地,在神經網路架構搜索方面,固定網路的大尺度結構可以為演算法解決問題提供一定的幫助。例如,Zoph et al. (《Learning Transferable Architectures for Scalable Image Recognition》) 論文中提出的用於架構搜索的類 inception 模塊非常強大。他們想構建一個重複模塊 cell 的深度堆疊結構。該堆疊是固定的,但是單個模塊的架構可以改變。




Zoph et al. (2017) 論文中提到的構建模塊。左側是完整神經網路的外部結構,自下而上地通過一串堆疊的重複 cell 解析輸入數據。右側是 cell 的內部結構。演算法旨在尋找能夠獲取準確網路的 cell。


在第二篇論文《Regularized Evolution for Image Classifier Architecture Search》中,谷歌展示了將進化演算法應用到上述搜索空間的結果。通過隨機重連輸入(上圖右側的箭頭)或隨機替換操作(如將圖中的最大池化操作「max 3x3」替換成任意其他可替換操作)等變異來修改 cell。這些變異仍然比較簡單,但是初始條件並不簡單:群體中初始化的模型必須遵從 cell 外部堆疊(由專家設計)。儘管這些種子模型中的 cell 是隨機的,但是我們不再從簡單模型開始,這樣更易獲得高質量模型。如果進化演算法發揮出很大作用,則最終網路應該顯著優於我們目前已知的可在該搜索空間內構建的網路。這篇論文展示了進化演算法確實能夠找到當前最優的模型,可匹配甚至優於手動設計的搜索方式。


受控比較


儘管變異/選擇進化過程並不複雜,但可能存在更直接的方法(如隨機搜索)可以達到同樣的效果。其他方法儘管並不比進化演算法簡單,但仍然存在(如強化學習)。因此,谷歌第二篇論文的主要目的是提供不同技術之間的受控比較。



進化演算法、強化學習與隨機搜索分別執行架構搜索時的對比結果。這些實驗是在 CIFAR-10 數據集上完成的,條件和 Zoph 等人 2017 年的論文一樣,其中的搜索空間最初使用強化學習。



上圖對比了進化演算法、強化學習與隨機搜索。左圖,每個曲線表示實驗的進程,結果表明進化演算法在搜索的早期階段要比強化學習快。這非常重要,因為在計算資源有限的情況下,實驗可能不得不早早結束。此外,進化演算法對數據集或者搜索空間的變化具備很強的穩健性。總之,這一受控對比旨在向研究社區提供該計算成本高昂的實驗的結果。谷歌希望通過提供不同搜索演算法之間關係的案例分析,為社區做架構搜索提供幫助。這裡面有些需要注意的東西,例如,上圖中表明,儘管使用更少的浮點運算,進化演算法獲得的最終模型也能達到很高的準確率。


在第二篇論文中,谷歌所用進化演算法的一大重要特徵是採用了一種正則化形式:相比於移除最差的神經網路,他們移除了最老的神經網路(無論它有多好)。這提升了對任務優化時所發生變化的穩健性,並最終更可能得到更加準確的網路。其中一個原因可能是由於不允許權重繼承,所有的網路必須都從頭開始訓練。因此,這種形式的正則化選擇重新訓練後依舊較好的網路。也就是說,得到更加準確的模型只是偶然的,訓練過程中存在的雜訊意味著即使完全相同的架構準確率也可能不同。更多細節可參看論文《Regularized Evolution for Image Classifier Architecture Search》。

谷歌開發出的當前最優模型叫作 AmoebaNet,這也是從 AutoML 中發展出的最新成果。所有實驗都需要大量算力,谷歌使用數百 GPU/TPU 運行了數天。


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






本文為機器之心編譯,

轉載請聯繫本公眾號獲得授權


?------------------------------------------------


加入機器之心(全職記者/實習生):hr@jiqizhixin.com


投稿或尋求報道:editor@jiqizhixin.com


廣告&商務合作:bd@jiqizhixin.com

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 機器之心 的精彩文章:

谷歌大腦Wasserstein自編碼器:新一代生成模型演算法
22分鐘直衝Kaggle競賽第二名!一文教你做到

TAG:機器之心 |