ResNext(2017)解读
論文鏈接
看網絡的名字,可以推想出,它是ResNet(2016)的升級版。在網絡結構上,它和ResNet相似,采用短路連接(shortcut connection).那么它有什么不同點呢?ResNet的F(x)和x是相加的,F(x)+x,而ResNext是合并的[x,F(x)]。先看下這兩個網絡的一個block的結構,如下圖。直觀的感覺,ResNext變寬了,而且卷積層的輸入輸出通道數不一樣。
圖 1
網絡結構設計的規則主要是:
網絡由一些殘差塊(residual block)堆疊而成,這些殘差塊有相同的拓撲結構,而且受VGG/ResNet啟發:
1)如果經過殘差塊得到的特征圖尺寸相同,那么這些殘差塊有相同的超參數(卷積核的數量和尺寸相同)。
2)每經過一次下采樣,殘差塊的寬度*2(這使得不同殘差塊間的計算復雜度-FLOPs相同。).
圖2
這三個步驟與單個神經元的計算過程相似。
-
Splitting:xxx——>xix_{i}xi?
-
Transforming:對xix_{i}xi?做線性變換wixiw_{i}x_{i}wi?xi?
-
Aggregating:對所有變形后的結果求和Σi=1D\Sigma_{i=1}^{D}Σi=1D?
將這個想法應用到ResNext中就變成了:
F(x)=Σi=1cTi(x)F(x) = \Sigma_{i=1}^{c}T_{i}(x)F(x)=Σi=1c?Ti?(x) -
Splitting: 圖一右側的一個個分支
-
Transforming:Ti(x)T_{i}(x)Ti?(x).文中所有的Ti(x)T_{i}(x)Ti?(x)有相同的拓撲結構
-
Aggregating:聚集所有變形后的結果Σi=1C\Sigma_{i=1}^{C}Σi=1C?
最終,一個殘差塊的作用可看成:
F(x)=x+Σi=1cTi(x)F(x) = x +\Sigma_{i=1}^{c}T_{i}(x)F(x)=x+Σi=1c?Ti?(x)
C是基數(cardinality),即分支數
模型的每個分支都相同,figure3(a)可以等價成figure3(b)和figure3(c).
-
模型參數量的計算。以圖1右側的結構為例
-
C是基數-32,d是寬度-4
ResNet-50與ResNext-50對比
ResNext中的一些技巧:
相對于ResNet中求和x=F(x)+xx = F(x) + xx=F(x)+x,ResNext中變成了[x,F(x)],連接的方式.后者可以增加特征圖的數量
Delving Deep into Rectifiers: Surpassing Human-Level Performance on ImageNet Classification ??
總結
以上是生活随笔為你收集整理的ResNext(2017)解读的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 计算卷积神经网络中参数量
- 下一篇: python--numpy