------人工智能飛速發展的勢頭已經不可小視,目前它的神秘仍然像一個black box,然而我們不妨大膽的預測,隨着feature visualizing技術和方法的前進,真相大白的一天終會到來,本篇就是一個mark stone of the Amazing future of AI! -------
近些年大規模的卷積神經網絡模型在圖片分類上取得了顯著成果,然而對為什么會習得如此好的分類性能,學術界仍沒有給出清晰的解釋。本文將介紹一種新穎的可視化技術,利用反卷積網絡輔助理解卷積神經網絡中間特征層的作用。此外,通過敏感性遮擋實驗驗證了神經網絡在分類圖片時,主要取決於圖片中人物而不是不相關的背景信息。通過充分理解神經網絡的特征信息,我們才可更好的改進現有模型。
關鍵詞:卷積神經網絡,特征可視化,反卷積。
1.前言
從1990年初,卷積神經網絡模型由LeCun等人[1]介紹后,便逐漸在諸多領域表現出很好的性能,如手寫字母識別和人臉檢測領域。在最近的十八個月內,卷積神經網絡得到迅速發展,在ImageNet 數據庫和CIFAR-10數據庫均表現出卓越的分類識別性能。之所以有這么好的表現,我們可歸納為以下幾個原因:
1.訓練數據集規模大,可達百萬級別。
2.GPU的應用,使得訓練大規模數據可行化。
3.更好的泛化策略,如dropout策略[2]。
除了上述這些易於理解的解釋,目前缺少的是對卷積神經網絡模型到底是如何作用的闡述。 從科研的立場來看這個問題,目前的對卷積神經網絡的理解是令人不滿意的,沒有本質上清楚的解釋卷積神經網絡模型是怎么工作的以及為什么這么工作,那么未來的發展就只能基於過往的經驗,這對卷積神經網絡的發展來說是個不利因素。本文提出一種可視化技術用於揭示輸入是怎么激勵模型各個中間特征層輸出的,同時我們可以借此觀察到訓練過程中特征層的卷積結果來診斷模型中潛在的問題。該可視化技術主要應用多層反卷積網絡,它是由ZeiLer等人[3]提出。
本文所用的模型是標准的全監督卷積神經網絡模型如圖1所示。它將一個2D的輸入圖像xi,經由一系列隱藏層的訓練,輸出一個為概率向量yi(總共有C個不同的類別),故該卷積神經網絡的模型的每一層包括:
1.卷積核(Learned Filters or Kernels)及其與上一層輸出的卷積響應(Activation map or feature map)。
2.將卷積響應傳給一個校正線性函數(Relu(x)=max(x,0))。
3.選擇性的執行max pooling。
圖 1. 本文應用模型是一個8層的卷積神經網絡,輸入是224×224的三通道圖像(so,the volume is 224×224×3),第一層有96個7×7的kernel,在x和y方向的步長均為2,對feature maps 的操作依次有:(1)逐元素的線性函數矯正如relu;(2)用3×3的鄰域,步長為2進行池化;(3)對比度歸一化操作后可得到volume=55×55×96;相同的操作應用到2、3、4、5層,緊接着是兩層全連接層,最后一層softmax層,共有c個類別。
2. 反卷積網絡的設計
理解卷積神經網絡的突破點在於理解中間特征層含義,本文提出一種新穎的方法可將中間特征層的輸出映射到原始輸入的空間上,這種映射是通過反卷積網絡來實現的,一個反卷積網絡可以看做是利用相同元素(kernels, pooling )的卷積網絡,只是這些元素的順序要依次對調過來。卷積神經網絡是把像素映射成特征,那么反卷積網絡就是把特征映射為輸入空間上的像素。
應用反卷積網絡輔助理解一個卷積神經網絡,需要在該網絡模型的每一層附帶一個反卷積層,在檢測理解某一層的某一個activation map時,我們需要先將該層的其他activation map 的值置為0,然后將該層的feature maps 作為輸入傳遞給該層附帶的反卷積層,依次執行unpooling, rectification, filtering 來重構響應的輸入像素特征。
Unpooling: 在卷積網絡中,max pooling 操作是不可逆的,然而我們可以通過記錄最大值的位置(switch variables)來近似執行它的反操作。
Rectification: 在卷積層中,利用relu這一非線性函數來校正feature maps,使得特征值均為正值,因而在反卷積中來實現特征重構時,也需要將值傳遞給一個relu的非線性函數。
Filtering: 在卷積網絡中,利用可學習的filters 來跟上一層的feature maps進行卷積,為了近似的反轉這個過程,反卷積層利用同一filter的轉置矩陣(FT)作為卷積核。
如圖2所示,圖上半部分是反卷積操作的步驟圖,依次經過Max Unpoooling,Rectified Linear Function和Convolutional Filtering操作;下半部分是圖形化的展示。圖右側是一個卷積層,左側是附帶其上的反卷積層。從圖中可看出"reconstruction"是"layer below pooled map"的一個重構近似結果。
圖 2. 利用反卷積網絡可視化模型流程圖。
3. 網絡特征可視化
本文所訓練的模型如圖1所示,訓練的數據集是ImageNet 2012 traning set,其中包含1.3×10^6個圖片,隸屬於1000個類別[4]。將訓練好的神經網絡模型應用反卷積網絡的方法可視化模型中的feature activations。
如圖 3.1所示是將模型進行特征可視化的結果示意圖。對於一個給定的feature map,我們選取前九個activations,每一個都單獨反卷積過去投射到像素空間(投射的結果稱為projections),從而揭示了與之對應的filter所敏感的像素特征。旁邊是與之對應的圖像塊。對比可發現,這與我們視覺的觀察結果有很大不同。例如,在5層中,第一列的第二個中,圖像塊彼此並沒有什么相同點,但相應的filter卻發現了它們有相同的背景,並不是背景前面的物體。
此外,每一層的projections顯示的信息均具有層次感,也體現了神經網絡觀察分辨圖片的層次能力。如第二層網絡對應的是邊界、輪廓和色塊信息;第三層捕捉的是紋理信息;第四層展現了較大的差異主要是一些類別上部分的信息,狗的臉,鳥的腿等;第五層展示的是不同姿勢的整個物體的視圖。
圖 3.1 在訓練好了的模型中進行特征可視化。2-5層是利用反卷積網絡的方法分別展示了在驗證集合上的前九個激活特征視圖(activations map)。
圖3.2 展示的是訓練過程中特征的演變,從圖中可看出,在訓練過程中,底層的特征很快便可以收斂,然而高層的特征要經過相當多次迭代才可以收斂。所以要想使得神經網絡模型有好的性能,就要多次迭代使得它達到全網絡層收斂。
圖 3.2 訓練過程中特征的演變。每一層的特征都由一個塊表示,每一塊中,每一行對應的隨機挑選的filter在迭代[1,2,5,10,20,30,40,64]次習得特征(可視化這些特征采用的方法是是反卷積網絡)
4. 敏感性遮擋驗證
對於圖片分類算法來說,一個重要的問題是我們的模型是否可以找到圖片中物體所在的局部區域來分辨出物體還是根據環境信息來判別。圖4系統性的回答了這個問題,通過有計划的遮擋輸入圖片的某一部分,監測分類器的輸出。實驗證明,如果將圖片的物體部分遮擋住了,輸出的正確標簽那一項的概率會迅速減小。如圖所示,列1表示圖像被隨機遮擋,列2表示第五層特征圖最強輸出,列3帶黑框為被遮擋后特征向量投影到像素空間,列4為被遮擋后分類的正確率,列5為被遮擋后最可能的分類。
圖 4. 敏感性遮擋實驗結果
5.總結
本文利用ImageNet 2012的數據庫訓練了一個8層的神經網絡如圖1所示,然后利用反卷積網絡的方法來觀察模型的特征。實驗表明,卷積神經網絡模型之所以有這么好的分類性能是有道理可循的,卷積神經網絡層捕捉的特征雖然跟我們人類看到的不盡相同,但也有很強的層次和規律在其中,理解了這一點,可以幫助我們更好的設計和訓練卷積網絡模型。此外,通過敏感性遮擋實驗驗證,卷積網絡模型在識別一個物體時,起重要判別依據的是物體本身而非背景環境等不相干的信息,這一點證明了卷積神經網絡模型可用性強的特點。盡管卷積神經網絡模型在圖片分類領域已達到精湛的水平,但仍存在一些問題,圖卷積神經網絡雖然對略微位移和縮放的圖片不會改變判別正確率,但是無法對旋轉產生很好的魯棒性。
最后,本篇課程小論文是拜讀Matthew 等人論文[5]的讀后筆記,感謝這些大牛們的在人工智能領域的奉獻。
參考文獻
[1] LeCun, Y., Boser, B., Denker, J.S., Henderson, D., Howard, R.E., Hubbard, W., Jackel, L.D.: Backpropagation applied to handwritten zip code recognizition. Neural Comput. 1(4), 541-551(1989).
[2] Hinton,G.E., Srivastave, N., Krizhevsky, A., Sutskever, I., Salakhutdinov, R.R.: Improving neural networks by preventing co-adaptation of feature detectors. In: arXvi: 1207.0580(2012).
[3] Zeiler, M., Taylor, G., Fergus, R.: Adaptive deconvolutional networks for mid and high level feature learning. In: ICCV(2011).
[4] Deng, J., Dong, W., Socher, R., li, L.J., li, K., Fei-Fei, L.: ImageNet: A large scale hierarchical image database. In: CVPR 2009(2009).
[5] Matthew, D., Zeiler, M., Fergus, R.: Visualizing and understanding convolutional networks. In: ECCV(2014).