導讀:由於深度摺積網路的架構複雜,引數量巨大,許多朋友會感覺它就像一個神秘的黑匣子。但其實我們已有許多手段探查深度摺積網路的具體運作,並瞭解其決策的原因。在此我們以AlexNet為例。
01
對於某張輸入影象,可觀察每層的神經元的輸出影象(經ReLU後的)。以AlexNet的conv1層和conv5層為例,它們分別有64和256個神經元,如下圖所示。
可見,大多數神經元的輸出是全黑的,即純零。用專業術語說,它們具有稀疏性(sparsity)。這是件好事,因為如果希望網路準確判斷影象的分類,最佳的情況就是每個神經元對應某種特徵,且每次只有與影象內容真正相關的神經元被啟用,其餘神經元不會產生幹擾。
02
看摺積核的權重。初始的權重是隨機噪聲,隨著網路的訓練,權重將出現各種結構。可選擇conv1和conv2的部分摺積核顯示如下圖所示。
可見conv1作為第1層,摺積核很有特點。這裡的權重來自於原始的AlexNet,其中把網路切開成2部分,因此可看到其中一半學會了高頻的灰度結構,一半學會了低頻的彩色特徵。這裡的灰度摺積核有些像計算機視覺理論中的Gabor 濾波器,是有效的分析影象紋理的手段。
而conv2的摺積核是5*5,比較小,就很難直接看出其目的。由於我們在現代網路中大量使用3*3摺積核,會更難看清楚。實際上,應該將每層的摺積核結合之前層的摺積核,才能看到它所對應的影象特徵。這就是下麵方法的思路。
03
在《Visualizing and Understanding Convolutional Networks》(https://arxiv.org/pdf/1311.2901.pdf)中提出了一種有效手段,對於某個神經元,可看到在訓練影象中最能啟用這個神經元的影象特徵(可認為是神經元的識別標的),以及相應的訓練影象。以AlexNet第1至3層的部分神經元為例,如下圖所示。
可見,第1層的神經元可識別各種角度的邊緣以及某些顏色,符合此前看到的conv1的摺積核的情況。第2層可識別簡單的形狀和紋理(這些特徵是由第1層的邊緣和顏色組成)。第3層可識別物體的更大更複雜的區域性(是由第2層的概念組成)。由此類推,對應著越來越複雜的概念,最後在高層已經基本可看出物體的分類情況。
例如,第4層和第5層的識別標的如下圖所示。
在左邊的識別標的圖中,還可看到每個神經元會聚焦到影象的相關部位,忽略影象的背景。
再看神經元的訓練過程。以第3層的幾個神經元為例,從左到右是隨著訓練的進行,神經元的識別標的的變化,如下圖所示。可見,一開始神經元並沒有明確的識別標的,但隨後會逐漸成型,明確針對某一類標的進行識別:
由於神經元是隨機初始化,所以它們會有不同的演變方向,就像下山時朝著不同的路線前進,最終會分別識別不同型別的標的。
04
可透過遮擋影象,發現哪些區域對於類別識別最為關鍵。具體方法是每次將影象的一部分清零(在下圖中顯示為灰色),觀察是否會影響正確的識別結果。影響越大,就說明擋住的區域越為重要。可將結果畫成熱力圖。
圖中的藍色代表最關鍵的區域,紅色代表最無關緊要的區域。可見,博美犬的面部對於判斷品種很重要,車輪對於判斷車輪很重要,阿富汗獵犬的整個身體都對於判斷品種很重要。
05
可採用2017年6月釋出的SmoothGrad技術(https://pair-code.github.io/saliency/),找到更細緻的判斷依據。下圖中分別為:輸入源影象,網路判斷為足球的原因所在,正確答案馬爾濟斯犬的原因所在:
可見,網路判斷為足球是根據足球錶面的六邊形紋理,而正確答案馬爾濟斯犬來自於小狗的紋理。
06
註意到AlexNet的fc2層的輸出在ReLU後是4096個數字,可認為它們代表了影象的4096維的語意編碼。透過使用t-SNE聚類,可以將這4096維降維到2維,即,為每個影象找到一個2維坐標,使得坐標相近的影象對應於編碼相近的影象。效果如下圖所示。
可見,車輛、植物、動物等等都會自動聚集在一起,且可觀察到語意的平滑過渡。
07
在http://people.csail.mit.edu/torralba/research/drawCNN/drawNet.html還提供了清晰的AlexNet網路運作示例,如下圖所示。
▲AlexNet的運作
選定其中的某個摺積神經元,可直接看到它與其他摺積神經元之間的連線權重的視覺化,以及最能啟用這些摺積神經元的樣本影象區域。
08
透過GAN架構,可更清晰和全面地展現某個神經元所學會判別的事物(https://arxiv.org/pdf/1612.00005.pdf)。例如,某個神經元看上去是識別人臉,但經過分析,它實際也會對建築的門窗,以及綠色產生反應,如下圖所示。圖中是透過GAN技術生成的能啟用這個神經元的影象。
關於作者:彭博,人工智慧、量化交易、區塊鏈領域的技術專家,有20年以上的研發經驗。 在人工智慧與資訊科技方面,對深度學習、機器學習、計算機圖形學、智慧硬體等有較為深入的研究。
本文摘編自《深度摺積網路:原理與實踐》,經出版方授權釋出。
延伸閱讀《深度摺積網路:原理與實踐》
轉載請聯絡微信:togo-maruko
點選文末右下角“寫留言”發表你的觀點
推薦閱讀
Bruce Eckel:我最喜歡Python,Kotlin或將取代Java(附演講全文+PPT)
Q: 深度摺積網路你已經學習了多少?
歡迎留言與大家分享
覺得不錯,請把這篇文章分享給你的朋友
轉載 / 投稿請聯絡:baiyu@hzbook.com
更多精彩,請在後臺點選“歷史文章”檢視
點選閱讀原文,瞭解更多