FractalNet: Ultra-Deep Neural Networks without Residuals
ICLR 2017
Gustav Larsson, Michael Maire, Gregory Shakhnarovich
文章提出了什么(What)
- ResNet提升了深度網絡的表現,本文提出的分形網絡也取得了優秀的表現,通過實驗表示,殘差結構對於深度網絡來說不是必須的。
- ResNet缺乏正則方法,本文提出了drop-path,對子路徑進行隨機丟棄
為什么有效(Why)
- 分形網絡不像resNet那樣連一條捷徑,而是通過不同長度的子路徑組合,網絡選擇合適的子路徑集合提升模型表現
- drop-path是dropout(防止co-adaption)的天然擴展,是一種正則方法,可以防止過擬合,提升模型表現
- drop-path提供了很好的正則效果,在不用數據增強時也取得了優秀的結果
- 通過實驗說明了帶drop-path訓練后的總網絡提取的單獨列(網絡)也能取得優秀的表現。
- 分形網絡體現的一種特性為:淺層子網提供更迅速的回答,深層子網提供更准確的回答。
分形網絡是怎么做的(How)
- 圖中以粉紅色的卷積層Convolution為基礎層,實際上可以為其它類型的層或者子網絡;綠色的Join層一般可以用相加或concat,這里采取了相加然后取平均,因此所有基礎層可以使用一樣的channel數量
- $ f_{C}(z) $ 中C表示列數,z表示輸入,C=1表示一個基礎層
- $ f_{C+1}(z) $ 則如圖所示,在右邊疊加兩個$ f_{C}(z) $ ,左邊接一個基礎層
- 以此類推,當C等於4的時候,可以得到圖中的$ f_{4}(z) $
- $ f_{4}(z) $作為一個block中,如圖中最右邊的網絡所示,完整的網絡接了5個block,block之間用Pool層連接,最后是預測層
- 令block個數為B,每個block中的列數為C,網絡的總深度為$ B\cdot 2^{C-1} $
兩種drop-path
實驗訓練的時候,mini-batch之間交叉使用Local和Global
- Local:對join層的輸入dropout,但是至少保證要有一個輸入
- Global: 對於整個網絡來說,只選擇一條路徑,且限制為某個單獨列,所以這條路徑是獨立的強預測路徑
模型對比的實驗
- +表示使用了水平鏡像翻轉和平移,++表示使用了更多的數據增強,實驗主要和ResNet對比
- 用drop-path訓練,可以從網絡提取最深的單獨列,在表格數據中可以看出也取得了不錯的表現
- 不使用數據增強時,分形網絡的表現超過了ResNet,可以看出分形網絡更不容易過擬合
- 使用數據增強時,分形網絡取得了和ResNet變種差不多的表現
- 不使用數據增強的時候,drop-path提升了表現
- 使用數據增強的時候,drop-path提升或者沒有下降太大的表現
20層分形網絡的模型細節
- 每個卷積層后面加了BN(先卷積,再BN,再relu激活)
- B=5,C=3
- 訓練集都是32*32*3的圖像,使用2*2的Max-pooling,經過5次下采樣后32*32會變成1*1,最后的預測層使用softmax
- 為了實現方便,對於每一個block,調換了最后面的pool和join的順序
- 五個block的卷積核數量默認為64,128,256,512,512
- 每個block最后的dropout概率設為0,0.1,0.2,0.3,0.4
- 整個網絡的local drop-path設為0.15
- caffe實現,學習率為0.02,momentum為0.9,batchsize為100,使用Xavier初始化參數
- CIFAR-10/CIFAR-100迭代了400輪,SVHN迭代了20輪
- 每當“剩余epoch數減半”時,學習率除以10(比如剩余epoch為200時,剩余epoch為100時,剩余epoch為50時候)
其它實驗
- 分形網絡到了160層開始出現退化
- 平常的網絡到了40層就出現了退化,到了160層不能收斂
- 使用了drop-path的分形網絡提取的單獨列(網絡)比平常的網絡取得了更優的表現,而且克服了退化問題(平常網絡40層就退化)
- 這里的實驗減小了每個block的channels,為16,32,64,128,128,batchsize設置為50
學習曲線
- 40層分形網絡的學習曲線中,可以看到Col#4 開始學習時很慢,當其它子網學習趨近穩定時,Col#4學習速度提升
- 左圖平常網絡的學習曲線中沒有這種性質(藍色虛線)
- 假設分形網絡會觸發和深度監督,橫向的“學生-教師”信息流類似的效果,那么可以這樣分析,當分形網絡依賴於單獨使用Col#3來輸出,當drop-path丟棄Col#3的時候,網絡則會促進Col#4的學習,使得Col#4學的東西能代替Col#3,這是一個迷你的學生-教師問題
總結
- 論文的實驗說明了路徑長度才是訓練深度網絡的需要的基本組件,而不單單是殘差塊
- 分形網絡和殘差網絡都有很大的網絡深度,但是在訓練的時候都具有更短的有效的梯度傳播路徑
- 分形網絡簡化了對這種需求(更短的有效的梯度傳播路徑)的滿足,可以防止網絡過深
- 多余的深度可能會減慢訓練速度,但不會損害准確性