深度學習中的類別激活熱圖可視化

2021-01-11 騰訊網

重磅乾貨,第一時間送達

來源:公眾號 AI公園

作者:Valentina Alto

編譯:ronghuaiyang

導讀

使用Keras實現圖像分類中的激活熱圖的可視化,幫助更有針對性的改進模型。

類別激活圖(CAM)是一種用於計算機視覺分類任務的強大技術。它允許研究人員檢查被分類的圖像,並了解圖像的哪些部分/像素對模型的最終輸出有更大的貢獻。

基本上,假設我們構建一個CNN,目標是將人的照片分類為「男人」和「女人」,然後我們給它提供一個新照片,它返回標籤「男人」。有了CAM工具,我們就能看到圖片的哪一部分最能激活「Man」類。如果我們想提高模型的準確性,必須了解需要修改哪些層,或者我們是否想用不同的方式預處理訓練集圖像,這將非常有用。

在本文中,我將向你展示這個過程背後的思想。為了達到這個目的,我會使用一個在ImageNet上預訓練好的CNN, Resnet50。

我在這個實驗中要用到的圖像是,這隻金毛獵犬:

首先,讓我們在這張圖上嘗試一下我們預訓練模型,讓它返回三個最有可能的類別:

如你所見,第一個結果恰好返回了我們正在尋找的類別:Golden retriver。

現在我們的目標是識別出我們的照片中最能激活黃金標籤的部分。為此,我們將使用一種稱為「梯度加權類別激活映射(Grad-CAM)」的技術(官方論文:https://arxiv.org/abs/1610.02391)。

這個想法是這樣的:想像我們有一個訓練好的CNN,我們給它提供一個新的圖像。它將為該圖像返回一個類。然後,如果我們取最後一個卷積層的輸出特徵圖,並根據輸出類別對每個通道的梯度對每個通道加權,我們就得到了一個熱圖,它表明了輸入圖像中哪些部分對該類別激活程度最大。

讓我們看看使用Keras的實現。首先,讓我們檢查一下我們預先訓練過的ResNet50的結構,以確定我們想要檢查哪個層。由於網絡結構很長,我將在這裡只顯示最後的block:

讓我們使用最後一個激活層activation_49來提取我們的feature map。

這個熱圖上看不出什麼東西出來。因此,我們將該熱圖與輸入圖像合併如下:

如你所見,圖像的某些部分(如鼻子部分)特別的指示出了輸入圖像的類別。

—END—

英文原文:https://valentinaalto.medium.com/class-activation-maps-in-deep-learning-14101e2ec7e1

下載1:OpenCV-Contrib擴展模塊中文版教程

下載2:Python視覺實戰項目31講

下載3:OpenCV實戰項目20講

下載4:leetcode算法開源書

交流群

相關焦點

  • 深度學習黑盒可視化指南,從隱藏層開始
    隱藏層不直接接受外界的信號,也不直接向外界發送信號,因而如何認識隱藏層內部的工作原理和運行機制,也成為深度學習研究中的一大挑戰。可視化隱藏層是其中的一個解決方法,那如何做到呢?當你對Tensorflow Playground的感受從玩的很開心轉換到厭煩時,你就可以加入我們,來學習如何親自構建可視化。四:深入深度學習讓我們先來了解下 Keras可視化工具包(Keras-vis),這是一個用於可視化和調試訓練過的神經網絡的高級開發庫。
  • 人工智慧黑盒揭秘:深度神經網絡可視化技術
    雲腦科技自主研發的 Deepro 深度學習平臺利用可視化技術,集成了最前沿的各類深度神經網絡可視化組件,分析與顯化內部隱藏結構與模型輸出的關係,解決「黑盒」難題。訓練後得到的模型中每一層 CNN 中最強的激活特徵單元(灰度圖片),以及該激活單元通過 DeconvNet 後生成的像素圖(彩色圖片)。
  • 一文探討可解釋深度學習技術在醫療圖像診斷中的應用
    可視化方法並不是構建一個新的不同的模型,而是通過可視化的方法,例如激活圖(Activation Maps),幫助解釋模型的某些部分。屬性方法的目標是直接確認輸入特徵對於深度學習網絡中目標神經元的貢獻程度。而非屬性方法則是針對給定的專門問題開發並驗證一種可解釋性方法,例如生成專門的注意力、知識或解釋性去輔助實現專門問題的可解釋深度學習。1.2.1 屬性方法屬性方法的目標是確定輸入特徵對目標神經元的貢獻,通常將分類問題正確類別的輸出神經元確定為目標神經元。
  • 深度學習入門:淺析卷積神經網絡
    至今已有數種深度學習方法,如卷積神經網絡(CNN)、自編碼神經網絡(包括Auto encoder和Sparse Coding)和深度置信網絡(DBN),並在各個領域中取得了極好的效果。接著我們將全連接層的權重參數值轉換為28*28的矩陣並繪製矩陣熱圖,從該層的權重矩陣可以看出一些輪廓。
  • 百度數據可視化實驗室正式成立,發布深度學習可視化平臺 Visual DL
  • 從腦電波到機器人運動——深度學習:介紹
    [前1/5秒內電極的活動]我們還可以以2維熱圖的形式對數據進行可視化,縱軸是時間(從頂部開始向下),橫軸表示32個電極。想像一個3*3的卷積核,它能夠在熱圖所描述的矩陣上,通過對三個不同的時間步長(3個核行)以及3和不同的電極(3個核列)進行加權來提取特徵。因此,一個具有多個卷積核的卷積神經網絡可以找到在有限的時間周期裡,電極的激活隨著受試者想要做的運動而變化的特徵。我在Keras中實現了一個簡單的CNN網絡,檢查它在這組數據集上的表現。
  • 在深度學習中對正則化的直觀認識
    這種現象在神經網絡學習中尤為普遍——學習能力越強,記憶的可能性就越大,這取決於我們這些實踐者如何引導深度學習模型來吸收我們的問題,而不是我們的數據。你們中的許多人在過去都曾遇到過這些方法,並且可能已經對不同的正則化方法如何影響結果形成了自己的直觀認識。為你們中那些不知道的人(甚至為那些知道的人!)本文為正則化神經網絡參數的形成提供了直觀的指導。
  • 用概念激活向量 (CAVs) 理解深度網絡
    最近,來自谷歌大腦研究小組的研究人員發表了一篇論文,提出了一種新的方法,稱為概念激活載體(CAVs),這為深度學習模型的可解釋性提供了一個新的視角。詳見論文:https://arxiv.org/pdf/1711.11279.pdf可解釋性vs準確性為了理解CAV技術,了解深度學習模型中可解釋性的本質是非常重要的。
  • 華人博士卷積網絡可視化項目火了:點滑鼠就能看懂的掃盲神器
    如果打開教材,會看到這樣一些解釋:卷積層是深度神經網絡在處理圖像時十分常用的一種層。當一個深度神經網絡以卷積層為主體時,我們也稱之為卷積神經網絡。最近,來自喬治亞理工學院與俄勒岡州立大學的研究者們,考慮到初學者和非專業人士的學習痛點,合作開發出了一款卷積神經網絡交互式可視化工具——CNN 解釋器(CNN Explainer)。這個解釋器展示了一個 10 層的神經網絡,包含卷積層、激活函數、池化層等多個 CNN 初學者無論如何也繞不開的概念。
  • 掌握深度學習,數據不足也能進行圖像分類!
    ——吳恩達圖像分類即根據固定類別對輸入的圖像設置標籤。儘管計算機視覺過於簡單,但是它在實際中仍有廣泛的應用,而圖像分類就是其中的核心問題之一。在本文中,小芯將示範如何在數據不足的情況下應用深度學習。現已創建特製汽車和巴士分類器兩個數據集,每個數據集包含100個圖像。其中,訓練集有70個圖像,驗證集有30個。挑戰1.
  • 谷歌的新CNN特徵可視化方法,構造出一個華麗繁複的新世界
    用優化方法形成可視化作者們的目標是可視化呈現讓網絡激活的那些特徵,也就是回答「模型都在圖像中找什麼特徵」這個問題。不同激活程度的樣本在這裡,作者們也拿數據集中的真實圖像樣本和生成的樣本做了比較。真實圖像樣本不僅可以展現出哪些樣本可以極高程度地激活神經元,也能在各種變化的輸入中看到神經元分別激活到了哪些程度。
  • 深度學習與統計力學(I) :深度學習中的基礎理論問題
    系列預告深度學習統計力學(I) :深度學習中的基礎理論問題深度學習統計力學(IV) :深層網絡的信號傳播和初始化深度學習統計力學(VI) :通過概率模型進行「深度想像」1 介紹深層神經網絡具有多個隱含層[1],在許多領域都取得了顯著的成功,從機器視覺[2]、語音識別[3]、自然語言處理[4]、強化學習[5],到神經科學[6、7]、心理學[8、
  • 深度森林第三彈:周志華組提出可做表徵學習的多層梯度提升決策樹
    因此,多層分布式表徵學習不僅有深度神經網絡,同時還有決策樹!近十年來,深層神經網絡的發展在機器學習領域取得了顯著進展。通過構建分層或「深層」結構,該模型能夠在有監督或無監督的環境下從原始數據中學習良好的表徵,這被認為是其成功的關鍵因素。成功的應用領域包括計算機視覺、語音識別、自然語言處理等 [1]。
  • 深度學習的學習率調節實踐
    當一個ANN包含一個很深的隱藏層時,它被稱為深度神經網絡(DNN)。在這項調查中,我們將在MNIST時尚數據集上訓練一個深度MLP,並通過指數增長來尋找最佳學習率,繪製損失圖,並找到損失增長的點,以達到85%以上的準確率。對於最佳實踐,我們將實現早期停止,保存檢查點,並使用TensorBoard繪製學習曲線。
  • CNN架構創新分為七個不同的類別綜述
    激活函數是一種決策函數,有助於學習複雜的模式。選擇適當的激活函數可以加速學習過程。卷積特徵圖的激活函數定義為等式(3)。 與深度架構相關的一個重要問題是,有些層或處理單元可能無法學習有用的特徵。為了解決這一問題,研究的重點從深度和較窄的架構轉移到了較淺和較寬的架構上。 4.5 基於特徵圖(通道特徵圖)開發的 CNN CNN 因其分層學習和自動特徵提取能力而聞名於 MV 任務中。特徵選擇在決定分類、分割和檢測模塊的性能上起著重要作用。傳統特徵提取技術中分類模塊的性能要受限於特徵的單一性。
  • 深度學習與圖像識別 圖像檢測
    CNN等為什麼對圖像領域更加有效,因為其不但關注了全局特徵,更是利用了圖像識別領域非常重要的局部特徵,應該是將局部特徵抽取的算法融入到了神經網絡中。圖像本身的局部數據存在關聯性,而這種局部關聯性的特徵是其他算法無法提取的。深度學習很重要的是對全局和局部特徵的綜合把握(2)深度學習不是一個黑箱系統。
  • 人工智慧-深度學習-激活函數ReLU,Sigmoid,TanH,ELU,MaxOut
    激活函數:在多層神經網絡中,上層節點的輸出和下層節點的輸入之間具有一個函數關係,這個函數稱為激活函數(又稱激勵函數)激活函數的本質:激活函數是來向神經網絡中引入非線性因素的,通過激活函數,神經網絡就可以擬合各種曲線。
  • 谷歌通過深度度量學習,提出新的語義實例分割方法
    其中,相似性度量是基於深度,完全卷積的嵌入模型,而分組方法是基於選擇所有與一組「種籽點」足夠相似的點,這個選擇模型是一個深度的、完全卷積的評分模型。據雷鋒網了解,這個問題的常見解決方法是:首先使用一些機制來預測對象的邊界框(例如,通過運行類別對象檢測器,或者通過使用類別不可知框方法,如EdgeBoxes),然後在每個提出的框中運行分割和分類。
  • 深度學習專項課程精煉圖筆記!必備收藏|原力計劃
    深度學習基礎深度學習基本概念監督學習:所有輸入數據都有確定的對應輸出數據,在各種網絡架構中,輸入數據和輸出數據的節點層都位於網絡的兩端,訓練過程就是不斷地調整它們之間的網絡連接權重。右下:深度學習能發展起來主要是由於大數據的出現,神經網絡的訓練需要大量的數據;而大數據本身也反過來促進了更大型網絡的出現。深度學習研究的一大突破是新型激活函數的出現,用 ReLU 函數替換sigmoid 函數可以在反向傳播中保持快速的梯度下降過程,sigmoid 函數在正無窮處和負無窮處會出現趨於零的導數,這正是梯度消失導致訓練緩慢甚至失敗的主要原因。
  • 人工智慧深度學習的未來展望
    在訓練期間,機器會獲取一副圖片,然後產生一個輸出,這個輸出以向量形式的分數來表示,每個類別都有一個這樣的向量。我們希望所需的類別在所有的類別中具有較高的得分,但是這在訓練之前是不太可能發生的。通過計算一個目標函數可以獲得輸出分數和期望模式分數之間的誤差(或距離)。然後機器會修改其內部可調參數,以減少這種誤差。