CNN不具備平移不變性?爲何?
這一部分主要參考18年的一篇論文1, 論文中通過實驗, 闡述了CNN不具備平移不變性, 圖形通過細微的平移, 旋轉, 像素點更改, 會使得結果發生巨大的改變.
markdown
在上圖中, 做者分別作了平移, 縮放, 視頻時間不一樣的實驗, 發現任一修改都會使得最後的分類結果發生很大的變化.網絡
- 那麼爲何會發生這種現象呢?
咱們都知道, CNN的卷積操做原本帶有平移不變形的屬性, 因此論文的研究目標就是什麼結構破壞了CNN的平移不變形.
論文的主要貢獻以下:架構
- 現代深度卷積神經網絡在圖像中的小目標發平生移後對其類別的判斷會產生很是大的偏差,這與人們設計深度卷積網絡的初衷並不一致。
- 網絡層數越深,這種錯誤越容易發生。
- 這種錯誤的發生是因爲現代卷積神經網絡的架構設計沒有聽從經典的採樣定理以至於泛化能力不能獲得保證。
- 通用的圖像數據集中的統計偏差使得CNN難以學習到其中的變換不變性(invariant to these transformations)。
上述內容的結論就是: CNN的泛化能力不如人類, 經過CNN經過簡單的平移,縮放等操做並不能使得網絡學習到平移不變形, 這種現象和下采樣和數據誤差有關.
下面舉例解釋, 下采樣是罪魁禍首的緣由:學習
shift爲0時的Maxpooling以下:
圖片來源2
向左平移1時的Maxpooling:
spa
只是平移了一個位置, 可是maxpooling的結果發生了巨大的變化, 這也解釋了CNN不具備平移不變形的緣由.
.net
如何緩解平移不變性問題?
這一部分的內容參考一篇2019年的論文3
做者將Pooling採樣分解爲兩個步驟: 首先取最大值, 而後下采樣
經過卷積低通濾波操做, 減緩最大值的採起問題.
架構設計
結果以下:
設計