參考conv_arithmetic上的動圖
符號約定: i
,o
,k
,p
,s
分別表示:卷積的輸入大小input size
,輸出大小 output size
迄本,卷積核大小 kernel size
课竣, padding
, stride
公条。
下面的圖片藍色(底部)為輸入迂曲,綠色(頂部)為輸出。
1抓韩、常規(guī)卷積:
(1)鬓长、i=4
,o=2
,k=3
,p=0
,s=1
, "VALID模式"
(2)英上、
i=5
,o=5
,k=3
,p=1
,s=1
"SAME模式"
或者"HALF模式"
(3)苍日、
i=5
,o=7
,k=3
,p=2
,s=1
"FULL模式"
(4)窗声、
i=5
,o=2
,k=3
,p=0
,s=2
(5)、
i=5
,o=3
,k=3
,p=1
,s=2
2拦耐、反卷積/轉(zhuǎn)置卷積:
(1)、i=2
,o=4
,k=3
,no_padding
,s=1
(2)扫俺、
i=5
,o=5
,k=3
,same_padding
,s=1
(3)狼纬、
i=7
,o=5
,k=3
,full_padding
,s=1
(4)骂际、
i=2
,o=5
,k=3
,no_padding
,s=2
(5)歉铝、
i=3
,o=5
,k=3
,padding
,s=2
實際上通過反卷積操作并不能還原出卷積之前的圖片,只能還原出卷積之前圖片的尺寸送火。
反卷積(轉(zhuǎn)置卷積)通常用在以下幾個方面:
- CNN可視化先匪,通過反卷積將卷積得到的
feature map
還原到像素空間弃衍,來觀察feature map
對哪些pattern
相應(yīng)最大,即可視化哪些特征是卷積操作提取出來的岸裙; - FCN全卷積網(wǎng)絡(luò)中速缆,由于要對圖像進行像素級的分割,需要將圖像尺寸還原到原來的大小艺糜,類似
upsampling
的操作,所以需要采用反卷積翅楼; - GAN對抗式生成網(wǎng)絡(luò)中真慢,由于需要從輸入圖像到生成圖像,自然需要將提取的特征圖還原到和原圖同樣尺寸的大小黑界,即也需要反卷積操作皂林。
?
當(dāng)反卷積的s = 1
時式撼,反卷積和一般的卷積并沒有什么不同求厕,只是padding
的稱呼方式有所變化,方向和卷積相反呀癣。由反卷積的圖5可以看到反卷積的一些缺點,在s > 1
時浦辨,會降低圖片的分辨率沼沈,并且不同于一般的convolution
,反而增大了輸出的feature map
的size
列另。
對于s = 2
页衙、padding=1
、k=4
的反卷積店乐,輸入AXA圖像,輸出為2AX2A腺兴。
3廉侧、膨脹卷積:
又稱為空洞卷積
、擴張卷積
英文為:Dilation[da?'le??n] Convolution
/Atrous['?tr?s] Convolution
/Convolution with holes
作用:
首先膨脹卷積的目的是為了在擴大感受野的同時伏穆,不降低圖片分辨率
和不引入額外參數(shù)及計算量
(一般在CNN中擴大感受野
都需要使用s>1
的conv
或者pooling
枕扫,導(dǎo)致分辨率降低,減少了feature map的信息。如果使用大卷積核染簇,確實可以達到增大感受野强岸,但是會引入額外的參數(shù)及計算量)。
膨脹卷積多了一個參數(shù)dilation rate
青灼, 指的是kernel
的間隔數(shù)量(e.g. 一般的convolution
的 dilatation rate = 1
)妓盲。把dilation rate
簡記為r
。
圖像參考:i = 7
,o = 3
,k = 3
,p = 0
,s = 1
,r = 2
擴充后的卷積核
size = k + (k-1) x (r-1)
弹沽,特別地筋粗,對于3*3的卷積核,如果p = r
娜亿,則特征圖尺寸大小不改變暇唾。既然膨脹卷積的初衷之一就是不降低圖片分辨率辰斋,那么我們可以認定膨脹卷積的s = 1
。?
總起來說宫仗,dilation conv是對卷積核進行upsample,deconv是對feature map進行upsample孽糖;或者說毅贮,dilation conv是skip掉map中的一些元素,而deconv是對map中的元素進行補0操作滩褥。
參考:
1、反卷積/轉(zhuǎn)置卷積: transposed conv/deconv
2铺然、徹底搞懂CNN中的卷積和反卷積
3、談?wù)勁蛎浘矸e
4赋铝、dilation conv 和 deconv
5沽瘦、如何理解空洞卷積(dilated convolution)?-知乎