編輯:Happy
首發(fā):AIWalker公眾號
鏈接:真正的最強ResNet改進寂殉,高性能"即插即用"金字塔卷積
日期:2020-06-24
<figcaption style="margin-top: 5px; text-align: center; color: #888; display: block; font-size: 12px; font-family: PingFangSC-Light;">標題&作者團隊</figcaption>
【Happy導語】該文參考SIFT的多尺度特征提取思路設計了一種新穎的金字塔卷積腿时,它不用于其他類似方法的關鍵點在于:卷積核的多尺度承桥。同時為了盡可能的降低整體計算復雜度驻粟,在每個group內(nèi)再一次進行組卷積,以確保金字塔卷積的計算量與標準卷積的計算量相當。筆者認為這篇論文思想簡單蜀撑,易于實現(xiàn)挤巡,效果驚人。推薦各位稍微花點時間了解一下這篇文章(注:亮點在Appendix部分)酷麦,文末附文章矿卑、code以及預訓練模型的下載方式。
Abstract
? 該文提出一種金字塔卷積(Pyramidal Convolution, PyConv)沃饶,它可以在多個濾波器尺度對輸入進行處理母廷。PyConv包含一個核金字塔,每一層包含不同類型的濾波器(濾波器的大小與深度可變糊肤,因此可以提取不同尺度的細節(jié)信息)琴昆。除了上述提到的可以提取多尺度信息外,相比標準卷積馆揉,PyConv實現(xiàn)高效业舍,即不會提升額外的計算量與參數(shù)量。更進一步升酣,它更為靈活并具有可擴展性舷暮,為不同的應用提升了更大的架構設計空間。
? PyConv幾乎可以對每個CV任務都有正面影響拗踢,作者基于PyConv對四大主流任務(圖像分類脚牍、視頻分類、目標檢測以及語義分割)進行了架構設計巢墅。相比baseline诸狭,所提方法取得了一致性的性能提升。比如在圖像分類任務上君纫,所提50層模型優(yōu)于ResNet152驯遇,同時具有更少的參數(shù)量(2.39x-fewer)、計算復雜度(2.52x-fewer)以及更少的層數(shù)和蓄髓;在語義分割任務上叉庐,它在ADE20K數(shù)據(jù)集上指標達到SOTA(注:好像并不如ResNeSt的指標)。
Introduction
? 首先会喝,我們先來說明一下已有CNN網(wǎng)絡架構在感受野搟面存在的兩個問題:
- 盡管當前主流CNN網(wǎng)絡架構理論具有非常大的感受野(包含輸入的大部分陡叠、甚至全含整個輸入),但是有研究表明:實際CNN的感受野要比理論小的多(2.7x-less)肢执;
- 已有的下采樣方案(如池化枉阵、stride卷積)會造成信息的損失,進而影響模型的性能预茄。
? 然后兴溜,我們再來簡單介紹一下實際場景中物體的尺度信息。以下圖為例,包含室內(nèi)與室外兩個場景及其對應的語義標簽拙徽。從圖中可以看到:部分物體具有非常大的空間形式(比如建筑物刨沦、樹以及沙發(fā)),部分物體具有非常小的空間表現(xiàn)形式(比如行人膘怕、書本等)想诅。甚至同一物體具有非常大的可變的空間變現(xiàn)形式(比如室外場景中的汽車)。
? 上述這種空間變大巨大的表現(xiàn)形式是標準卷積所無法有效提取的岛心,而CV的終極目標是:提取輸入的多尺度信息侧蘸。在這方面最為知名的當屬SIFT,它可以從不同尺度提取特征描述算子鹉梨。然而深度學習中的卷積卻并未具有類似SIFT這種提取多尺度特征的能力。
? 最后穿稳,我們再來說明一下作者為解決上述挑戰(zhàn)而提出的幾點創(chuàng)新:
- (1) 作者引入一種金字塔卷積(PyConv)存皂,它包含不同尺度與深度的卷積核,進而確保了多尺度特征的提确晁摇旦袋;
- (2) 作者為圖像分類任務提出了兩種網(wǎng)絡架構并以極大優(yōu)勢優(yōu)于baseline,同時具有更少的參數(shù)量與計算復雜度它改;
- (3) 作者為語義分割任務提出了一個新的框架:一種新穎的Head用于對backbone提取的特征可以從局部到全局進行上下文信息特征提取疤孕,并在場景解析方面取得了SOTA性能;
- (4) 作者基于PyConv而設計的網(wǎng)絡架構在目標檢測與視頻分類任務上取得了性能的極大提升央拖。
Pyramidal Convolution
? 下圖a給出了標準卷積的示意圖祭阀,它包含單一類型的核:卷積核的空間分辨率為(應用最多的當屬,即)而深度則等于輸入特征通道數(shù)鲜戒。那么執(zhí)行個相同分辨率與深度卷積核得到個輸出特征专控。因此,標準卷積的參數(shù)量與計算量分別為:,遏餐。
? 上圖b給出了所提PyCOnv的示意圖伦腐,它包含一個由n層不同類型核構成的金字塔。PyConv的目標是:在不提升計算復雜或參數(shù)量的前提下采用多尺度核對輸入進行處理失都。PyConv每一層的核包含不同的空間尺寸(自下而上提升)柏蘑,隨卷積核的提升而逐漸降低核的深度。
? 為使PyConv在不同層使用不同深度的卷積核粹庞,需要將輸入特征劃分為不同的組并獨立的進行卷積計算咳焚,稱之為組卷積(見下圖示例)。不知各位有沒有覺得這個思想跟谷歌的MixNet思想非常相似信粮,MixNet中也是采用了類似組卷積方式進行不同尺寸卷積核計算黔攒,文末附對比分析。
<figcaption style="margin-top: 5px; text-align: center; color: #888; display: block; font-size: 12px; font-family: PingFangSC-Light;">image-20200624104547085</figcaption>
? 但是,需要注意哈:組卷積中每組的通道數(shù)是相同的督惰。MixNet中的也是相同的不傅,而PyConv則是不相同的,可以說MixNet是PyConv的一個特例赏胚。每組特征通道數(shù)上的區(qū)別構成MixConv與PyConv的最大區(qū)別所在访娶。
? 假設PyConv的輸入包含個通道數(shù),PyConv每一層的卷積核尺寸為觉阅,深度為崖疤,對應的輸出特征維度為。PyConv的參數(shù)量與計算復雜度如下:
其中典勇。注:如果每一層輸出的通道數(shù)相同劫哼,那么每一層的參數(shù)量與計算復雜度就會分布比較均勻「铙希基于上述描述权烧,可以看到:PyConv的計算復雜度與標準卷積相近。
? 在實際應用時伤溉,作者為PyConv添加了額外的規(guī)則:每一層的通道數(shù)應當是相同的般码。這也就要求了PyConv的輸入通道數(shù)應當是2的冪次。
? 所提PyConv具有這樣幾個優(yōu)點:
- Multi-scale Processing. 這個特性是非常明顯的乱顾,卷積核尺寸是多尺度的嘛板祝;
- Efficiency. PyConv可以通過并行的方式進行計算,因此計算高效(組卷積在GPU上的效率好像并不高走净,反而更適合CPU)券时;
- Flexibility. 由于具有與標準卷積相近的參數(shù)量和計算復雜度,那么用戶可以更靈活的去調(diào)節(jié)PyConv的超參數(shù)(比如層數(shù)温技、不同層的輸出通道數(shù)革为,不同深度設置不同的PyConv參數(shù)、不同層采用不同的組數(shù))舵鳞。注:這一點又跟MixNe相似了震檩,MixNet通過NAS方式進行搜索的。
Classification
? 下圖給出了在圖像分類任務中PyConv模塊示意圖蜓堕,它是將PyConv嵌入到Bottleneck中抛虏,這也是目前卷積改進的一種常用思路,好像沒什么值得進一步深入介紹的套才。
<figcaption style="margin-top: 5px; text-align: center; color: #888; display: block; font-size: 12px; font-family: PingFangSC-Light;">image-20200624113644079</figcaption>
? 下表給出了基于上述模塊構建網(wǎng)絡的配置信息迂猴,包含PyConvResNet與PyConvHGResNet兩種。配置信息還是挺詳細的背伴,好像并沒有什么值得深入介紹的沸毁,表格一看就懂峰髓。PyConvHGResNet中不同層的分組數(shù)更高而已,其他基本相同息尺。
Semantic Segmentation
<figcaption style="margin-top: 5px; text-align: center; color: #888; display: block; font-size: 12px; font-family: PingFangSC-Light;">image-20200624114420506</figcaption>
? 上圖給出了所提PyConv在語義分割中的應用形式携兵,作者所設計的Head同時進行局部與全局信息提取并采用了另外的一個模塊進行信息集成,講這種Head稱之為PyConvPH搂誉。PyConvPH包含三個主要成分:
- Local PyConv Block: 它主要用于小目標并進行多尺度細粒度特征提取徐紧,見上圖a;
- Global PyConv Block:它主要用于捕獲場景的全局信息以及大尺度目標炭懊,見上圖b并级。
- Merge PyConv Block:它用于對全局與局部特征融合。
Experiments
? “實踐是檢驗真理的唯一標準”侮腹,為說明所提方法的有效性嘲碧。作者圖像分類、語義分割父阻、目標檢測等領域進行了一系列的實驗呀潭。主要結果如下:
(1) 下圖給出了ImageNet數(shù)據(jù)集上的指標(標準增廣,未用到AutoAugment至非、CutMix等增廣技術)。注:由于該方法主要是卷積的改進糠聪,故未與注意力等方法進行改進荒椭,加上注意力后是不是會超越ResNeSt呢?哈哈哈舰蟆,甚是期待呀趣惠。
<figcaption style="margin-top: 5px; text-align: center; color: #888; display: block; font-size: 12px; font-family: PingFangSC-Light;">image-20200624115434586</figcaption>
(2) 下圖給出了ADE20K數(shù)據(jù)集上的指標,這個在不考慮注意力等方法的前提應當是目前最佳了吧身害,如果加上注意力機制應該還有提升的空間味悄,期待各位小伙伴們?nèi)ジ纳铺嵘?/p>
<figcaption style="margin-top: 5px; text-align: center; color: #888; display: block; font-size: 12px; font-family: PingFangSC-Light;">image-20200624115927881</figcaption>
(3) 下面給出了在目標檢測方面的應用與COCO數(shù)據(jù)及上的指標。更詳細的實驗分析塌鸯,建議感興趣的小伙伴去看原文侍瑟,筆者不做過多翻譯了。
<figcaption style="margin-top: 5px; text-align: center; color: #888; display: block; font-size: 12px; font-family: PingFangSC-Light;">image-20200624120118208</figcaption>
<figcaption style="margin-top: 5px; text-align: center; color: #888; display: block; font-size: 12px; font-family: PingFangSC-Light;">image-20200624120131293</figcaption>
Conclusion
? 作者提出了一種金字塔卷積丙猬,它的每一層包含不同尺度的卷積核涨颜。PyConv極大的提升了不同視覺任務的性能,同時具有高效性與靈活性茧球。PyConv是一種“即插即用”的模塊庭瑰,可以輕易嵌入到不同的網(wǎng)絡架構與應用中,比如可以嘗試將其應用到圖像復原(超分抢埋、降噪弹灭、增強等等)應用督暂。
Appendix
? 多尺度卷積并不是什么非常新穎的東西,之前已有不少論文提出了各式各樣的多尺度卷積穷吮。比如商湯提出的ScaleNet逻翁,其多尺度卷積示意圖如下:
<figcaption style="margin-top: 5px; text-align: center; color: #888; display: block; font-size: 12px; font-family: PingFangSC-Light;">image-20200624140659196</figcaption>
再比如谷歌提出的MixConv,其多尺度卷積示意圖如下:
<figcaption style="margin-top: 5px; text-align: center; color: #888; display: block; font-size: 12px; font-family: PingFangSC-Light;">image-20200624140732658</figcaption>
再再比如UIUC&字節(jié)跳動提出的SCN酒来,其多尺度卷積示意圖如下:
<figcaption style="margin-top: 5px; text-align: center; color: #888; display: block; font-size: 12px; font-family: PingFangSC-Light;">image-20200624140920393</figcaption>
再再再比如南開大學提出的Res2Net卢未,其實也是一種多尺度卷積,結構如下:
<figcaption style="margin-top: 5px; text-align: center; color: #888; display: block; font-size: 12px; font-family: PingFangSC-Light;">image-20200624141153892</figcaption>
再再再再比如IBM提出的Big-LittleNet堰汉,結構如下:
<figcaption style="margin-top: 5px; text-align: center; color: #888; display: block; font-size: 12px; font-family: PingFangSC-Light;">image-20200624141444000</figcaption>
再再再再再比如Facebook提出的OctConv辽社,不也是一種多尺度卷積嗎?結構如下:
<figcaption style="margin-top: 5px; text-align: center; color: #888; display: block; font-size: 12px; font-family: PingFangSC-Light;">image-20200624141514762</figcaption>
再再再再再再比如...翘鸭,打椎吻Α!不再比如了就乓,看到了這里汉匙。各位小伙伴有沒有發(fā)現(xiàn)多尺度卷積真的好多好多,知名也挺多的生蚁,比如MixNet噩翠、Res2Net、OctConv以及Big-LittleNet邦投。那么這篇論文提出的PyConv到底跟這里提到的幾種多尺度卷積有什么區(qū)別呢伤锚?
首先,第一點區(qū)別:PyConv不是通過分辨率的下采樣達到感受野提升的目的志衣,而ScaleNet屯援、OctNet、Big-LittleNet以及SCN都是通過調(diào)整特征的分辨率方式達到提升感受野目的念脯。這一點是與MixConv是非常相似的:通過調(diào)整卷積核的尺寸達到多尺度特征提取的目的狞洋。
然后呢,第二點區(qū)別:PyConv每一組的輸入為全部輸入绿店,每組輸出不同尺度的特征吉懊;這一點是與ScaleNet非常相似,而MIxConv假勿、OctConv以及Res2Net都涉及到了輸入分組惕它。
最后一點區(qū)別:PyConv為盡可能的降低計算量,在每一組內(nèi)部還進行了分組卷積废登。經(jīng)過前述一系列的組合確保了PyConv的計算量與標準卷積相當淹魄,但實際上推理速度還是標準卷積更快,三層時推理速度堡距,比如下圖配置時甲锡,pyconv在cpu上比標準卷積慢一倍之多兆蕉,呵呵。
<figcaption style="margin-top: 5px; text-align: center; color: #888; display: block; font-size: 12px; font-family: PingFangSC-Light;">image-20200624145116482</figcaption>
筆者認為:PyConv的靈活性是非常巧妙的一點缤沦,它非常適合于NAS結合去搜索相關參數(shù)(層數(shù)虎韵、每一層的組卷積組數(shù)、每一層的卷積核尺寸等)缸废。也許通過NAS搜索的網(wǎng)絡會取得超越手工設計PyConvResNet的性能也說不定哦包蓝,這個說不定又可以水一篇paper了。O(∩_∩)O哈哈~
此外企量,除了PyConv與NAS結合外测萎,還可以嘗試將其嵌入到圖像復原里面,雖然作者提到了會有提升届巩,但不是還沒有paper嘛硅瞧,這是不是又可以水一篇paper了。O(∩_∩)O哈哈~
推薦閱讀
- 比CNN更強有力的新型自注意力網(wǎng)絡
- 關于ResNeSt的點滴疑惑與解讀
- CVPR2020 | GCT會是SE的替代者嗎恕汇?
- 南開大學程明明團隊新作 | ResNet的又一改進:SCNet
- ICCV2019: HBONet
論文與代碼下載方式
關注AIWalker公眾并后臺留言“PyConv”腕唧,即可獲得下載鏈接。