1. 程式人生 > >CSG:清華大學提出通過分化類特定卷積核來訓練可解釋的卷積網路 | ECCV 2020 Oral

CSG:清華大學提出通過分化類特定卷積核來訓練可解釋的卷積網路 | ECCV 2020 Oral

> 論文提出類特定控制門CSG來引導網路學習類特定的卷積核,並且加入正則化方法來稀疏化CSG矩陣,進一步保證類特定。從實驗結果來看,CSG的稀疏效能夠引導卷積核與類別的強關聯,在卷積核層面產生高度類相關的特徵表達,從而提升網路的效能以及可解釋性   來源:曉飛的演算法工程筆記 公眾號 **論文: Training Interpretable Convolutional Neural Networks by Differentiating Class-specific Filters** ![](https://upload-images.jianshu.io/upload_images/20428708-b5b8e463c7668be0.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) * **論文地址:[https://arxiv.org/abs/2007.08194](https://arxiv.org/abs/2007.08194)** * **論文程式碼:[https://github.com/hyliang96/CSGCNN](https://github.com/hyliang96/CSGCNN)** # Introduction *** ![](https://upload-images.jianshu.io/upload_images/20428708-672cdf9fc17098e8.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)   卷積神經網路雖然在多個視覺任務中有很好的表現,但可解釋性的欠缺導致其在需要人類信任或互動的應用中受到限制,而論文認為類別與卷積核間的多對多關係是造成卷積網路可解釋性差的主要原因,稱之為filter-class entanglement。如上圖所示,卷積網路通常提取包含多個語義概念的混合特徵,比如類別、場景和顏色等,去除entanglement能夠更好地解釋每個卷積核的作用。 ![](https://upload-images.jianshu.io/upload_images/20428708-41c0fb5ec8ecb29c.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)   受細胞分化的啟發,論文提出在最後的卷積層中學習類特定卷積核,希望卷積核能夠"分化"成針對不同類別的分組,如圖1右所示,單個卷積核專門負責特定類別的識別。為了實現這個想法,論文設計了可學習的類特定門控CSG(Class-Specific Gate)來引導將卷積核分配給不同的類別,只有當特定類別作為輸入時,對應卷積核輸出的特徵才能被使用。   論文的主要貢獻如下: * 提出新的訓練策略來學習更靈活的卷積核與類別的關係,每個卷積核僅提取一個或少量類別的相關特徵。 * 提出通過卷積特徵和類別預測的互資訊來驗證卷積核與類別的關係,並且基於此設計了一個度量方法來測量網路的filter-class entanglement。 * 通過實驗證明論文提出的方法能夠消除卷積核的冗餘以及增強可解釋性,可應用於目標定位和對抗樣本檢測。 # Ideally Class-Specific Filters *** ![](https://upload-images.jianshu.io/upload_images/20428708-a3ac23eaf1d89cb3.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)   如圖2所示,理想的類特定卷積核應該只對應一個類別,為了明確定義,使用矩陣$G\in [0, 1]^{C\times K}$來表示卷積核和類別的相關性,矩陣元素$G^k_c\in [0,1]$代表$k$卷積核和$c$類別的相關性。對於輸入樣本$(x,y)\in D$,取矩陣$G$的行$G_y \in [0, 1]^K$作為控制門,將不相關的卷積核輸出置為零。定義$\tilde{y}$為正常網路結構(STD)直接預測的類概率向量,$\tilde{y}^G$為加入矩陣$G$(處理倒數第二層的特徵圖)後的網路(CSG)預測的類概率向量,若存在$G$(所有列為one-hot)使得$\tilde{y}^G$和$\tilde{y}$幾乎不存在差異時,稱該卷積核為理想的類特定卷積核。 # Problem formulation *** ![](https://upload-images.jianshu.io/upload_images/20428708-3f3580e91e8763df.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)   為了讓網路在訓練中分化類特定卷積核,論文在標準的前行推理(standard path, STD)中引入可學習的類特定控制門(Class-Specific Gate path, CSG) ,用來有選擇性地阻隔不相關特徵維度。 ### The Original Problem   如上圖所示,論文的目標是訓練包含理想類特定卷積核的網路,網路引數為$\theta$,包含兩條前向推理路徑: * 標準路徑STD預測$\tilde{y}_{\theta}$。 * 包含矩陣$G$的類特定門路徑(CSG)預測$\tilde{y}^G_{\theta}$。   CSG將倒數第二層的輸出乘以可學習控制門$G_y$,$y$為輸入樣本的標籤。 為了找到準確描述類別與卷積核關係的控制門矩陣$G$,需要在二值空間中搜索$G$使得CSG路徑有最好的分類效果,即優化問題$\Phi_0(\theta)=\underset{G}{min}CE(y||\tilde{y}^G_{\theta}), \forall k\in{1,2,\cdots, K}$,$G_k$是one-hot編碼,$\Phi_0$用來驗證網路中分化的卷積核的效能,將$\Phi_0$加入到訓練損失中作為正則化項,得到整體網路的優化目標: ![](https://upload-images.jianshu.io/upload_images/20428708-b7652da8dfe54cf0.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)   $CE(y||\tilde{y}_{\theta})$保證準確率,$\lambda_1 \Phi_0(\theta)$引導$G$的稀疏性。但公式1其實是很難優化的,首先很難保證每個卷積核是絕對地只對應一個類別,通常都是多類別共享特徵,其次,非連續空間的二值向量很難通過梯度下降優化。 ### Relaxation   為了解決上面提到的兩個問題,論文將one-hot向量$G^k$放寬為稀疏連續向量$G^k\in [0, 1]^C$,約束其包含至少一個等於1的元素($||G^k||_{\infty}=1$)。另外,加入正則項$d(||G||_1, g)$來引導$G$的儘量稀疏,當L1向量範數$||G||_1$小於上界$g$時,則不進行懲罰。$d$的常規設計是$d(a,b)=\psi(ReLU(a-b))$,$\psi$可以是各種範數,包括L1、L2和smooth-L1範數。$g$的設定需滿足$g\ge K$,因為$||G^k||_{\infty}=1$,共有K個$G^k$。綜合上面的方法,$\Phi_0$重新定義為: ![](https://upload-images.jianshu.io/upload_images/20428708-01f548ae0b8eabea.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)   $V_G={G\in [0,1]^{C\times K}:||G^k||_{\infty}=1}$,$\mu$為平衡因子,$\Phi$可看作是filter-class entanglement的損失函式,將$\Phi$替換公式1的$\Phi_0$得到放鬆後的完整的優化問題: ![](https://upload-images.jianshu.io/upload_images/20428708-767a7712aa78f5b7.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)   公式3可通過梯度下降聯合優化$\theta$和$G$得到類特定卷積核,而且$G$能準確地描述卷積核與類別間的相關性,比優化原本離散的優化問題要簡單得多。 ### Optimization   針對CSG演算法的場景,論文提出PGD(approximate projected gradient descent)梯度下降來解決公式3的優化問題,當$G$進行梯度更新後,$G^k$會通過$||G^k||_{\infty}$進行歸一化,保證$||G^k||_{\infty}=1$,然後裁剪到$[0,1]$。 ![](https://upload-images.jianshu.io/upload_images/20428708-518af9047436c6a9.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)   由於CSG路徑阻隔了大部分的特徵,所以CSG路徑的梯度回傳比STD路徑弱很多,如果按正常的方式進行訓練,收斂效果會很一般。為此,論文提出alternate training scheme,在不同的週期交替地使用STD/CSG路徑的梯度。如演算法1所示,在CSG路徑的週期,使用梯度$\lambda_1 CE(y||\tilde{y}^G_{\theta})+\lambda_2d(||G||_1, g)$更新$G$和$\theta$進行更新,而在STD路徑的週期,則使用梯度$CE(y||\tilde{y}_{\theta})$進行更新。根據實驗驗證,這種訓練方法在訓練初期的分類效果會週期性波動,但最終的訓練效果比正常的訓練方法要好,同時卷積核也能逐漸分化成類特定卷積核。 # Experiment *** ### Quantitative Evaluation Metrics   論文實驗使用了3種指標來驗證CSG的有效性: * classification accuracy,用來計算分類效能。 * mutual information score,使用互資訊矩陣$M\in \mathbb{R}^{K\times C}$來計算類與卷積核的關係,矩陣元素$M_{kc}=MI(a_k||1_{y=c})$為卷積核$k$的特徵值與類別$c$間的互資訊。為了計算互資訊,在多個數據集中取樣$(x,y)$,$a_k$由所有樣本的對應輸出全域性平均池化得來,$1_{y=c}$為類別,$MI$的計算直接呼叫“sklearn.feature selection.mutual_info_classif”方法。互資訊分數$MIS=mean_k max_c M_{kc}$,分數越高,則filter-class entanglement現象越少。 * L1-density,用來度量CSG的稀疏性,計算方法為$\frac{||G||_1}{KC}$ ![](https://upload-images.jianshu.io/upload_images/20428708-d33f050c4909ac4e.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)   結果如表1所示,可以看到CSG網路在分類表現上僅比STD網路要稍微好一點,但其它指標要高出很多。 ### Visualizing the Gate/MI Matrices ![](https://upload-images.jianshu.io/upload_images/20428708-96ce187bb0f4759d.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)   為了展示卷積核與類別間的相關性,對控制門矩陣$G$和互資訊矩陣$M$進行視覺化: * 圖a表明CSG訓練能得到稀疏的CSG矩陣,每個卷積核僅對應一個或少量類別。 * 圖b1和b2則表明CSG網路比STD網路有更高的互資訊得分。 * 圖c表明圖a和圖b1的最大元素幾乎是重疊的,卷積核能夠按照稀疏的CSG矩陣進行學習。 ### Application ![](https://upload-images.jianshu.io/upload_images/20428708-e011becbff0117e3.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)   定位任務上的效能對比,這裡的定位是直接通過特徵圖的大小進行定位,非Faster-RCNN之類的。 ![](https://upload-images.jianshu.io/upload_images/20428708-556af460d49c8694.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)   對抗樣本檢測任務上的效能對比。 # Conclustion ***   論文提出類特定控制門CSG來引導網路學習類特定的卷積核,並且加入正則化方法來稀疏化CSG矩陣,進一步保證類特定。從實驗結果來看,CSG的稀疏效能夠引導卷積核與類別的強關聯,在卷積核層面產生高度類相關的特徵表達,從而提升網路的效能以及可解釋性。       > 如果本文對你有幫助,麻煩點個贊或在看唄~ 更多內容請關注 微信公眾號【曉飛的演算法工程筆記】 ![work-life balance.](https://upload-images.jianshu.io/upload_images/20428708-7156c0e4a2f49bd6.png?imageMogr2/auto-orient/strip%7CimageView2/2