反卷積層(轉置卷積)

2021-08-07 10:19:58 字數 1375 閱讀 3090

反卷積(deconvolution)不是數字訊號處理裡面的意義,在深度學習裡面應該叫做轉置卷積(transposed convolution)又名微步卷積(fractionally strided convolutions),也有叫backward strided convolution ,upconvoution, upsample convolution。主要從以下幾個方面理解:

從概念上理解

轉置卷積其實也是一種卷積。總是可以用卷積層來模擬飯卷積層,但是缺點就是需要在行列進行補零,導致不是乙個有效的計算介面。

從資料角度解釋

在卷積網路裡面,我們是通過卷積層操作,獲得feature map,然而對於反卷積層,則是通過feature map的卷積操作,輸出value,這輸出值是我們期待的影象的值。有點像通過反卷積還原feature map到原始影象。

從卷積公式角度理解

要理解反卷積的公式,就需要理解卷積的矩陣表達從而得到轉置的含義。舉個例子:

輸入的feature map4*4,卷積核3*3.步長為1,不填充。那麼輸出的大小為2*2.在進行計算時,為了可以使用矩陣進行計算,將輸入x拉成16*1維向量,輸出y拉成4*1維向量,那麼

卷積運算可表示為

c矩陣可以寫成:

我們在計算一下反向傳播下的公式,

可以發現卷積層時,正向和反向分別乘以c和ct。反卷積就是正向和反向分別乘以ct和c。

視覺化角度

作用角度上講

有一種將輸入的size變大的意思,一次一般情況下,輸出的維度要大於輸入的維度。雖然是想還原輸入,但實際上是無法還原輸入的,反卷積的權重也式可以進行學習得到。

應用層面

可以進行視覺化操作,將feature map視覺化,看到底學習到了什麼。

在對抗神經網路中有應用,這方面不熟悉。

在超解析度成像中,fsrcnn中最後一層使用deconv,可以還原到不同尺度的解析度影象,類似於對影象進行縮放。

參考:

反卷積 轉置卷積

搞明白了卷積網路中所謂deconv到底是個什麼東西後,不寫下來怕又忘記,根據參考資料,加上我自己的理解,記錄在這篇部落格裡。第一次看到deconv這個詞,以為deconv的結果就是卷積的逆,覺得神奇,不禁產生了 哦?轉置的卷積就可以求逆了嗎?這樣的想法,然後在matlab裡面實驗求證,我還記得當時以...

轉置卷積 反卷積

借鑑於此個部落格,寫的非常好 轉置卷積 transposed convolution 也叫做反卷積 deconvolution pytorch中可以使用torch.nn.convtranspose2d 來呼叫,caffe中對應的轉置卷積層為deconv layer 作用 在 中用於對影象上取樣。操作...

反卷積(轉置卷積)的理解

參考 開啟鏈結 就是這個圖啦,其中藍色部分是輸入的feature map,然後有3 3的卷積核在上面以步長為2的速度滑動,可以看到周圍還加里一圈padding,用更標準化的引數方式來描述這個過程 二維的離散卷積 n 2 方形的特徵輸入 i i i 方形的卷積核尺寸 k k k 每個維度相同的步長 s...