關於反卷積為什么有效的一些思考


Visualizing and Understanding Convolution Networks論文思考記錄

序言

Fully convolution network for semantic segmentation以及Learning Deconvolution network for semantic segmentation兩篇論文中都涉及反卷積的操作,在閱讀完了A guide to convolution arithmetic for deep learning中的反卷積部分后,弄清楚了反卷積的操作過程,然而對為什么反卷積有效依然有很大的疑惑,FCN中簡單的使用反卷積進行32倍,16倍,8倍的上采樣原理實在詭異,DeconvNet的反卷積也是如此。通過這篇論文我有了一些新的認識。

反卷積實現中間層特征圖映射

deconv

作者使用unpooling,rectification,decon將中間層的特征圖一步一步映射到原圖空間。從操作上來看和DeconvNet沒什么區別,作者通過這組操作得到了令人印象深刻的結果,特征圖映射后效果如下:

可以發現中間層特征圖映射之后確實得到了有用的信息,低層特征映射到原圖空間后,發現是一些顏色,邊角等信息,再往后出現了一些紋理信息如Layer3,高層特征圖如Layer4映射到原圖空間后得到了語義很強的信息,如Layer4中的小狗輪廓,Layer5的人臉輪廓等,這些語義性強的高層信息可以很好地表征物體所屬的類別,另外,高層特征圖提取到的信息不含有背景信息(卷積神經網絡不感興趣的背景被過濾掉了)。作者的可視化結果證明了高層特征圖擁有一定重建待識別物體輪廓的能力,也就是說,通過某些操作,高層特征圖可以還原物體的位置信息。這在一定程度上證明了語義分割的可行性。

反卷積為什么有效

假設有如下卷積運算:

此時,
考慮反卷積,反卷積操作等價於:

從此處可以看出,反卷積並不能還原出原始輸入,僅僅只是根據卷積核的信息,推算出最可能的激活輸入圖。
假設卷積核

那么顯然x11,x22相對來說是更重要的特征點(3,4相對較大),它們在計算y時會趨向於給出更大的貢獻,反卷積正是考慮了這一點,根據卷積核的信息(即計算對應y時的貢獻)來反推可能的輸入激活圖,得到的輸入激活圖可以反映出相對的激活程度(輸入圖值越大證明這個點的貢獻越高,反卷積認為這個點是最應該激活的,是最重要的特征點,因為只要這個點激活,再結合它的最大貢獻,可以更大可能使輸出圖激活),這也可以在一定程度上解釋為什么FCN使用雙線性插值初始化,中間大,四角逐漸減小的卷積核滿足貢獻關系,越往中心的點越可能與多個輸出結果相關,具有更大的貢獻度,因此雙線性插值初始化是合適的。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM