1. 程式人生 > >CNN可視化可行性

CNN可視化可行性

自己 中一 img 取圖 卷積 黑盒子 找到 分析 blog

技術分享

技術分享

技術分享

一次卷積過程類似於下圖,下面動圖是GIF圖(上下圖數據一致,但是只看方法),不過是三維的(可以看做比二維的多一個顏色維,RGB)。如果將上下圖結合來看,下圖只看兩維的話,下面第一行就是把目標圖(需要識別的圖)利用過濾器求積,步長是2(每次向右向下移動兩格)。那麽對上圖的理解就是,有一個過濾器(曲線)對整個圖進行每個局部的求積,從而找到與其對應的最相似的局部(積最大),每個layer層都有若幹過濾器,過濾器的值需要機器學習進行一次一次叠代修改,從而讓機器自己找到最理想的卷積核(過濾器)例如上圖的曲線是一個代表性的,或者一個圓等等,第一層一般都是邊界,沒有具體語義。

第一層的卷積核人類還可以進行一點解釋,但是隨著層數的深入,人類越難越能理解機器的識別出這個圖片的方法和思維(即三層四層,以及更往後的層數),這就是所謂的“黑盒子”,我們不知道自己訓練的機器自己學出了什麽,到底什麽影響了機器識別出圖片、語言等等。哪些(神經元)filter是好的哪些是壞的,是多了還是少了,專家經常只能靠自己的經驗和不斷的試錯才能最終調試出最理想的層數,和每層過濾器最理想的個數(專家所能調出的最理想的,事實上可能還有更好的模型)

過濾器的個數需要專家自己去設定,多了少了都不好,一般是憑借經驗,現在可視化是可以與其相結合,將“黑箱子”打開,從而讓

技術分享

卷積神經網絡(CNN)作為一個著名的深度學習領域的“黑盒”模型,已經在計算機視覺的諸多領域取得了極大的成功,但是,至今沒有人能夠“打開”這個“黑盒”,從數學原理上予以解釋。這對理論研究者,尤其是數學家來說當然是不可接受的,但換一個角度來說,我們終於創造出了無法完全解釋的事物,這也未嘗不是一種進步了!

當然,雖然無法完全“打開”這個“黑盒”,但是仍然出現了很多探索這個“黑盒”的嘗試工作。其中一個工作就是今天我們討論的重點:可視化CNN模型,這裏的可視化指的是可視化CNN模型中的卷積核。

可視化工作分為兩大類:

一類是非參數化方法:這種方法不分析卷積核具體的參數,而是先選取圖片庫,然後將圖片在已有模型中進行一次前向傳播,對某個卷積核,我們使用對其響應最大的圖片塊來對之可視化

而另一類方法著重分析卷積核中的參數,使用參數重構出圖像。

這一篇文章著重分析第一類可視化方法。

最初的可視化工作見於AlexNet[1]論文中。在這篇開創Deep Learning新紀元的論文中,Krizhevshy直接可視化了第一個卷積層的卷積核

技術分享

我們知道,AlexNet[1]首層卷積層(conv1)的filters是(96,3,11,11)的四維blob:96個神經元,3個顏色分類(RGB),11*11的卷積核。

這樣我們就可以得到上述96個11*11的圖片塊了。顯然,這些重構出來的圖像基本都是關於邊緣,條紋以及顏色的信息。但是這種簡單的方法卻只適用於第一層卷積層,對於後面的卷積核我們就無法使用這種方法進行直接可視化了。

最開始使用圖片塊來可視化卷積核是在RCNN[2]論文中

CNN可視化可行性