深度学习的可解释性——Striving For Simplicity: The All Convolution Net
Striving For Simplicity: The All Convolution Net 是ICLR 2015的一篇論文,作者Jost Tobias Springenberg , Alexey Dosovitskiy , Thomas Brox, Martin Riedmiller
這個方法來自于ICLR-2015 的文章《Striving for Simplicity: The All Convolutional Net》,文中提出了使用stride convolution 替代pooling 操作,這樣整個結構都只有卷積操作。作者為了研究這種結構的有效性,提出了guided-backpropagation的方法。
本文拋棄了以往物體檢測CNN網絡中的池化層和全連接層,通過使用步長更大的卷積層來代替池化以及使用卷積核為1的卷積層來代替全連接層,在cifar-10和cifar-100上取得了很好的效果,并在imageNet上有很好的競爭力。
用于目標識別的大多數現代卷積神經網絡(CNN)使用相同的原理構建:交替卷積和最大池化層,接著是少量完全連接的層。我們使用卷積網絡從小圖像重新評估對象識別的現有技術,質疑管道中不同組件的必要性。我們發現,在一些圖像識別基準測試中,最大池化可以簡單地由具有增加的步幅的卷積層代替,而不會損失精度。根據這一發現 - 并在最近的尋找簡單的網絡結構其他工作基礎上 - 我們提出了一種新的架構,它只包含卷積層,并在幾個物體識別數據集(CIFAR-10,CIFAR-100, ImageNet)。為了分析網絡,我們引入了一種新的“反卷積方法”變體,用于可視化CNN學習的特征,可以應用于比現有方法更廣泛的網絡結構。
對于池化層作用的完整解釋很難給出,作者假定池化層通過以上三個方面來對CNN的性能產生幫助:
1.p-norm使CNN的表示更具不變性(invariant)
2.降維使高層能夠覆蓋輸入層的更多部分
3.feature-wise的特性(相對于特征混合的卷積層)更容易優化
首先來看看 pooling, why pooling can help in CNNs:通過池化實現的空間維數降低使得在更高的層中覆蓋更大的輸入部分成為可能
那么我們可以有2中方法得到去除pooling但保留spatial dimensionality reduction
1)我們可以移除每個池化層,并相應地增加之前的卷積層的步長。
2)我們可以用步長大于1的普通卷積替換池層。對于一個k=3,r=2的池化層,我們可以用一個對應的stride和kernel的卷積層取代,輸入個數輸出個數一樣。)
第一個方法有一個缺陷
1)我們顯著減少了池化層之前的卷積層的重疊。它相當于一個池操作,其中只考慮左上角的特征響應,可能導致較不準確的識別。
第二個方法則沒有這個問題
對于全連接層:
如果最上面卷積層的單元所覆蓋的圖像區域覆蓋了足以識別其內容(即我們要識別的對象)的一部分圖像,那么完全連接的層也可以用簡單的1×1卷積替換。
前面已經提到了論文網絡模型相較于以往CNN的不同之處,在這里進行說明:
1.使用stride大于1的卷積層代替以往CNN中的池化層(下采樣層)
2.使用filter大小為1*1的卷積層代替全連接層
整個網絡模型完全只有卷積層,在softmax層之前使用全局平均。
總結
以上是生活随笔為你收集整理的深度学习的可解释性——Striving For Simplicity: The All Convolution Net的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: IOS开发广告接入iAD框架_InMob
- 下一篇: 人脸识别-分类、指标(参考商汤官网产品)