一文詳解隨機神經網路結構搜尋 (SNAS)

AI科技大本營發表於2019-01-23

640?wx_fmt=jpeg


作者:謝思銳、鄭和惠、劉春曉、林倞

編寫:謝思銳、石建萍、劉春曉

注:本文出自商湯研究院(SenseTime Research)。原論文發表於ICLR 2019,及arXiv:1812.09926,程式碼將在後續公開。轉載需註明作者及出處。


神經網路結構搜尋(Neural Architecture Search, NAS)是自動機器學習(AutoML)中的熱點問題之一。通過設計經濟高效的搜尋方法,自動獲得泛化能力強、硬體友好的神經網路結構,可以大量節省人工,解放研究員的創造力。經典的NAS方法[1]中,一個agent在trial and error中通過強化學習(Reinforcement Learning)的方式學習搭建網路結構。本文作者對NAS任務中強化學習的效率進行了深入思考,從理論上給出了NAS中強化學習收斂慢的原因。作者進一步重新建模了NAS問題,提出了一個更高效的方法,隨機神經網路結構搜尋(Stochastic NAS, SNAS)。


1)與基於強化學習的方法(ENAS[2])相比,SNAS的搜尋優化可微分,搜尋效率更高,可以在更少的迭代次數下收斂到更高準確率。

2)與其他可微分的方法(DARTS[3])相比,SNAS直接優化NAS任務的目標函式,搜尋結果偏差更小,可以直接通過一階優化搜尋。

3)而且結果網路不需要重新訓練引數。

4)此外,基於SNAS保持了概率建模的優勢,作者提出同時優化網路損失函式的期望和網路正向時延的期望,擴大了有效的搜尋空間,可以自動生成硬體友好的稀疏網路。


1. 背景

1.1 NAS中的MDP 


圖1展示了基於人工的神經網路結構設計和NAS的對比。完全基於人工的神經網路結構設計一般包括以下關鍵流程:

1)由已知的神經變換(operations)如卷積(convolution)池化(pooling)等設計一些拓撲結構,

2)在所給定訓練集上訓練這些網路至收斂,

3)在測試集上測試這些網路收斂結果,

4)根據測試準確率選擇網路結構,

5)人工優化拓撲結構設計並回到步驟1。


其中,步驟5需要消耗大量的人力和時間,而且人在探索網路結構時更多的來自於經驗,缺乏明確理論指導。將該步驟自動化,轉交給agent在trial and error中不斷優化網路結構,即是NAS的核心目的。


640?wx_fmt=png

圖1: 人工神經網路結構設計vs自動神經網路結構搜尋


在人的主觀認知中,搭建神經網路結構是一個從淺層到深層逐層選擇神經變換(operations)的過程。 比如搭建一個CNN的時候需要逐層選擇卷積的kernel大小、channel個數等,這一過程需要連續決策,因而NAS任務自然的被建模為一個馬爾科夫決策過程(MDP)。


簡單來說,MDP建模的是一個人工智慧agent和環境互動中的agent動作(action,640?wx_fmt=png)和環境狀態變化(state transition)過程。回到搭建一個CNN的例子來說,環境即是對網路結構的抽象,狀態(state,640?wx_fmt=png )表示的是當前已經選擇了卷積方式的所有層,而動作表示的是在下一層中要選怎樣的卷積。


在一些情況下,我們會用策略函式(policy, 640?wx_fmt=png )來表達agent在每個狀態上動作的分佈。該過程中agent的總得分,也就是搭建的網路在測試集上的精度(accuracy),通過強化學習(Reinforcement Learning)這種通用黑盒演算法來優化。然而,因為強化學習本身具有資料利用率低的特點,這個優化的過程往往需要大量的計算資源。


比如在NAS的第一篇工作[1]中,Google用了1800 GPU days完成CIFAR-10上的搜尋。雖然通過大量的平行計算,這個過程的實際時間(wallclock time)會比人工設計短,但是如此大計算資源需求實際上限制了NAS的廣泛使用。[1]之後,有大量的論文從設計搜尋空間[4]、搜尋過程[2]以及model-based強化學習[5]的角度來優化NAS效率, 但“基於MDP與強化學習的建模”一直被當作黑盒而沒有被討論過。

640?wx_fmt=gif

圖2: NAS是一個確定環境中的完全延遲獎勵任務。在這個DAG中,方框表示節點,具體的物理意義是feature map。不同顏色的箭頭表示不同的operations。s表示當前網路結構狀態,a表示每一步的動作,r表示得分。只有在網路結構最終確定後,agent才能獲得一個非零得分acc


本文作者的關鍵insight來自於發現了NAS任務的MDP的特殊性。圖2展示了一個NAS的MDP的完整過程。可以看到的是,在每一個狀態(state)中,一旦agent產生了動作,網路結構狀態的改變是確定的。而在一個網路被完全搭建好並訓練及測試之前,agent的每一個動作都不能獲得直接的得分獎勵。agent只會在整一條動作序列(trajectory)結束之後,獲得一個得分。


我們簡單總結一下,就是,NAS是一個確定環境中的完全延遲獎勵的任務。(A task with fully delayed reward in a deterministic environment.)如何利用網路結構狀態改變的確定性,將在下一個章節被討論。


在本章節接下來的部分,我們先介紹一些強化學習領域的背景,解釋一條動作序列的得分是如何被分配到每一次動作上的,以及延遲獎勵為什麼造成了這種得分分配的低效。


1.2 TD Learning與貢獻分配


強化學習的目標函式,是將來得分總和的期望。從每一個狀態中動作的角度來說,agent應該儘量選擇長期來說帶來最大收益的動作。然而,如果沒有輔助的預測機制,agent並不能在每一個狀態預測每一個動作將來總得分的期望。TD Learning就是用來解決這個問題,預測每一個動作對將來總得分的貢獻的。TD(0),一種最基本的計算每一個狀態上的總得分期望( 640?wx_fmt=png)的TD Learning,如以下公式所示:

640?wx_fmt=png


640?wx_fmt=png

圖3: 在TD Learning中,agent對於某一狀態價值的評估基於它對將來狀態的評估,圖片來自 [6]


可以看出,以一種基於動態規劃的方式,agent對於每一個狀態的將來總得分的期望,從將來的狀態向過去傳播。Sutton在[6]中用一張圖來表現了這種得分從後向前的傳播,如圖3所示。


也就是說,agent對於某一狀態的價值的評估基於它對該狀態將來狀態的評估。值得注意的是,(1)中TD的回傳是一個區域性的回傳,並不會在一個回傳就實現將最後一個狀態的資訊傳遞到之前的每一個節點。這是一個很極端的例子,agent對640?wx_fmt=png 的價值評估,完全取決於640?wx_fmt=png,在一次更新中,資訊只會向前傳遞一步。根據動態規劃,如果只有這一條trajectory是可能的,這個傳遞的總時間就是這條trajectory的長度。當可能出現trajectory超過一條時,就需要根據出現的概率來取期望。


像(1)這種動態規劃的區域性資訊傳遞帶來的風險就是,當將來某些狀態的價值評估出現偏差時,它過去的狀態的價值評估也會出現問題。而這個偏差只能通過更多次的動態規劃來修復。


當一個任務趨向於複雜,狀態空間的維度越來越高時,上面說到的將來狀態價值評估的偏差基本不可避免,TD learning的收斂時間大大增加。


經典的強化學習領域中有很多方法嘗試解決這個問題。比如放棄TD直接通過蒙特卡洛(Monte Carlo,MC )取樣來做價值評估。此外,也可以通過eligibility trace 640?wx_fmt=png在基於 TD(0) 和基於 MC 的價值評估中做trade-off,以使得agent 640?wx_fmt=png出現偏差的風險被將來更多的640?wx_fmt=png分攤。這裡我們不繼續發散,感興趣的讀者可以查閱Sutton的textbook[6]。


1.3 延遲獎勵中的貢獻分配


在1.1中,我們介紹到,NAS是一個完全延時獎勵的任務。運用我們在1.2中介紹的數學模型,我們可以把這個發現表達為:

640?wx_fmt=png


當我們把(2)代入(1)之中,我們會發現,基於TD Learning的價值評估,在TD learning的早期,當正確的貢獻分配還沒有從最終網路結構狀態傳到決定淺層網路的動作時,因為環境本身沒有反饋給這一步的得分,淺層網路被分配到的貢獻接近於0,這是一個天然的偏差。當然,如1.2中介紹,這個偏差也可以通過設計各種方式結合Monte Carlo的預測來彌補,但是完全延遲獎勵對於MC方法來說又會帶來640?wx_fmt=png的抖動,並不利於640?wx_fmt=png的收斂。


對於延遲獎勵,RUDDER[7]經過一系列嚴格的證明,得到了如下結論: 

1)延遲獎勵會指數級延長TD的收斂需要的更新次數; 

2)延遲獎勵會給指數級多的狀態的MC價值評估帶來抖動。 


他們提出的解決方式是用一個神經網路來擬合每條trajectory的總得分,並通過這個神經網路裡的梯度回傳來將得分分配到輸入層的所有狀態中,繞過TD和MC。我們繼續回到搭建CNN的例子,如果要實現這個方法,就需要構建一個新的神經網路,它的輸入是表達網路結構的編碼(encoding),輸出是預測的該網路結構的精度。


在[7]的實驗中,這種通過額外訓練一個可微分的總得分函式來分配貢獻的方法,表現出了非常明顯的收斂速度提升,如圖4。然而,這個額外的神經網路需要額外的資料和額外的訓練,而且它能否收斂到真實的總得分並沒有保證。更重要的是,這個神經網路回傳的梯度分配的貢獻是否合理,在普通延遲獎勵的任務中只能有一個現象級的評估,可解釋性有限。


640?wx_fmt=png

圖4: 在延時獎勵的遊戲Bowling和Venture中,基於微分的貢獻分配方法RUDDER收斂速度明顯快於基於TD和MC的方法,圖片來自 [7]


2. 方法

2.1 重新建模NAS


本文作者的第一條關鍵insight是,當我們用損失函式(loss function)來替代準確率,不需要像RUDDER一樣額外擬合一個得分函式,NAS問題的總得分就已經不是一個來自環境的常數而是一個可微函式了。基於1.3的介紹,這很可能大幅提高NAS的搜尋效率。又因為損失函式和準確率都可以表達一個網路學習的結果,這一替換並沒有在本質上改變NAS問題原本的“優化網路結構分佈以使得它們的期望效能最好”的目標(objective)。於是我們有

640?wx_fmt=png


其中 640?wx_fmt=png表示的是trajectory, 640?wx_fmt=png是網路引數,或者更具體的說是所有可能神經變換的引數。


而第二條insight來自於我們在1.1中介紹的,NAS任務的狀態轉移是確定的。在確定性的環境中,一條狀態動作序列出現的概率可以表達為策略函式概率640?wx_fmt=png的連乘

640?wx_fmt=png


將(3)和(4)結合起來看,我們發現

640?wx_fmt=png


這是一個非常常見的生成式模型(generative model)的目標函式。因而我們可以使用生成式模型中的一些方法,重新表640?wx_fmt=png . 比如將 640?wx_fmt=png 建模成一個fully factorizable的分佈

640?wx_fmt=png


如果我們假設每一次動作是相互獨立的,這個分解可以寫成

640?wx_fmt=png


其中,為了與MDP的建模區分開,我們用決策 640?wx_fmt=png來替換動作640?wx_fmt=png 。將(6)或者(7)帶入(5)中,我們得到了一個新的目標函式

640?wx_fmt=png


2.2 用隨機神經網路表達NAS任務


在經典的基於強化學習的NAS方法中,agent的損失函式和網路本身的損失函式並不連通:

640?wx_fmt=png


因而他們的計算圖也不需要連通。圖五展示了一個基於強化學習的NAS中agent和網路互動前向(forward)及各自後向(backward)更新的過程。

640?wx_fmt=gif

圖5: 基於強化學習的NAS的前向和後向,網路結構策略的後向需要利用TD來做貢獻分配,收斂速度不能保證,資源消耗大


與(9)不同的是,在本文作者重新建模的目標函式(8)中,表達網路結構分佈的引數 640?wx_fmt=png 和網路變換的引數 640?wx_fmt=png 被統一在了一起,這就為一次後向同時更新 640?wx_fmt=png 和 640?wx_fmt=png 提供了可能,也就是說有可能實現在更新 640?wx_fmt=png的同時將可微的總得分分配到每一條邊的決策上。然而,要達到這個目的,我們首先需要將網路結構分佈640?wx_fmt=png構建進神經網路的計算圖裡,以在一次前向中實現對子網路結構的取樣。


640?wx_fmt=gif

圖6: SNAS中子網路的取樣及前向過程。左邊DAG為母網路,中間的矩陣表示每次在母網路每條邊上取樣的決策z,右邊為這次取樣的子網路。


本文作者提出,這一取樣過程可以通過將網路結構分佈融合到母網路以形成隨機神經網路(Stochastic Neural Network, SNN)來實現。具體來說,從母網路中產生子網路,可以通過在母網路的每一條邊的所有可能神經變換的結果後乘上一個one-hot向量來實現。而對於子網路的取樣,就因此自然轉化為了對一系列one-hot隨機變數的取樣

640?wx_fmt=png

其中表示節點640?wx_fmt=png(node),實際的物理含義為特徵圖(feature map),640?wx_fmt=png表示在邊640?wx_fmt=png 上選擇的神經變換(operations), 640?wx_fmt=png表示在邊 640?wx_fmt=png 上所有的神經變換,640?wx_fmt=png表示在邊 640?wx_fmt=png 上的one-hot隨機變數。圖6展示了這種SNN中一個cell的取樣方法。


因為SNAS被定位為通用神經網路結構搜尋方法,在構建母圖時,作者採用了與ENAS及DARTS相同的方法。這體現在: 

1)在模組(cell)基本母圖中,設計了超過一個輸入節點(input node),表示該cell的輸入來自於之前哪些模組的輸出,因而包含了產生cell之間的skipping和branching的可能; 

2)在設計每個cell中的中間節點(intermediate node)的輸入時考慮了所有來自cell內所有之前中間節點的輸入邊(input edge),並在每條輸入邊上提供的神經變換(operation)中包括了Identity的變換和0的變換,用以表達skip和直接刪除這條輸入邊。因此考慮了所有之間skipping和branching的可能。


將(10)與這種母網路結合,我們可以獲得每一個節點的實際數學表達

640?wx_fmt=png


這是一個在之前確定神經層上的一個隨機的線性變換。將它考慮進來,我們可以進一步完善SNAS的目標函式 

640?wx_fmt=png


2.3 可微化近似


經過2.1和2.2,我們獲得了一個表達NAS任務的隨機神經網路,定義了它的損失函式。接下來我們要解決的問題就是,如何計算這個損失函式對網路結構引數 640?wx_fmt=png和神經變換引數  640?wx_fmt=png 的梯度。


對一個如(12)的目標函式的求導,特別是對期望項的求導,最經典的方法是likelihood ratio trick,它在強化學習中策略梯度(policy gradient)的推導中被使用。然而,這一方法的主要問題是由640?wx_fmt=png抖動帶來的較大的梯度方差(variance),並不利於整個優化過程的收斂。特別是考慮到 640?wx_fmt=png本身的維度比較高(其維度等於所有輸入邊的總數),如何降低likelihood ratio trick帶來的梯度方差本身就仍然是一個未解決的問題(open question)。 


在這裡,作者選擇了另一種可微化近似方法,重引數法(reparameterization)。這是一種在當前深度生成式模型(Deep Generative Model)中被驗證有效的方法。具體來說,在實現一個離散分佈時,有一種方法是先取樣與該one-hot vector維度相同數量的連續均勻分佈(uniform distribution)的隨機變數,將他們經過Gumbel變換轉為Gumbel隨機變數,並從中選擇最大的那一維度(argmax)取為1,其他維度為0。這個變換被稱為Gumbel-max。這樣取樣的隨機變數的分佈與該離散分佈相同,而離散分佈的引數也就轉化為了Gumbel max中的引數,實現了對該離散分佈的重引數化。


但是因為argmax這個操作本身不可微,[8,9]提出將max近似為softmax,

640?wx_fmt=png


他們同時證明了當softmax的溫度(temperature)趨近於0時,該方法產生的隨機變數趨近於該離散分佈。 作者在論文中給出了近似後的損失函式 640?wx_fmt=png  對 640?wx_fmt=png 回傳的梯度,並在附錄中給出了詳細推導。經過這一可微化之後,我們可以用圖7來表達SNAS中的前向和後向。

640?wx_fmt=gif

圖7: SNAS中的前向和後向,通過構建隨機神經網路和可微化近似,保證了前向的取樣能夠估計NAS的優化目標,後向可以將梯度回傳到網路結構分佈的引數上,因此無偏而高效。


2.4 網路正向時延懲罰與網路稀疏化


除了從開始就一直提的搜尋效率問題之外,經典的NAS方法還有一個更加實際的問題,就是設計出的網路往往為了追求精度而過於複雜。具體體現在agent最終學會搭建一個有複雜拓撲結構的網路,這導致在訓練中需要消耗比較多的時間,就算是在實際的使用中,網路前向的時延也非常長。


本文作者的第三條insight是,agent對於這些複雜網路的偏好,一方面來自於在優化目標中並沒有一個對於前向時延的限制,另一方面來自於在最終網路的選取中依然有不在優化目標中的人工操作(如在DARTS中,每個中間節點強制要求選擇top-2權重的輸入邊上的top-1權重的非0神經變換),因此在整個網路結構搜尋的過程中並不能自動實現網路的稀疏化,也就是說有一些搜尋空間在最後被放棄了。


鑑於在2.2中介紹到的母網路的設計中實際已經包含了直接刪除某條輸入邊的可能,本文作者嘗試從補充優化目標入手,以期達到不需要在子網路的選取中加入人工就能自動獲得稀疏網路的目的。這個目的被建模為“在給定的網路正向時延預算下優化網路準確率”的問題

640?wx_fmt=png


通過拉格朗日變換(Lagrangian transformation),我們可以將(14)轉化為對網路正向時延的懲罰

640?wx_fmt=png


其中,如果每個網路的正向時延可以在具體部署的硬體上測得,對於640?wx_fmt=png的優化可以使用策略梯度的方法。但如果說對於網路搜尋的目的更偏向於多種硬體通用,這個正向時延可以通過在神經網路設計中廣泛使用的量值來近似[10,11]。


這些量值包括引數量、浮點計算數(FLOPs)以及需要的記憶體。使用這些量的一大優勢在於,取樣出的子網路的這些值的總量計算是與(11)一樣是一個對於各個備選神經變換的一些常量(如長、寬、通道數)的隨機線性變換。與(11)相似,我們有

640?wx_fmt=png


因而相較於在每一條輸入邊上優化一個全域性的網路正向時延,我們只需要優化每條邊上自己對時延的貢獻量。如果回到之前貢獻分配的語境,全域性的時延懲罰640?wx_fmt=png被線性分配到了每一條邊的決策640?wx_fmt=png上,這有利於提高收斂效率。又因為(16)是一個線性的變換,我們既可以用重引數化計算 640?wx_fmt=png的期望,也可以用策略梯度的方法。


3. 深度探究

3.1 SNAS中的貢獻分配


在之前的介紹中,雖然在2.1中提到了SNAS中使用了得分的可微性可以解決1.3中提到的在NAS這個完全延時獎勵任務中TD Learning可能會遇到的問題,這種得分分配仍然是一個黑盒。為了提高方法的可解釋性,作者通過數學推導,證明了SNAS中用來更新640?wx_fmt=png 的梯度640?wx_fmt=png的期望在策略梯度中的等價形式,每一條輸入邊640?wx_fmt=png上的決策640?wx_fmt=png 被分配到的得分為

640?wx_fmt=png


比較明顯的是,這個得分可以被解釋為一個對於得分640?wx_fmt=png 的一階泰勒展開(Taylor Decomposition)。對於cell中的某一個節點640?wx_fmt=png,它會聚集所有從輸出邊回傳的貢獻 640?wx_fmt=png,並把它按照的權重分配到它的所有輸入邊 640?wx_fmt=png。又由(10)我們知道,分配在 640?wx_fmt=png上的貢獻會根據隨機變數640?wx_fmt=png 來進行分配,當640?wx_fmt=png無限趨近於one-hot時,貢獻會完全被分配到被選擇的那個神經變換。


這種基於一階泰勒展開的貢獻分配,在[12]中被用來解釋神經網路中每個神經元的重要性,是目前比較被接受的解釋神經網路中不同模組重要性的方法。


在1.2中,我們介紹了MDP建模中,在搜尋早期TD Learning因為價值評估還沒來得及回傳到淺層的動作,它們被分配的貢獻並不合理。在1.3中,我們介紹到雖然這個不合理最終可以被修正,整個修正的過程卻需要比較長的時間。而SNAS中的貢獻分配從最開始就是合理的,而且每一步都是合理的,因而幸運的避開了這項時間成本。


這可以從一定程度上解釋為什麼SNAS的搜尋比基於強化學習的搜尋收斂快。與1.3中提到的RUDDER相比,SNAS利用了NAS任務的特殊性,搭建了一張連通網路結構分佈 640?wx_fmt=png 和任務環境也就是網路結構的計算圖,使得總得分函式天然可微,而且貢獻分配合理可解釋。


當與2.4中提到的網路正向時延向結合時,(17)中提到的得分會有一個懲罰項的補充,而這個懲罰項因為2.4中介紹的(16)的線性可分性同樣可以解釋為一種一階泰勒展開。


3.2 SNAS與DARTS的關係


在SNAS之前,Liu et al. 提出了一種可微分的神經網路結構搜尋,DARTS。不同於SNAS中通過完整的概率建模來提出新方法,DARTS將網路結構直接近似為確定性的連續權重,類似於注意力機制(attention)。在搜尋過程中,表達這個softmax連續權重的引數640?wx_fmt=png與網路神經變換的引數 640?wx_fmt=png 同時被更新,完全收斂之後選擇640?wx_fmt=png的argmax搭建子網路,再重新訓練 640?wx_fmt=png 。

640?wx_fmt=gif

圖8: DARTS中的前向和後向,因為並沒有子網路取樣的過程,優化的損失函式並不是NAS的目標函式


因為SNAS直接優化NAS的目標,作者從SNAS的建模出發,對DARTS的這一近似作出了概率建模下的解釋:這種連續化的近似可以被理解為是將(12)中 640?wx_fmt=png的全域性期望

 640?wx_fmt=png直接分解到每一條輸入邊上,計算了一個解析的期望

640?wx_fmt=png


如果說 640?wx_fmt=png 對於每一個640?wx_fmt=png都是線性的,(19)與(18)就是等價的。但是因為設計了 ReLU-Conv-BN 的堆疊,帶來了非線性,這兩個目標並不等價。


也就是說,在DARTS的連續化近似中帶來了很大的偏差(bias)。這一方面帶來了最終優化的結果並沒有理論保證的問題,使得一階優化(single-level optimization)的結果不盡人意;另一方面因為連續化近似並沒有趨向離散的限制,最終通過刪除較低權重的邊和神經變換產生的子網路將無法保持訓練時整個母網路的精度。


Liu et al. 提出用二階優化(bi-level optimization)通過基於梯度的元學習(gradient-based meta learning)來解決第一個問題,但是對於第二個問題,並沒有給出一個自動化的解法,而是人工定義了一些規則來挑選邊和神經變換,構建子網路,再重新訓練。


4. 實驗

4.1 CIFAR-10上的搜尋效率


從ENAS開始,在極致壓縮搜尋資源成本的方向上,比較常見的方法是先搜尋少量的cell,再把它們堆疊起來,重新訓練。為了和現有的通用NAS方法進行公平的對比,本文作者也採用了相同的方法,在一張GPU上針對CIFAR-10任務搜尋cell結構。


640?wx_fmt=png

圖9: SNAS, ENAS和DARTS在搜尋中的validation accuracy隨著訓練epoch數的變化


圖9展示了整個搜尋過程中SNAS、ENAS和DARTS的測試準確率隨著epoch數的變化。可以看到的是SNAS如作者理論預言的一樣,收斂速度明顯快於ENAS,而且最後收斂的準確率也遠遠高於ENAS。雖然從這張圖裡看起來DARTS的收斂速度快於SNAS,而且二者的收斂精度相似,但是這個準確率是整張母圖的準確率,基於3.2中的分析,它並不能反應最終子網路的效能。


4.2 搜尋結束直接產生子網路


為了直觀表現3.2中提到的第二個問題,即DARTS最終獲得的子網路並不能直接使用而一定需要引數的重新訓練,並檢測作者對於SNAS可以避免這個問題的理論預言,作者提供了上圖搜尋結束之後DARTS和SNAS按照各自的方式產生子網路的準確率。


640?wx_fmt=png

圖10: SNAS與DARTS在搜尋收斂時的準確率和直接產生子網路的準確率對比


從圖10可以看到,SNAS中產生的子網路可以保持搜尋時的測試集準確率,而DARTS的結果並不能。Liu et al. 提出的解決方案是,重新訓練子網路100個epoch。當把這部分時間同樣算進去,再外加上DARTS沒有最優的保證可能需要訓練多個網路再進行選擇,(如原文中Liu et al. 搜尋了十次選擇其中最好的,)SNAS的實際搜尋效率遠高於DARTS。


同時,在構建子網路的過程中,作者發現,同樣訓練150個epoch,SNAS的網路結構分佈,相對於DARTS中的softmax,對每條邊上的決策更加確定。圖11展示了這兩個分佈的資訊熵(entropy)的對比,SNAS的熵小於DARTS。


640?wx_fmt=png

圖11: SNAS與DARTS搜尋收斂後網路結構分佈的資訊熵


4.3 搜尋過程中的網路演化


在2.4中介紹到,除了重新建模NAS問題,SNAS的另一項創新點在於通過優化網路正向時延懲罰來自動實現網路稀疏化,避免搜尋出正向時延過長的網路。在ENAS和DARTS中,最終的網路都是通過人工規則來挑選每個節點上的兩條輸入邊的,在這個規則下的演化過程主要就是對每條邊上神經變換的替換。而SNAS有可能在搜尋過程中就出現網路本身拓撲結構的演化。

640?wx_fmt=gif

圖12: 在較強時延懲罰下的normal cell和reduction cell的演化過程


圖12展示了SNAS在較強延時懲罰下的normal cell和reduction cell的演化過程。可以看到的是,在搜尋的非常早期,大部分的邊就因此被自動刪除了。有兩點比較有意思的觀察: 

1)來自於藍色節點即輸入節點的邊在reduction cell中直到80個epoch之後才出現,這意味著在前80個epoch中reduction cell都是被跳過的,直到需要時它才被引入。

2)在normal cell中最後學習的結果是自動產生了每個節點有且僅有兩條輸入邊的拓撲結構,這說明ENAS和DARTS中做top-2的選擇有一定的合理性。但在reduction cell中最後的結果是有一半的節點沒有被使用,這對之前人工設計的子網路生成規則提出了挑戰。


4.4 不同程度延時懲罰的影響


作者在實驗中嘗試了三種不同程度的時延懲罰:

1)較弱時延懲罰是一個時延懲罰的邊界值,由它搜出的網路會出現邊的自動刪除,搜尋結果如圖13。當時延懲罰小於這個值時,時延懲罰更多的體現在對每條邊上的簡單神經操作的偏好上。


640?wx_fmt=png

圖13: 較弱時延懲罰下搜尋出的網路結構,(a): normal cell,(b): reduction cell


2)中等時延懲罰與較弱時延懲罰相比降低了網路的深度和網路引數量,並且帶來了更高的準確率(見4.5章),表現出了一定的正則效果。搜尋結果如圖14。


640?wx_fmt=png

圖14: 中等延時懲罰下搜尋出的網路結構,(a): normal cell,(b): reduction cell


3)較強時延懲罰下可以直接刪除中間節點,搜尋結果如圖15。可以看到節點2、3的輸入邊被完全刪除。同時,因為輸入節點 k-1 無輸出邊,整個cell的拓撲結構被大大簡化。


640?wx_fmt=png

圖15: 較強延時懲罰下搜尋出的網路結構,(a): normal cell,(b): reduction cell


4.5 CIFAR-10搜得結果網路的評估


與DARTS相同,作者將SNAS搜得的cell堆疊起來,在CIFAR-10上重新訓練引數,獲得了state-of-the-art的精度,如圖16所示。


640?wx_fmt=png

圖16: SNAS搜得的cell與其他NAS方法及人工設計結構在CIFAR上的對比


值得注意的是,一階優化的DARTS的結果並不如不優化網路結構分佈產生完全均勻分佈產生的結果,而一階優化的SNAS達到了DARTS二階優化獲得的準確率。而且因為前向時延懲罰的加入,SNAS搜得的網路在引數量上小於其他網路,卻獲得了相近的準確率。特別是在中等時延懲罰下,SNAS的子網路在使用更少引數的情況下準確率超過了較弱時延懲罰獲得的網路,表現出了時延懲罰的正則效果。


4.6 CIFAR-10搜得結果網路對ImageNet的擴充


與DARTS相同,作者提供了將SNAS搜得的cel擴充到tiny ImageNet上獲得的結果,如圖17所示。儘管使用更少的引數量和FLOPs,子網路可以達到state-of-the-art的準確率。


640?wx_fmt=png

圖17: SNAS搜得的cell與其他NAS方法及人工設計結構在ImageNet上的對比


5. 結語


隨機神經網路結構搜尋(SNAS)是一種高效率、低偏差、自動化程度高的神經網路結構搜尋(NAS)框架。作者通過對NAS進行重新建模,從理論上繞過了基於強化學習的方法在完全延遲獎勵中收斂速度慢的問題,直接通過梯度優化NAS的目標函式,保證了結果網路的網路引數可以直接使用。


相較於其他NAS方法中根據一定規則產生子網路的方式,作者提出了一套更加自動的網路拓撲結構演化方法,在優化網路準確率的同時,限制了網路結構的複雜度和前向時延。相信隨著這一研究的不斷深入,我們會看到更多SNAS在大資料集、大網路以及其他任務中的發展。


Reference

[1] Barret Zoph and Quoc V Le. Neural architecture search with reinforcement learning. In ICLR, 2017

[2] Hieu Pham, Melody Y. Guan, Barret Zoph, Quoc V. Le, and Jeff Dean. Efficient neural architecture search via parameter sharing. In ICML, 2018.

[3] Hanxiao Liu, Karen Simonyan, and Yiming Yang. DARTS: Differentiable architecture search. In ICLR, 2019.

[4] Han Cai, Jiacheng Yang, Weinan Zhang, Song Han, Yong Yu. Path-Level Network Transformation for Efficient Neural Architecture Search. In ICML, 2018

[5] Chenxi Liu, Barret Zoph, Jonathon Shlens, Wei Hua, Li-Jia Li, Li Fei-Fei, Alan Yuille, Jonathan Huang, and Kevin Murphy. Progressive neural architecture search. arXiv preprint arXiv:1712.00559, 2017.

[6] Richard S Sutton, Andrew G Barto, et al. Reinforcement learning: An introduction. MIT press, 1998.

[7] Jose A Arjona-Medina, Michael Gillhofer, Michael Widrich, Thomas Unterthiner, and Sepp Hochreiter. Rudder: Return decomposition for delayed rewards. arXiv preprint arXiv:1806.07857, 2018.

[8] Chris J Maddison, Andriy Mnih, and Yee Whye Teh. The concrete distribution: A continuous relaxation of discrete random variables. In ICLR, 2017.

[9] Eric Jang, Shixiang Gu, Ben Poole. Categorial Reparameterization with Gumbel-Softmax. In ICLR, 2017.

[10] Ariel Gordon, Elad Eban, Ofir Nachum, Bo Chen, Hao Wu, Tien-Ju Yang, and Edward Choi. Mor- phnet: Fast & simple resource-constrained structure learning of deep networks. In CVPR, 2018.

[11] Ningning Ma, Xiangyu Zhang, Hai-Tao Zheng, and Jian Sun. Shufflenet v2: Practical guidelines for efficient cnn architecture design. arXiv preprint arXiv:1807.11164, 2018.

[12] Gregoire Montavon, Sebastian Lapuschkin, Alexander Binder, Wojciech Samek, and Klaus-Robert Muller. Explaining nonlinear classification decisions with deep taylor decomposition. Pattern Recognition, 65:211–222, 2017.

(本文為 AI科技大本營轉載文章,轉載請微信聯絡原作者。)

徵稿

640?wx_fmt=png

推薦閱讀


640?wx_fmt=png

相關文章