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

2022-08-26 00:51:09 字數 1108 閱讀 3918

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的反卷積也是如此。通過這篇**我有了一些新的認識。

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

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

假設有如下卷積運算:

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

從此處可以看出,反卷積並不能還原出原始輸入,僅僅只是根據卷積核的資訊,推算出最可能的啟用輸入圖。

假設卷積核

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

解卷積與卷積的一些思考

elfin目錄 解卷積可以理解為卷積的 逆向 過程,但是說deconvolution是反卷積,這個好像並不是那麼恰當,查閱資料,deconvolution這個詞的專業解釋 專有名詞翻譯 叫 解卷積 去卷積。實際上這個叫法更專業,更貼近深度學習的使用場景。後面在介紹deconvolution和卷積層是...

關於SpringIOC的一些思考

ioc是 依賴倒置原則 的乙個特例,說其是特例,就是說其具有 依賴倒置原則 的性質。依賴倒置原則強調的兩點是 上層模組和下次模組都依賴於抽象,二者之間通過這種抽象的東西聯絡在一起 具體可以依賴於抽象,而抽象不能依賴於具體。我認為spring提倡的 基於介面程式設計 就是為了遵循 依賴倒置原則 其中所...

關於sizeof 的一些思考

今天面試被問到sizeof,回來整理一下。1 定義 sizeof是c c 中的乙個操作符 operator 作用就是返回乙個物件或者型別所佔的記憶體位元組數。msdn上的解釋為 the sizeof keyword gives the amount of storage,in bytes,assoc...