當前位置:
首頁 > 知識 > Jeff Dean等人提出ENAS:通過參數共享實現高效的神經架構搜索

Jeff Dean等人提出ENAS:通過參數共享實現高效的神經架構搜索

選自arXiv

機器之心編譯

參與:黃小天、劉曉坤

本文提出超越神經架構搜索(NAS)的高效神經架構搜索(ENAS),這是一種經濟的自動化模型設計方法,通過強制所有子模型共享權重從而提升了NAS的效率,克服了NAS算力成本巨大且耗時的缺陷,GPU運算時間縮短了1000倍以上。在Penn Treebank數據集上,ENAS實現了55.8的測試困惑度;在CIFAR-10數據集上,其測試誤差達到了2.89%,與NASNet不相上下(2.65%的測試誤差)。

1. 簡介

神經架構搜索(NAS)已成功用來設計圖像分類和語言建模模型架構 (Zoph & Le, 2017; Zoph et al., 2018; Cai et al., 2018; Liu et al., 2017; 2018)。在 NAS 中,RNN 控制器進行循環訓練:控制器首先採樣候選架構,即一個子模型(child model),接著訓練它收斂以測量其在所需任務上的表現。控制器接著把子模型表現作為指導信號以發現更好的架構。這一過程需要重複迭代很多次。儘管其實證表現令人印象深刻,NAS 的算力成本巨大且耗時,比如 Zoph et al. (2018) 使用 450 塊 GPUs 耗時 3-4 天(即 32,400-43,200 GPU 小時)。同時,使用的資源越少,所得結果的競爭力就越小 (Negrinho & Gordon, 2017; Baker et al., 2017a)。我們發現 NAS 的計算瓶頸是訓練每個子模型至收斂,只測量其精確度同時擯棄所有已訓練的權重。

本文研究做出的主要貢獻是通過強制所有子模型共享權重而提升了 NAS 的效率。這個想法明顯存在爭議,因為不同的子模型利用權重的方式也不同,但本文受到先前遷移學習和多任務學習工作的啟發,即已確定一個特定任務的特定模型所學習的參數可用在其他任務的其他模型之上,幾乎無需做出修改(Razavian et al., 2014; Zoph et al., 2016; Luong et al., 2016)。

研究者證明,不僅子模型之間共享參數是可能的,而且表現也很出色。尤其在 CIFAR-10 上,他們的方法取得了 2.89% 的測試誤差,相比之下 NAS 為 2.65%。在 Penn Treebank 上,他們的方法實現了 55.8 的測試困惑度,明顯優於 NAS 62.4 的測試困惑度 (Zoph & Le, 2017),這是 Penn Treebank 在不使用後訓練處理的方法中所實現的一個新的當前最優結果。重要的是,在本研究所有使用單個 Nvidia GTX 1080Ti GPU 的實驗中,搜索架構的時間都少於 16 小時。相較於 NAS,GPU 運算時間縮短了 1000 倍以上。鑒於其高效率,我們把這一方法命名為高效神經架構搜索(ENAS)。

2. 方法

ENAS 思想的核心是觀察到 NAS 最終迭代的所有圖可以看作更大圖的子圖。換句話說,我們可以使用單個有向無環圖(DAG)來表徵 NAS 的搜索空間。圖 2 是一個通用實例 DAG,其架構可通過採用 DAG 的子圖而實現。直觀講,ENAS 的 DAG 是 NAS 搜索空間之中所有可能的子模型的疊加,其中節點表徵局部計算,邊緣表徵信息流。每一個節點的局部計算有其自己的參數,這些參數只有當特定計算被激活時才使用。因此在搜索空間中,ENAS 的設計允許參數在所有子模型(即架構)之間共享。

圖 2:該圖表徵了整個搜索空間,同時紅箭頭定義了其中一個由控制器決定的模型。這裡,節點 1 是模型的輸入,節點 3 和 6 是模型的輸出。

2.1 設計循環單元

為了設計循環單元,作者使用了有 N 個結點的有向無環圖(DAG),其中每個節點代表局部運算,而每條邊代表 N 個節點中的信息流。ENAS 的控制器是一個 RNN,它會控制:1)哪一條邊處於激活狀態;2)在 DAG 中的每一個結點會執行哪些運算。

圖 1:搜索空間中帶有四個計算節點的循環單元案例。左圖為對應循環單元的計算 DAG,其中紅色的邊代表圖中的信息流。中間為循環單元。右圖為 RNN 控制器的輸出結果,它將會生成中間的循環單元和左邊的 DAG。注意節點 3 和 4 永遠不會被 RNN 採樣,所以它們結果是平均值,且可以作為單元的輸出。

2.3 設計卷積網路

在卷積網路的搜索空間中,RNN 控制器在每一個決策模塊上會制定兩組決策:1)前一個單元需要連接什麼;2)它需要什麼樣的運算過程。這些決策共同構建了卷積網路中的不同層級。

圖 3:搜索空間中一個循環單元的實例運行,該空間帶有 4 個計算節點,表徵卷積網路的 4 個層。頂部:控制器 RNN 的輸出。左下:對應於網路架構的計算 DAG。紅箭頭表徵激活的計算路徑。右下:完整的網路。虛線箭頭表徵跳躍連接。

2.4 設計卷積單元

本文並沒有採用直接設計完整的卷積網路的方法,而是先設計小型的模塊然後將模塊連接以構建完整的網路(Zoph et al., 2018)。圖 4 展示了這種設計的例子,其中設計了卷積單元和 reduction cell。接下來將討論如何利用 ENAS 搜索由這些單元組成的架構。

圖 4:連接卷積單元和 reduction 單元,以構建完整的網路。

圖 5:控制器在卷積單元搜索空間中運行的示例。上:控制器的輸出。在卷積單元的搜索空間中,節點 1 和節點 2 是單元的輸入,因此控制器只需要設計節點 3 和節點 4。左下:對應的 DAG,其中紅邊代表激活的連接。右下:由控制器採樣得到的卷積單元。

3 實驗

3.1 在 Penn Treebank 數據集上訓練的語言模型

圖 6:ENAS 為 Penn Treebank 數據集發現的 RNN 單元。

表 1:ENAS 為 Penn Treebank 數據集發現的架構的測試困惑度以及其它的基線結果的比較。(縮寫說明:RHN 是 Recurrent Highway Network、VD 是 Variational Dropout、WT 是 Weight Tying、?2 是 Weight Penalty、AWD 是 Averaged Weight Drop、MoC 是 Mixture of Contexts、MoS 是 Mixture of Softmaxes。)

3.2 在 CIFAR-10 數據集上的圖像分類實驗

表 2:ENAS 發現的架構在 CIFAR-10 數據集上的分類誤差和其它基線結果的對比。在這個表中,第一塊展示了 DenseNet,由人類專家設計的當前最佳架構。第二塊展示了設計整個網路的方法。最後一塊展示了設計模塊單元以構建大型模型的技術。

圖 7:ENAS 從大型搜索空間中發現的用於圖像分類的網路架構。

ENAS 用了 11.5 個小時來發現合適的卷積單元和 reduction 單元,如圖 8 所示。

圖 8:ENAS 在微搜索空間中挖掘新的單元。

論文:Efficient Neural Architecture Search via Parameters Sharing

論文鏈接:https://arxiv.org/abs/1802.03268

我們在本文中提出高效神經架構搜索(ENAS),這是一種高效和經濟的自動化模型設計的方法。在 ENAS 中,有一個控制器通過在一個大型計算圖中搜索一個最優的子圖以學習發現最優神經網路架構的方法。控制器採用策略梯度進行訓練,以選擇最大化驗證集期望獎勵的子圖。同時,和所選子圖對應的模型將進行訓練以最小化標準交叉熵損失。由於子模型之間的參數共享,ENAS 的速度很快:它只需要使用少得多的 GPU 運算時間就能達到比當前的自動化模型設計方法好很多的經驗性能,尤其是,其計算成本只有標準的神經架構搜索(NAS)的千分之一。在 Penn Treebank 數據集上,ENAS 發現了一個新穎的架構,其達到了 55.8 的測試困惑度,這是未經後處理而達到當前最佳性能的新方法。在 CIFAR-10 數據集上,ENAS 設計了一個新穎的架構,其測試誤差達到了 2.89%,與 NASNet(Zoph et al., 2018)不相上下(2.65% 的測試誤差)。

本文為機器之心編譯,轉載請聯繫本公眾號獲得授權。

------------------------------------------------


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

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


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

脆弱的神經網路:UC Berkeley詳解對抗樣本生成機制
如何淘汰「人人痛恨」的密碼,微軟Windows正在努力

TAG:機器之心 |