1. 程式人生 > >《2017-Aggregated Residual Transformations for Deep Neural Networks》論文閱讀

《2017-Aggregated Residual Transformations for Deep Neural Networks》論文閱讀

動機

  • 傳統的要提高模型的準確率,都是加深或加寬網路,但是隨著超引數數量的增加(比如channels數,filter size等等),網路設計的難度和計算開銷也會增加。
  • 本文提出的 ResNeXt 結構可以在不增加引數複雜度的前提下提高準確率,同時還減少了超引數的數量;

貢獻

  • 作者在這篇論文中提出網路 ResNeXt,同時採用 VGG 堆疊的思想和 Inception 的 split-transform-merge 思想,但是可擴充套件性比較強,可以認為是在增加準確率的同時基本不改變或降低模型的複雜度。這裡提到一個名詞cardinality,原文的解釋是the size of the set of transformations,如下圖 Fig1 右邊是 cardinality=32 的樣子,這裡注意每個被聚合的拓撲結構都是一樣的(這也是和 Inception 的差別,減輕設計負擔)

img

  • 附上原文比較核心的一句話,點明瞭增加 cardinality 比增加深度和寬度更有效,這句話的實驗結果在後面有展示:

img

網路結構

  • Table1 列舉了 ResNet-50 和 ResNeXt-50 的內部結構,另外最後兩行說明二者之間的引數複雜度差別不大。

img

  • 接下來作者要開始講本文提出的新的 block,舉全連線層(Inner product)的例子來講,我們知道全連線層的就是以下這個公式:

img

  • 再配上這個圖就更容易理解其splitting,transforming和aggregating的過程。

img

  • 然後作者的網路其實就是將其中的 wixi替換成更一般的函式,這裡用了一個很形象的詞:Network in Neuron,式子如下:(其中C就是 cardinality,Ti有相同的拓撲結構(本文中就是三個卷積層的堆疊)。)

img

  • 然後看看fig 3。這裡作者展示了三種相同的 ResNeXt blocks。fig3.a 就是前面所說的aggregated residual transformations。 fig3.b 則採用兩層卷積後 concatenate,再卷積,有點類似 Inception-ResNet,只不過這裡的 paths 都是相同的拓撲結構。fig 3.c採用的是grouped convolutions,這個 group 引數就是 caffe 的 convolusion 層的 group 引數,用來限制本層卷積核和輸入 channels 的卷積,最早應該是 AlexNet 上使用,可以減少計算量。這裡 fig 3.c 採用32個 group,每個 group 的輸入輸出 channels 都是4,最後把channels合併。這張圖的 fig3.c 和 fig1 的左邊圖很像,差別在於fig3.c的中間 filter 數量(此處為128,而fig 1中為64)更多。作者在文中明確說明這三種結構是嚴格等價的,並且用這三個結構做出來的結果一模一樣,在本文中展示的是 fig3.c 的結果,因為 fig3.c 的結構比較簡潔而且速度更快。

img