1. 程式人生 > 其它 >深度學習筆記33 轉置卷積

深度學習筆記33 轉置卷積

轉置卷積可以用來增大輸入的高寬,算是對卷積的反捲?並不是。

轉置卷積本質上還是一個卷積,它只是與卷積在形狀上是相反的,但是數值不是;

卷積的逆運算是反捲積,反捲積的輸入和輸出與卷積的輸出和輸入相同;

反捲積是數學上的概念,計算機領域但凡提到“反捲積神經網路”指的都是用轉置卷積,因為反捲積在機器學習領域好像沒什麼價值。

 

 早期的卷積都是通過這種等價的矩陣乘法完成的,從這個角度看,我們用來卷積的卷積核對應的向量為V,而反過來的卷積正好是V的轉置,因此這種反捲的過程叫做轉置卷積。

 

 轉置卷積其實和卷積沒太大區別了,手搓比較容易,程式碼不寫了。

但是這裡要注意卷積的兩個超引數:步幅和填充。

轉置卷積的填充,可以理解為填充在輸出上。當步長為1的時候,我們對一個2x2的矩陣做2x2核的轉置卷積,得到的結果應該是3x3,(見最上面那張圖),但是如果我們讓padding=1,那麼得到的結果就是1x1的結果,因為在輸出上padding了一圈,讓輸出成為3x3,那麼把這一圈去掉,就是1x1.說人話,其實就是padding在輸出後把輸出的矩陣的前padding行和列與後padding行和列給刪除了而已。

步幅越大,結果就越大,還是上面那個例子,如果把stride=2,那麼就不會有重疊的部分,也因此得到的結果就是4x4的矩陣。

 

轉置卷積,本質上還是一種卷積。

轉置卷積的步幅和填充取值後對形狀的計算,可以再看一遍:https://www.bilibili.com/video/BV1CM4y1K7r7?spm_id_from=333.999.0.0

至於轉置卷積到底為什麼存在,這得等明天去研究全連線卷積神經網路。