【網絡結構可視化】Visualizing and Understanding Convolutional Networks(ZF-Net) 論文解析


@

0. 論文地址

http://arxiv.org/pdf/1311.2901.pdf

1. 概述

  本文設計了一種可以可視化卷積層中feature map的系統,通過可視化每層layer的某些activation來探究CNN網絡究竟是怎樣“學習”的,同時文章通過可視化了AlexNet發現了因為結構問題,導致有“影像重疊”(aliasing artifacts),因此對網絡進行了改進,設計出了ZF-Net。
  文章通過把activation(feature map中的數值)映射回輸入像素的空間,去了解什么樣的輸入模式會生成feature map中的一個給定activation,這個模型主要通過反卷積(deconvolution),反向池化(Unpooling)與“反向激活”(Rectification),其實就是把整個CNN網絡倒過來,另外值得說一下的是,並不是完全倒過來,只是近似,所有的“反向”操作都是近似,主要是使得從各層layer的尺度還原到在原始圖像中相應大小的尺度。
  同時文章還分析了每層layer學習到了什么,以及可視化最強activation的演化過程來關系模型的收斂過程,同時也利用遮擋某些部位來學習CNN是學習object本身還是周圍環境。

2. 可視化結構

2.1 Unpooling

要想完全還原max-pooling是不太現實的,除非記錄每一層feature,那有些得不償失,文章通過記錄池化過程中最大激活值所在位置以及數值,在uppooling的時候,還原那個數值,其他的位置設為0,從而近似“反向池化”,具體如下圖:

2.2 Rectification:

CNN使用ReLU確保每層輸出的激活之都是正數,因此對於反向過程,同樣需要保證每層的特征圖為正值,也就是說這個反激活過程和激活過程沒有什么差別,都是直接采用relu函數。

2.3 Filtering:

卷積過程使用學習到的過濾器對feature map進行卷積,為近似反轉這個過程,反卷積使用該卷積核的轉置來進行卷積操作

注意在上述重構過程中沒有使用任何對比度歸一化操作

ps: 反卷積(轉置卷積)的原理我會重新整理博客,之后再加進來。

3. Feature Visualization

在ImageNet驗證集上使用反卷積進行特征圖的可視化,如下圖:


對於一個給定的feature map,我們展示了響應最大的九張響應圖,每個響應圖向下映射到原圖像素空間,右面的原圖通過找到在原圖的感受野來截取對應的原圖。

通過觀察可以發現,來自每個層中的投影顯示出網絡中特征的分層特性。第二層響應角落和其他的邊緣/顏色信息,層三具有更復雜的不變性,捕獲相似的紋理,層四顯示了顯著的變化,並且更加類別具體化,層五則顯示了具有顯著姿態變化的整個對象,所以這就是常說的CNN結構前幾層通常學習簡單的線條紋理,一些共性特征,后面將這些特征組合成 不同的更豐富的語義內容。

4. Feature Evolution during Training

文中對於一個layer中給定的feature map,圖中給出在訓練epochs在[1,2,5,10,20,30,40,64]時,訓練集對該feature map響應最大的可視化圖片,如下圖:

從圖中可以看出,較低層(L1,L2)只需要幾個epochs就可以完全收斂,而高層(L5)則需要很多次迭代,需要讓模型完全收斂之后。這一點正好與深層網絡的梯度彌散現象正好相反,但是這種底層先收斂,然后高層再收斂的現象也很符合直觀。

5. Feature Invariance

上圖顯示出了相對於未變換的特征,通過垂直平移,旋轉和縮放的5個樣本圖像在可視化過程中的變化。小變換對模型的第一層有着顯著的影響,但對頂層影響較小,對於平移和縮放是准線性的。網絡輸出對於平移和縮放是穩定的。但是一般來說,除了具有旋轉對稱性的物體來說,輸出來旋轉來說是不穩定的.(這說明了卷積操作對於平移和縮放具有很好的不變性,而對於旋轉的不變性較差)

6. ZF-Net

可視化訓練模型不但可以洞察CNN的操作,也可以幫助我們在前幾層選擇更好的模型架構。通過可視化AlexNet的前兩層(圖中b,d),我們就可以看出問題:

1)第一層filter是非常高頻和低頻的信息,中間頻率的filter很少覆蓋

2)第二層的可視化有些具有混疊效應,由於第一層比較大的stride

為了解決這些問題:

1)將第一層的filter的尺寸從1111減到77

2)縮小間隔,從4變為2。

這兩個改動形成的新結構,獲取了更多的信息,而且提升了分類准確率。

7. 實驗

首先,作者進行了網絡結構尺寸調整實驗。去除掉包含大部分網絡參數最后兩個全連接層之后,網絡性能下降很少;去掉中間兩層卷積層之后,網絡性能下降也很少;但是當把上述的全連接層和卷積層都去掉之后,網絡性能急劇下降,由此作者得出結論:模型深度對於模型性能很重要,存在一個最小深度,當小於此深度時,模型性能大幅下降。
作者固定了通過ImageNet pre-train網絡的權值,只是使用新數據訓練了softmax分類器,效果非常好。這就形成了目前的人們對於卷積神經網絡的共識:卷積網絡相當於一個特征提取器。特征提取器是通用的,因為ImageNet數據量,類別多,所以由ImageNet訓練出來的特征提取器更具有普遍性。也正是因為此,目前的卷積神經網絡的Backbone Network基本上都是Imagenet上訓練出來的網絡。

8. 簡單的可視化工具

數字識別
其中黑色和灰色表示負值,越黑越負;綠色表示正值,越亮越正

9. 參考鏈接

https://cloud.tencent.com/developer/article/1087075
https://www.jianshu.com/p/0718963bf3b5


免責聲明!

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



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