一. resnext 的 block 改進
msra 的 kaiming 轉戰facebook的又一力作,大牛的神來之筆:
aggregated residual transformations for deep neural networks
github】
resnet、inception 已經成為目前網路的前進方向,堆疊的block幾乎成了網路的標配,通過超引數(block size) 去配置網路。
基於 resnet 的改進,resnext 無疑是最好的乙個,如果把 inception 改進系看作是花拳繡腿的話,那 resnext 則是真功夫。
來看下 resnext 的改進block 對比圖:
一圖勝萬言,resnext 保留了 resnet 的堆疊block,針對單個blog的改進,將單個path進行拆分,這樣做有什麼好處呢?
左圖 64個卷積核(1*1,3*3,1*1)對所有的 input 進行卷積計算,右圖通過網路拆分,4個channel一組,提高了網路的分工和區域性適應性,32個path的輸出向量按照pixel-wise求和(所有通道對應位置點相加),然後再與base(x)相加。
對於path路徑個數,作者給取了個名字叫 cardinality,我們稱為分支容量 或者 基數,這就是我們尋找的第二個超引數。另外還有乙個 bottleneck指的是在每乙個path或者group中,中間過渡形態的feature map的channel數目(或者卷積核個數)。
下圖是 resnext 的幾種等價形式:a)為分割path形式 b)提前做了加法(concatenate) c)通過 group conv 實現與 a、b等價的效果:
二. 實驗結果對比
通過實驗發現,resnext50 的準確度近似等於 resnet101層的效果,看下圖對比:
對比結論:
與 resnet 相比,相同的引數個數,resnext 結果更好;或者說同樣的效果,resnext的計算量更少,乙個 50 層的 resnext 網路,和 101 層的 resnet 準確度接近。增大cardinality比增大模型的width或者depth效果更好;
resnext 網路結構更加簡單,僅需要少量的超引數來描述;
模組化設計更加合理,沒有花拳繡腿。
深度學習之ResNeXt
鏈結 aggregated residual transformations for deep neural networks 傳統的要提高模型的準確率,都是加深或加寬網路,但是隨著超引數數量的增加 比如channels數,filter size等等 網路設計的難度和計算開銷也會增加。因此本文提出的...
進化計算 進化演算法
從今天開始,將進入另一類智慧型優化演算法 進化計算 evolutionary computation 這些演算法更多的是基於達爾文的 演化論 相關理論進行演算法的設計。進化演算法 evolutionary algorithms,eas 通常包括遺傳演算法 genetic algorithms,ga ...
用進化的觀點學習網路協議
一般而言,我們比較習慣於用分層的觀點來學習網路協議,這也是大學的教學方法。然而這種方式在前期如果有個地方理解不了只有死記硬背了。如果我們帶著問題,並且試圖去解決這些問題,最終恍然大悟,得到 原來xx協議就是解決這個問題的啊 這種感嘆,那麼學習效果一定事半功倍。所謂帶著問題學習,其實就是拋開一切知識,...