deconv的其中一個用途是做upsampling,即增大圖像尺寸。
dilated convolution:
dilated conv,中文可以叫做空洞卷積或者擴張卷積。
deconv的其中一個用途是做upsampling,即增大圖像尺寸。而dilated conv並不是做upsampling,而是增大感受野。
可以形象的做個解釋:
對於標准的k*k卷積操作,stride為s,分三種情況:
(1) s>1,即卷積的同時做了downsampling,卷積后圖像尺寸減小;
(2) s=1,普通的步長為1的卷積,比如在tensorflow中設置padding=SAME的話,卷積的圖像輸入和輸出有相同的尺寸大小;
(3) 0<s<1,fractionally strided convolution,相當於對圖像做upsampling。比如s=0.5時,意味着在圖像每個像素之間padding一個空白的像素后,stride改為1做卷積,得到的feature map尺寸增大一倍。
而dilated conv不是在像素之間padding空白的像素,而是在已有的像素上,skip掉一些像素,或者輸入不變,對conv的kernel參數中插一些0的weight,達到一次卷積看到的空間范圍變大的目的。
當然將普通的卷積stride步長設為大於1,也會達到增加感受野的效果,但是stride大於1就會導致downsampling,圖像尺寸變小。大家可以從以上理解到deconv,dilated conv,pooling/downsampling,upsampling之間的聯系與區別,歡迎留言溝通交流。
DCGAN[5]中使用deconv就更自然了,本身GAN就需要generative model,需要通過deconv從特定分布的輸入數據中生成圖片。GAN這種模式被Yann LeCun特別看好,認為是unsupervised learning的一個未來。
fractional-strided convolution:
反卷積有時候也被叫做Fractionally Strided Convolution,翻譯過來大概意思就是小數步長的卷積。對於步長 s>1的卷積,我們可能會想到其對應的反卷積步長 s′<1。
對於反卷積操作的小數步長我們可以理解為:在其輸入特征單元之間插入 s−1 個0,插入0后把其看出是新的特征輸入,然后此時步長 s′ 不再是小數而是為1。

詳見網址:https://my.oschina.net/u/3702502/blog/1803358 http://www.mamicode.com/info-detail-2321005.html
