編輯:Happy
首發(fā):AIWalker公眾號(hào)
鏈接:真正的最強(qiáng)ResNet改進(jìn),高性能"即插即用"金字塔卷積
日期:2020-06-24
【Happy導(dǎo)語】該文參考SIFT的多尺度特征提取思路設(shè)計(jì)了一種新穎的金字塔卷積,它不用于其他類似方法的關(guān)鍵點(diǎn)在于:卷積核的多尺度。同時(shí)為了盡可能的降低整體計(jì)算復(fù)雜度,在每個(gè)group內(nèi)再一次進(jìn)行組卷積休弃,以確保金字塔卷積的計(jì)算量與標(biāo)準(zhǔn)卷積的計(jì)算量相當(dāng)。筆者認(rèn)為這篇論文思想簡(jiǎn)單,易于實(shí)現(xiàn)怔球,效果驚人。推薦各位稍微花點(diǎn)時(shí)間了解一下這篇文章(注:亮點(diǎn)在Appendix部分)浮还,文末附文章竟坛、code以及預(yù)訓(xùn)練模型的下載方式。
Abstract
? 該文提出一種金字塔卷積(Pyramidal Convolution, PyConv)钧舌,它可以在多個(gè)濾波器尺度對(duì)輸入進(jìn)行處理担汤。PyConv包含一個(gè)核金字塔,每一層包含不同類型的濾波器(濾波器的大小與深度可變洼冻,因此可以提取不同尺度的細(xì)節(jié)信息)崭歧。除了上述提到的可以提取多尺度信息外,相比標(biāo)準(zhǔn)卷積撞牢,PyConv實(shí)現(xiàn)高效率碾,即不會(huì)提升額外的計(jì)算量與參數(shù)量叔营。更進(jìn)一步,它更為靈活并具有可擴(kuò)展性播掷,為不同的應(yīng)用提升了更大的架構(gòu)設(shè)計(jì)空間审编。
? PyConv幾乎可以對(duì)每個(gè)CV任務(wù)都有正面影響,作者基于PyConv對(duì)四大主流任務(wù)(圖像分類歧匈、視頻分類垒酬、目標(biāo)檢測(cè)以及語義分割)進(jìn)行了架構(gòu)設(shè)計(jì)。相比baseline件炉,所提方法取得了一致性的性能提升勘究。比如在圖像分類任務(wù)上,所提50層模型優(yōu)于ResNet152斟冕,同時(shí)具有更少的參數(shù)量(2.39x-fewer)口糕、計(jì)算復(fù)雜度(2.52x-fewer)以及更少的層數(shù)和;在語義分割任務(wù)上磕蛇,它在ADE20K數(shù)據(jù)集上指標(biāo)達(dá)到SOTA(注:好像并不如ResNeSt的指標(biāo))景描。
Introduction
? 首先,我們先來說明一下已有CNN網(wǎng)絡(luò)架構(gòu)在感受野搟面存在的兩個(gè)問題:
- 盡管當(dāng)前主流CNN網(wǎng)絡(luò)架構(gòu)理論具有非常大的感受野(包含輸入的大部分秀撇、甚至全含整個(gè)輸入)超棺,但是有研究表明:實(shí)際CNN的感受野要比理論小的多(2.7x-less);
- 已有的下采樣方案(如池化呵燕、stride卷積)會(huì)造成信息的損失棠绘,進(jìn)而影響模型的性能。
? 然后再扭,我們?cè)賮砗?jiǎn)單介紹一下實(shí)際場(chǎng)景中物體的尺度信息氧苍。以下圖為例,包含室內(nèi)與室外兩個(gè)場(chǎng)景及其對(duì)應(yīng)的語義標(biāo)簽泛范。從圖中可以看到:部分物體具有非常大的空間形式(比如建筑物让虐、樹以及沙發(fā)),部分物體具有非常小的空間表現(xiàn)形式(比如行人罢荡、書本等)赡突。甚至同一物體具有非常大的可變的空間變現(xiàn)形式(比如室外場(chǎng)景中的汽車)。
<img src="https://tva1.sinaimg.cn/large/007S8ZIlgy1gg3oaqgmr0j30cs0addm5.jpg" alt="image-20200624101435203" style="zoom: 67%;" />
? 上述這種空間變大巨大的表現(xiàn)形式是標(biāo)準(zhǔn)卷積所無法有效提取的,而CV的終極目標(biāo)是:提取輸入的多尺度信息。在這方面最為知名的當(dāng)屬SIFT采章,它可以從不同尺度提取特征描述算子葛菇。然而深度學(xué)習(xí)中的卷積卻并未具有類似SIFT這種提取多尺度特征的能力。
? 最后逞泄,我們?cè)賮碚f明一下作者為解決上述挑戰(zhàn)而提出的幾點(diǎn)創(chuàng)新:
- (1) 作者引入一種金字塔卷積(PyConv)患整,它包含不同尺度與深度的卷積核拜效,進(jìn)而確保了多尺度特征的提取各谚;
- (2) 作者為圖像分類任務(wù)提出了兩種網(wǎng)絡(luò)架構(gòu)并以極大優(yōu)勢(shì)優(yōu)于baseline紧憾,同時(shí)具有更少的參數(shù)量與計(jì)算復(fù)雜度;
- (3) 作者為語義分割任務(wù)提出了一個(gè)新的框架:一種新穎的Head用于對(duì)backbone提取的特征可以從局部到全局進(jìn)行上下文信息特征提取昌渤,并在場(chǎng)景解析方面取得了SOTA性能赴穗;
- (4) 作者基于PyConv而設(shè)計(jì)的網(wǎng)絡(luò)架構(gòu)在目標(biāo)檢測(cè)與視頻分類任務(wù)上取得了性能的極大提升。
Pyramidal Convolution
? 下圖a給出了標(biāo)準(zhǔn)卷積的示意圖膀息,它包含單一類型的核:卷積核的空間分辨率為(應(yīng)用最多的當(dāng)屬般眉,即)而深度則等于輸入特征通道數(shù)。那么執(zhí)行個(gè)相同分辨率與深度卷積核得到個(gè)輸出特征潜支。因此甸赃,標(biāo)準(zhǔn)卷積的參數(shù)量與計(jì)算量分別為:,。
<img src="https://tva1.sinaimg.cn/large/007S8ZIlgy1gg3oat3gdrj30gn0dyjta.jpg" alt="image-20200624102951586" style="zoom:67%;" />
? 上圖b給出了所提PyCOnv的示意圖冗酿,它包含一個(gè)由n層不同類型核構(gòu)成的金字塔埠对。PyConv的目標(biāo)是:在不提升計(jì)算復(fù)雜或參數(shù)量的前提下采用多尺度核對(duì)輸入進(jìn)行處理。PyConv每一層的核包含不同的空間尺寸(自下而上提升)裁替,隨卷積核的提升而逐漸降低核的深度项玛。
? 為使PyConv在不同層使用不同深度的卷積核,需要將輸入特征劃分為不同的組并獨(dú)立的進(jìn)行卷積計(jì)算胯究,稱之為組卷積(見下圖示例)稍计。不知各位有沒有覺得這個(gè)思想跟谷歌的MixNet思想非常相似,MixNet中也是采用了類似組卷積方式進(jìn)行不同尺寸卷積核計(jì)算裕循,文末附對(duì)比分析臣嚣。
? 但是,需要注意哈:組卷積中每組的通道數(shù)是相同的剥哑。MixNet中的也是相同的硅则,而PyConv則是不相同的,可以說MixNet是PyConv的一個(gè)特例株婴。每組特征通道數(shù)上的區(qū)別構(gòu)成MixConv與PyConv的最大區(qū)別所在怎虫。
? 假設(shè)PyConv的輸入包含個(gè)通道數(shù),PyConv每一層的卷積核尺寸為困介,深度為大审,對(duì)應(yīng)的輸出特征維度為。PyConv的參數(shù)量與計(jì)算復(fù)雜度如下:
其中座哩。注:如果每一層輸出的通道數(shù)相同徒扶,那么每一層的參數(shù)量與計(jì)算復(fù)雜度就會(huì)分布比較均勻「睿基于上述描述姜骡,可以看到:PyConv的計(jì)算復(fù)雜度與標(biāo)準(zhǔn)卷積相近导坟。
? 在實(shí)際應(yīng)用時(shí),作者為PyConv添加了額外的規(guī)則:每一層的通道數(shù)應(yīng)當(dāng)是相同的圈澈。這也就要求了PyConv的輸入通道數(shù)應(yīng)當(dāng)是2的冪次惫周。
? 所提PyConv具有這樣幾個(gè)優(yōu)點(diǎn):
- Multi-scale Processing. 這個(gè)特性是非常明顯的,卷積核尺寸是多尺度的嘛康栈;
- Efficiency. PyConv可以通過并行的方式進(jìn)行計(jì)算递递,因此計(jì)算高效(組卷積在GPU上的效率好像并不高,反而更適合CPU)啥么;
- Flexibility. 由于具有與標(biāo)準(zhǔn)卷積相近的參數(shù)量和計(jì)算復(fù)雜度漾狼,那么用戶可以更靈活的去調(diào)節(jié)PyConv的超參數(shù)(比如層數(shù)、不同層的輸出通道數(shù)饥臂,不同深度設(shè)置不同的PyConv參數(shù)逊躁、不同層采用不同的組數(shù))。注:這一點(diǎn)又跟MixNe相似了隅熙,MixNet通過NAS方式進(jìn)行搜索的稽煤。
Classification
? 下圖給出了在圖像分類任務(wù)中PyConv模塊示意圖,它是將PyConv嵌入到Bottleneck中囚戚,這也是目前卷積改進(jìn)的一種常用思路酵熙,好像沒什么值得進(jìn)一步深入介紹的。
? 下表給出了基于上述模塊構(gòu)建網(wǎng)絡(luò)的配置信息驰坊,包含PyConvResNet與PyConvHGResNet兩種匾二。配置信息還是挺詳細(xì)的,好像并沒有什么值得深入介紹的拳芙,表格一看就懂察藐。PyConvHGResNet中不同層的分組數(shù)更高而已,其他基本相同舟扎。
<img src="https://tva1.sinaimg.cn/large/007S8ZIlgy1gg3ob0l6fcj30g80e6tay.jpg" alt="image-20200624113906017" style="zoom: 80%;" />
Semantic Segmentation
? 上圖給出了所提PyConv在語義分割中的應(yīng)用形式分飞,作者所設(shè)計(jì)的Head同時(shí)進(jìn)行局部與全局信息提取并采用了另外的一個(gè)模塊進(jìn)行信息集成,講這種Head稱之為PyConvPH睹限。PyConvPH包含三個(gè)主要成分:
- Local PyConv Block: 它主要用于小目標(biāo)并進(jìn)行多尺度細(xì)粒度特征提取譬猫,見上圖a;
- Global PyConv Block:它主要用于捕獲場(chǎng)景的全局信息以及大尺度目標(biāo)羡疗,見上圖b染服。
- Merge PyConv Block:它用于對(duì)全局與局部特征融合。
Experiments
? “實(shí)踐是檢驗(yàn)真理的唯一標(biāo)準(zhǔn)”叨恨,為說明所提方法的有效性柳刮。作者圖像分類、語義分割、目標(biāo)檢測(cè)等領(lǐng)域進(jìn)行了一系列的實(shí)驗(yàn)诚亚。主要結(jié)果如下:
(1) 下圖給出了ImageNet數(shù)據(jù)集上的指標(biāo)(標(biāo)準(zhǔn)增廣,未用到AutoAugment午乓、CutMix等增廣技術(shù))站宗。注:由于該方法主要是卷積的改進(jìn),故未與注意力等方法進(jìn)行改進(jìn)益愈,加上注意力后是不是會(huì)超越ResNeSt呢梢灭?哈哈哈,甚是期待呀蒸其。
(2) 下圖給出了ADE20K數(shù)據(jù)集上的指標(biāo)敏释,這個(gè)在不考慮注意力等方法的前提應(yīng)當(dāng)是目前最佳了吧,如果加上注意力機(jī)制應(yīng)該還有提升的空間摸袁,期待各位小伙伴們?nèi)ジ纳铺嵘?/p>
(3) 下面給出了在目標(biāo)檢測(cè)方面的應(yīng)用與COCO數(shù)據(jù)及上的指標(biāo)钥顽。更詳細(xì)的實(shí)驗(yàn)分析,建議感興趣的小伙伴去看原文靠汁,筆者不做過多翻譯了蜂大。
Conclusion
? 作者提出了一種金字塔卷積,它的每一層包含不同尺度的卷積核蝶怔。PyConv極大的提升了不同視覺任務(wù)的性能奶浦,同時(shí)具有高效性與靈活性。PyConv是一種“即插即用”的模塊踢星,可以輕易嵌入到不同的網(wǎng)絡(luò)架構(gòu)與應(yīng)用中澳叉,比如可以嘗試將其應(yīng)用到圖像復(fù)原(超分、降噪沐悦、增強(qiáng)等等)應(yīng)用成洗。
Appendix
? 多尺度卷積并不是什么非常新穎的東西,之前已有不少論文提出了各式各樣的多尺度卷積藏否。比如商湯提出的ScaleNet泌枪,其多尺度卷積示意圖如下:
再比如谷歌提出的MixConv,其多尺度卷積示意圖如下:
再再比如UIUC&字節(jié)跳動(dòng)提出的SCN秕岛,其多尺度卷積示意圖如下:
再再再比如南開大學(xué)提出的Res2Net碌燕,其實(shí)也是一種多尺度卷積,結(jié)構(gòu)如下:
再再再再比如IBM提出的Big-LittleNet继薛,結(jié)構(gòu)如下:
再再再再再比如Facebook提出的OctConv修壕,不也是一種多尺度卷積嗎?結(jié)構(gòu)如下:
再再再再再再比如...遏考,打状瑞!不再比如了灌具,看到了這里青团。各位小伙伴有沒有發(fā)現(xiàn)多尺度卷積真的好多好多譬巫,知名也挺多的,比如MixNet督笆、Res2Net芦昔、OctConv以及Big-LittleNet。那么這篇論文提出的PyConv到底跟這里提到的幾種多尺度卷積有什么區(qū)別呢娃肿?
首先咕缎,第一點(diǎn)區(qū)別:PyConv不是通過分辨率的下采樣達(dá)到感受野提升的目的,而ScaleNet料扰、OctNet凭豪、Big-LittleNet以及SCN都是通過調(diào)整特征的分辨率方式達(dá)到提升感受野目的。這一點(diǎn)是與MixConv是非常相似的:通過調(diào)整卷積核的尺寸達(dá)到多尺度特征提取的目的晒杈。
然后呢嫂伞,第二點(diǎn)區(qū)別:PyConv每一組的輸入為全部輸入,每組輸出不同尺度的特征拯钻;這一點(diǎn)是與ScaleNet非常相似末早,而MIxConv、OctConv以及Res2Net都涉及到了輸入分組说庭。
最后一點(diǎn)區(qū)別:PyConv為盡可能的降低計(jì)算量然磷,在每一組內(nèi)部還進(jìn)行了分組卷積。經(jīng)過前述一系列的組合確保了PyConv的計(jì)算量與標(biāo)準(zhǔn)卷積相當(dāng)刊驴,但實(shí)際上推理速度還是標(biāo)準(zhǔn)卷積更快姿搜,三層時(shí)推理速度,比如下圖配置時(shí)捆憎,pyconv在cpu上比標(biāo)準(zhǔn)卷積慢一倍之多舅柜,呵呵。
筆者認(rèn)為:PyConv的靈活性是非常巧妙的一點(diǎn)躲惰,它非常適合于NAS結(jié)合去搜索相關(guān)參數(shù)(層數(shù)致份、每一層的組卷積組數(shù)、每一層的卷積核尺寸等)础拨。也許通過NAS搜索的網(wǎng)絡(luò)會(huì)取得超越手工設(shè)計(jì)PyConvResNet的性能也說不定哦氮块,這個(gè)說不定又可以水一篇paper了。O(∩_∩)O哈哈~
此外诡宗,除了PyConv與NAS結(jié)合外滔蝉,還可以嘗試將其嵌入到圖像復(fù)原里面,雖然作者提到了會(huì)有提升塔沃,但不是還沒有paper嘛蝠引,這是不是又可以水一篇paper了。O(∩_∩)O哈哈~
推薦閱讀
- 比CNN更強(qiáng)有力的新型自注意力網(wǎng)絡(luò)
- 關(guān)于ResNeSt的點(diǎn)滴疑惑與解讀
- CVPR2020 | GCT會(huì)是SE的替代者嗎?
- 南開大學(xué)程明明團(tuán)隊(duì)新作 | ResNet的又一改進(jìn):SCNet
- ICCV2019: HBONet
論文與代碼下載方式
關(guān)注AIWalker公眾并后臺(tái)留言“PyConv”螃概,即可獲得下載鏈接矫夯。
本文由博客一文多發(fā)平臺(tái) OpenWrite 發(fā)布!