Deconvolution Networks(論文解析)
作者:elfin 資料來源:deconvolution論文
1、簡介
Deconvolution Networks是在AI領域第一次使用Deconvolution的先驅,但是它並沒有提出解卷積層的概念,而是再其下一篇文章中提出(參考其他論文)。兩篇文章的資源參考:
-
Deconvolution Networks:鏈接:https://pan.baidu.com/s/1enZN1n1HGZW3e1En7ap-mA
提取碼:g3ii -
Adaptive Deconvolutional Networks for Mid and High Level Feature Learning
鏈接:https://pan.baidu.com/s/1b9T7QVyph7wHsN9l9S_QRg
提取碼:88w9
2、摘要
除了邊緣原語之外,構建健壯的中低層圖像表示是一個長期存在的目標。許多現有的特征檢測器在空間上聚集邊緣信息,破壞邊緣交叉、平行和對稱等線索。我們提出了一個學習框架,其中捕捉這些中級線索的特征會自發地從圖像數據中出現。我們的方法是基於稀疏約束下的卷積分解,並且是完全無監督的。通過建立這種分解的層次結構,我們可以學習豐富的特征集,這些特征集對於圖像的分析和合成都是一種健壯的圖像表示。
3、模型
我們首先考慮應用於圖像的單個解卷積網絡層。解卷積層的輸入為特征圖\(y^{i}\),由\(K_{0}\)個通道組成,分別為通道:\(y_{1}^{i}、y_{2}^{i}、\cdots、y_{K_{0}}^{i}\) 。我們使用\(K_{1}\)個隱特征圖\(z_{k}^{i}\)與過濾器\(f_{k,c}\)的線性和表示這個特征圖的一個通道\(c\):
此后,除非另有說明,否則符號對應於矩陣。如果\(y_{c}^{i}\)是一個\(N_{r} \times N_{c}\) 圖且過濾器為\(H \times H\) ,則這個隱特征圖的size為\(\left ( N_{r} + H -1 \right )\times \left ( N_{c} + H -1 \right )\) 。但是上面的公式\((1)\)是一個沒有證明的系統,為了得到一個唯一的解,我們在\(z_{k}^{i}\)上引入了一個正則化項來鼓勵潛在隱特征圖中的稀疏性。這讓我們得到一個如下的總體損失函數形式:
其中,我們假設重建項為高斯噪聲,正則化項為\(p\)范數。\(\lambda\)是平衡的一個超參數。請注意,我們的模型本質上是自頂向下的:給定潛在的特征映射,我們可以合成一幅圖像。
注:
- 自頂向下是指由低分辨率向高分辨率變換的模型,這種結構可以重現源圖的圖像輪廓、主要特征;
- 自底向上是指由高分辨率向低分辨率變化的模型,這種模型可以提取特征,特征的感受野越來越大。
許多方法側重於自底向上推理,但我們致力於獲得高質量的潛在表征。
在第3.2節描述的學習中,我們使用一組圖像\(y=\left \{ y^{1},\cdots ,y^{I} \right \}\),求\(\mathop{\arg\min}_{f,z}C_{1}\left ( y \right )^{2}\),每個圖像的潛在特征圖和濾波器。請注意,每個圖像都有自己的一組特征圖,而過濾器對所有圖像都是公用的。
3.1 體系構建
上述架構從多通道輸入圖像產生稀疏特征圖。通過處理特征圖,可以很容易地將其堆疊起來形成層次結構。第\(l\)層的損失函數可以推出為如下的形式:
其中:
-
\(z_{c,l-1}^{i}\)是上一層的特征圖;
-
\(g_{k,c}^{l}\)是一個固定的二進制矩陣,它決定了特征圖之間的復雜度;
-
如下圖所示,我們由\(l-1\)層得到很多新的特征圖,並由此稀疏化得到高分辨率的\(l\)層特征圖;
我們不在層之間執行任何池、子采樣或分裂規范化操作,盡管它們很容易合並。
3.2 學習過濾器
為了學習過濾器,我們首先固定過濾器的值,最小化當前層的損失\(C_{l}\left ( y \right )\),然后固定特征圖最小化\(C_{l}\left ( y \right )\)得到過濾器。這個過程實際上就是神經網絡的前向傳播與后向傳播。
特征圖推導:
給定\(l\)層輸入與過濾器,我們可以得到\(l\)層的特征圖。關於\(l\)層的特征圖估計我們可以使用:
特征圖的偏導:
注意這里的\(c\)可以理解為通道指標。
上面的公式我們可以使用矩陣乘法的形式給出:
關於矩陣\(A\)的解我們可以顯示地給出:
另一方面關於\(x_{k,l}^{i}\)我們可以由如下公式取值得到:
過濾器的偏導:
根據上面的偏導公式我們就可以實現對參數進行更新迭代了。
下面是算法的整個過程:

有特征圖與卷積核之后,要重構“圖像”實際就是實現高分辨率、高超分辨率的特征圖,這個正是解卷積網絡層的主要功能。關於解卷積建議參考https://www.cnblogs.com/dan-baishucaizi/p/14397940.html。
4、小結
由上面的公式與參考文章https://www.cnblogs.com/dan-baishucaizi/p/14397940.html,我們大概可以get到其本質,那么作者到底是怎么定義它的?
在文獻Adaptive Deconvolutional Networks for Mid and High Level Feature Learning中,首先我們知道解卷積的主要作用是重構圖像,注意這個重構的圖像是抽象的高級語義。下面的圖片有效地展示了其功能:

明顯隨着模型框架的層數堆疊,對象的主要輪廓信息被學習到並重構可視化!
重構這種圖像有什么用,實際上在語義分割、實例分割等方向上,這非常有用,因為我們知道在高分辨率下能夠重構實例,那么分割也不是問題。換句話說,計算機只需要尋找上面圖片中的輪廓即可,而計算機重構這張圖片難道不整數利用了這種位置信息嗎?所以這可以證明其實現分割不是難事!
5、deconvolution正式提出
解卷積一詞在深度學習領域的正式提出,是在Adaptive Deconvolutional Networks for Mid and High Level Feature Learning中。
5.1 作者提出的可視化框架

這里有卷積層、池化層組成!
5.2 接卷積定義
如上圖所示,輸出的重構\(\hat{y}_{1}\)(c是通道索引)是可以由上一層的2D特征圖(單通道)與過濾器卷積后求和得到:
星號表示2D卷積操作。上面的公式到底是什么?下面是我的白話解釋:
- 解卷積層的輸出的每一通道都是由\(K_{1}\)個過濾器與解卷積層的輸入進行卷積后,再求和生成的!
- 注意這里的求和一般不是簡單的數值相加,而是將卷積操作(下采樣)后的特征圖進行稀疏化再合並(實現上采樣的效果)!
為了簡潔起見,我們將層\(l\)的卷積和求和操作合並到一個卷積矩陣\(F_{l}\),並將2D特征圖\(z_{k,l}\)合並為3D特征圖\(z_{l}\) 。則有:
完!