天天看點

《Visualizing and Understanding Convolutional Networks》明晰論文脈絡1 Why2 What3 How4 Result5 Idea6 Relatives

《Visualizing and Understanding Convolutional Networks》明晰論文脈絡

  • 1 Why
  • 2 What
  • 3 How
    • 3.1 反池化過程
    • 3.2 反激活
    • 3.3 反卷積
  • 4 Result
    • 4.1 Feature Visualization
    • 4.2 Feature Evolution during Training
    • 4.3 Architecture Selection
    • 4.4 Occlusion Sensitivity
    • 4.5 train imagenet
    • 4.6 Feature Generalization
    • 4.7 Feature Analysis
  • 5 Idea
  • 6 Relatives

1 Why

文章介紹了雖然神經網絡在許多圖像識别領域都有很大的進步,但是模型為什麼且怎麼起作用,人們并不真正了解,模型的開發隻能用試錯的方式進行。

2 What

是以作者提出了用可視化的方式來揭示模型每一層特征對于輸入的響應,進而了解卷積神經網絡起作用的方式,并且能進一步根據可視化的結果對網絡結構進行調整、改進模型,提高分類效果。本文使用的可視化方法是原文作者之前發表的deconvolution方法,在圖檔相關的領域經常會遇到這個算法,比如圖檔語義分割、圖檔去模糊、可視化、圖檔無監督學習、圖檔深度估計等等。但是本篇論文的重點在于可視化結果的分析,而不是可視化的方法。

3 How

整個可視化的過程可表示為下圖,通過反卷積、反池化、反激活的方式來可視化,可視化的具體操作可參考以下2篇論文:《Deconvolutional Networks》

《Adaptive deconvolutional networks for mid and high level feature learning》

《Visualizing and Understanding Convolutional Networks》明晰論文脈絡1 Why2 What3 How4 Result5 Idea6 Relatives

3.1 反池化過程

我們知道,池化是不可逆的過程,然而我們可以通過記錄池化過程中,最大激活值得坐标位置。然後在反池化的時候,隻把池化過程中最大激活值所在的位置坐标的值激活,其它的值置為0,當然這個過程隻是一種近似,因為我們在池化的過程中,除了最大值所在的位置,其它的值也是不為0的。

3.2 反激活

我們在CNN中,relu函數是用于保證每層輸出的激活值都是正數,是以對于反向過程,我們同樣需要保證每層的特征圖為正值,也就是說這個反激活過程和激活過程沒有什麼差别,都是直接采用relu函數。

3.3 反卷積

我們使用了一種新的方式将這些激活值映射回輸入像素空間。卷積核即為原卷積核的轉置,反卷積網絡被提出作為一種進行非監督學習的方法,但是在這裡,它沒有學習能力,僅僅用來探測一個已經訓練好的卷積神經網絡。

4 Result

4.1 Feature Visualization

《Visualizing and Understanding Convolutional Networks》明晰論文脈絡1 Why2 What3 How4 Result5 Idea6 Relatives

特征具有層次性,每層特征對輸入的不同結構的響應,解釋了輸入變形不變性,層次越深,響應的結構越能分辨圖像。

比如要我們區分人臉和狗頭,那麼通過CNN學習後,背景部位的激活度基本很少,我們通過可視化就可以看到我們提取到的特征忽視了背景,而是把關鍵的資訊給提取出來了。從layer 1、layer 2學習到的特征基本上是顔色、邊緣等低層特征;layer 3則開始稍微變得複雜,學習到的是紋理特征,比如上面的一些網格紋理;layer 4學習到的則是比較有差別性的特征,比如狗頭;layer 5學習到的則是完整的,具有辨識性關鍵特征。

4.2 Feature Evolution during Training

《Visualizing and Understanding Convolutional Networks》明晰論文脈絡1 Why2 What3 How4 Result5 Idea6 Relatives

越低層,特征圖對特征的響應越快收斂穩定。訓練過程中的特征演變,對于一個layer中給定的feature map,圖中給出在訓練epochs在[1,2,5,10,20,30,40,64]時,訓練集對該feature map響應最大的可視化圖檔。可以看出,較低層(L1,L2)隻需要幾個epochs就可以完全收斂,而高層(L5)則需要很多次疊代,需要讓模型完全收斂之後。這一點正好與深層網絡的梯度彌散現象正好相反,但是這種底層先收斂,然後高層再收斂的現象也很符合直覺。

4.3 Architecture Selection

《Visualizing and Understanding Convolutional Networks》明晰論文脈絡1 Why2 What3 How4 Result5 Idea6 Relatives

通過可視化已經訓練好的模型,可以發現以往模型提取到的各層特征不合理的地方,對模型的結構進行改造可以是各層提取到的特征更合理,且提高準确率。比如上圖通過可視化AlexNet的前兩層(圖中b,d),可以看出問題:1)第一層filter是非常高頻和低頻的資訊,中間頻率的filter很少覆寫;2)第二層的可視化有些具有混疊效應,由于第一層比較大的stride。為了解決這些問題:1)将第一層的filter的尺寸從1111減到77;2)縮小間隔,從4變為2。這兩個改動形成的新結構,擷取了更多的資訊,而且提升了分類準确率。

4.4 Occlusion Sensitivity

《Visualizing and Understanding Convolutional Networks》明晰論文脈絡1 Why2 What3 How4 Result5 Idea6 Relatives

當遮擋圖檔中的部分主體時,模型的高層特征的可視化結果會變得不好,而且分類準确率會下降,是以證明卷積神經網絡在分類時更關注的圖檔的主體而不是周圍的物體。

4.5 train imagenet

通過可視化結果分析後改變了AlexNet的結構,使得分類結果有了提升。

4.6 Feature Generalization

固定1-7層特征,隻訓練一個softmax分類器,将用ImageNet訓練到的模型用來訓練Caltech-101 [9], Caltech-256 [11]and PASCAL VOC 2012等資料集,實驗結果表明模型學習到的是圖檔的共性特征,可以在不同資料集之間遷移。

4.7 Feature Analysis

層次越深,學習到的特征對分類越有用

5 Idea

  • 1 文章從可視化特征的角度解釋了卷積神經網絡起作用的方式,特征的層次性,以及模型深度的必要性,而且還能進一步根據可視化的結果分析來調整網絡的結果使得分類效果提升。
  • 2 從文章的内容看,基本上隻能分成5類層次特征,如果更深的模型,那特征可視化的結果就可能不是很明确的結構了。

6 Relatives

這是一篇發表于2014年ECCV上的經典論文,目前的引用量已有幾千,作者Matthew D. Zeiler在反卷積可視化上做了很大貢獻,先後發表多篇有關反卷積的paper。

繼續閱讀