選自 arXiv

  作者:Xinbang Zhang, Zehao Huang, Naiyan Wang

  機器之心編譯

  參與:李詩萌、張倩

  

  近年來,神經架構搜索(NAS)引起了學界和業界的極大興趣,但由於其搜索空間巨大且不連續,該方法仍具挑戰性。本文提出了直接稀疏優化 NAS(DSO-NAS)方法。在 DSO-NAS 中,作者爲 NAS 問題提供了一個新的模型修剪視角,總結出了有效且理論上合理的優化方法來解決這個問題。這種方法的優點是可微分、效率高,可以直接應用在 ImageNet 這樣的大數據集上。在 CIFAR-10 數據集上,DSO-NAS 的平均測試誤差只有 2.84%。DSO-NAS 用 8 個 GPU 在 18 個小時內以 600M FLOPs 在 ImageNet 數據集上得到的測試誤差爲 25.4%。該論文提交到了 ICLR 2019。

  

  1.引言

  毫無疑問,深度神經網絡(DNN)近年來一直是 AI 復興的引擎。早在 2012 年,基於 DNN 的方法就刷新了許多 AI 應用的記錄,比如圖像分類(Krizhevsky et al. (2012); Szegedy et al. (2015); He et al. (2016))、語音識別(Hinton et al. (2012); Graves et al. (2013))和圍棋(Silver et al. (2016; 2017))。考慮到深度學習驚人的表徵能力,DNN 已經將這些應用的範式從手動設計特徵和分段流程轉向端到端學習。儘管 DNN 已經將研究人員從特徵工程(feature engineering)中解放出來,但另一件乏味的工作——「網絡工程」出現了。多數情況下要根據特定任務設計神經網絡,然後進入無窮盡的超參數調整和嘗試。因此,設計合適的神經網絡架構仍然需要大量專業知識和經驗。

  爲了使技術更親民,研究者們提出了神經架構搜索(NAS),或者更廣泛的說法是 AutoML。NAS 主要有兩個流派:第一個是遵循 Zoph&Le(2017)的開創性工作,他們提出了一種訓練循環神經網絡(RNN)控制器的強化學習算法,這個控制器可以生成編碼架構(Zoph et al. (2018); Pham et al. (2018))。第二個是進化算法,它可以迭代地評估並提出新的評估模型(Real et al. (2017); Stanley & Miikkulainen (2002))。儘管這些模型的性能令人印象深刻,但對於像 ImageNet 這樣的大數據集來說,它們的搜索過程非常耗費資源,而且很不實用。儘管已經提出了一些加速方法(Zhong et al. (2018); Pham et al. (2018))。近期,DARTS(Liu et al. (2018b))提出了一種基於梯度的方法,它通過 softmax 分類器選擇連接。儘管 DARTS 在提升了速度的情況下還實現了良好性能,但與之前的工作一樣,它的搜索空間仍侷限於長度固定的編碼和共享塊的搜索。

  本文從另一個角度解決這些問題。我們重新設計了 NAS,使它可以刪除大型網絡的無用連接。這種大型網絡包含完整的網絡架構假設空間,因此只要訓練和評估一個單獨的模型。由於在訓練過程中直接優化了網絡結構,所以我們的方法叫做直接稀疏優化 NAS(DSONAS)。我們還進一步證明,相對於低效的強化學習或革命性搜索,這種稀疏正則化問題可以通過改進的加速近端梯度方法得到有效優化。值得注意的是,DSO-NAS 比現有的搜索方法都更簡單,因爲它將神經網絡權重學習和架構搜索結合到一個單優化問題中。DSO-NAS 不需要任何控制器(Zoph & Le (2017); Zoph et al. (2018); Pham et al. (2018))、性能預測器(Liu et al. (2018a))或搜索空間鬆弛化(Zoph & Le (2017); Zoph et al. (2018); Pham et al. (2018); Liu et al. (2018b))。由於其高效性和簡單性,DSO-NAS 首次證明了 NAS 可以在不共享模塊結構的情況下,直接用在像 ImageNet 這樣的大數據集上。我們的實驗表明,DSO-NAS 在 CIFAR-10 上的平均測試誤差爲 2.84%,而用 600M FLOPs 在 ImageNet 上得到了 25.4% 的 top-1 誤差。

  總而言之,我們的貢獻總結如下:

  我們提出了一個新模型,該模型基於稀疏優化,可以爲神經架構搜索進行修剪。在搜索過程中只需訓練一個模型

  我們提出了一種理論上合理的優化方法來有效地解決這個具有挑戰性的優化問題。

  我們論證了我們提出的方法的結果極具競爭力,或者說它比其他 NAS 方法都更好,同時它還顯著簡化和加速了搜索過程。

  論文:You Only Search Once: Single Shot Neural Architecture Search via Direct Sparse Optimization

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

  摘要:近年來,神經架構搜索(NAS)引起了學界和業界的極大興趣,但由於其搜索空間巨大且不連續,該方法仍具挑戰性。與以往應用進化算法和強化學習的方法不同,本文提出了直接稀疏優化 NAS(DSO-NAS)方法。在 DSO-NAS 中,我們爲 NAS 問題提供了一個新的模型修剪視角。具體而言,我們從一個完全連接的模塊開始,引入縮放因子來縮放運算之間的信息流。接着,我們強行加上了稀疏正則化來刪除架構中無用的連接。最後,我們總結出了有效且理論上合理的優化方法來解決這個問題。這種方法具有可微分和高效率的優點,可以直接應用在像 ImageNet 這樣的大數據集上。特別是在 CIFAR-10 數據集上,DSO-NAS 的平均測試誤差只有 2.84%,而 DSO-NAS 用 8 個 GPU 在 18 個小時內以 600M FLOPs 在 ImageNet 數據集上得到的測試誤差爲 25.4%。

  動機

  DSO-NAS 的思想主要遵循的是可以用完全連接的有向無環圖(DAG)表示神經網絡(或其中的微小結構)的架構空間。在這個空間中的任何其他架構都可以用其子圖表示。換句話說,可以從完整的圖中選擇邊和節點的子集來獲得特定的架構。之前的工作(Zoph & Le (2017), Liu et al. (2018a), Liu et al. (2018b))關注點主要在搜索擁有兩類塊的架構,分別是卷積塊和 reduction 塊。根據微小結構搜索的思想,我們用完整的圖表示一個單獨的塊的搜索空間。然後可以用一堆有殘差連接的模塊表示最終的網絡架構。圖 1 所示是指定塊的 DAG 示例,它的節點和邊分別表示局部運算 O 和信息流。

  對於一個有 T 個節點的 DAG 來說,可以用局部運算 O(i)轉化所有前驅節點(h(j),j<="" p="">)輸出的和來計算第>

  然後就可以將架構搜索問題轉變成邊緣刪除問題。在搜索過程中,我們刪除了完整 DAG 中無用的邊和節點,留下了最重要的結構。爲了實現這個目標,我們在每一條邊上用縮放因子來縮放每個節點的輸出。可以將等式 1 修改爲:

  式中 λ(i)(j)是用在從節點 j 到 i 的信息流上的縮放因子。然後我們在縮放參數上用稀疏正則化在搜索時強制將部分因子變成 0。直觀地說,如果 λ(i)(j)是 0,因爲它沒有任何貢獻,所以可以安全地移除相關的邊,並刪除獨立的節點。

  圖 1:可以用完全連接的 DAG 表示整個搜索空間。節點 1 和 6 分別是輸入節點和輸出節點。虛線和虛線圓表示刪除了與它們相關的節點和邊。例如,可以通過 h(5)=O(5)(P4j=1h(j))計算節點 5 的初始輸出,但對刪除過的子圖而言,變成了 h(5)=O(5)(h(2)+h(4))。

  搜索空間

  DSO-NAS 可以搜索 DNN 中每個構建塊的結構,然後和 DNN 中所有的塊共享,就像之前的工作一樣。它也可以在不共享塊的情況下直接搜索整個網絡架構,同時還保持着極具競爭力的搜索時間。我們在下文中將先討論每一個獨立塊的搜索空間,再討論整個宏架構。

  一個塊由 M 個順序層組成,這些順序層又由 N 個不同運算組成。在每個塊中,每個運算都和前面層的所有運算以及塊的輸入相連接。因此,塊的輸出也和塊中的所有運算有關。對每一個連接來說,我們用乘數 λ 縮放了其輸出,並強行加了稀疏正則化。優化後,刪除了 λ 爲 0 的相關連接和所有獨立的運算得到最後的架構。塊搜索的過程如圖 2 所示。

  圖 2:搜索塊的例子,該例中有兩個 level 和兩步運算:(a)完全連接的塊。(b)在搜索過程中,我們聯合優化了神經網絡的權重以及與每一個邊都相關的 λ。(c)刪除無用的連接和操作後的最終模型。

  實驗

  圖 4:在不同數據集上學到的塊結構。

  表 1:在 CIFAR-10 上與當前最佳的 NAS 方法的比較。

  表 2:在 ImageNet 上與當前最佳的圖像分類器的比較。

  圖 5:自適應 FLOPs 技術的性能。

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

查看原文 >>
相關文章