本文為 AI 研習社編譯的技術部落格,原标題 :
Discovering the best neural architectures in the continuous space | Microsoft Research
作者 | Fei Tian
翻譯 | 孫稚昊2
校對 | 醬番梨 整理 | 鳳梨妹
原文連結:
https://www.microsoft.com/en-us/research/blog/discovering-the-best-neural-architectures-in-the-continuous-space/
如果你是一名深度學習實踐者,你可能發現自己經常會遇到同一個關鍵問題:我應該為現在的任務選擇哪種神經網絡架構?這個決定取決于多種因素以及很多其他問題的答案。我應該給這一層選擇什麼操作----卷積,深度可分卷積,或者最大池化?卷積層應該選多大的核?3*3 還是 1*1 ? 還有哪個節點該拿來作為循環神經網絡(RNN)節點的輸入?這些決定對架構的成功至關重要。如果你既是神經網絡模組化也是手頭特定任務的專家,你可能很容易找到答案。但如果你在某一方面的經驗有限呢?
這種情況下,你可能會嘗試神經架構搜尋(NAS),這是一種自動的過程,另一個機器學習算法根據以往觀察到的架構和他們的表現,來指導建立更好的架構。多虧了NAS,我們可以發現在被廣泛使用的公開資料集,比如 ImageNet, 上表現最好的神經網絡架構,且不需要人工幹預。
然而現存的自動設計神經網絡架構的方法 -- 通常基于增強學習或者進化算法 -- 需要在指數級增長的離散空間中做搜尋,我的同伴和我在微軟亞洲研究院機器學習組 設計了一種簡化的,更有效的方法,基于連續空間内的優化。有了我們的新方法,叫做 神經架構優化 (NAO),我們利用基于梯度的方法在更緊密的空間中做優化。這項工作參加了今年的 神經資訊處理系統會議 (NeurIPS)
NAO的關鍵元件
驅動NAO進行在連續空間中基于梯度的優化,是靠以下三個元件:
一個把離散的神經網絡架構轉化為連續值向量的編碼器,也叫嵌入模型
一個結果預估函數,它把向量作為輸入,并産生一個數值作為架構的表現 (比如,準确率)
一個把連續值向量恢複成網絡架構的解碼器
這三個元件是一起訓練的。我們完成訓練後,從一個架構x 開始,我們用編碼器E把x 轉化為向量表示 ex , 再通過結果預估函數f給的梯度方向,把ex 轉化為新的嵌入 ex` (如綠線表示)。既然我們在做梯度上升,隻要步長夠小,我們就能保證 f(ex`) >= f(ex)。最後,我們用decoder D把ex`轉化為離散的架構 x`。這樣,我們得到了一個可能更好的架構 x`.通過不斷這樣更新架構。我們得到了最終的架構,它應該有最好的表現。
圖1: NAO的流程
有有限的資源達到好的結果
我們做了後續的實驗來驗證NAO自動發現最好神經架構的有效性。表1(如下)展示了不同卷積神經網絡(CNN)架構在CIFAR-10圖檔分類資料集上的表現,這些架構由不同 NAS 算法生成。從表中我們可以看出,用NAO發現的網絡得到了最低的錯誤率。另外,将NAO和權重共享機制結合起來(叫做 NAO-WS),我們得到了顯著的搜尋速度提升。權重共享可以降低網絡架構搜尋的計算成本,它通過讓多種網絡結構共用同一份參數來做到。在我們的實驗中,我們用一塊圖像處理器(GPU),在7個小時内得到了一個CNN架構,達到了3.53的錯誤率。通過權重共享,我們不必從頭訓練其它不同的神經網絡。
表2(如下)總結了PTB語言模型的結果。越低的Perplexity表示更好的表現。又一次,我們用NAO來找到的RNN架構取得了好結果,而且隻用有限的計算資源。
通過在連續空間上的優化,NAO得到了更好的結果,相比于現有的NAS方法,他們直接在離散架構空間中搜尋。至于未來的應用,我們計劃用NAO來為其它重要的AI任務搜尋架構,比如神經機器翻譯。同樣重要的,更簡單高效的自動神經架構設計,可以使機器學習技術為各階段的人所用。
表1:CIFAR-10分類結果
表2:PTB語言模型結果
想要繼續檢視該篇文章相關連結和參考文獻?
長按連結點選打開或點選【神經架構優化(NAO):新的神經架構搜尋(NAS)算法】:
https://ai.yanxishe.com/page/TextTranslation/1335
AI研習社每日更新精彩内容,觀看更多精彩内容:雷鋒網(公衆号:雷鋒網)雷鋒網雷鋒網
五個很厲害的 CNN 架構
一文帶你讀懂計算機視覺
用Pytorch做深度學習(第一部分)
Python進階技巧:用一行代碼減少一半記憶體占用
等你來譯:
(Python)3D人臉處理工具face3d
25個能放到資料湖中的語音研究資料集
如何在資料科學面試中脫穎而出
Apache Spark SQL以及DataFrame的基本概念,架構以及使用案例