反卷積層/轉置卷積層--transposed convolution arithmetic
來自專欄學習筆記分享與記錄
反卷積層也許被稱為轉置卷積層更合適。
人們想實現一般卷積層相反的轉換,就提出了轉置卷積層,為了更好的理解轉置卷積層,我們從卷積層的矩陣表示開始。
卷積層的矩陣表示
為了更好的理解卷積層和轉置卷積層,本文假設卷積層的輸入為4*4, 卷積核為3*3,padding=0, stride=1
如果我們把輸入和輸出從左到右、從上到下展開成向量,卷積核用稀疏矩陣C表示,其中非零元素為卷積核的權重。C形式如下:則卷積運算可以表示為:
其中:x為輸入,y為輸出, C為4*16的矩陣。
注意:此線性操作把一個16維的輸入向量,經過卷積運算後輸出一個4維的向量,最後再轉變為一個2*2的輸出矩陣。
使用矩陣表示,反向傳播通過C的轉置矩陣可以輕易獲得;換句話說,誤差通過損失loss乘以進行反向傳播。在反向傳播的時候,輸入為4維的向量,輸出為16為的向量,其連接方式與前向傳播一致。
轉置卷積層
現在我們來考慮如何把4維向量空間映射到16維向量空間,同時保持卷積層的連接方式。該操作被稱為轉置卷積層。轉置卷積層是相對於卷積層而言,卷積層把高維空間映射到低維空間,轉置卷積層則相反,把低維空間映射到高維空間,這就是轉置卷積層中轉置的由來。
轉置卷積層,又被稱為分數步長的卷積層,通過交換卷積層的前向傳播和方向傳播來實現(註:這裡的交換反向傳播和前向傳播可以理解為:卷積層的前向傳播把16維向量空間映射到4維向量空間,轉置卷積層的反向傳播把16維的向量空間映射到4維的向量空間,因此稱為交換前向傳播和反向傳播)。
例如,卷積核w定義了一個卷積,它的前向傳播和反向傳播分別通過乘以C和獲得。但是它同時也定義了一個轉置卷積層,它的前向傳播和反向傳播分別通過乘以和獲得。
對於計算轉置卷積層大小的最簡單的方法是把轉置卷積層的輸入當作一個的等同的卷積層的輸出,轉置卷積層的輸出當作卷積層的輸入,使用卷積層的計算公式就可以得到轉置卷積層輸出的形狀。
本文內容主要來自於如下網站:http://deeplearning.net/software/theano/tutorial/conv_arithmetic.html#refresher-discrete-convolutions
推薦閱讀:
※圖像檢索之Large-Scale Image Retrieval with Attentive Deep Local Features
※[計算機視覺論文速遞] 2018-04-03
※CS231n 2017 Lecture 1: Course Introduction 隨堂筆記
※CVaaS計算機視覺即服務 ——從演算法,應用到服務的技術演變
※從VGG到NASNet,一文概覽圖像分類網路
TAG:計算機視覺 |