揭秘卷積神經網絡熱力圖:類激活映射

2021-01-09 讀芯術

全文共2280字,預計學習時長4分鐘

目前在可視化方面,我們已經掌握了許多不同的技術。本文將介紹在卷積神經網絡(CNN)中,針對圖像的某些部位可視化從而做出判斷的不同技術。

類激活映射(CAM)是一種生成熱力圖的技術,用於突出圖像的類的特定區域。

熱力圖效用

下面是一個典型的熱力圖:

圖片來源:github

這張圖片中,一隻貓被紅色高亮顯示為「貓」類,表示網絡在進行分類判斷時正在查看正確位置。

視覺化神經網絡正在查看的位置大有用處,因為它幫助我們理解神經網絡是否在查看圖像的適當部位,或者神經網絡是否在進行誤導。下列是一些神經網絡在做分類決判斷時可能進行誤導和錯誤查看位置的例子:

· 卷積神經網絡將一張圖片分類為「火車」,而實際上它是在尋找「火車軌道」(這意味著它會錯誤地將一張火車軌道圖片單獨分類為「火車」)。

· 卷積神經網絡將x光胸片分類為「高患病機率」,依據的不是疾病的實際表現,而是放在病人左肩上的金屬「L」標記。重點是,這個「L」標記只有在病人躺下的時候才會被直接放在病人的身體上,而病人也只有虛弱到無法忍受才會躺下接受x光檢查。

參考:Zech et al. 2018,Confounding variables can degradegeneralization performance of radiological deep learning models.

· CNN可根據數據集中五分之一的馬圖像中出現的左下角源標記將該圖像分類為「馬」。但如果將這個「馬的源標記」放在一幅汽車圖像上,那麼網絡仍將該圖像分類為「馬」。

參考:Lapuschkin et al. 2019, Unmasking Clever Hans Predictors and Assessing What Machines Really Learn.

相關論文集

這張圖顯示了有關卷積神經網絡可視化熱力圖的幾篇論文之間的關係。文章左上角可見這篇文章的關鍵——類激活映射(CAM):

以下是完整類激活映射論文的連結:Zhou et al. 2016 「Learning Deep Features for DiscriminativeLocalization.」

此處特別推薦查看圖1和圖2。

CAM:類激活映射

類激活映射結構

類激活映射背後的原理是利用一種特殊的卷積神經網絡結構生成可視化熱力圖。

參考:this post for a review of convolutional neural networks

其結構如下:卷積層,全局池化層,然後是一個輸出分類判斷的全連接層。

在以上示意圖中,可以看到一些通用的卷積層,形成了「倒數第二個卷積層」(即網絡中倒數第二層,也是卷積層的最後一層)。在這個「倒數第二個卷積層」中存在K特徵圖。在這個示意圖中,對於特徵映射A1、A2和A3, K = 3。

但實際上K可以是任何值——例如,可能會有64個或512個特徵映射。

根據文章中的標註,特徵圖高度為v和寬度為u:

全局池化層 (GAP)

全局池化層是通過對特徵圖中的數字求平均值,從而將特徵圖轉換為單個數字。若有K=3個特徵圖,則在全局池化之後,我們將得到K=3個數字。這三個數字用上圖中的三個小正方形表示:

以下是用於描述全局池化層的標註符號:

因此,在全局池化中,對特徵圖Aij的元素進行求和,從i =1到u(全寬),從j = 1到v(全高),然後除以特徵圖中的元素總數,Z = uv。

全連接層和分類數

在執行全局池化後,我們將得到K個數字。通過全連接層將這K個數字轉換為分類判斷:

請注意,為避免混淆繪圖,圖中並未顯示全連接層中的每個權重。實際上,紅色數字(由GAP(A1)輸出)通過權重連接到每個輸出類,綠色數字(由GAP(A2)輸出)通過權重連接到每個輸出類,藍色數字(由GAP(A3)輸出)通過權重連接到每個輸出類。

參考:this post for review offully-connected layers.

僅看「貓」輸出類上,有三個權重,w1、w2和w3,這三個權重將全局池化輸出連接到「貓」輸出節點。使用上圖所示的方程為"貓"類生成一個分數y^貓,對應於y^貓 = (w1)(紅色)+ (w2)(綠色)+(w3)(藍色)。

類激活映射

現在完成了整個類激活映射結構,從輸入圖像到分類數。最後一步是得到類激活映射可視化熱力圖,步驟如下:

這看起來很像計算y^貓分數的方法,但不同之處在於,我們不是將權重w1、w2和w3乘以特徵圖Ak上的全局池化層生成的單個數字,而是直接將權重乘以特徵圖。因此,雖然分數的輸出是數字,但是類激活映射實際輸出的是數字網格。而這個數字網格就是熱力圖!

總結

下面是一頁草圖,總結了整篇類激活映射論文:

留言 點讚 關注

我們一起分享AI學習與發展的乾貨

歡迎關注全平臺AI垂類自媒體 「讀芯術」

相關焦點

  • 應用豐富的「卷積神經網絡」技術,怎樣實現了圖像識別?
    解決這一問題的方法之一是利用神經網絡。理論上,我們可以利用卷積神經網絡來分析圖像;但實際上從計算的角度來看,這樣做的成本非常高。舉例來說,即使是一個處理一張很小的圖像(假設是30*30像素)的卷積神經網絡,仍需要五十萬的參數和900個輸入。
  • 梯度上升可視化卷積神經網絡
    接下來,我們使用這張噪聲圖作為CNN網絡的輸入向前傳播,然後取得其在網絡中第 i 層 j 個卷積核的激活 a_ij(x),然後做一個反向傳播計算 delta a_i(x)/delta x 的梯度,最後我們把該噪聲圖的卷積核梯度來更新噪聲圖。目標是希望通過改變每個像素的顏色值以增加對該卷積核的激活,這裡就使用了梯度上升法:其中 itselong 為梯度上升的學習率。
  • 卷積神經網絡(CNN)新手指南
    系統中的特定成員可以完成特定任務這種理念(神經細胞在視覺皮層中尋找特定的特徵)也能很好地應用在機器學習上,這也是卷積神經網絡的基礎。架構對於捲曲神經網絡更詳細的介紹是將圖片通過一系列的卷積、非線性、池(採樣)、全連接層,然後得到一個輸出。正如我們前面所說的,輸出是一個類或者一個圖像類別的可能性概率。現在,困難的部分是了解每一層的任務。
  • 神奇GIF動畫讓你秒懂各種深度學習卷積神經網絡操作原理
    卷積神經網絡是近年發展起來,並引起廣泛重視的一種高效識別方法。20世紀60年代,Hubel和Wiesel在研究貓腦皮層中用於局部敏感和方向選擇的神經元時發現其獨特的網絡結構可以有效地降低反饋神經網絡的複雜性,繼而提出了卷積神經網絡(Convolutional Neural Networks-簡稱CNN)。
  • 卷積神經網絡中的參數共享/權重複制
    但是了解這個簡單的概念有助於更廣泛地理解卷積神經網絡的內部。卷積神經網絡(cnn)能夠使那些通過網絡饋送的圖像在進行仿射變換時具有不變性。 這個特點提供了識別偏移圖案、識別傾斜或輕微扭曲的圖像的能力。仿射不變性的這些特徵是由於CNN架構的三個主要屬性而引入的。
  • 圖像識別技術——卷積神經網絡CNN詳解
    神經網絡與卷積神經網絡神經網絡對於各種各樣的數據都具有一個很強的非線性擬合能力,但是在語音、圖像這類「raw data」數據處理上,我們遲遲得不到突破。這些數據屬於人類一出生就能接受到的信息,在這方面數據,我們很難用機器學習的方法去驅動產出很好的效果。
  • 卷積神經網絡超詳細總結
    1)網絡結構**卷積神經網絡整體架構:**卷積神經網絡是一種多層的監督學習神經網絡,隱含層的卷積層和池採樣層是實現卷積神經網絡特徵提取功能的核心模塊。該網絡模型通過採用梯度下降法最小化損失函數對網絡中的權重參數逐層反向調節,通過頻繁的迭代訓練提高網絡的精度。
  • 深度學習入門:淺析卷積神經網絡
    卷積神經網絡的每一層都將3維的輸入數據變化為神經元3維的激活數據並輸出。在下圖中,紅色的輸入層代表輸入圖像,所以它的寬度和高度就是圖像的寬度和高度,它的深度是3(代表了RGB 3種顏色通道)。圖10 卷積神經網絡簡化結構卷積神經網絡主要由這幾類層構成:輸入層、卷積層(Convolution),激活函數(Activation,CNN中一般使用ReLU
  • 基於卷積神經網絡的目標檢測算法簡介
    什麼是卷積神經網絡?卷積神經網絡是一個層次模型,主要包括輸入層,卷積層,池化層、全連接層以及輸出層。卷積神經網絡是專門針對圖像而設計,主要特點在於卷積層的特徵是由前一層的局部特徵通過卷積共享的權重得到。
  • 如何可視化卷積網絡分類圖像時關注的焦點
    Grad-CAM 利用卷積網絡最後一個特徵圖的信息,並加權對應的梯度而構建模型分類的熱力圖,通過該熱力圖,我們可以清楚地了解哪一塊區域對於類別是最重要的。你在訓練神經網絡進行圖片分類時,有沒有想過網絡是否就是像人類感知信息一樣去理解圖像?這個問題很難回答,因為多數情況下深度神經網絡都被視作黑箱。我們餵給它輸入數據進而得到輸出。整個流程如果出現問題很難去調試。
  • 「範例卷積神經網絡」和信息最大化
    這一方法也能被理解為「卷積神經網絡範例」。本文內容摘要:本文對「範例卷積神經網絡」的訓練方法僅作了簡單簡單的概述,所以如果想要獲得更多、更真實的信息,請閱讀論文原文。本文簡要介紹了「變分信息最大化」,並將其運用到了「範例卷積神經網絡」的案例中。
  • 卷積神經網絡(CNN)介紹與實踐
    - 來源:http://cs231n.github.io/classification/為了「教會」一種算法如何識別圖像中的對象,我們使用特定類型的人工神經網絡:卷積神經網絡(CNN)。他們的名字源於網絡中最重要的一個操作:卷積。卷積神經網絡受到大腦的啟發。
  • 卷積神經網絡新手指南之二
    卷積神經網絡新手指南之二引言本文將進一步探討有關卷積神經網絡的更多細節,註:以下文章中部分內容較為複雜,為了保證其簡明性降層通過在前向傳播過程中將其設置為零在該層中隨機「拋棄」一些激活,就是這麼簡單。在這個過程中這樣做有什麼好處呢?在某種程度上,它迫使網絡變成「多餘」的。即使一些激活在過程中被拋棄,神經網絡也應該能夠對特定樣本提供正確的分類或者輸出。它確保網絡對於訓練數據不會過於「合適」,從而有助於緩解過度擬合的問題。重要的一個這一層只在訓練過程中使用,而不是在測試中。
  • 人工智慧黑盒揭秘:深度神經網絡可視化技術
    雲腦 Deepro 採用的 CNN 可視化作為最有效的神經網絡之一,CNN(Convolutional Neural Network, 卷積神經網絡)解決了大量複雜的機器學習實際問題。CNN 被廣泛應用於圖像識別,語音識別,語義識別等系統。
  • 卷積神經網絡理解(一):濾波器的意義
    卷積神經網絡的發展二. 卷積神經網絡的重要性三. 卷積神經網絡與圖像識別四.濾波器一.卷積神經網絡的發展卷積神經網絡受到視覺細胞研究的啟發,1962年,Hubel和Wiesel發現初級視覺皮層中的神經元會響應視覺環境中特定的簡單特徵(比如有向的邊等)。
  • 一文讀懂卷積神經網絡工作原理
    卷積神經網絡(Convolutional Neural Network, CNN)是人工神經網絡的一種,是當下語音分析和圖像識別領域的研究熱點。這篇文章用最簡明的語言和最直觀的圖像,帶你入門CNN。準備好了嗎?
  • 大話卷積神經網絡CNN,小白也能看懂的深度學習算法教程,全程乾貨...
    更簡單來說,多層神經網絡做的步驟是:特徵映射到值。特徵是人工挑選。深度學習做的步驟是 信號->特徵->值。特徵是由網絡自己選擇。如下圖所示:人工神經網絡可以映射任意複雜的非線性關係,具有很強的魯棒性、記憶能力、自學習等能力,在分類、預測、模式識別等方面有著廣泛的應用。四、卷積神經網絡4.1、CNN定義主角登場,其他人退讓!!!
  • 反思卷積神經網絡:圖像角度泛化上的困難重重
    毫無疑問,卷積神經網絡在圖像處理及周邊領域的開發進程和研究突破中發揮著重要作用。 但是,這不代表卷積神經網絡表現完美。 研究人員經常會遇到一個問題:他們往往由於過於追求理論和完美數據集而深陷其中。然而事與願違,要求數據準確度到小數點後幾位其實往往與現實情況中圖像處理的實際用處恰恰相反。
  • 神經網絡中的激活函數
    什麼是神經網絡激活函數?激活函數有助於決定我們是否需要激活神經元。如果我們需要發射一個神經元那麼信號的強度是多少。激活函數是神經元通過神經網絡處理和傳遞信息的機制為什麼在神經網絡中需要一個激活函數?在神經網絡中,z是輸入節點與節點權值加上偏差的乘積。
  • 基於PVANet卷積神經網絡模型的交通標誌識別算法
    作者:周蘇,支雪磊,劉懂,寧皓,蔣連新,石繁槐 PVANet(performance vs accuracy network)卷積神經網絡用於小目標檢測的檢測能力較弱。結果表明, 所構建的卷積神經網絡具有優秀的小目標物體檢測能力, 相應的交通標誌檢測算法可以實現較高的準確率。 計算機目標檢測是指計算機根據視頻、圖像信息對目標物體的類別與位置的檢測, 是計算機視覺研究領域的基本內容。隨著硬體和軟體技術的發展, 尤其是基於卷積神經網絡目標檢測算法的普及應用, 計算機目標檢測的準確率及速度都有了很大提高[1]。