1. 程式人生 > >論文閱讀-為什麼深度卷積神經網路對小目標的變換泛化效果很差?

論文閱讀-為什麼深度卷積神經網路對小目標的變換泛化效果很差?

論文地址: Why do deep convolutional networks generalize so poorly to small image transformations?

1. 摘要

  該論文發現,現代深度卷積神經網路在影象中的小目標發生平移後對其類別的判斷會產生非常大的誤差,這與人們設計深度卷積網路的初衷並不一致。論文還觀察到,網路層數越深,這種錯誤越容易發生。論文認為這種錯誤的發生是由於現代卷積神經網路的架構設計沒有遵從經典的取樣定理以致泛化能力不能得到保證。並且通用的影象資料集中的統計誤差使得CNN難以學習到其中的變換不變性(invariant to these transformations)。由此得出結論,CNNs的泛化能力不如人類。

2. 介紹

  任何機器學習演算法成功的關鍵都是歸納性偏向[當學習器預測其未遇到過的輸入的結果時,會做出一些假設,這些假設的集合就是歸納性偏向],歸納性偏向受到神經網路架構的影響。其中卷積和池化操作使得網路具有這種不變性。
  然而在應對對抗攻擊時效能,網路十分脆弱,儘管有人認為這是因為這些對抗攻擊產生了一些不自然的變換。但是對於一些自然的變換,CNNs表先仍不盡如人意。論文直接提出了“現代CNNs時如何在應對自然的影象變換時保持不變性?”的問題,最後實驗發現,現代深度神經網路對於平移,旋轉,縮放等變換並不具有不變性,且和下采樣操作和資料集中的偏差有關係。

3. CNN的失敗

  如下圖所示,三種變換分別是平移,縮放和自然運動狀態的微小差異,但是預測結果的變化卻非常大。
在這裡插入圖片描述


  左下圖是更加具體的實驗,從ImageNet中選擇了200張圖片嵌入更大的影象中進行平移,每一行是一張圖片對應不同的結果,顏色暗則表示分類不正確,顏色亮則表示分類正確。圖中很多行都有明顯的顏色變化,對應著平移使得類別的變化。右下圖採用一個指標“jaggedness”[一個畫素的平移後網路預測分類結果正確的次數],結果顯示更深層的網路具有更大的“jaggedness”和更好的測試準確率,不變性不是很強。
在這裡插入圖片描述
  下圖是不同尺寸的影象的實驗,結果仍然是:
在這裡插入圖片描述

  • 現代深度卷積神經網路對平移變換非常敏感
  • 更加現代的網路“jaggedness“較大
  • 更加現代的網路對於變換後的物體的分類效果好

4. 原因:對取樣定理的忽略

  針對3中的情形有這樣兩個問題:

  • 如果網路的所有層都是卷積的,那麼特徵圖在原始影象變換的時候也應該變換
  • 如果用於分類的最後一哥特徵是通過全域性池化來得到的,那麼這些特徵也應該對平移保持不變性

  上兩個直覺上是正確的,但是忽略了下采樣操作的影響,即帶步長的卷積和池化操作,這兩個操作本來是用於提高不變性,同時減少引數,但是其效果非常的一般。論文還提到之前得出的一個結論:“在有卷積和下采樣操作存在的系統中不能簡單的期望影象的平移不變性帶來變換系數的平移,除非這個平移是每個二次取樣因子的倍數。”
  現代的CNN中通常包含很多池化層,它們的二次取樣因子非常大,以InceptionResnetV2為例,這個模型的二次取樣因子是45,它保證精確平移不變性的概率為 1 4 5 2 \frac{1}{45^2}
  從計算的角度來看,設 r ( x ) r(x) 是模型在影象 x x 處獲得的特徵訊號,如果把影象平移 δ \delta 後,模型獲得的是同樣的特徵訊號,我們稱這個訊號是卷積的。[包含輸入影象進入濾波器提取訊號等線性操作,不包括二次取樣和其他非線性操作]
  觀察到,如果 r ( x ) r(x) 是卷積的,那麼全域性池化後得到的特徵訊號 r = x r ( x ) r=\sum_xr(x) 應該具有平移不變性。
  證明如下,如果 r ( x ) r(x) 是影象在 x x 處的特徵訊號,而 r 2 ( x ) r_2(x) 是同意影象平移後的特徵訊號,那麼 r ( x ) = r 2 ( x ) \sum r(x)=\sum r_2(x) 成立,因為兩者是平移前後的特徵訊號,是不變的。
  接著定義,對於帶有二次取樣因子 s s 的特徵訊號 r ( x ) r(x) ,如果對於任意的 x x 其在 x x 處的輸出是取樣網格的線性插值,即:
r ( x ) = i B s ( x x i ) r ( x i ) r(x)=\sum_{i}B_s(x-x_i)r(x_i)
  則我們認為 r ( x ) r(x) 是可位移的(shiftable)。其中, x i x_i 是是二次取樣因子s的取樣網格上的訊號, B s ( x ) B_s(x) 是從取樣中重建的 r ( x ) r(x) 基函式。
  經典的Shannon-Nyquist定理有:當且僅當取樣頻率是 r ( x ) r(x) 最高頻率的兩倍時, r ( x ) r(x) 才可以位移。如果 r ( x ) r(x) 可以位移,那麼取樣網格全域性池化後得到的最終特徵訊號 r = i r ( x i ) r=\sum_ir(x_i) 應該具有平移不變性
  證明如下,通過計算得知,取樣網格上的全域性池化就相當於所有x的全域性池化:
x r ( x ) = x i r ( x i ) B ( x x i ) \sum_{x}r(x)=\sum_{x}\sum_{i}r(x_i)B(x-x_i)
= i r ( x i ) x B ( x x i ) =\sum_{i}r(x_i)\sum_{x}B(x-x_i)
= K i r ( x i ) =K\sum_{i}r(x_i)
  其中 K = x B ( x x i ) K=\sum_xB(x-x_i) 而且 k k 不依賴於 x i x_i 。而現代的神經網路忽視了這個定理,導致其空間不變性難以保證

5. 為什麼不能從資料中學習平移不變性

  上面論證了CNN在架構上無法保證平移不變性,而且觀察得知,它只能從大量資料中學到部分不變性,論文認為是這些通用資料集中存在一定的攝影師偏差,使得神經網路無需學會正式的平移不變性。巨集觀來看,只要不是畫素級別的編碼,世界上就不存在兩張完全一樣的影象,所以神經網路是無法學到嚴格的平移不變性的,也不需要去學習。