CNN 模型的可視化

2020-12-12 極客公園

   大家都了解卷積神經網絡 CNN,但是對於它在每一層提取到的特徵以及訓練的過程可能還是不太明白,所以這篇主要通過模型的可視化來神經網絡在每一層中是如何訓練的。我們知道,神經網絡本身包含了一系列特徵提取器,理想的 feature map 應該是稀疏的以及包含典型的局部信息。通過模型可視化能有一些直觀的認識並幫助我們調試模型,比如:feature map 與原圖很接近,說明它沒有學到什麼特徵;或者它幾乎是一個純色的圖,說明它太過稀疏,可能是我們 feature map 數太多了(feature_map 數太多也反映了卷積核太小)。可視化有很多種,比如:feature map 可視化、權重可視化等等,我以 feature map 可視化為例。

 模型可視化

  因為我沒有搜到用 paddlepaddle 在 imagenet 1000 分類的數據集上預訓練好的 googLeNet inception v3,所以用了 keras 做實驗,以下圖作為輸入:

輸入圖片 

  取網絡的前 15 層,每層取前 3 個 feature map。

  北汽紳寶 D50 feature map:

從左往右看,可以看到整個特徵提取的過程,有的分離背景、有的提取輪廓,有的提取色差,但也能發現 10、11 層中間兩個 feature map 是純色的,可能這一層 feature map 數有點多了,另外北汽紳寶 D50 的光暈對 feature map 中光暈的影響也能比較明顯看到。

把北汽紳寶 D50 第 1、4、7 層的 feature map 以及第 1, 4, 7, 10, 11, 14, 17 層的 feature map 分別做平均,可視化如下:

代碼實踐(關注博客園專欄作者:Charlotte77 http://www.cnblogs.com/charlotte77 查看原始碼)

 

總結

  還有一些網站做的關於 CNN 的可視化做的非常不錯,譬如這個網站:http://shixialiu.com/publications/cnnvis/demo/,大家可以在訓練的時候採取不同的卷積核尺寸和個數對照來看訓練的中間過程。最近 PaddlePaddle 也開源了可視化工具 VisaulDL,下篇文章我們講講 paddlepaddle 的 visualDL 和 tesorflow 的 tensorboard。

作者:Charlotte77 


相關焦點

  • CNN 可視化技術總結(三):類可視化
    前面我們介紹了兩種可視化方法,特徵圖可視化和卷積核可視化,這兩種方法在論文中都比較常見,這兩種更多的是用於分析模型在某一層學習到的東西。在理解這兩種可視化方法,很容易理解圖像是如何經過神經網絡後得到識別分類。    然而,上次我在知乎看到一個通過yolov3做跌倒檢測,希望加上人臉識別進行多任務學習從而提高準確率的提問。
  • CNN的一些可視化方法
    其次,現在也已經有很多方法對神經網絡進行分析了,特別是一些可視化方法,可以很直觀的展示深度模型的特徵提取過程。對神經網絡進行可視化分析不管是在學習上還是實際應用上都有很重要的意義,基於此,本文將介紹以下3種CNN的可視化方法:可視化中間特徵圖這種方法很簡單,把網絡中間某層的輸出的特徵圖按通道作為圖片進行可視化展示即可,如下述代碼所示:import
  • CNN 的一些可視化方法
    其次,現在也已經有很多方法對神經網絡進行分析了,特別是一些可視化方法,可以很直觀的展示深度模型的特徵提取過程。對神經網絡進行可視化分析不管是在學習上還是實際應用上都有很重要的意義,基於此,本文將介紹以下3種CNN的可視化方法:可視化中間特徵圖這種方法很簡單,把網絡中間某層的輸出的特徵圖按通道作為圖片進行可視化展示即可,如下述代碼所示:import
  • CNN的一些可視化方法!
    其次,現在也已經有很多方法對神經網絡進行分析了,特別是一些可視化方法,可以很直觀的展示深度模型的特徵提取過程。對神經網絡進行可視化分析不管是在學習上還是實際應用上都有很重要的意義,基於此,本文將介紹以下3種CNN的可視化方法:可視化中間特徵圖這種方法很簡單,把網絡中間某層的輸出的特徵圖按通道作為圖片進行可視化展示即可,如下述代碼所示:import
  • 資源| MIT提出Matlab插件mNeuron:實現深度模型神經元的可視化
    機器之心編譯參與:黃小天、Smith近日,麻省理工學院(MIT)Antonio Torralba 等人發表了一篇題為《mNeuron: A Matlab Plugin to Visualize Neurons from Deep Models》的文章,介紹了一個可視化深度模型神經元的 Matlab 插件 mNeuron,能夠可視化單個神經元和單個神經元模式;並共享了該插件實現的代碼和
  • 【深度】Deep Visualization:可視化並理解CNN
    其中一個工作就是今天我們討論的重點:可視化CNN模型,這裡的可視化指的是可視化CNN模型中的卷積核。可視化工作分為兩大類,一類是非參數化方法:這種方法不分析卷積核具體的參數,而是先選取圖片庫,然後將圖片在已有模型中進行一次前向傳播,對某個卷積核,我們使用對其響應最大的圖片塊來對之可視化;而另一類方法著重分析卷積核中的參數,使用參數重構出圖像。
  • 實戰 | 源碼入門之Faster RCNN
    前言學習深度學習和計算機視覺,特別是目標檢測方向的學習者,一定聽說過Faster Rcnn;在目標檢測領域,Faster Rcnn表現出了極強的生命力,被大量的學習者學習,研究和工程應用。代碼的主要文件-data文件中主要是文件的與dataset相關的文件-misc中有下載caffe版本預訓練模型的文件,可以不看-model文件中主要是與構建Faster Rcnn網絡模型有關的文件-utils中主要是一些輔助可視化和驗證的文件-train.py是整個程序的運行文件,下面有一部分會做介紹-
  • Keras 深度學習模型可視化
    深度學習可視化深度學習的過程是一個黑盒子,模型通過大量的權重去學習擬合輸入的數據和學習目標,模型的性能很大程度上取決於模型的輸入的數據;深度學習的擬合效果往往出乎我們的的想像,但是模型如何擬合數據和學習目標之間的關係,我們知之甚少。
  • CNN卷積特徵的可視化
    本文主要是實現了一個簡單的卷積神經網絡,並對卷積過程中的提取特徵進行了可視化.  權值共享和池化兩個操作使網絡模型的參數大幅的減少,提高了模型的訓練效率.    權值共享:      在卷積層中可以有多個卷積核,每個卷積核與原始圖像進行卷積運算後會映射出一個新的2D圖像,新圖像的每個像素都來自同一個卷積核.這就是權值共享.
  • 思維可視化的四類模型
    我這裡有一個面試的時候,我會問的比較有代表性的邏輯問題,請說出你的三個優點,每個優點說三個例子,每個例子不超過一句話。這要求應聘者在極短的時間內總結並提煉,是非常考驗邏輯的。設計中的思維可視化,是從無序到有序的思考過程。不是所有的人都是天生就有很好的邏輯的,但是好在,邏輯是可以訓練的,只要你懂的把自己的思維進行可視化的展示、分析和整理。
  • visreg:帶你玩遍模型可視化
    但是,並不是所有的報告都面向專業人士,所以能用最通俗易懂的統計圖形呈現估計結果,會讓更多的人理解模型分析結果。接下來,要介紹的就是visreg包,這個包簡單易用,幾乎支持了所有的回歸分析模型,同時支持各種各樣的ggplot2包提供的geom_*圖層和其他擴展主題,是進行模型可視化的利器。使用之前,請先安裝必要的包。
  • 最強NLP模型BERT可視化學習
    2018年是自然語言處理(Natural Language Processing, NLP)領域的轉折點,一系列深度學習模型在智能問答及情感分類等NLP任務中均取得了最先進的成果。近期,谷歌提出了BERT模型,在各種任務上表現卓越,有人稱其為「一個解決所有問題的模型」。
  • CNN:我不是你想的那樣
    我們通常認為cnn強擬合能力把label直接記住了,但是這就出現一個問題了:既然natural label能夠輕易的就記住所有label,那為何還CNN訓練過程中還會考慮測試集的泛化能力呢?因為在Understanding deep learning requires rethinking generalization中提到雖然cnn可以強行記住label,但是有些模型還是有較好泛化能力的,這就解釋不通了上述現象如果從數據高低頻角度考慮就可以解釋通。
  • 模型效果差?你可能需要試試這六種調試方法
    為了了解如何在權重和偏差的情況下找到模型的最優超參數,讓我們看看 mask r-cnn 計算機視覺模型的這個例子(https://www.wandb.com/articles/mask-r-cnn-hyperparameter-experiments-with-weights-and-biases)。
  • 【資源】Python實現多種模型(Naive Bayes, SVM, CNN, LSTM, etc)用於推文情感分析
    執行logistic.py運行logistic回歸模型或執行maxent-nltk.py <>運行NLTK的最大熵模型。令TRAIN = True時,將顯示10%驗證數據集的準確性。 運行lstm.py,使用10%數據進行驗證,並將每個epock時段的模型保存在./models/中。(在運行lstm.py之前,請確保此目錄存在)。
  • CNN 可視化技術總結(二):卷積核可視化
    上篇文章我們介紹了特徵圖可視化方法,對於特徵圖可視化的方法(或者說原理)比較容易理解,即把feature map從特徵空間通過反卷積網絡映射回像素空間。    那捲積核怎樣可視化呢,基於什麼原理來可視化?卷積核的尺寸一般只有3x3, 5x5大小,如何可視化?本文將介紹這個兩個內容。
  • 動圖可視化講評——凹槽模型補充例
    閔鑫相關內容《動量守恆之凹槽模型分析1》《動圖可視化講評——動量守恆之凹槽模型分析2》【基本模型】如圖所示,質量為m1=3kg動圖語音/微課可視化講評系列建設中:《動圖可視化講評——2017全國III,25題》《動圖微課講評——動生電動勢問題分析一例1》《動圖語音可視化講評——2020深圳二模,25題》《動圖語音可視化講評——
  • PyTorch模型訓練特徵圖可視化(TensorboardX)
    0、前言本文所有代碼解讀均基於PyTorch 1.0,Python3;本文為原創文章,初次完成於2019.03,最後更新於2019.09;最近復現的一篇論文一直都難以work,上了特徵圖可視化後一下子就找到了問題所在,所以今天想梳理一下PyTorch裡面的特徵圖可視化。
  • Matlab編程之——卷積神經網絡CNN代碼解析
    該模型使用了mnist的數字mnist_uint8.mat作為訓練樣本,作為cnn的一個使用樣例,每個樣本特徵為一個28*28=的向量。網絡結構為:五、cnnapplygrads.m.六、cnntest.m.
  • 谷歌開源NLP模型可視化工具LIT,模型訓練不再「黑箱」
    假如有一款可視化的工具,能夠幫助研究人員更好地理解模型行為,這應該是件非常棒的事。近日,Google 研究人員發布了一款語言可解釋性工具 (Language Interpretability Tool, LIT),這是一個開源平臺,用於可視化和理解自然語言處理模型。