文章轉自:同作者個人微信公眾號【機器學習煉丹術】。歡迎交流溝通,共同進步,作者微信:cyx645016617
- 論文名稱:‘Dilated Residual Networks’
- 論文鏈接:https://arxiv.org/pdf/1705.09914.pdf
0 綜述
這篇文章的最大特色自然是提出了DRN,Dilated Residual Networks,在殘差網絡的基礎上加入了膨脹卷積。
膨脹卷積,又叫做空洞卷積,是在卷積核參數不變的基礎上,增加視野域的一種手段。通過使用膨脹卷積,可以放大最深層特征圖的尺寸並且保持視野域大小不變,說白了就是少了幾個池化層,然后用膨脹卷積維持同樣大小的視野域。比方說,resnet眾所周知,包括stem中的下采樣和4個layer的下采樣,5次下采樣,整體的步長為32;但是DRN中,整體步長僅為8。
當然文章如果僅僅是把碰撞卷積代替一般卷積,那么這篇文章就毫無特色了。碰撞卷積會引出一個degridding效應,如何解決這個問題才是文章的核心。
再加上一句,雖然模型的參數沒有改變,但是因為增加了特征圖的尺寸,計算量和內存消耗必然有增加,請大家仁者見仁。
1 空洞卷積
這個長話短說,直接看圖:
dilation是一個參數,如果是1的話,就是上圖左圖的常規卷積核,如果dilation是2的畫,就變成右邊的膨脹卷積的樣子。dilation表示卷積核中參數相鄰的距離。
2 結構變化
先來看Resnet的結構圖:
輸入的圖片是224x224大小的,第一次下采樣在stem中(圖中的conv1),隨后的下采樣在每一層layer的第一個卷積層前面。
DRN結構沒有了resnet最后的兩次下采樣,也就是說,特征圖在28x28的大小之后就不再變小了。不再減小特征圖尺寸,那么就要增加卷積核的膨脹系數
上圖中展示的是后兩次下采樣的resnet和DRN的區別,可以看到,DRN沒有后兩次下采樣,因此特征圖的尺寸都相同。
- 但是DRN在本該第四次采樣的卷積過程中,將膨脹系數改成2,這樣保持相同的視野域;
- 在本該第五次采樣的卷積過程中,將膨脹系數改成4,這樣保持相同的視野域。
3 degridding
使用膨脹卷積來代替下采樣,會產生degriding柵格化問題
這種情況產生的原因在原文中有這樣的一句解釋:
Gridding artifacts occur when a feature map has higher-frequency content than the sampling rate of the dilated convolution.
就是說,當一某一個特征的重要性超過采樣率。作者給出了這樣的一個例子:
上面圖(a)是一個單個像素異常重要的特征圖,然后經過一個膨脹卷積,變成(c),變成網格狀的輸出。可以說gridding artifiacts是膨脹卷積性質產生的現象。
為了解決這樣的問題,作者對DRN作出了改進:
- DRN-B,DRN-C取消了pooling層,改用stride=2的卷積作為下采樣,因為作者發現pooling會讓degridding更加嚴重
- 此外,作者在DRN-B和DRN-C的最后加上了膨脹系數為2和1的幾層卷積層,來消除degridding現象。其中DRN-C取消了最后幾層卷積的跳層結構。這個非常好理解,畢竟膨脹卷積會產生degridding,那么我就讓最后的輸出是用一般的卷積輸出就避免了這種結構,然后跳層結構會讓degridding直接連入最后的輸出結果,所以取消了
因此在上面的展示圖匯中,DRN-C的輸出的語義分割效果圖,非常絲滑。
4 總結
效果有非常大的提高。這個不降低特征圖的尺寸,從而提高了小物體的目標檢測的效果。值得嘗試。
5 如何實現
這個也挺好實現的,我們記住:
- 用stride=2的卷積層代替pooling層;
- 后面兩個下采樣取消,使用膨脹系數2和4的卷積代替;
- 最后在加上膨脹系數為2和1的卷積層消除degridding現象。