反卷積(deconvolution)的概念第一次出現是zeiler在2023年發表的**deconvolutional networks中,但是並沒有指定反卷積這個名字,反卷積這個術語正式的使用是在其之後的工作中(adaptive deconvolutional networks for mid and high level feature learning)。隨著反卷積在神經網路視覺化上的成功應用,其被越來越多的工作所採納比如:場景分割、生成模型等。其中反卷積(deconvolution)也有很多其他的叫法,比如:transposed convolution,fractional strided convolution等等。
這篇文章的目的主要有兩方面:
1. 解釋卷積層和反卷積層之間的關係;
2. 弄清楚反卷積層輸入特徵大小和輸出特徵大小之間的關係。
## 卷積層
卷積層大家應該都很熟悉了,為了方便說明,定義如下:
我們再把4×4的輸入特徵展成[16,1]的矩陣x ,那麼y = cx則是乙個[4,1]的輸出特徵矩陣,把它重新排列2×2的輸出特徵就得到最終的結果,從上述分析可以看出卷積層的計算其實是可以轉化成矩陣相乘的。值得注意的是,在一些深度學習網路的開源框架中並不是通過這種這個轉換方法來計算卷積的,因為這個轉換會存在很多無用的0乘操作,caffe中具體實現卷積計算的方法可參考implementing convolution as a matrix multiplication。
通過上述的分析,我們已經知道卷積層的前向操作可以表示為和矩陣c相乘,那麼 我們很容易得到卷積層的反向傳播就是和c的轉置相乘。
原文:
反卷積原理
一 介紹 反卷積,可以理解為卷積操作的逆運算。這裡千萬不要當成反卷積操作可以復原卷積操作的輸入值,反卷積並沒有那個功能,它僅僅是將卷積變換過程中的步驟反向變換一次而已,通過將卷積核轉置,與卷積後的結果再做一遍卷積,所以它還有個名字叫轉置卷積。雖然它不能還原出原來卷積的樣子,但是在作用上具有類似的效果...
卷積和反卷積
n image h 2 pad h kernel h stride h 1 image w 2 pad w kernel w stride w 1 image h 輸入影象的高度 image w 輸入影象的寬度 pad h 在輸入影象的高度方向兩邊各增加pad h個單位長度 因為有兩邊,所以乘以2 ...
反卷積 轉置卷積
搞明白了卷積網路中所謂deconv到底是個什麼東西後,不寫下來怕又忘記,根據參考資料,加上我自己的理解,記錄在這篇部落格裡。第一次看到deconv這個詞,以為deconv的結果就是卷積的逆,覺得神奇,不禁產生了 哦?轉置的卷積就可以求逆了嗎?這樣的想法,然後在matlab裡面實驗求證,我還記得當時以...