論文筆記:Visualizing and Understanding Convolutional Networks


2014 ECCV
紐約大學 Matthew D. Zeiler, Rob Fergus

簡單介紹(What)

  1. 提出了一種可視化的技巧,能夠看到CNN中間層的特征功能和分類操作。
  2. 通過對這些可視化信息進行分析,我們可以
    • 直觀了解和分析CNN學到的特征(中間層特征對應什么樣的圖像)
    • 可以找到提升模型的辦法(觀察中間層特征,分析模型可以改進的地方)
    • 分析CNN的遮掩敏感性(遮住某一塊區域后對分類結果的影響)
  3. 這種可視化技巧主要用到反卷積的技術,把中間層的激活特征映射回輸入空間。

論文動機(Why)

  1. 雖然CNN在圖像任務上取得了優秀的表現,但是看不到CNN的內部操作和復雜模型的表現行為,不清楚它們為何會取得這么好的效果。
  2. 在科學的角度上,這是不能接收的,沒有清晰地理解CNN是如何工作以及為什么這樣運作,那么它的發展和進步就只能靠不斷地“試錯”。
  3. 所以論文提出了可視化的技巧,可以觀察到訓練過程中特征的演化和影響,可以分析模型潛在的問題。

怎么做的(How)

  1. 論文的網絡結構和alexNet很類似,做了一些改動,比如stride變成2,11x11的卷積核變成7x7的卷積核。
  2. 為了把中間層的激活塊映射回輸入空間,使用了反卷積的技術,如下圖所示,右邊是卷積網,左邊是反卷積網。
  3. 反池化:由於池化操作不可逆,使用了一個近似可逆的方法,用Switches記錄每個池化塊最大值的位置,如下圖所示,這樣就可以利用Switches和池化后的特征圖,反池化成Unpooled Maps
  4. relu:反池化后,為了獲得有效的特征重建,也使用relu,得到Rectified Unpooled Maps
  5. 反卷積:用原來卷積核的轉置版本,進行卷積操作,得到重建的Reconstruction

特征可視化

  1. 下圖是對ImageNet訓練完成后,在驗證集數據進行反卷積得到的各層的可視化結果。
  2. 對於某個給定的feature map,在數據集上選取激活值最強的9張圖,畫成一個九宮格。把它們映射回輸入空間后可以看到不同結構的重建特征圖(灰色的那些圖),以及這些特征圖對應圖像塊(那些彩色圖)。
  3. 可以看到彩色圖的變化比灰色圖更大,因為灰色圖是集中於給出那些具有區分性的信息。
  4. 可以看到每一層似乎在學習不同的東西,第二層學習邊緣,角落信息;第三層學到了一些比較復雜的模式,網狀,輪胎;第四層展示了一些比較明顯的變化,但是與類別更加相關了,比如狗臉,鳥腿;第五層則看到了整個物體,比如鍵盤,狗。

訓練過程的特征演化

  1. 下圖是隨着訓練的迭代,特征圖的變化,每一層里面的8列表示不同epoch時的特征圖。
  2. 列出的特征圖是,對於該層的某個feature map,在所有訓練集中激活最強的那個樣本的feature map。
  3. 可以看到,低層的特征圖收斂地比較快,而高層的特征圖要到后面的epoch才開始變動。

幫助提升模型

  1. 通過可視化可以看到alexNet模型中第一層和第二層(下圖中的b和d)存在一些問題,比如第二層有一些重疊和混亂
  2. 通過把第一層的11x11卷積核變成7x7,然后stride從4變成2,得到的結果如圖c和e所示,得到了更多的獨特的特征。
  3. 這樣的改動也提升了模型的效果。

遮擋敏感性

  1. 如下圖所示,以第一張小狗圖為例,b圖表示第5層激活最強的feature map,每個位置的顏色表示那個位置被遮擋后的激活,可以看到遮住狗臉后,激活值最低,也就是藍色那塊區域,說明遮擋對模型有影響。
  2. c圖表示被遮住不同區域后,第5層激活最強的feature map,第一個圖表示遮住狗臉后的。
  3. d圖中每個位置的顏色表示那個位置被遮擋后,正確類別的概率。可以看到遮住狗臉后,概率很低,藍色那一塊,說明遮擋對模型有影響。
  4. e圖中每個位置的顏色表示那個位置被遮擋后,最可能的標簽,可以看到如果遮擋其它區域,模型都能識別出為博美犬,但是如果遮住了狗臉,而不遮住球,模型就會將樣本分類為球。
  5. 這展示了模型的遮擋敏感性,模型確實學到了物體的位置,而不是說只學到物體的環境上下文。

實驗

  1. 基於可視化后對AlexNet模型進行了修改,提升了表現,說明可以通過可視化的技巧分析和改善模型。
  2. 對模型(alextNet以及自己修改后的模型)進行刪除層,修改層神經元大小,對比實驗結果,觀察變化。
  3. 把ImageNet訓練好的模型用於Caltech-101,Caltech-256和PASCAL 2012數據集的訓練,發現ImageNet預訓練過的模型表現要(比沒預訓練過的)好很多,而且擊敗了一些前人的工作,說明了CNN提取的特征的泛化能力,以及ImageNet特征的強大。
  4. 通過逐漸提升(預訓練模型中保留的)層數(比如1層,2層,3層升到7層),把這些特征送到SVM和softmax中去分類,得到的結果對比,發現層數越深,學到的特征越有用。

總結

  1. 提出了一種可視化CNN的方法,說明了內部特征並不是隨機的,是可以解釋的。
  2. 通過可視化CNN了解到了一些直覺上的特性,比如隨着增加層數,類別的可區分度越高,特征越有用。
  3. 通過可視化CNN可以對模型進行分析和改善。
  4. 通過可視化CNN的遮蔽實驗,發現模型對局部結構是敏感的,並不是只用到了廣闊的場景信息。
  5. 展示了ImageNet的預訓練模型可以很好地泛化到其它數據集。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM