解卷積層和卷積層一樣嗎?(論文解析)
作者:elfin 資料來源:deconvolution論文
1、前言
解卷積一詞的來源:
-
Zeiler, Matthew D., et al. "Deconvolutional networks." Computer Vision and Pattern Recognition (CVPR), 2010 IEEE Conference on. IEEE, 2010.
這篇文章的資料好像並不是很容易找到,這里我從IEEE上下載下來,提供深度學習解卷積網絡的論文鏈接如下,Deconvolutional networks.提取碼:2020
-
Zeiler, Matthew D., Graham W. Taylor, and Rob Fergus. "Adaptive deconvolutional networks for mid
and high level feature learning." 2011 International Conference on Computer Vision. IEEE, 2011.這一篇論文中,作者提出了解卷積層的概念,此文章考古鏈接。提取碼:2020
解卷積可以理解為卷積的“逆向”過程,但是說deconvolution是反卷積,這個好像並不是那么恰當,查閱資料,deconvolution這個詞的專業解釋(專有名詞翻譯)叫:解卷積、去卷積。實際上這個叫法更專業,更貼近深度學習的使用場景。后面在介紹deconvolution和卷積層是否一樣的時候,我們將使用“解卷積”稱呼deconvolution。
在我們的CVPR 2016論文[1]中,我們提出了一種新的網絡結構來處理單圖像超分辨率(SR)。大多數現有的基於卷積神經網絡(CNN)的超分辨率方法[10,11]首先使用“雙三次插值(專有名稱)”對圖像進行上采樣,然后應用卷積網絡。我們將這些首先對圖像進行上采樣的網絡稱為高分辨率(HR)網絡。相反,我們直接將低分辨率(LR)輸入直接輸入到亞像素卷積神經網絡中,如下圖所示:

其中\(r\)表示上采樣的比例,即若輸入圖像大小為 \(1\times 1\) ,那么輸出圖像的大小為 \(r\times r\) 。這里使用\(r^{2}\)個通道而不是HR,並且使用周期性的shuffing重構HR圖像。關於我們高效的亞像素卷積層工作原理的具體細節可以在本文中找到。我們將把我們的網絡稱為LR(低分辨率)網絡。
在這篇文章中,我們想關注兩個方面,這兩個問題與CVPR的大多數人在看到這個網絡時向我們提出的兩個問題有關。
- 首先,\(r^{2}\)個通道是如何神奇地成為HR特征圖的?
- 其次,為什么LR空間中的卷積是更好的選擇?
這些實際上是我們試圖在論文中回答的關鍵問題,但考慮到篇幅限制,我們未能深入到我們希望的深度和清晰度。為了更好地回答這些問題,我們首先討論了以轉置卷積層、亞像素卷積層和高效亞像素卷積層形式存在的解卷積層之間的關系,我們將在第一節、第二節中討論。我們將高效亞像素卷積層稱為LR空間中的卷積層,以區別於普通的亞像素卷積層[5]。然后,我們將證明,對於固定的計算預算和復雜度,在LR空間中僅有的卷積網絡在相同的速度下比首先在HR空間中對輸入進行上采樣的網絡具有更大的表示能力。
2、轉置卷積層和亞像素卷積層
首先我們需要考察解卷積層。人們通常所說的解卷積層,首先出現在Zeiler的論文中,作為解卷積網絡的一部分[2],但沒有一個特定的名稱。deconvolution(解卷積)層一詞在他后來的工作[3]中使用,然后在caffe中實現。
在網絡可視化論文[4]取得成功之后,它被廣泛采用,目前常用於語義分割[5]、流估計[6]和生成建模[7]。它還有許多名稱,包括(但不限於)亞像素或微步卷積層[7]、轉置卷積層[8,9]、逆卷積層、上卷積層或后向卷積層[5,6]。為了解釋這些不同名稱之間的關系,讓我們從下圖所示的1D中的步長2的簡單卷積開始,它的靈感來自於[8,9]:

上圖說明了一個padding后的1D信號\(x\),經過信號過濾器\(f\),獲得了一個1D信號\(y\)。信號\(x\) 長度為8,過濾器\(f\) 的長度為4,信號\(y\) 的長度為5。\(x\)中的灰色部分是padding(使用0),\(f\)中的灰色區域表示與零相乘。\(x\)對\(y\)值的貢獻如上圖行所示,我們注意到步長為2的卷積是一種下采樣操作。
現在,讓我們來研究一個1D中帶步長2的裁剪轉置卷積和帶步長\(\frac{1}{2}\)的亞像素卷積:

- (a):步長為2的轉置卷積(1D數據中)
- (b):步長為\(\frac{1}{2}\)的亞像素卷積(1D數據中)
- 總結:
- (a)中的矩陣是(b)中的轉置,所以稱之為轉置卷積
- (b)中每個元素都插入的padding元素,相當於每個元素添加一個微步元素,這樣卷積的時候,卷積的步長如果為1,那么實際對於原特征圖而言,步長為\(\frac{1}{2}\)。
上面兩種卷積我們可以看出其都是上采樣操作,上面的案例中,我們可以知道輸入的信號\(x\)長度為5,過濾器\(f\)的大小為4,卷積后的信號\(y\)長度為8。信號\(y\)中的灰色區域表示裁剪(這部分不要所以也稱之為裁剪卷積)。轉置卷積之所以得名,是因為中間運算的矩陣是上上個圖中矩陣的轉置版本。它也被稱為反向卷積,因為它是卷積層的反向傳播。值得注意的是,填充后的卷積由於轉置矩陣而成為裁剪卷積,而亞像素卷積的名稱來自於在原始像素之間填充微步索引的假想子像素(如圖b中使用0進行像素間的填充)。
我們可以看到,這兩種操作之間的唯一區別是,從x貢獻y時所使用的權重索引形式是不同的(直觀上就是一個是橫着一個是豎着)。如果我們在亞像素卷積中反轉濾波器f的元素索引(橫向與縱向轉換,也即原矩陣與轉置矩陣),那么該層將與轉置卷積層相同。換言之,如果濾波器被學習,兩個操作可以獲得相同的結果。
3、解卷積 VS 低分辨率中的卷積
在本文中,我們還想證明在LR空間中具有卷積核大小為(輸出通道、輸入通道、核寬度、核高度)=(\(o \times r^{2}, i, k, k\))的簡單卷積層,等於解卷積\(kernel\_size = (o, i, k*r, k*r)\),其中k是正整數。我們將在2D特征圖中執行這些步驟,並可以與上一節的內容對應。為了避免過於復雜的圖形,讓我們先從一個簡單的亞像素卷積層(帶padding)開始,該層有一個(1,4,4)的輸入和一個(1,1,4,4)卷積核,並假設一個上采樣縮放因子2,得到一個\((1, 8, 8)\)的輸出:
-
亞像素卷積第一步:構建低像素特征圖的微步特征圖
如在1D數組中一樣,我們對輸入特征圖創建一個亞像素圖像,即使用微步索引。白色像素是原始的LR像素,灰色像素是零填充的假想子像素。
-
亞像素卷積第二步:在亞像素卷積空間中卷積
如果亞像素圖像中卷積核的大小為\((1, 1, 4, 4)\),由非零像素激活的第一組權重是紫色(即第一組中LR像素有值,其余為0,未被激活)的。然后我們在亞像素圖像中向右移動一個子像素,藍色權重被激活。綠色和紅色的也一樣。
-
亞像素卷積第三步:亞像素卷積全視角
最后,輸出的HR圖像具有與亞像素圖像相同的維數,我們對其進行顏色編碼以顯示哪個權重集對像素有貢獻。
Take care 我們注意到,(1,1,4,4)內核中的不同權重集是相互獨立激活的。所以我們可以很容易地將它們分成(4,1,2,2)個內核(即4個\([1,1,2,2]\)的卷積核),如下圖所示。

這個操作是可逆的,因為在卷積過程中,每組權重是相互獨立的。
Tips: 有上面的操作我們可以將亞像素卷積修改為下面的方式
在我們的論文中,我們沒有將(1,1,4,4)的過濾器與unpooled亞像素圖像卷積,而是直接將內核與LR輸入卷積,如下圖所示:

卷積后的特征圖是\([4,4,4]\),我們可以簡單地使用本文中提到的周期性\(shuffling\)操作將輸出通道重塑為HR輸出。上圖的HR輸出與上上圖的HR輸出是一樣的!
這里我們可以證明對任意的縮放比例\(r\)我們都可以將解卷積變換為多個卷積核的周期性\(shuffling\)操作。如上面所述,若\(r=2\),則我們要使用\(r^{2}=9\)個卷積核( \(kernel\_size = (o, i, k*r, k*r)\) ) 。
在作者的論文中最后訓練的卷積層核為(9,32,3,3),經過逆運算可以重建解卷積層卷積核為(1,32,9,9)。
如果我們應用(9,32,3,3)到任意32通道輸入,通過\(periodic\_shuffling\)操作我們可以得到使用解卷積(1,32,9,9)一樣的結果。如1D數據中的第二張圖,我們使用卷積核\(f_{1}=(2,4)\)和\(f_{2}=(1,3)\)替換\(f=(1,2,3,4)\)。由\(y_{1}=f_{1}*x\)和\(y_{2}=f_{2}*x\),其中星號表示卷積,合並產生信號\(y\)。LR空間中的卷積和上面討論的亞像素卷積之間的等價性適用於大小等於\(k*r\)的過濾器\(f\)。但讀者可能已經注意到,對於亞像素卷積,可以是任何大小。然而,LR空間中的卷積實際上也適用於大小不等於\(k*r\)的情況。例如,我們的過濾器如果是\(f=(1,2,3)\),則可以有\(f_{1}=(2)\)和\(f_{2}=(1,3)\),合並\(f_{1}\)、\(f_{2}\)產生\(y\)。
4、總結
綜上所述:解卷積層和LR空間(有\(r^{d}\)個通道)中的卷積一樣。這意味着網絡可以學習使用LR特征圖的\(r^{2}\)個通道來表示一個HR特征圖(如果鼓勵這樣做的話)。並且創建\(r^{2}\)個通道的特征圖使用的是普通卷積,這和下圖中的創建\(n_{l-1}\)特征圖之前的卷積一樣!

在我們完成這篇論文之后,我們在去年對這個問題有了更多的見解,如果我們現在把注意力放在最后一次卷積之前的卷積層上,它有n個特征映射,我們現在知道,在上采樣因子為2的情況下,它可以學習在LR空間中表示n個特征圖(n為通道數),相當於在高分辨率下的\(\frac{n}{4}\)特征圖(即通道數縮放了\(r^{2}\)倍)。現在假設兩個網絡架構擁有一樣的運行速度。其中一個特征圖通道數為32(在低分辨率特征圖下);另一個卷積之前先上采樣並且最后有通道數為8的高分辨率特征圖。在運行速度一樣的情況下,前者的模型性能要比后者好!
對於LR網絡的復雜度,它與HR網絡是一樣的!兩種網絡的信息量也是一樣的!在源圖中的感受野也是一樣的!然而LR模型比HR模型的參數要多很多,這也是其性能更好的原因。
鑒於上述論點,我們現在認為,對於超分辨率問題,使用雙三次或解卷積層的顯式上采樣實際上是沒有必要的。例如,由Dong[12]和Johnson[13]獨立開發的后期作品在LR中使用卷積實現超分辨率和均勻風格轉換。
這引發了更有趣的問題。在其他應用中是否需要使用雙三次插值或解卷積進行顯式上采樣?網絡是否可以從僅使用卷積中了解何時進行上采樣以及有多大比例的特征圖進行上采樣?當resNet與需要上采樣的任務的多層卷積相結合時,網絡會自動學習LR和HR特性的結合嗎?我們將留給讀者思考這些更有趣的問題。
完!