dilated convolutions:擴張卷積


最近在閱讀《Context Encoding for Semantic Segmentation》中看到應用了dilated convolutions。

擴張卷積與普通的卷積相比,除了卷積核的大小以外,還有一個擴張率(dilation rate)參數,主要用來表示擴張的大小。擴張卷積與普通卷積的相同點在於,卷積核的大小是一樣的,在神經網絡中即參數數量不變,區別在於擴張卷積具有更大的感受野。感受野是卷積核在圖像上看到的大小,例如3×33×3卷積核的感受野大小為9。

(a) 普通卷積,1-dilated convolution,卷積核的感受野為3×3=93×3=9。 
(b) 擴張卷積,2-dilated convolution,卷積核的感受野為7×7=497×7=49。 
(c) 擴張卷積,4-dilated convolution,卷積核的感受野為15×15=22515×15=225。

擴展卷積在保持參數個數不變的情況下增大了卷積核的感受野,同時它可以保證輸出的特征映射(feature map)的大小保持不變。一個擴張率為2的3×3卷積核,感受野與5×5的卷積核相同,但參數數量僅為9個,是5×5卷積參數數量的36%。

dilated的好處是不做pooling損失信息的情況下,加大了感受野,讓每個卷積輸出都包含較大范圍的信息。在圖像需要全局信息或者語音文本需要較長的sequence信息依賴的問題中,都能很好的應用dilated conv。

作者:譚旭
鏈接:https://www.zhihu.com/question/54149221/answer/192025860
來源:知乎
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。

deconv的其中一個用途是做upsampling,即增大圖像尺寸。而dilated conv並不是做upsampling,而是增大感受野。

可以形象的做個解釋:

對於標准的k*k卷積操作,stride為s,分三種情況:

(1) s>1,即卷積的同時做了downsampling,卷積后圖像尺寸減小;

(2) s=1,普通的步長為1的卷積,比如在tensorflow中設置padding=SAME的話,卷積的圖像輸入和輸出有相同的尺寸大小;

(3) 0<s<1,fractionally strided convolution,相當於對圖像做upsampling。比如s=0.5時,意味着在圖像每個像素之間padding一個空白的像素后,stride改為1做卷積,得到的feature map尺寸增大一倍。

而dilated conv不是在像素之間padding空白的像素,而是在已有的像素上,skip掉一些像素,或者輸入不變,對conv的kernel參數中插一些0的weight,達到一次卷積看到的空間范圍變大的目的。

當然將普通的卷積stride步長設為大於1,也會達到增加感受野的效果,但是stride大於1就會導致downsampling,圖像尺寸變小。


免責聲明!

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



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