論文筆記:分形網絡(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)3d

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

分形網絡是怎麼作的(How)
blog

  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
it

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

  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時候)

其它實驗

sso

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

學習曲線
channel

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

總結

  1. 論文的實驗說明了路徑長度纔是訓練深度網絡的須要的基本組件,而不僅僅是殘差塊
  2. 分形網絡和殘差網絡都有很大的網絡深度,可是在訓練的時候都具備更短的有效的梯度傳播路徑
  3. 分形網絡簡化了對這種需求(更短的有效的梯度傳播路徑)的知足,能夠防止網絡過深
  4. 多餘的深度可能會減慢訓練速度,但不會損害準確性
相關文章
相關標籤/搜索