指數級加速架構搜尋:CMU提出基於梯度下降的可微架構搜尋方法

機器之心發表於2018-06-27

尋找最優神經網路架構的任務通常需要機器學習專家花費大量時間來完成,最近人們提出的自動架構搜尋方法釋放了我們的精力,但卻非常消耗算力。由卡耐基梅隆大學(CMU)在讀博士劉寒驍、DeepMind 研究員 Karen Simonyan 以及 CMU 教授楊一鳴提出的「可微架構搜尋」DARTS 方法基於連續搜尋空間的梯度下降,可讓計算機更高效地搜尋神經網路架構。

研究者稱,該方法已被證明在卷積神經網路和迴圈神經網路上都可以獲得業內最優的效果,而所用 GPU 算力有時甚至僅為此前搜尋方法的 700 分之 1,這意味著單塊 GPU 也可以完成任務。該研究的論文《DARTS: Differentiable Architecture Search》一經發出便引起了 Andrew Karpathy、Oriol Vinyals 等學者的關注。

DARTS 程式碼: https://github.com/quark0/darts

指數級加速架構搜尋:CMU提出基於梯度下降的可微架構搜尋方法

指數級加速架構搜尋:CMU提出基於梯度下降的可微架構搜尋方法引言

發現最優的神經網路架構需要人類專家耗費大量精力才能實現。近來,人們對開發演算法來解決架構設計過程的自動化問題產生了興趣。自動化的架構搜尋已經在諸如影像分類和目標檢測這樣的任務中獲得了非常有競爭力的效能。

當前最佳的架構搜尋演算法儘管效能優越,但需要很高的計算開銷。例如,在 CIFAR-10 和 ImageNet 上獲得當前最佳架構需要強化學習的 1800 個 GPU 工作天數 (Zoph et al., 2017) 或進化演算法的 3150 個 GPU 工作天數(Real et al., 2018)。人們已經提出了很多加速方法,例如為搜尋空間強加特定的結構(Liu et al., 2017b,a),為每個單獨架構強加權重或效能預測(Brock et al., 2017; Baker et al., 2018)以及在多個架構之間共享權重(Pham et al., 2018b; Cai et al., 2018),但可擴充套件性的基本挑戰仍然存在。主要方法(例如基於強化學習、進化演算法、MCTS(Negrinho and Gordon, 2017)、SMBO(Liu et al., 2017a)或貝葉斯優化(Kandasamy et al., 2018))低效性的一個內部原因是,架構搜尋被當成一種在離散域上的黑箱優化問題,這導致需要大量的架構評估。

在這項研究中,我們從一個不同的角度來解決這個問題,並提出了一個高效架構搜尋方法 DARTS(可微架構搜尋)。該方法不同於之前在候選架構的離散集上搜尋的方式,而是將搜尋空間鬆弛為連續的,從而架構可以通過梯度下降並根據在驗證集上的表現進行優化。與基於梯度優化的資料有效性和低效的黑箱搜尋相反,它允許 DARTS 使用少幾個數量級的計算資源達到和當前最佳效能有競爭力的結果。它還超越了其它近期的高效架構搜尋方法 ENAS(Pham et al., 2018b)。值得注意的是,DARTS 比很多已有的方法都簡單,因為它並不涉及任何控制器(Zoph and Le, 2016; Baker et al., 2016; Zoph et al., 2017; Pham et al., 2018b)、超網路(Brock et al., 2017)或效能預測器(Liu et al., 2017a),然而它也能足夠通用地搜尋卷積和迴圈架構。

在連續域中搜尋架構的概念並不新鮮(Saxena 和 Verbeek,2016;Ahmed 和 Torresani,2017;Shin 等,2018),但有幾個主要區別。儘管先前的工作試圖微調架構的特定方面,例如卷積網路中的濾波器形狀或分支模式,但 DARTS 能夠在豐富的搜尋空間中發現具有複雜圖形拓撲的高效能架構。此外,DARTS 並不限於任何特定的架構族,且能夠搜尋卷積網路和迴圈網路。

實驗證明 DARTS 設計的卷積單元可在 CIFAR-10 上獲得 2.83 ± 0.06% 的測試誤差,與使用正則化進化方法(Real et al., 2018)的當前最優結果不相上下,而後者使用的計算資源高於前者三個數量級。同樣的卷積單元遷移至 ImageNet(移動端)後也得到了 26.9% 的 top-1 誤差,與最優強化學習方法(Zoph et al., 2017)旗鼓相當。在語言建模任務上,DARTS 發現的迴圈單元在單個 GPU 工作天數的訓練時間中即在 PTB 上獲得了 56.1 的困惑度(perplexity),優於大規模調參的 LSTM(Melis et al., 2017)和基於 NAS(Zoph and Le, 2016)與 ENAS(Pham et al., 2018b)的所有現有自動搜尋單元。

本論文的貢獻如下:

  • 介紹了一種新型演算法用於可微網路架構搜尋,該演算法適用於卷積架構和迴圈架構。

  • 在影像分類和語言建模任務上進行的大量實驗表明:基於梯度的架構搜尋在 CIFAR-10 上獲得了極具競爭力的結果,在 PTB 上的效能優於之前最優的結果。這個結果非常有趣,要知道目前最好的架構搜尋方法使用的是不可微搜尋方法,如基於強化學習(Zoph et al., 2017)或進化(Real et al., 2018; Liu et al., 2017b)的方法。

  • 達到了優秀的架構搜尋效率(使用 4 塊 GPU:經過 1 天訓練之後在 CIFAR-10 上達到了 2.83% 的誤差;經過六小時訓練後在 PTB 達到了 56.1 的困惑度,研究者將其歸功於基於梯度的優化方法)。

  • 展示了 DARTS 在 CIFAR-10 和 PTB 上學到的架構分別可遷移至 ImageNet 和 WikiText-2。


指數級加速架構搜尋:CMU提出基於梯度下降的可微架構搜尋方法

圖 1:DARTS 概述:(a)一開始並不知道對邊緣的操作。(b)通過在每個邊緣放置各種候選操作來連續放寬搜尋空間。(c)通過求解二級(bilevel)優化問題,聯合優化混合概率和網路權重。(d)從學習到的混合概率中歸納出最終的架構。

指數級加速架構搜尋:CMU提出基於梯度下降的可微架構搜尋方法

圖 3:CIFAR-10 卷積單元和 Penn Treebank 迴圈單元的 DARTS 搜尋進展。隨著時間的推移,該方法會持續追蹤最新的架構。每個架構的瞬象(snapshot)都使用訓練集從頭開始重新訓練(CIFAR-10 上的 100 個 epoch 和 PTB 上的 300 個 epoch),然後在驗證集上進行評估。對於每個任務,我們用不同的隨機種子重複實驗 4 次,並隨著時間的推移報告架構每次執行的中值和最佳驗證效能。作為參考,我們還報告了(在相同的評估設定下;具有可比較數量的引數)通過進化或使用強化學習發現的最佳已有單元的結果,包括 NASNet-A(Zoph 等,2017)(1800 個 GPU 工作天數),AmoebaNet-A(3150 個 GPU 工作天數)(Real 等,2018)和 ENAS(0.5 個 GPU 工作天數)(Pham 等,2018b)。

架構評估

為了選擇要評估的架構,研究者使用不同的隨機種子執行了四次 DARTS,基於驗證效能選擇了最好的單元。這對迴圈單元來說尤其重要,因為優化結果與初始化有較大關聯(圖 3)。

指數級加速架構搜尋:CMU提出基於梯度下降的可微架構搜尋方法

圖 4:在 CIFAR-10 上習得的 normal 單元。

指數級加速架構搜尋:CMU提出基於梯度下降的可微架構搜尋方法

圖 5:在 CIFAR-10 上習得的 reduction 單元。

指數級加速架構搜尋:CMU提出基於梯度下降的可微架構搜尋方法

圖 6:在 PTB 上得習的迴圈單元。

為了評估選擇的架構,研究者對架構權重進行隨機初始化(在搜尋過程中習得的權重被丟棄),從頭訓練架構,並在測試集上測試其效能。測試集未用於架構搜尋或架構選擇。

指數級加速架構搜尋:CMU提出基於梯度下降的可微架構搜尋方法

表 1:當前最優影像分類器在 CIFAR-10 上的對比結果。帶有 † 標記的結果是使用本論文設定訓練對應架構所得到的結果。

指數級加速架構搜尋:CMU提出基於梯度下降的可微架構搜尋方法

表 2:當前最優語言模型在 Penn Treebank 上的對比結果。帶有 † 標記的結果是使用本論文設定訓練對應架構所得到的結果。

論文:DARTS: Differentiable Architecture Search

指數級加速架構搜尋:CMU提出基於梯度下降的可微架構搜尋方法

論文連結:https://arxiv.org/abs/1806.09055

摘要:本論文用可微的方式重構架構搜尋任務,解決了該任務的可擴充套件性難題。與在離散和不可微搜尋空間中使用進化演算法或強化學習的傳統方法不同,我們的方法基於架構表徵的連續鬆弛,利用梯度下降實現架構的高效搜尋。我們在 CIFAR-10、ImageNet、Penn Treebank 和 WikiText-2 上進行了大量實驗,結果表明我們的演算法在發現高效能的影像分類卷積架構和語言建模迴圈架構中表現優異,且該演算法的速度比之前最優的不可微方法快了幾個數量級。

相關文章