論文筆記——CVPR 2017 Dilated Residual Networks

1. Background   
  這次我來介紹一篇深度網絡文章《Dilated Residual Networks》,發表在CVPR 2017會議上。作者是普林斯頓大學的Fisher Yu博士等人。網絡簡稱爲DRN。
  文章原文可在作者主頁閱覽:Fisher Yu主頁
  這篇文章實則是作者將何愷明(Kaiming He)博士殘差網絡Deep Residual Networks與其之前研究的Dilated Convolution相結合的結果。
  前者是發表於CVPR2016上的《Deep Residual Learning for Image Recognition》的成果,後者是發表於ICLR2016會議上的《Multi-Scale Context Aggregation by Dilated Convolutions》的理論研究。論文鏈接分別是:
  Deep Residual Learning for Image Recognition
  Multi-Scale Context Aggregation by Dilated Convolutions
2. Introduction 
  作者先提出,之前的卷積神經網絡(Convolutional Networks)都是通過不斷降低圖像精度,直到圖像被一個僅保留微弱空間信息的特徵map表示(一般最後卷積層輸出僅爲7×7),最後通過計算類別概率來分類圖像。這樣情況下,儘管前面卷積網絡做的很好,但是整個網絡卻不能獲取一個十分精確的結果,例如一個很小的目標對解析圖片信息十分重要,但是卻被前面卷積網絡因爲過多降維和其體積很小而直接忽略掉了。
  此外,圖像分類的深度網絡大多數還作爲其他需要更多詳細場景理解的任務的預訓練模型,而很高的空間分辨率損失對這些任務而言是非常不利的。
  所以卷積神經網絡應用在圖像分類中,維護圖片空間一定的分辨率是一個很重要的任務。現有算法有以下的做法:
  up-convolutions,skip connections 和 other post-hoc measures。
  但是上面的方法會造成圖片變形,所以本文提出使用Dilated Convolutions方法來解決這個問題。Dilated Convolutions的好處就是既能保持原有網絡的感受野(Receptive Field),同時又不會損失圖像空間的分辨率(224×224輸入的最後卷積層輸出特徵map是28×28)。
3. Dilated Convolutions 
  Dilated Convolutions是爲了在我們不使用池化層和striding前提下,能夠保證與原深度網絡諸如FCN每一層同樣的感受野,同時圖像輸出的特徵map尺寸不會變小。
  實現過程如下圖(摘自論文《Multi-Scale Context Aggregation by Dilated Convolutions》):


這裏寫圖片描述

  上面實現過程總結來說就是,假設網絡輸入爲28×28,我們使用padding和stride=1的卷積,卷積filter尺寸都是3×3。
  (a) 輸入28*28基礎上3×3卷積,也就是經過1-dilated處理,感受野爲 3×3,該操作和其他正常卷積操作一樣,沒有區別;
  (b) 在(a)輸出的基礎上進行 3×3卷積,經過2-dilated處理,也就是隔一個像素進行與filter點乘最後相加作爲中心像素的特徵值,所以感受野變爲 7×7;
  (c) 在(b)的輸出基礎上進行 3×3卷積,經過4-dilated處理,也就是隔三個像素進行預filter點乘最後相加作爲中心像素的特徵值,所以感受野變爲 15×15;
  整個感受野的變化如上圖綠色區域所示。並且我們看出,由於filter卷積過程stride=1以及依靠padding,最後每層輸出的特徵map尺寸都依舊保持爲28×28,和原圖同樣的大小。但是我們可以看到,網絡無需藉助池化層也能增大後續網絡的感受野。
  總結來說,Dilated Convolution可以不降低特徵map的尺寸而增大卷積感受野。而之前例如FCN使用pooling下采樣來增大感受野,但隨後又不得不通過Deconvolution或者upsampling來增大特徵map尺寸,這樣先減後增的操作會讓圖片特徵損失很多信息。
4. Dilated Residual Networks 
  好了,有了上面Dilated Convolutions的理解,我們對於這種擴張卷積思想(暫且稱謂它爲擴張卷積)如何應用到殘差網絡就很清晰了。實際上,我要指出,擴張卷積可以應用到任何CNN上,從而達到保護網絡的空間分辨率。至於作者爲什麼應用和撰寫將其擴展到殘差網絡,自然是因爲殘差網絡是當前表現最好的網絡之一。
  原始的殘差網絡卷積層是經過了5次striding處理達到降採樣的目的,如下圖,每一種顏色對應同一尺度大小的特徵map輸出。(圖片摘自文章《Deep Residual Learning for Image Recognition》,僅顯示網絡部分結構)

這裏寫圖片描述

  輸出的特徵也就是發生了5次尺度的變化,所以結果對於224×224分辨率輸入,最後卷積層輸出爲7×7。每一層卷積忽略bias不寫的算法表達式如下:

這裏寫圖片描述

  但是最終特徵map輸出僅爲7×7,最直接增加特徵map分辨率的方法就是直接移除層間的subsampling(striding)操作,但是這樣操作不能達到原網絡每一層同一感受野,顯然爲了高分辨率而降低感受野是非常不可取的行爲。這裏就體現了擴張卷積的優點了,就是保持原有網絡的感受野並且還能提高圖片空間分辨率。
  這裏由於前面三種類型層(g1,g2,g3 )對原始輸入進行了總共8倍的降採樣,28×28分辨率足夠識別圖片場景的結構,並且保存了大多數的圖片信息去幫助我們正確解析原始圖像的像素級信息。
  所以本文是在前三層網絡輸出28×28特徵map之後改變原始網絡結構(即改變g4,g5 )。前後變化如下圖:

這裏寫圖片描述

  首先作者移除這兩層中striding操作,然後對g4,g5 分別進行2-dilated和4-dilated convolutions操作,如下:

這裏寫圖片描述
這裏寫圖片描述

  原始ResNet中兩層網絡分辨率分別相對於g3 輸出降了2倍和4倍,也就是從28×28降到了14×14和7×7。但是經過擴張卷積操作特徵map的尺度沒有發生任何改變,並且感受野和原ResNet對應層一樣。最終DRN的g5 輸出爲28×28。
5. 圖像分類和目標標定 
  圖像分類和目標標定在經過上面卷積操作得到特徵map之後,分別進行下面的最後處理:

這裏寫圖片描述

  對於圖像分類,操作和ResNet中一樣,進行global average pooling,然後再經過1×1×n卷積得到最終n類得分,從而判斷圖片中目標的分類。
  而對於Localization預測,作者直接對g5 (28×28)輸出進行1×1×n的卷積來替代global average pooling操作。這樣每一類包含一張對應激活的預測map。對於map中每個像素標籤,表示這個像素屬於該類目標的概率。
  DRNs時爲了圖像分類而設計的網絡,同時能夠輸出高分辨率的激活maps。實驗表明,DRNs在圖像分類上比原始ResNet表現要出色。此外,DRNs可以直接由輸入而生成高分辨率的輸出maps,其中無需對其增加任何其他層,無需多餘參數和再訓練模型從而很好的預測目標位置。
6. Degridding 

這裏寫圖片描述

  但是從上圖第三列我們會發現,最終輸出maps會產生很差的網格狀態(gridding artifacts)。作者主要通過Removing max pooling和Adding layers等操作一定程度上改善了最終輸出結果。最終三種類型網絡格局如下:

這裏寫圖片描述

7. Experiments 
  圖像分類實驗結果如下表,效果比原始ResNet要好。

這裏寫圖片描述

  目標位置預測實驗結果如下圖,效果比原始ResNet也要好。

這裏寫圖片描述


  個人學習記錄,由於能力和時間有限,如果有錯誤望讀者糾正,謝謝!
  轉載請註明出處:http://blog.csdn.net/FX677588/article/details/71308096
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章