白盒-CNN纹理深度可视化: 使用MIT Place 场景预训练模型
?????? MIT發文:深度視覺的量化表示................
?????? Places2 是一個場景圖像數據集,包含 1千萬張 圖片,400多個不同類型的場景環境,可用于以場景和環境為應用內容的視覺認知任務。
?????? GitHub源代碼:https://github.com/CSAILVision/NetDissect
?????? 論文地址:http://netdissect.csail.mit.edu/final-network-dissection.pdf
?????? Place205 Model集結地;http://places.csail.mit.edu/downloadCNN.html?? ,Place205模型給出了205個場景的分析。
?????? 一個在線可視化小工具:http://blog.csdn.net/10km/article/details/52713027?
??????????? ? launch editor之后,把網絡結構直接copy到editor,shift+enter 可視化。
?????? Caffe Model ZOO:https://github.com/BVLC/caffe/wiki/Model-Zoo#places-cnn-model-from-mit???
關于可視化
???????? 基于Caffe結構的網絡連接可視化,理論上你可以自己寫一個.
Scene Recognition Demo: Input a picture of a place or scene and see how our Places-CNN predicts it.
DrawCNN: a visualization of units’ connection for CNNs.
Indoor/Outdoor label: the label of indoor and outdoor for each of the 205 place categories. You could use the labels of the top5 predicted place categories from the Places-CNN to vote if the given image is indoor or outdoor. The indoor and outdoor classification accuracy is more than 95%.
所謂黑箱
?????? ML的傳統方法被稱為“白盒方法”,而神經網絡被稱為“黑箱”。
??????? 關于黑箱的一個解釋:題主的『可解釋性』不是指泛化性等理論保證,也不是復雜模型的理論解釋。而是指『判別過程是否可以轉化成具備邏輯關系的規則』。更新回答如下:
1. 如果想把決策結果解釋成規則,那么建議使用基于決策樹的機器學習模型/算法(包括原始的各種決策樹、一些利用了ensemble的決策樹模型,比如random forest等),這樣得到的結果可以理解成依據特征做的一系列選擇,也許就滿足了你們產品經理的喜好。但是,實際中如果決策樹得到的規則太多的話,其實也不是有很好的『解釋性』。
2. 關于題主提到的『選擇權重大的特征作為白盒規則,得到的效果一定好嗎?』,實用中很可能會有不錯的效果,這大概可以看做是最原始的特征選擇方法,也有可能大大降低準確度。
3. 你為啥這么在乎產品經理的感受?是白盒還是黑盒真的有這么重要?畢竟最后的你『選擇用戶』是你的模型和算法策略決定的,不是產品經理手工決定的。實際場景中,產品經理關心的很可能是用戶畫像這些方面,而非你的決策過程。
=====原答案======這要看題主要的可解釋性是指什么?
所謂黑箱
????? 相對于CNN和眾多DNN方法,ML的傳統方法被稱為“白盒方法”,這種由來已久的觀點是從數學模型可驗證可優化性的角度來分析的。在眾多ML方法中,布爾決策樹方法是唯一的白盒方法,即給出了語法又給出了語義闡述,并等價于專家規則。??????? 一系列線性和非線性方法之所以被稱為是“白盒方法”,是因為其方程的明確形式化。不管是貝葉斯方法、還是線性判別、以至于各種非線性模型或者生成式模型,都可以明確地歸結為函數形式,這意味著ML模型是可顯示優化的,即結果是可進行定理論證的。我們看著結果到最優化的方向迭代,便以為我們明了了真實的意義;我們掌握了語法,便以為解釋了語義。
??????? 眾多NN方法難以從神經元模型匯總,抽取出一個形式化的函數,因此也不能針對函數進行優化,給出最優解或者最優方向的證明,可行的一個方法即是隨機初始加通過反向傳播調參反復迭代。CNN的特別之處在于卷積核的存在,卷積過程是一個反向模板匹配的過程,而這個模板,是可以看見的。在CNN網絡中,每一層都是可以看見的。CONV層效果占比越多的網絡,可視化表達能力越強。
???????? 可表示性:ResNet > VGG >GoogLeNet > AlexNet
??????? 借用一張圖:
???????
?????
??????
關于深度 可視化的解釋
?????? 高層和中層語義可視化,此回答作了一個(地址):小小的翻譯...
???? CVPR'17 Oral論文Network Dissection: Quantifying Interpretability of Deep Visual Representations(論文:https://arxiv.org/pdf/1704.05796.pdf, 主頁:http://netdissect.csail.mit.edu/)
?????? 神經網絡的可解釋性一直是我比較關注的問題。從ICLR'15那篇Object Detectors emerge from Deep Scene CNNs (現在的深度學習的模型越來越大,有個結論是說,大腦的激活是非常稀疏的,對模型參數有什么好的辦法壓縮嗎? - 知乎), 到CVPR'16的CNN Discriminative Localization and Saliency,再到最新的這篇Network Dissection,算是我PhD階段較完整地探索了這個問題。我自己是非常喜歡這篇network dissection:)。
?????? 了解我研究工作的朋友都知道,我很少提fancy的模型和跟蹤潮流topic,我更感興趣的是分析問題和現象本身,能用越普適的方法越好。這篇CVPR'17工作是想更好量化分析不同卷積神經網絡內部神經元的語義特征 (Network Interpretability and Network Explainability)。嘗試回答一些有意思的問題:神經網絡是不是只是個black box?神經網絡內部到底學習了些什么東西?為什么需要這么深度的網絡?等等。之前我ICLR'15論文是用人力來標定了AlexNet的每層網絡內神經元的語義性,這篇論文我們提出了一個叫Network Dissection的方法,可以自動化地標定任意給定的網絡內部的帶有語義的神經元。
??????? Network Dissection大致做法如下圖所示,我們準備了一個帶有不同語義概念的圖片數據庫,里面每張圖都有pixel-wise的標定(顏色,紋理,場景,物體部分,物體等),然后我們把每個神經元在圖像上的激活響應當做對這些概念進行語義分割(Semantic segmentation),然后看每個神經元對哪個語義概念分割得最好,那么這個神經元就是在檢測這個語義概念。
?????? 卷積為二維反向模板匹配,因此給語義可視化直觀感受。???????
??????? Network Dissection項目網頁上(http://netdissect.csail.mit.edu),有對不同網絡的詳細可視化(參見Network Dissection Results),感興趣的同學可以看看。數據庫和代碼已經release(CSAILVision/NetDissect)。到時候在CVPR'17的Tutorial上 (Deep Learning for Objects and Scenes),我也會把Network Interpretability作為一個專題來報告, stay tuned:)
?????? 總結來說,Network Interpretability & Explainability將是AI里非常重要的研究問題。去年美國政府的軍費研究機構DARPA就有個重要的立項Explainable Artificial Intelligence。隨著AI模型在生活中的廣泛應用,性能提升的同時,人們也更關注AI模型自身的安全性和可解釋性。如果連我們自己都無法理解AI模型是如何運作以及內部到底學習到了什么,還會放心AI模型在醫療,國防等一些性命攸關的方向應用么。最近MIT Tech Review上最近有篇文章,也分析了這個問題:The Dark Secret at the heart of AI(There’s a big problem with AI: even its creators can’t explain how it works)。
結論:
??????? Place205主要使用AlexNet和VGG-Net用于場景分類,在網絡結構上沒有大的改進,暫時只是使用了專門的數據集對這個專門的模型進行了特定的優化。論文對語義化的實驗數據也是對長久以來CNN模式識別的一個通用總結。
參考:
?????? 主頁:http://netdissect.csail.mit.edu/???????????????????
?????? 代碼:https://github.com/CSAILVision/NetDissect? ??????
?????? 論文:https://arxiv.org/pdf/1704.05796.pdf??
總結
以上是生活随笔為你收集整理的白盒-CNN纹理深度可视化: 使用MIT Place 场景预训练模型的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 木瓜不熟切开了怎么办 木瓜没熟怎么催熟
- 下一篇: Caffe:导入caffePython-