1. 程式人生 > >卷積神經網路的網路結構——FractalNet

卷積神經網路的網路結構——FractalNet

分形網路:無殘差的極深神經網路

文章提出了什麼(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

. fc(z)f_{c}(z)中C表示列數,z表示輸入,C=1表示一個基礎層 3.fc+1(z)f_{c+1}(z)則如圖所示,在右邊疊加兩個fc(z)f_{c}(z),左邊接一個基礎層 4.以此類推,當C等於4的時候,可以得到圖中的f4(z)f_{4}(z) 5.f4(z)f_{4}(z)作為一個block中,如圖中最右邊的網路所示,完整的網路接了5個block,block之間用Pool層連線,最後是預測層 6.令block個數為B,每個block中的列數為C,網路的總深度為B2C1B\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.訓練集都是32323的影象,使用22的Max-pooling,經過5次下采樣後3232會變成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.多餘的深度可能會減慢訓練速度,但不會損害準確性

注:博眾家之所長,叢集英之薈萃。