吃透空洞卷積(Dilated Convolutions)


來自 | 知乎   作者丨玖零猴

鏈接丨https://zhuanlan.zhihu.com/p/113285797

編輯丨極市平台


空洞卷積在圖像分割需要增加感受野同時保持特征圖的尺寸的需求中誕生,本文詳細介紹了空洞卷積的誕生、原理、計算過程以及存在的兩個潛在的問題,幫助大家將空洞卷積這一算法“消化吸收”。

   一、空洞卷積的提出

空洞卷積中文名也叫膨脹卷積或者擴張卷積,英文名也叫Atrous Convolution

空洞卷積最初的提出是為了解決圖像分割的問題而提出的,常見的圖像分割算法通常使用池化層和卷積層來增加感受野(Receptive Filed),同時也縮小了特征圖尺寸(resolution),然后再利用上采樣還原圖像尺寸,特征圖縮小再放大的過程造成了精度上的損失,因此需要一種操作可以在增加感受野的同時保持特征圖的尺寸不變,從而代替下采樣和上采樣操作,在這種需求下,空洞卷積就誕生了(略有修改,引自[4])

玖零猴:感受野(Receptive Field)的理解與計算@玖零猴

https://zhuanlan.zhihu.com/p/113487374

當然,如果不用空洞卷積這種方案,那怎么去彌補經過下采樣而造成信息損失呢?其實,這是另一個思路了,於是才有了我們熟知的skip connection,它可以為上采樣彌補信息,像FCN、U-Net這種典型的拓撲網絡,如下圖所示,其實我個人認為,如果一個問題如果從不同的思路去想的話,就會出現不同的解決方案

 

圖片圖1 FCN、U-Net典型的分割拓撲結構:下采樣、上采樣、skip connection(圖來自[6])

 

空洞卷積自2016在ICLR(International Conference on Learning Representation)上才被提出后,本身是用在圖像分割領域,但立馬被deepmind拿來應用到語音(WaveNet)和NLP領域,它在物體檢測也發揮了重要的作用,雖然不要求逐個像素檢測,但對於小物體的檢測也是十分重要的

   二、空洞卷積的原理

與正常的卷積不同的是,空洞卷積引入了一個稱為 “擴張率(dilation rate)”的超參數(hyper-parameter),該參數定義了卷積核處理數據時各值的間距。擴張率中文也叫空洞數(Hole Size)。

在此以圖片 卷積為例,展示普通卷積和空洞卷積之間的區別,如圖2所示

 

圖片圖2 普通卷積和空洞卷積的對比(來自[4])

 

圖2中從左到右分別為a、b、c子圖,三幅圖是相互獨立進行卷積的(區別於下面圖4),大框表示輸入圖像(感受野默認為1),黑色的圓點表示圖片的卷積核,灰色地帶表示卷積后的感受野(后面有相關計算公式,這里都是一層卷積的,直接可以看出來)

  • a是普通的卷積過程(dilation rate = 1),卷積后的感受野為3
  • b是dilation rate = 2的空洞卷積,卷積后的感受野為5
  • c是dilation rate = 3的空洞卷積,卷積后的感受野為8

可以這么說,普通卷積是空洞卷積的一種特殊情況

另外,空洞卷積可以增大感受野,但是可以不改變圖像輸出特征圖的尺寸(分辨率,resolution),這句話怎么理解?

為了更好地理解這一點,我們從一維去分析容易理解點


圖片圖3 一維版的普通卷積(a、b)和空洞卷積(c),黑色的圓表示填充部分,a、b、c它們相互獨立進行卷積 (來自[8])
從b和c可以看出,有無空洞卷積,並不影響輸出特征圖的尺寸,也就是說輸出特征圖的尺和空洞數無關,因此可以利用空洞卷積增大感受野,而輸出特征圖的尺寸可以保持不變影響輸出特征圖尺寸的因素有輸入特征圖的尺寸 圖片 ,卷積核的大小 圖片 ,填充 圖片 ,步長 圖片 ,計算公式如下:圖片由於保持特征圖尺寸不變,所以導致了計算過程的計算量比較大保持住特征圖不變,那怎么能利用多尺度信息?在解答這個問題之前,先補充兩點知識知識一:我們知道,神經元感受野的值越大表示其能接觸到的原始圖像范圍就越大,也意味着它可能蘊含更為全局,語義層次更高的特征;相反,值越小則表示其所包含的特征越趨向局部和細節。因此感受野的值可以用來大致判斷每一層的抽象層次。知識二:在贏得其中一屆ImageNet比賽里VGG網絡的文章中,他最大的貢獻並不是VGG網絡本身,而是他對於卷積疊加的一個巧妙觀察。1個 7 x 7 的卷積層的正則等效於 3 個 3 x 3 的卷積層的疊加。而這樣的設計可以大幅度的減少參數,有正則化的效果,參數少了就沒那么容易發生過擬合。這也是現在絕大部分基於卷積的深層網絡都在用小卷積核的原因,常常使用3 x 3的卷積核一般每一層的卷積核都是用3 x 3 大小的,而每一層只要設置不同dilation rate時,感受野就會不一樣,也即獲取了多尺度信息,當然這樣操作並不影響特征圖的尺寸,這樣一來,又避免下采樣那樣造成信息損失,同時也利用到多尺度信息,真是一舉兩得啊獲取多尺度信息在視覺任務中相當重要,尤其是在Dense prediction(對每個像素進行分類)問題上,它能夠提高准確性的,如語義分割

dense prediction problems such as semantic segmentation ... to increase the performance of dense prediction architectures by aggregating multi-scale contextual information(來自[1])

   三、感受野的計算

為了好看,我們把圖2放下來圖片圖2 普通卷積和空洞卷積的對比(來自[4])從圖2可以看出,同樣一個 圖片 的卷積,卻可以起到 圖片 、 圖片 等卷積的效果,空洞卷積在不增加參數量的前提下(參數量=卷積核大小+偏置),卻可以增大感受野,假設空洞卷積的卷積核大小為 圖片 ,空洞數為 圖片 ,則其等效卷積核大小 圖片 ,例如 圖片 的卷積核,則 圖片 ,公式如下(來自[4])圖片
當前層的感受野計算公式如下,其中, 圖片 表示當前層的感受野, 圖片 表示上一層的感受野, 圖片 表示卷積核的大小圖片
圖片表示之前所有層的步長的乘積(不包括本層),公式如下:圖片同樣的,當前層的步長並不影響當前層的感受野,感受野和填補(padding)沒有關系
下面舉個例子練練手,此圖4和上面的圖2有區別,圖2的三幅圖是獨立的,而圖4是從左到右連續進行卷積,它們屬於top-bottom關系圖片圖4 三個不同的空洞卷積,卷積核的kernel size=3, stride=1, 但是空洞卷積的dilation rate分別是1,2,4。默認初始化感受野是1。(來自[1])感受野的計算輸入圖像: 1第一層卷積:3第二層卷積:圖片
圖片圖片
綜上,得

圖片

第三層卷積:圖片圖片圖片
綜上,得

圖片

   四、潛在的問題及解決方法

潛在問題 1:The Gridding Effect假設我們僅僅多次疊加 dilation rate 2 的 3 x 3 kernel 的話,則會出現這個問題:圖片由於空洞卷積的計算方式類似於棋盤格式,某一層得到的卷積結果,來自上一層的獨立的集合,沒有相互依賴,因此該層的卷積結果之間沒有相關性,即局部信息丟失。這對 pixel-level dense prediction 的任務來說是致命的。潛在問題 2 :Long-ranged information might be not relevant.遠距離獲取的信息沒有相關性:由於空洞卷積稀疏的采樣輸入信號,使得遠距離卷積得到的信息之間沒有相關性,影響分類結果。解決方案具體可參考[5,9]

  • 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、書籍《深度學習之PyTorch物體檢測實戰》

5、如何理解空洞卷積(dilated convolution)?(https://www.zhihu.com/question/54149221)

6、U-Net++作者對U-Net的分析(https://zhuanlan.zhihu.com/p/44958351)

7、GIF動圖,加深普通卷積和空洞卷積的區別: https://github.com/vdumoulin/conv_arithmetic/blob/master/README.md

8、如何理解Dilated Convolutions(空洞卷積)

9、yyfyan:總結-空洞卷積(Dilated/Atrous Convolution)(https://zhuanlan.zhihu.com/p/50369448)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM