萬字解讀商湯科技ICLR2019論文:隨機神經網路結構搜索

  • 2019 年 10 月 31 日
  • 筆記

AI 科技評論消息,日前,商湯科技研究院論文《隨機神經網路結構搜索》(SNAS,stochastic neural architecture search)被深度學習頂級會議 ICLR(International Conference of Learning Representation)錄用,該論文第一作者來自 SenseTime 研究院自動駕駛部門,作者專註強化學習(reinforcement learning)和自動機器學習(AutoML)的研究。

本文作者對NAS任務中強化學習的效率進行了深入思考,從理論上給出了NAS中強化學習收斂慢的原因。該論文提出了一種全新的經濟、高效且自動化程度高的神經網路結構搜索(NAS)方法。他們通過深入分析NAS任務的MDP,提出了一個更高效的方法——隨機神經網路結構搜索,重新建模了NAS問題。與基於強化學習的方法(ENAS)相比,SNAS的搜索優化可微分,搜索效率更高。與其他可微分的方法(DARTS)相比,SNAS直接優化NAS任務的目標函數,搜索結果偏差更小。此外,基於SNAS保持了隨機性(stochasticity)的優勢,該論文進一步提出同時優化網路損失函數的期望和網路正向時延的期望,自動生成硬體友好的稀疏網路。

這並不是商湯科技第一次在高峰會上發表 NAS 相關論文,2018年,商湯在 CVPR 上發表了一篇關於 NAS 的論文《深度增強學習自動網路結構設計》,這一論文提出了一種基於強化學習的網路結構自動設計演算法,通過「網路塊」的設計思想,讓搜索空間大大降低,並且使設計的網路具有非常強的可遷移性。

NAS日益成為自動機器學習(AutoML)中的熱點問題之一,通過設計經濟高效的搜索方法,自動獲得泛化能力強、硬體友好的神經網路結構,可以大量降低研發成本,解放研究員的創造力。

那麼,商湯科技最新論文究竟針對已有的問題有了哪些優化,以下是研究院團隊對這一論文的詳細解讀。

1. 背景

1.1 NAS中的MDP

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

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

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

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

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

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

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

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

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

簡單來說,MDP建模的是一個人工智慧agent和環境交互中的agent動作(action,

)和環境狀態變化(state transition)過程。回到搭建一個CNN的例子來說,環境即是對網路結構的抽象,狀態(state,

)表示的是當前已經選擇了卷積方式的所有層,而動作表示的是在下一層中要選怎樣的卷積。

在一些情況下,我們會用策略函數(policy,

)來表達agent在每個狀態上動作的分布。該過程中agent的總得分,也就是搭建的網路在測試集上的精度(accuracy),通過強化學習(Reinforcement Learning)這種通用黑盒演算法來優化。然而,因為強化學習本身具有數據利用率低的特點,這個優化的過程往往需要大量的計算資源。

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

圖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),一種最基本的計算每一個狀態上的總得分期望(

)的TD Learning,如以下公式所示:

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

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

也就是說,agent對於某一狀態的價值的評估基於它對該狀態將來狀態的評估。值得注意的是,(1)中TD的回傳是一個局部的回傳,並不會在一個回傳就實現將最後一個狀態的資訊傳遞到之前的每一個節點。這是一個很極端的例子,agent對

的價值評估,完全取決於

,在一次更新中,資訊只會向前傳遞一步。根據動態規劃,如果只有這一條trajectory是可能的,這個傳遞的總時間就是這條trajectory的長度。當可能出現trajectory超過一條時,就需要根據出現的概率來取期望。

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

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

經典的強化學習領域中有很多方法嘗試解決這個問題。比如放棄TD直接通過蒙特卡洛(Monte Carlo,MC )取樣來做價值評估。此外,也可以通過eligibility trace

在基於 TD(0) 和基於 MC 的價值評估中做trade-off,以使得agent

出現偏差的風險被將來更多的

分攤。這裡我們不繼續發散,感興趣的讀者可以查閱Sutton的textbook[6]。

1.3 延遲獎勵中的貢獻分配

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

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

的抖動,並不利於

的收斂。

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

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

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

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

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

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

2. 方法

2.1 重新建模NAS

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

其中

表示的是trajectory,

是網路參數,或者更具體的說是所有可能神經變換的參數。

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

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

這是一個非常常見的生成式模型(generative model)的目標函數。因而我們可以使用生成式模型中的一些方法,重新表

. 比如將

建模成一個fully factorizable的分布

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

其中,為了與MDP的建模區分開,我們用決策

來替換動作

。將(6)或者(7)帶入(5)中,我們得到了一個新的目標函數

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

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

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

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

與(9)不同的是,在本文作者重新建模的目標函數(8)中,表達網路結構分布的參數

和網路變換的參數

被統一在了一起,這就為一次後向同時更新

提供了可能,也就是說有可能實現在更新

的同時將可微的總得分分配到每一條邊的決策上。然而,要達到這個目的,我們首先需要將網路結構分布

構建進神經網路的計算圖裡,以在一次前向中實現對子網路結構的取樣。

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

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

其中表示節點

(node),實際的物理含義為特徵圖(feature map),

表示在邊

上選擇的神經變換(operations),

表示在邊

上所有的神經變換,

表示在邊

上的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)與這種母網路結合,我們可以獲得每一個節點的實際數學表達

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

2.3 可微化近似

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

和神經變換參數

的梯度。

對一個如(12)的目標函數的求導,特別是對期望項的求導,最經典的方法是likelihood ratio trick,它在強化學習中策略梯度(policy gradient)的推導中被使用。然而,這一方法的主要問題是由

抖動帶來的較大的梯度方差(variance),並不利於整個優化過程的收斂。特別是考慮到

本身的維度比較高(其維度等於所有輸入邊的總數),如何降低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,

他們同時證明了當softmax的溫度(temperature)趨近於0時,該方法產生的隨機變數趨近於該離散分布。 作者在論文中給出了近似後的損失函數

回傳的梯度,並在附錄中給出了詳細推導。經過這一可微化之後,我們可以用圖7來表達SNAS中的前向

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

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

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

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

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

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

其中,如果每個網路的正向時延可以在具體部署的硬體上測得,對於

的優化可以使用策略梯度的方法。但如果說對於網路搜索的目的更偏向於多種硬體通用,這個正向時延可以通過在神經網路設計中廣泛使用的量值來近似[10,11]。

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

因而相較於在每一條輸入邊上優化一個全局的網路正向時延,我們只需要優化每條邊上自己對時延的貢獻量。如果回到之前貢獻分配的語境,全局的時延懲罰

被線性分配到了每一條邊的決策

上,這有利於提高收斂效率。又因為(16)是一個線性的變換,我們既可以用重參數化計算

的期望,也可以用策略梯度的方法。

3. 深度探究

3.1 SNAS中的貢獻分配

在之前的介紹中,雖然在2.1中提到了SNAS中使用了得分的可微性可以解決1.3中提到的在NAS這個完全延時獎勵任務中TD Learning可能會遇到的問題,這種得分分配仍然是一個黑盒。為了提高方法的可解釋性,作者通過數學推導,證明了SNAS中用來更新

的梯度

的期望在策略梯度中的等價形式,每一條輸入邊

上的決策

被分配到的得分為

比較明顯的是,這個得分可以被解釋為一個對於得分

的一階泰勒展開(Taylor Decomposition)。對於cell中的某一個節點

,它會聚集所有從輸出邊回傳的貢獻

,並把它按照的權重分配到它的所有輸入邊

。又由(10)我們知道,分配在

上的貢獻會根據隨機變數

來進行分配,當

無限趨近於one-hot時,貢獻會完全被分配到被選擇的那個神經變換。

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

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

這可以從一定程度上解釋為什麼SNAS的搜索比基於強化學習的搜索收斂快。與1.3中提到的RUDDER相比,SNAS利用了NAS任務的特殊性,搭建了一張連通網路結構分布

和任務環境也就是網路結構的計算圖,使得總得分函數天然可微,而且貢獻分配合理可解釋。

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

3.2 SNAS與DARTS的關係

在SNAS之前,Liu et al. 提出了一種可微分的神經網路結構搜索,DARTS。不同於SNAS中通過完整的概率建模來提出新方法,DARTS將網路結構直接近似為確定性的連續權重,類似於注意力機制(attention)。在搜索過程中,表達這個softmax連續權重的參數

與網路神經變換的參數

同時被更新,完全收斂之後選擇

的argmax搭建子網路,再重新訓練

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

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

的全局期望

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

如果說

對於每一個

都是線性的,(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結構。

圖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按照各自的方式產生子網路的準確率。

圖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。

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

4.3 搜索過程中的網路演化

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

圖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。當時延懲罰小於這個值時,時延懲罰更多的體現在對每條邊上的簡單神經操作的偏好上。

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

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

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

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

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

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

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

圖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的準確率。

圖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.