FractalNet: Ultra-Deep Neural Networks without Residuals
ICLR 2017
Gustav Larsson, Michael Maire, Gregory Shakhnarovich網絡
文章提出了什麼(What)學習
- ResNet提高了深度網絡的表現,本文提出的分形網絡也取得了優秀的表現,經過實驗表示,殘差結構對於深度網絡來講不是必須的。
- ResNet缺少正則方法,本文提出了drop-path,對子路徑進行隨機丟棄
爲何有效(Why)3d
- 分形網絡不像resNet那樣連一條捷徑,而是經過不一樣長度的子路徑組合,網絡選擇合適的子路徑集合提高模型表現
- drop-path是dropout(防止co-adaption)的自然擴展,是一種正則方法,能夠防止過擬合,提高模型表現
- drop-path提供了很好的正則效果,在不用數據加強時也取得了優秀的結果
- 經過實驗說明了帶drop-path訓練後的總網絡提取的單獨列(網絡)也能取得優秀的表現。
- 分形網絡體現的一種特性爲:淺層子網提供更迅速的回答,深層子網提供更準確的回答。
分形網絡是怎麼作的(How)
blog
- 圖中以粉紅色的卷積層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
it
實驗訓練的時候,mini-batch之間交叉使用Local和Globalio
- 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時候)
其它實驗
sso
- 分形網絡到了160層開始出現退化
- 日常的網絡到了40層就出現了退化,到了160層不能收斂
- 使用了drop-path的分形網絡提取的單獨列(網絡)比日常的網絡取得了更優的表現,並且克服了退化問題(日常網絡40層就退化)
- 這裏的實驗減少了每一個block的channels,爲16,32,64,128,128,batchsize設置爲50
學習曲線
channel
- 40層分形網絡的學習曲線中,能夠看到Col#4 開始學習時很慢,當其它子網學習趨近穩定時,Col#4學習速度提高
- 左圖日常網絡的學習曲線中沒有這種性質(藍色虛線)
- 假設分形網絡會觸發和深度監督,橫向的「學生-教師」信息流相似的效果,那麼能夠這樣分析,當分形網絡依賴於單獨使用Col#3來輸出,當drop-path丟棄Col#3的時候,網絡則會促進Col#4的學習,使得Col#4學的東西能代替Col#3,這是一個迷你的學生-教師問題
總結
- 論文的實驗說明了路徑長度纔是訓練深度網絡的須要的基本組件,而不僅僅是殘差塊
- 分形網絡和殘差網絡都有很大的網絡深度,可是在訓練的時候都具備更短的有效的梯度傳播路徑
- 分形網絡簡化了對這種需求(更短的有效的梯度傳播路徑)的知足,能夠防止網絡過深
- 多餘的深度可能會減慢訓練速度,但不會損害準確性