吃透空洞卷積(Dilated Convolutions)
點(diǎn)擊上方“程序員大白”,選擇“星標(biāo)”公眾號(hào)
重磅干貨,第一時(shí)間送達(dá)
來(lái)自 | 知乎? ?作者丨玖零猴
鏈接丨h(huán)ttps://zhuanlan.zhihu.com/p/113285797
編輯丨極市平臺(tái)
空洞卷積在圖像分割需要增加感受野同時(shí)保持特征圖的尺寸的需求中誕生,本文詳細(xì)介紹了空洞卷積的誕生、原理、計(jì)算過(guò)程以及存在的兩個(gè)潛在的問(wèn)題,幫助大家將空洞卷積這一算法“消化吸收”。
???一、空洞卷積的提出
空洞卷積中文名也叫膨脹卷積或者擴(kuò)張卷積,英文名也叫Atrous Convolution
空洞卷積最初的提出是為了解決圖像分割的問(wèn)題而提出的,常見(jiàn)的圖像分割算法通常使用池化層和卷積層來(lái)增加感受野(Receptive Filed),同時(shí)也縮小了特征圖尺寸(resolution),然后再利用上采樣還原圖像尺寸,特征圖縮小再放大的過(guò)程造成了精度上的損失,因此需要一種操作可以在增加感受野的同時(shí)保持特征圖的尺寸不變,從而代替下采樣和上采樣操作,在這種需求下,空洞卷積就誕生了(略有修改,引自[4])
玖零猴:感受野(Receptive Field)的理解與計(jì)算@玖零猴
https://zhuanlan.zhihu.com/p/113487374
當(dāng)然,如果不用空洞卷積這種方案,那怎么去彌補(bǔ)經(jīng)過(guò)下采樣而造成信息損失呢?其實(shí),這是另一個(gè)思路了,于是才有了我們熟知的skip connection,它可以為上采樣彌補(bǔ)信息,像FCN、U-Net這種典型的拓?fù)渚W(wǎng)絡(luò),如下圖所示,其實(shí)我個(gè)人認(rèn)為,如果一個(gè)問(wèn)題如果從不同的思路去想的話,就會(huì)出現(xiàn)不同的解決方案

空洞卷積自2016在ICLR(International Conference on Learning Representation)上才被提出后,本身是用在圖像分割領(lǐng)域,但立馬被deepmind拿來(lái)應(yīng)用到語(yǔ)音(WaveNet)和NLP領(lǐng)域,它在物體檢測(cè)也發(fā)揮了重要的作用,雖然不要求逐個(gè)像素檢測(cè),但對(duì)于小物體的檢測(cè)也是十分重要的
???二、空洞卷積的原理
與正常的卷積不同的是,空洞卷積引入了一個(gè)稱(chēng)為 “擴(kuò)張率(dilation rate)”的超參數(shù)(hyper-parameter),該參數(shù)定義了卷積核處理數(shù)據(jù)時(shí)各值的間距。擴(kuò)張率中文也叫空洞數(shù)(Hole Size)。
在此以
卷積為例,展示普通卷積和空洞卷積之間的區(qū)別,如圖2所示

圖2中從左到右分別為a、b、c子圖,三幅圖是相互獨(dú)立進(jìn)行卷積的(區(qū)別于下面圖4),大框表示輸入圖像(感受野默認(rèn)為1),黑色的圓點(diǎn)表示
的卷積核,灰色地帶表示卷積后的感受野(后面有相關(guān)計(jì)算公式,這里都是一層卷積的,直接可以看出來(lái))
a是普通的卷積過(guò)程(dilation rate = 1),卷積后的感受野為3 b是dilation rate = 2的空洞卷積,卷積后的感受野為5 c是dilation rate = 3的空洞卷積,卷積后的感受野為8
可以這么說(shuō),普通卷積是空洞卷積的一種特殊情況
另外,空洞卷積可以增大感受野,但是可以不改變圖像輸出特征圖的尺寸(分辨率,resolution),這句話怎么理解?
為了更好地理解這一點(diǎn),我們從一維去分析容易理解點(diǎn)

?,卷積核的大小?
?,填充?
?,步長(zhǎng)?
?,計(jì)算公式如下:
dense prediction problems such as semantic segmentation ... to increase the performance of dense prediction architectures by aggregating multi-scale contextual information(來(lái)自[1])
???三、感受野的計(jì)算

?的卷積,卻可以起到?
?、?
?等卷積的效果,空洞卷積在不增加參數(shù)量的前提下(參數(shù)量=卷積核大小+偏置),卻可以增大感受野,假設(shè)空洞卷積的卷積核大小為?
?,空洞數(shù)為?
?,則其等效卷積核大小?
?,例如?
?的卷積核,則?
?,公式如下(來(lái)自[4])
當(dāng)前層的感受野計(jì)算公式如下,其中,?
?表示當(dāng)前層的感受野,?
?表示上一層的感受野,?
?表示卷積核的大小
表示之前所有層的步長(zhǎng)的乘積(不包括本層),公式如下:









? ?四、潛在的問(wèn)題及解決方法

Panqu Wang,Pengfei Chen, et al**.Understanding Convolution for Semantic Segmentation.//**WACV 2018 Fisher Yu, et al. Dilated Residual Networks. //CVPR 2017 Zhengyang Wang,et al.**Smoothed Dilated Convolutions for Improved Dense Prediction.//**KDD 2018. Liang-Chieh Chen,et al.Rethinking Atrous Convolution for Semantic Image Segmentation//2017 Sachin Mehta,et al. ESPNet: Efficient Spatial Pyramid of DilatedConvolutions for Semantic Segmentation. //ECCV 2018 Tianyi Wu**,et al.Tree-structured Kronecker Convolutional Networks for Semantic Segmentation.//AAAI2019** Hyojin Park,et al.Concentrated-Comprehensive Convolutionsfor lightweight semantic segmentation.//2018 Efficient Smoothing of Dilated Convolutions for Image Segmentation.//2019
reference
1、Yu, Fisher, and Vladlen Koltun. "Multi-scale context aggregation by dilated convolutions." arXiv preprint arXiv:1511.07122 (2015).(https://arxiv.org/abs/1511.071220)
2、Understanding Convolution for Semantic Segmentation(https://arxiv.org/abs/1702.08502)
3、Rethinking Atrous Convolution for Semantic Image Segmentation(https://arxiv.org/abs/1706.05587)
4、書(shū)籍《深度學(xué)習(xí)之PyTorch物體檢測(cè)實(shí)戰(zhàn)》
5、如何理解空洞卷積(dilated convolution)?(https://www.zhihu.com/question/54149221)
6、U-Net++作者對(duì)U-Net的分析(https://zhuanlan.zhihu.com/p/44958351)
7、GIF動(dòng)圖,加深普通卷積和空洞卷積的區(qū)別: https://github.com/vdumoulin/conv_arithmetic/blob/master/README.md
8、如何理解Dilated Convolutions(空洞卷積)
9、yyfyan:總結(jié)-空洞卷積(Dilated/Atrous Convolution)(https://zhuanlan.zhihu.com/p/50369448)
推薦閱讀
關(guān)于程序員大白
程序員大白是一群哈工大,東北大學(xué),西湖大學(xué)和上海交通大學(xué)的碩士博士運(yùn)營(yíng)維護(hù)的號(hào),大家樂(lè)于分享高質(zhì)量文章,喜歡總結(jié)知識(shí),歡迎關(guān)注[程序員大白],大家一起學(xué)習(xí)進(jìn)步!


