0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

CNN的三種可視化方法介紹

智能感知與物聯(lián)網(wǎng)技術研究所 ? 來源:通信信號處理研究所 ? 作者:通信信號處理研究 ? 2020-12-29 11:49 ? 次閱讀

導讀

神經(jīng)網(wǎng)絡進行可視化分析不管是在學習上還是實際應用上都有很重要的意義,基于此,本文介紹了3種CNN的可視化方法:可視化中間特征圖,可視化卷積核,可視化圖像中類激活的熱力圖。每種方法均附有相關代碼詳解。

引言

有一些同學認為深度學習、神經(jīng)網(wǎng)絡什么的就是一個黑盒子,沒辦法、也不需要分析其內部的工作方式。個人認為這種說法“謬之千里”。

首先,站在自動特征提取或表示學習的角度來看,深度學習還是很好理解,即通過一個層級結構,由簡單到復雜逐步提取特征,獲得易于處理的高層次抽象表示。其次,現(xiàn)在也已經(jīng)有很多方法對神經(jīng)網(wǎng)絡進行分析了,特別是一些可視化方法,可以很直觀的展示深度模型的特征提取過程。

對神經(jīng)網(wǎng)絡進行可視化分析不管是在學習上還是實際應用上都有很重要的意義,基于此,本文將介紹以下3種CNN的可視化方法:

可視化中間特征圖。

可視化卷積核。

可視化圖像中類激活的熱力圖。

可視化中間特征圖

這種方法很簡單,把網(wǎng)絡中間某層的輸出的特征圖按通道作為圖片進行可視化展示即可,如下述代碼所示:

import matplotlib.pyplot as plt
#get feature map of layer_activation
plt.matshow(layer_activation[0, :, :, 4], cmap='viridis')

把多個特征圖可視化后堆疊在一起可以得到與下述類似的圖片。

上圖為某CNN 5-8 層輸出的某喵星人的特征圖的可視化結果(一個卷積核對應一個小圖片)??梢园l(fā)現(xiàn)越是低的層,捕捉的底層次像素信息越多,特征圖中貓的輪廓也越清晰。越到高層,圖像越抽象,稀疏程度也越高。這符合我們一直強調的特征提取概念。

可視化卷積核

想要觀察卷積神經(jīng)網(wǎng)絡學到的過濾器,一種簡單的方法是獲取每個過濾器所響應的視覺模式。我們可以將其視為一個優(yōu)化問題,即從空白輸入圖像開始,將梯度上升應用于卷積神經(jīng)網(wǎng)絡的輸入圖像,讓某個過濾器的響應最大化,最后得到的圖像是選定過濾器具有較大響應的圖像。

核心代碼如下所示(利用Keras框架):

def generate_pattern(layer_name, filter_index, size=150):
layer_output = model.get_layer(layer_name).output
loss = K.mean(layer_output[:, :, :, filter_index])
grads = K.gradients(loss, model.input)[0]
grads /= (K.sqrt(K.mean(K.square(grads))) + 1e-5)
iterate = K.function([model.input], [loss, grads])

input_img_data = np.random.random((1, size, size, 3)) * 20 + 128.
step = 1.
for i in range(40):
loss_value, grads_value = iterate([input_img_data])
input_img_data += grads_value * step

img = input_img_data[0]
return deprocess_image(img)

將輸入圖片張量轉換回圖片后進行可視化,可以得到與下述類似的圖片:

block1_conv1 層的過濾器模式

隨著層數(shù)的加深,卷積神經(jīng)網(wǎng)絡中的過濾器變得越來越復雜,越來越精細。模型第一層( block1_conv1 )的過濾器對應簡單的方向邊緣和顏色,高層的過濾器類似于自然圖像中的紋理:羽毛、眼睛、樹葉等。

可視化圖像中類激活的熱力圖

即顯示原始圖片的不同區(qū)域對某個CNN輸出類別的“貢獻”程度。

可以看到,大象頭部對“大象”這個類別的“貢獻”程度較高,而且這種方法似乎可以在一定程度上進行無監(jiān)督的目標檢測。

下面是書中原文,可能有點繞口。

我們將使用的具體實現(xiàn)方式是“Grad-CAM: visual explanations from deep networks via gradient-based localization”這篇論文中描述的方法。這種方法非常簡單:給定一張輸入圖像,對于一個卷積層的輸出特征圖,用類別相對于通道的梯度對這個特征圖中的每個通道進行加權。直觀上來看,理解這個技巧的一種方法是,你是用“每個通道對類別的重要程度”對“輸入圖像對不同通道的激活強度”的空間圖進行加權,從而得到了“輸入圖像對類別的激活強度”的空間圖。

這里談一下我的理解,給定線性函數(shù) ,y為類別, 等等為輸入??梢钥吹竭@里 對y的貢獻為 ,恰好為 。當然了,深度模型中有非線性激活函數(shù),不能簡化為一個線性模型,所以這只是啟發(fā)性的理解。

代碼如下所示:

african_elephant_output = model.output[:, 386]
last_conv_layer = model.get_layer('block5_conv3')
grads = K.gradients(african_elephant_output, last_conv_layer.output)[0]
pooled_grads = K.mean(grads, axis=(0, 1, 2))
iterate = K.function([model.input],
[pooled_grads, last_conv_layer.output[0]])
pooled_grads_value, conv_layer_output_value = iterate([x])
for i in range(512):
conv_layer_output_value[:, :, i] *= pooled_grads_value[i]
heatmap = np.mean(conv_layer_output_value, axis=-1)
heatmap = np.maximum(heatmap, 0)
heatmap /= np.max(heatmap)
plt.matshow(heatmap)

得到的熱力圖如下所示:

經(jīng)下述代碼處理后,可以得到本節(jié)開始時的圖片。

import cv2
img = cv2.imread(img_path)
heatmap = cv2.resize(heatmap, (img.shape[1], img.shape[0]))
heatmap = np.uint8(255 * heatmap)
heatmap = cv2.applyColorMap(heatmap, cv2.COLORMAP_JET)
superimposed_img = heatmap * 0.4 + img
cv2.imwrite('/Users/fchollet/Downloads/elephant_cam.jpg', superimposed_img)

原文標題:CNN的一些可視化方法!

文章出處:【微信公眾號:通信信號處理研究所】歡迎添加關注!文章轉載請注明出處。

責任編輯:haq

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴

原文標題:CNN的一些可視化方法!

文章出處:【微信號:tyutcsplab,微信公眾號:智能感知與物聯(lián)網(wǎng)技術研究所】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    可視化建筑建模特點

    可視化建筑建模是一利用計算機技術對建筑物進行立體表達和展示的過程,是建筑設計和規(guī)劃中不可或缺的重要環(huán)節(jié)。在當今數(shù)字化時代,
    的頭像 發(fā)表于 07-23 11:50 ?447次閱讀

    如何實現(xiàn)維地圖可視化交互系統(tǒng)

    維地圖可視化 交互系統(tǒng)是一基于維地圖技術的交互式應用程序,可以呈現(xiàn)地理信息和空間數(shù)據(jù)的立體展示,并提供用戶友好的交互功能。以下是古河
    的頭像 發(fā)表于 07-19 18:20 ?800次閱讀

    可視化運用的主要技術

    可視化技術是一強大的工具,可用于呈現(xiàn)復雜的數(shù)據(jù)和概念,使人們能夠更直觀地理解信息。在當今數(shù)字化時代,可視化已經(jīng)成為許多領域中不可或
    的頭像 發(fā)表于 07-19 13:56 ?221次閱讀

    可視化的魅力與應用

    可視化是一強大的工具,它融合了藝術、科學和技術,通過在維空間中呈現(xiàn)數(shù)據(jù)、概念和想法,為人們提供了一直觀而生動的方式來理解和探索信息
    的頭像 發(fā)表于 07-17 14:19 ?209次閱讀

    如何實現(xiàn)園區(qū)大屏可視化?

    孿生可視化 構建平臺利用Web可視化技術對現(xiàn)實場景進行仿真,實現(xiàn)園區(qū)級業(yè)務場景 的可視化呈現(xiàn),助力企業(yè)快速完成項目的實施。實現(xiàn)園區(qū)場景立體可先,極致
    的頭像 發(fā)表于 06-19 15:39 ?367次閱讀
    如何實現(xiàn)園區(qū)大屏<b class='flag-5'>可視化</b>?

    可視化系統(tǒng)平臺介紹及優(yōu)勢

    可視化 系統(tǒng)平臺是一基于維技術開發(fā)的軟件系統(tǒng),主要用于實現(xiàn)對維空間中數(shù)據(jù)、模型、場景等內容的
    的頭像 發(fā)表于 06-12 16:02 ?566次閱讀
    <b class='flag-5'>三</b>維<b class='flag-5'>可視化</b>系統(tǒng)平臺<b class='flag-5'>介紹</b>及優(yōu)勢

    態(tài)勢數(shù)據(jù)可視化技術有哪些

    智慧華盛恒輝態(tài)勢數(shù)據(jù)可視化技術是一將數(shù)據(jù)以圖形、圖像、動畫等視覺形式展現(xiàn)出來的技術,特別是在處理和分析態(tài)勢數(shù)據(jù)時,該技術能夠將復雜的數(shù)據(jù)轉化為直觀、易于理解的視覺表現(xiàn)。以下是態(tài)勢數(shù)據(jù)可視化技術
    的頭像 發(fā)表于 06-11 15:47 ?340次閱讀

    智慧大屏是如何實現(xiàn)數(shù)據(jù)可視化的?

    智慧大屏,作為數(shù)據(jù)可視化的重要載體,已在城市管理、交通監(jiān)控、商業(yè)運營等領域廣泛應用。本文旨在闡述智慧大屏實現(xiàn)數(shù)據(jù)可視化的關鍵技術和方法,包括數(shù)據(jù)源管理、數(shù)據(jù)處理、視覺編碼、用戶界面與交互設計等。
    的頭像 發(fā)表于 06-04 15:02 ?525次閱讀
    智慧大屏是如何實現(xiàn)數(shù)據(jù)<b class='flag-5'>可視化</b>的?

    可視化數(shù)據(jù)大屏的設計原理和技巧

    可視化數(shù)據(jù)大屏設計面向交通、園區(qū)、城市、建筑、應急等領域的客戶,以孿生可視能力賦能,提供行業(yè)解決方案。雙渲染引擎,1:1還原真實世界,在模型運行流暢的基礎上提供極佳的視覺效果。今天,古河云
    的頭像 發(fā)表于 05-30 17:09 ?449次閱讀

    可視化的優(yōu)勢有哪些?

    可視化 是一強大的工具,能夠幫助人們更好地理解復雜數(shù)據(jù)和概念。它通過在維空間中呈現(xiàn)信息,使觀察者能夠以更直觀、更深入的方式探索數(shù)據(jù)。以下是
    的頭像 發(fā)表于 05-28 17:03 ?601次閱讀
    <b class='flag-5'>三</b>維<b class='flag-5'>可視化</b>的優(yōu)勢有哪些?

    智慧園區(qū)可視化的重要性!

    呈現(xiàn),助力企業(yè)快速完成項目的實施。古河云科技小編將從介紹、發(fā)展和應用個方面,探討智慧園區(qū)可視化的重要性和價值。 可視化是一
    的頭像 發(fā)表于 05-15 16:38 ?368次閱讀

    可視化是怎么做的?特點有哪些?

    可視化深入我們的生活當中,它能直觀并且精準的展示企業(yè)的場景情況,但是很多小伙伴并不清楚可視化是怎么做的?特點有哪些?今天,古河云科技小編就來給大家聊一聊這一問題。
    的頭像 發(fā)表于 04-28 15:12 ?445次閱讀
    <b class='flag-5'>三</b>維<b class='flag-5'>可視化</b>是怎么做的?特點有哪些?

    FUXA基于Web的過程可視化軟件案例

    FUXA——基于Web的過程可視化軟件
    發(fā)表于 04-24 18:32 ?0次下載

    態(tài)勢數(shù)據(jù)可視化技術有哪些

    智慧華盛恒輝態(tài)勢數(shù)據(jù)可視化技術是一將復雜、動態(tài)的態(tài)勢數(shù)據(jù)以直觀、易于理解的方式展現(xiàn)出來的技術手段。以下是幾種主要的態(tài)勢數(shù)據(jù)可視化技術: 網(wǎng)絡安全態(tài)勢指標可視化分析系統(tǒng)及
    的頭像 發(fā)表于 04-22 15:17 ?367次閱讀

    數(shù)字時代:關于數(shù)據(jù)可視化的定義/優(yōu)勢及示例

    毫無意義和難以管理。這就是數(shù)據(jù)可視化發(fā)揮關鍵作用的地方。 數(shù)據(jù)可視化的定義 “數(shù)據(jù)可視化”的定義是廣泛的。但大多數(shù)定義側重于數(shù)據(jù)與計算機技術之間的聯(lián)系,以便將數(shù)據(jù)轉換為視覺形式。不管如何,數(shù)據(jù)的
    的頭像 發(fā)表于 12-12 18:04 ?803次閱讀
    數(shù)字時代:關于數(shù)據(jù)<b class='flag-5'>可視化</b>的定義/優(yōu)勢及示例