2014 ECCV
紐約大學 Matthew D. Zeiler, Rob Fergus網絡
簡單介紹(What)ide
- 提出了一種可視化的技巧,可以看到CNN中間層的特徵功能和分類操做。
- 經過對這些可視化信息進行分析,咱們能夠
- 直觀瞭解和分析CNN學到的特徵(中間層特徵對應什麼樣的圖像)
- 能夠找到提高模型的辦法(觀察中間層特徵,分析模型能夠改進的地方)
- 分析CNN的遮掩敏感性(遮住某一塊區域後對分類結果的影響)
- 這種可視化技巧主要用到反捲積的技術,把中間層的激活特徵映射回輸入空間。
論文動機(Why)學習
- 雖然CNN在圖像任務上取得了優秀的表現,可是看不到CNN的內部操做和複雜模型的表現行爲,不清楚它們爲什麼會取得這麼好的效果。
- 在科學的角度上,這是不能接收的,沒有清晰地理解CNN是如何工做以及爲何這樣運做,那麼它的發展和進步就只能靠不斷地「試錯」。
- 因此論文提出了可視化的技巧,能夠觀察到訓練過程當中特徵的演化和影響,能夠分析模型潛在的問題。
怎麼作的(How)blog
- 論文的網絡結構和alexNet很相似,作了一些改動,好比stride變成2,11x11的卷積核變成7x7的卷積核。
- 爲了把中間層的激活塊映射回輸入空間,使用了反捲積的技術,以下圖所示,右邊是卷積網,左邊是反捲積網。
- 反池化:因爲池化操做不可逆,使用了一個近似可逆的方法,用Switches記錄每一個池化塊最大值的位置,以下圖所示,這樣就能夠利用Switches和池化後的特徵圖,反池化成Unpooled Maps
- relu:反池化後,爲了得到有效的特徵重建,也使用relu,獲得Rectified Unpooled Maps
- 反捲積:用原來卷積核的轉置版本,進行卷積操做,獲得重建的Reconstruction

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

訓練過程的特徵演化io
- 下圖是隨着訓練的迭代,特徵圖的變化,每一層裏面的8列表示不一樣epoch時的特徵圖。
- 列出的特徵圖是,對於該層的某個feature map,在全部訓練集中激活最強的那個樣本的feature map。
- 能夠看到,低層的特徵圖收斂地比較快,而高層的特徵圖要到後面的epoch纔開始變更。

幫助提高模型可視化
- 經過可視化能夠看到alexNet模型中第一層和第二層(下圖中的b和d)存在一些問題,好比第二層有一些重疊和混亂
- 經過把第一層的11x11卷積核變成7x7,而後stride從4變成2,獲得的結果如圖c和e所示,獲得了更多的獨特的特徵。
- 這樣的改動也提高了模型的效果。

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

實驗map
- 基於可視化後對AlexNet模型進行了修改,提高了表現,說明能夠經過可視化的技巧分析和改善模型。
- 對模型(alextNet以及本身修改後的模型)進行刪除層,修改層神經元大小,對比實驗結果,觀察變化。
- 把ImageNet訓練好的模型用於Caltech-101,Caltech-256和PASCAL 2012數據集的訓練,發現ImageNet預訓練過的模型表現要(比沒預訓練過的)好不少,並且擊敗了一些前人的工做,說明了CNN提取的特徵的泛化能力,以及ImageNet特徵的強大。
- 經過逐漸提高(預訓練模型中保留的)層數(好比1層,2層,3層升到7層),把這些特徵送到SVM和softmax中去分類,獲得的結果對比,發現層數越深,學到的特徵越有用。
總結方法
- 提出了一種可視化CNN的方法,說明了內部特徵並非隨機的,是能夠解釋的。
- 經過可視化CNN瞭解到了一些直覺上的特性,好比隨着增長層數,類別的可區分度越高,特徵越有用。
- 經過可視化CNN能夠對模型進行分析和改善。
- 經過可視化CNN的遮蔽實驗,發現模型對局部結構是敏感的,並非只用到了廣闊的場景信息。
- 展現了ImageNet的預訓練模型能夠很好地泛化到其它數據集。