原論文鏈接

arxiv.org/pdf/1705.0991

一、論文核心

《Dilated Residual Networks》這篇論文的核心在於創造性地提出了空洞卷積(Dilated Convolution)使 ResNet 在保持參數量不變、每個階段的卷積層視野不變的前提下,靠後的卷積層也可保持較大的 feature maps 尺寸從而有利於對小目標的檢測,提高模型整體性能。具體來說,ResNet最後一層卷積的 整體步長為32,DRN(Dilated ResNet) 則僅為8。當然,既然 feature maps 尺寸大了,計算量當然也會變大,雖然作者在論文中避而不談,但作為讀者可還要心知肚明。

二、什麼是空洞卷積

參考鏈接:如何理解空洞卷積(dilated convolution)?

兩張圖就可以秒懂:小朋友們,你們學會了嗎?

普通卷積 i.e. dilation=1

空洞卷積 i.e. dilation=2

空洞卷積核中的點距離由 1 增加到了 dilation 值,即中間 dilation-1 的地方都是空著的,這個空著的地方,一方面保持了卷積的參數的單次卷積運算量的不變,同時擴大了卷積的視野。所謂有之以為利,無之以為用是也。

小朋友們,你們學會了嗎?

三、DRN 的設計和改進

首先我們看看ResNet,它大致可分為6個階段,即 conv1~5加上最後的分類層:

其中conv2~5為4個分別由相同結構、規模的Residual Block堆砌而成,每個階段都會進行 stride=2 的下採樣,其帶來的作用是:

  1. feature maps 尺寸在長寬長都減半
  2. 下採樣後續卷積核的視野翻倍

如何在保持第2點的同時取消第1點呢?DRN是這樣處理的:

總結來說即以下幾點:

  1. 在conv4、conv5階段不下採樣,即保持整體 stride=8 的步長、feature maps 尺寸相較conv3 不變。
  2. 由於原ResNet 的conv4視野相對於conv3是兩倍,conv5是conv3的四倍,為了彌補視野行的缺陷,如上圖 DRN 在 conv4 設置卷積的 dilation=2,conv5 的dilation=4,卷積核大小依然為3x3。

然而這樣設計雖然在不增加模型參數量的情況下,提高了模型對小物體的識別精度,但存在明顯的問題,作者稱之為 degridding,如下圖(c):

為了消除空洞卷積帶來的 degridding 效應,作者改進了DRN:

綠色豎線表示 stride=2 的下採樣,可以看到,DRN 整體下採樣只有3次。整體而言的改進有以下幾點:

  1. DRN-B、DRN-C 都取消了pooling,使用 stride=2 的卷積層替代。因為作者發現其會導致更嚴重的 degriding 效應,如下圖(b)所示。

2. DRN-B 在最後加了兩個 dilation 分別是2、1(即正常卷積)的Residual Block,而DRN-C 在此基礎上進一步取消了二者的跳層連接,最後使得輸出的 fature maps 如絲般順滑,如下圖(d)(e)。

一個小問題是,上面這張圖是怎麼畫出來的?NIN裏的 AvgPooling + conv1x1 替代全連接層輸出分類還有印象麼?這樣可以使得模型參數量大大減少的同時,提高模型的精度,所以許多模型都採用這種方式輸出預測分類,而這樣訓練出來的模型,將 AvgPooling 取消,對於 hxw 大小的 feature map 上的每一點,即 shape 為 (1,1,c) 的 tensor 使用原有的 conv1x1,即可得到上圖,此過程如下圖所示:

四、DRN 的性能

DRN 的性能如下列圖所示,可以看到,在物體檢測任務上,模型最後高解析度輸出的feature maps 的確帶來了極高的性能提升。

圖像分類
物體檢測

語義分割

PS:

廣告時間啦~理工生如何提高人文素養軟實力?快關注微信公眾號:
歡迎掃碼關注~

推薦閱讀:

相關文章