一、網絡態射(Network Morphism)
神經網絡的結構幾乎都是朝着越來越深的方向發展,但是由人工來設計網絡結構的代價非常大,在網絡結構搜索(1)、網絡結構搜索(2)中分析了NAS、ENAS的網絡結構搜索方法,通過RNN來學習一個網絡結構參數構建模型,ENAS又在NAS的基礎上引入權值貢獻(DAG圖)提高了搜索效率。
本文則考慮到,在實際網絡搜索中,對於某一個task會有一些前任已經訓練好的模型,如何利用這些pre-train好的模型,不需要從頭開始訓練以及搜尋,提出了基於網絡態射(network morphism)的搜索方法。
網絡態射在論文中的定義:
簡單的來說就是去對於原網絡結構每一層尋找一個映射關係,可以做層之間的增加、改變通道數目、擴展寬度、跨層連接、加入ReLU激活層、merge等操作。
二、Hill Climbing以及一些數學基礎:
求一個函數最大值的算法通常有:爬山算法、模擬退火算法、遺傳算法。
(1)爬山算法是一種局部擇優的方法,採用啓發式方法,是對深度優先搜索的一種改進,它利用反饋信息幫助生成解的決策。
爬山算法一般存在以下問題:
在本論文中理解則是:從搜索空間中產生臨近的點,從中選擇對應解最優的個體,替換原來的個體,並不斷的重複。
最大的缺點在於非常容易陷入局部最優解,例如下圖:
(2)模擬退火算法:
什麼是“退火”:根據物理學原理,一個高溫物體冷卻的過程是:溫度逐漸下降,並且下降的速率隨時間推移而減小,最終與室溫一致。
以上述爬山圖爲例,模擬退火的思路會放寬一些,即使是下一步的效果差一些,依舊給一定的轉移概率,簡單的來說就是:
- 若下一狀態更優,則轉移至下一狀態
- 否則有一定的概率轉移至下一狀態
對於本論文來說,使用了餘弦退火:將學習率設置爲隨模型迭代輪數不斷改變的方法,更新學習率使用的是cos(),例如:
lr_scheduler = optim.lr_scheduler.CosineAnnealingLR(optimizer, T_max=5,eta_min=4e-08)
lr_scheduler.step()
學習率變化則如下圖:
同時文章使用了SGDR(熱重啓隨機梯度下降,SGDR: Stochastic Grandient Descent with warm Restarted,ICLR 2017)作爲優化器。每個epoch的學習率會被重新設置成原始超參數,然後在用餘弦退火逐漸縮小,可以使得學習率變化爲以下形態:
這樣學習率的好處在於可以有更大的機會跳出局部最優解:
三、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這樣的簡單結構。
即使沒有⼤規模的計算資源,也能⾃動設計⽹絡架構 我們的算法很容易擴展 。