論文筆記:分形網絡(FractalNet: Ultra-Deep Neural Networks without Residuals)


FractalNet: Ultra-Deep Neural Networks without Residuals
ICLR 2017
Gustav Larsson, Michael Maire, Gregory Shakhnarovich

文章提出了什么(What)

  1. ResNet提升了深度網絡的表現,本文提出的分形網絡也取得了優秀的表現,通過實驗表示,殘差結構對於深度網絡來說不是必須的。
  2. ResNet缺乏正則方法,本文提出了drop-path,對子路徑進行隨機丟棄

為什么有效(Why)

  1. 分形網絡不像resNet那樣連一條捷徑,而是通過不同長度的子路徑組合,網絡選擇合適的子路徑集合提升模型表現
  2. drop-path是dropout(防止co-adaption)的天然擴展,是一種正則方法,可以防止過擬合,提升模型表現
  3. drop-path提供了很好的正則效果,在不用數據增強時也取得了優秀的結果
  4. 通過實驗說明了帶drop-path訓練后的總網絡提取的單獨列(網絡)也能取得優秀的表現。
  5. 分形網絡體現的一種特性為:淺層子網提供更迅速的回答,深層子網提供更准確的回答。

分形網絡是怎么做的(How)

  1. 圖中以粉紅色的卷積層Convolution為基礎層,實際上可以為其它類型的層或者子網絡;綠色的Join層一般可以用相加或concat,這里采取了相加然后取平均,因此所有基礎層可以使用一樣的channel數量
  2. $ f_{C}(z) $ 中C表示列數,z表示輸入,C=1表示一個基礎層
  3. $ f_{C+1}(z) $ 則如圖所示,在右邊疊加兩個$ f_{C}(z) $ ,左邊接一個基礎層
  4. 以此類推,當C等於4的時候,可以得到圖中的$ f_{4}(z) $
  5. $ f_{4}(z) $作為一個block中,如圖中最右邊的網絡所示,完整的網絡接了5個block,block之間用Pool層連接,最后是預測層
  6. 令block個數為B,每個block中的列數為C,網絡的總深度為$ B\cdot 2^{C-1} $

兩種drop-path

實驗訓練的時候,mini-batch之間交叉使用Local和Global

  1. Local:對join層的輸入dropout,但是至少保證要有一個輸入
  2. Global: 對於整個網絡來說,只選擇一條路徑,且限制為某個單獨列,所以這條路徑是獨立的強預測路徑

模型對比的實驗

  1. +表示使用了水平鏡像翻轉和平移,++表示使用了更多的數據增強,實驗主要和ResNet對比
  2. 用drop-path訓練,可以從網絡提取最深的單獨列,在表格數據中可以看出也取得了不錯的表現
  3. 不使用數據增強時,分形網絡的表現超過了ResNet,可以看出分形網絡更不容易過擬合
  4. 使用數據增強時,分形網絡取得了和ResNet變種差不多的表現
  5. 不使用數據增強的時候,drop-path提升了表現
  6. 使用數據增強的時候,drop-path提升或者沒有下降太大的表現

20層分形網絡的模型細節

  1. 每個卷積層后面加了BN(先卷積,再BN,再relu激活)
  2. B=5,C=3
  3. 訓練集都是32*32*3的圖像,使用2*2的Max-pooling,經過5次下采樣后32*32會變成1*1,最后的預測層使用softmax
  4. 為了實現方便,對於每一個block,調換了最后面的pool和join的順序
  5. 五個block的卷積核數量默認為64,128,256,512,512
  6. 每個block最后的dropout概率設為0,0.1,0.2,0.3,0.4
  7. 整個網絡的local drop-path設為0.15
  8. caffe實現,學習率為0.02,momentum為0.9,batchsize為100,使用Xavier初始化參數
  9. CIFAR-10/CIFAR-100迭代了400輪,SVHN迭代了20輪
  10. 每當“剩余epoch數減半”時,學習率除以10(比如剩余epoch為200時,剩余epoch為100時,剩余epoch為50時候)

其它實驗

  1. 分形網絡到了160層開始出現退化
  2. 平常的網絡到了40層就出現了退化,到了160層不能收斂
  3. 使用了drop-path的分形網絡提取的單獨列(網絡)比平常的網絡取得了更優的表現,而且克服了退化問題(平常網絡40層就退化)
  4. 這里的實驗減小了每個block的channels,為16,32,64,128,128,batchsize設置為50

學習曲線

  1. 40層分形網絡的學習曲線中,可以看到Col#4 開始學習時很慢,當其它子網學習趨近穩定時,Col#4學習速度提升
  2. 左圖平常網絡的學習曲線中沒有這種性質(藍色虛線)
  3. 假設分形網絡會觸發和深度監督,橫向的“學生-教師”信息流類似的效果,那么可以這樣分析,當分形網絡依賴於單獨使用Col#3來輸出,當drop-path丟棄Col#3的時候,網絡則會促進Col#4的學習,使得Col#4學的東西能代替Col#3,這是一個迷你的學生-教師問題

總結

  1. 論文的實驗說明了路徑長度才是訓練深度網絡的需要的基本組件,而不單單是殘差塊
  2. 分形網絡和殘差網絡都有很大的網絡深度,但是在訓練的時候都具有更短的有效的梯度傳播路徑
  3. 分形網絡簡化了對這種需求(更短的有效的梯度傳播路徑)的滿足,可以防止網絡過深
  4. 多余的深度可能會減慢訓練速度,但不會損害准確性


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2024 CODEPRJ.COM