1. 程式人生 > >網路結構搜尋(3) —— Simple and efficient architecture search for convolutional neural network

網路結構搜尋(3) —— Simple and efficient architecture search for convolutional neural network

一、網路態射(Network Morphism)

神經網路的結構幾乎都是朝著越來越深的方向發展,但是由人工來設計網路結構的代價非常大,在網路結構搜尋(1)網路結構搜尋(2)中分析了NAS、ENAS的網路結構搜尋方法,通過RNN來學習一個網路結構引數構建模型,ENAS又在NAS的基礎上引入權值貢獻(DAG圖)提高了搜尋效率。

本文則考慮到,在實際網路搜尋中,對於某一個task會有一些前任已經訓練好的模型,如何利用這些pre-train好的模型,不需要從頭開始訓練以及搜尋,提出了基於網路態射(network morphism)的搜尋方法。

網路態射在論文中的定義:

簡單的來說就是去對於原網路結構每一層尋找一個對映關係,可以做層之間的增加、改變通道數目、擴充套件寬度、跨層連線、加入ReLU啟用層、merge等操作。

二、Hill Climbing以及一些數學基礎:

求一個函式最大值的演算法通常有:爬山演算法、模擬退火演算法、遺傳演算法。

(1)爬山演算法是一種區域性擇優的方法,採用啟發式方法,是對深度優先搜尋的一種改進,它利用反饋資訊幫助生成解的決策。

爬山演算法一般存在以下問題:

  1. 區域性最大
  2. 高地:也稱為平頂,搜尋一旦到達高地,就無法確定搜尋最佳方向,會產生隨機走動,使得搜尋效率降低。
  3. 山脊:搜尋可能會在山脊的兩面來回震盪,前進步伐很小。

在本論文中理解則是:從搜尋空間中產生臨近的點,從中選擇對應解最優的個體,替換原來的個體,並不斷的重複。

最大的缺點在於非常容易陷入區域性最優解,例如下圖:

(2)模擬退火演算法:

什麼是“退火”:根據物理學原理,一個高溫物體冷卻的過程是:溫度逐漸下降,並且下降的速率隨時間推移而減小,最終與室溫一致。

以上述爬山圖為例,模擬退火的思路會放寬一些,即使是下一步的效果差一些,依舊給一定的轉移概率,簡單的來說就是:

  • 若下一狀態更優,則轉移至下一狀態
  • 否則有一定的概率轉移至下一狀態

對於本論文來說,使用了餘弦退火:將學習率設定為隨模型迭代輪數不斷改變的方法,更新學習率使用的是cos(),例如:

lr_scheduler = optim.lr_scheduler.CosineAnnealingLR(optimizer, T_max=5,eta_min=4e-08)
lr_scheduler.step()

學習率變化則如下圖:

ä»fast.aiå­¦å°çå大æå·§ï¼å¦ä½å¨å å¨åä¸æ顶级ç®æ³

同時文章使用了SGDR(熱重啟隨機梯度下降,SGDR: Stochastic Grandient Descent with warm Restarted,ICLR 2017)作為優化器。每個epoch的學習率會被重新設定成原始超引數,然後在用餘弦退火逐漸縮小,可以使得學習率變化為以下形態:

       ä»fast.aiå­¦å°çå大æå·§ï¼å¦ä½å¨å å¨åä¸æ顶级ç®æ³        ä»fast.aiå­¦å°çå大æå·§ï¼å¦ä½å¨å å¨åä¸æ顶级ç®æ³

這樣學習率的好處在於可以有更大的機會跳出區域性最優解:

                                                  ä»fast.aiå­¦å°çå大æå·§ï¼å¦ä½å¨å å¨åä¸æ顶级ç®æ³

三、NAS by hill climbing:

       

演算法過程如下:

主要思路

(1)將某個pre-trained好的網路結構model0當做modelbest,這是網路的初始化

(2)開始做爬山演算法:

當小於總共要走的nsteps時:

      1、對上一代的modelbest做nneigh-1個對映:

      

      並對這nneign-1個model採用SGDR的優化器,訓練epochneigh次更新網路引數:      

      

     2、對原本的modelbest的model採用SGDR的優化器,訓練epochneigh次更新網路引數:

     

     最終得到更新後nneigh個model。

     3、對這更新後的nneigh個model在驗證集上進行測試,選擇精度最高的作為此輪迭代後的modelbest:

      

對1-3次迴圈迭代。

四、ApplyNetMorphs:

Type I: Addition of layer (including regularization layer)

⽤Replace替換。當A=1,B=0時(可以學習初始值A=1,B=0,這與下⾯的Morph相同),這顯然滿⾜了這個假設。 它只是通過對當前圖層進⾏加權來為其新增偏置,因此可以⽤來新增所謂的圖層。還可以定義⼀個執⾏輸出正則化的層(批處理標準化等)。很顯然,當假設 C=A^-1,d=-cb 時,這個假設是成⽴ 的。

Type II: Output Concat

替換fiwi(x)=Ahwh(x)+b。這顯然滿⾜A〜= 0時的假設。這意味著在 h〜= h的情況下,⽹絡的⼤⼩將會擴⼤,如果h(�)是⼀個連續的 隱層,h〜(x)是x,則可以表示連線型別Skip - Connection

TypeIII: Addition of ReLU

把這一層的權重簡單的進行一個替換,例如拿來加relu。

Type IV: Output Merge

λ=1時保持不變,λ≠1時理論上可以合併 各種非線性函式。

The function ApplyNetMorph:

Details:

Morph是隨機選擇的

for type I:新增layers的地⽅是隨機的,kernel的size只有{3,5},通道數量與最新的卷積核數⽬相同

for type II:擴充套件寬度從2到4倍隨機選擇,要跳過的層的範圍(i到j)是隨機選擇的(同樣在tvpe IV中)

使⽤餘弦退⽕來學習變形⽹絡根據餘弦曲線提⾼和降低學習率的⽅法將錯誤率降低約1%的效果。

五、Summary and Contributions:

通過逐漸發展⽹絡,不需要從零開始學習。

可以評估降低結構搜尋的速度和成本的觀點。

然⽽,變形和啟發式並沒有太多的變化,⽽且它似乎可以輕鬆達到像Dense / ResNet這樣的簡單結構。

即使沒有⼤規模的計算資源,也能⾃動設計⽹絡架構 我們的演算法很容易擴充套件 。