論文名稱:Aggregated Residual Transformations for Deep Neural Networks
作者:Saining Xie1 \ Ross Girshick \ Zhuowen Tu \ Kaiming He
論文地址:http://openaccess.thecvf.com/content_cvpr_2017/papers/Xie_Aggregated_Residual_Transformations_CVPR_2017_paper.pdf
發表年份:CVPR 2017
ResNeXt算是Resnet的V3版本(不明白這個名字的含義,覺得很彆扭)。基於ResNeXt的模型ILSVRC2016的圖像分類中獲得亞軍(冠軍是中國的Trimps-Soushen)。但拋開高準確性,ResNeXt的結構性、可擴展性、易用性使得它仍然風靡視覺界。
1 動機
Inception構建網絡時,獨闢蹊徑,使用split-transform-merge
的方式構建block unit,然後堆疊這些block,取得了很好的效果,但是Inception裏那些block unit中的卷積核的個數/尺寸等都是對ImageNet數據集量身定做的,如果換個數據集,那麼如果要達到更好的效果需要手動調整這些參數,,,,,,,,,,,。
VGG和ResnetV1/2都採用堆疊相同拓撲結構的“block unit”的方式構建網絡,也取得了很好的效果,而且這種情況下block unit中的超參數數量是極少的。
那麼能不能取Inception和VGG/ResnetV1/2兩家之長呢?
2 貢獻
作者提出一種新的殘差映射的單元結構,在不增加計算的情況下,進一步提升Resnet的性能!
3 方法
3.1 split-transform-merge思想
這種思想來自Inception。對於單個神經元的操作可以深入淺出的解釋這種行爲。
原輸入被“split”成,然後單獨做“transform” ,最後“merge” 。
現在把單個神經元換成單個block unit,就可以重新構建殘差塊。
變形
對於新的殘差塊的實現一共有3中方式,而且3中方式效果等效,但是的速度要快一些,所以應該使用。
3.2 模板思想
這種思想來着VGG和ResnetV1/2,每個block都是來自同一個拓撲結構模板,其中的微小區別也可以用一兩個參數解決,這樣可以使得網絡設計的靈活性和泛化性極高,即即使需要對於某個新的數據集更改網絡結構也變得十分簡單。
把上面的新的殘差塊模板化,參數就是分成的份數(論文中稱爲 cardinality)和每一份的width(論文中把width定義爲channel的個數)。
3.3 網絡結構
_for ImageNet
3.4 實現細節
- 使用方式構建殘差塊
- 其餘超參數、優化器及其參數等 與ResnetV1相同
4 實驗
4.1 驗證ResNeXt的優越性
_注:下面結果中的(m x nd)中,m表示cardinality的個數,n表示每個cardinality的width
4.2 ResNeXt用於目標檢測
同ResnetV1中一致,仍然使用Faster RCNN框架,這次使用ResNeXt作爲特徵提取器。
5 思考
1.文中並沒有對新的殘差塊設計爲什麼有效給出解釋。
本人對這種設計的理解是:
先看單個神經元的操作,把“split”之後在做“transform”時僅僅對負責,那麼訓練出來的應該很純淨。
再看卷積實現,假設,如果對它卷積,那麼卷積核在對卷積時,直接對負責的部分廣泛分佈在中,可以記爲,那麼訓練出來的每一個都在對整個負責。即對於,中並不存在某個確定的單獨對它負責的卷積子核,這樣訓練出的認爲是不純淨的。
而如果把“split”成,然後分別讓去卷積,這樣就有單獨對負責,這樣訓練出來的相較於一開始的應該要純淨,並且當時,就把全部“split”,這個時候的應該最純淨,效果最好。
並且在計算量大致相同的情況下,“split-transform-merge”的方式下,對負責的參數數目會增加。