文章地址:https://arxiv.org/abs/1803.08664
作者的項目地址:CARN-Pytorch
1 簡單介紹
作者說目前的主流的方法都是奔着性能表現去的,並沒有考慮實際應用的情況。所以作者在本篇文章中提出一種快速,精確並且輕量級的網絡。
2 網絡介紹
提供了一個輕量級的網絡,作者稱之爲CARN(Cascading Residual Network,級聯殘差網絡)。
它具有以下三個特徵:
- 全局和局部級聯連接
- 中間特徵是級聯的,且被組合在1×1大小的卷積塊中
- 使多級表示和快捷連接,讓信息傳遞更高效
然而,多級表示的優勢被限制在了每個本地級聯模塊內部,比如在快捷連接上的1×1卷積這樣的乘法操作可能會阻礙信息的傳遞,所以認爲性能會下降也在情理之中。這個作者在模型分析也介紹了。
爲了提升CARN的效率,作者提出了一種殘差-E模塊。就是將普通的Residual Block中conv換成了group conv。作者在這裏提出了使用group conv而是不是 depthwise convolution,作者解釋說group conv比 depthwise convolution可以更好的調整模型的有效性。關於group conv和depthwise conv進一步討論,大家可以參考這兩篇文章:
- 對深度可分離卷積、分組卷積、擴張卷積、轉置卷積(反捲積)的理解,
- 變形卷積核、可分離卷積?卷積神經網絡中十大拍案叫絕的操作。。爲了進一步減少模型的參數,作者使用了recursive network,讓網絡的參數進行共享。2.變形卷積核、可分離卷積?卷積神經網絡中十大拍案叫絕的操作。。
爲了進一步減少模型的參數,作者使用了recursive network,讓網絡的參數進行共享。關於recursive network大家可以參考一下文章:
在局部和全局使用級聯的好處如下:
- 結合多層的特徵,可以學習到多水平的表示。
- 級聯可以讓低層的特徵很快的傳播到高層。
在網絡實現上,作者沒有使用xavier以及MSRA初始化,而是使用了均勻分佈作爲權重初始化方法,作者解釋到由於我們使用1×1的卷積如果使用xavier或者MSRA初始化,可能會導致訓練的不穩定。有關xavier和MSRA方法,可以參考我之前的文章深度學習權重初始化的幾種方法。另外作者使用了L1損失而不是L2損失。
3 實驗部分
展示不同基準算法在Mult-Adds和參數數量方面的對比,在網絡的性能表現和參數量之中取一個折中。
另外作者在定量和定性分析上也做了對比工作: