日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

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

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

使用LIME解釋CNN

穎脈Imgtec ? 2022-11-30 15:45 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

作者:Mehul Gupta

來源:DeepHub IMBA

我們已經(jīng)介紹過很多解析機器學(xué)習(xí)模型的方法,例如如pdp、LIME和SHAP,但是這些方法都是用在表格數(shù)據(jù)的,他們能不能用在神經(jīng)網(wǎng)絡(luò)模型呢?今天我們來LIME解釋CNN。

圖像與表格數(shù)據(jù)集有很大不同(顯然)。如果你還記得,在之前我們討論過的任何解釋方法中,我們都是根據(jù)特征重要性,度量或可視化來解釋模型的。比如特征“A”在預(yù)測中比特征“B”有更大的影響力。但在圖像中沒有任何可以命名的特定特征,那么怎么進行解釋呢?

一般情況下我們都是用突出顯示圖像中模型預(yù)測的重要區(qū)域的方法觀察可解釋性,這就要求了解如何調(diào)整LIME方法來合并圖像,我們先簡單了解一下LIME是怎么工作的。

5e9bfc46-7045-11ed-b116-dac502259ad0.png

LIME在處理表格數(shù)據(jù)時為訓(xùn)練數(shù)據(jù)集生成摘要統(tǒng)計:

使用匯總統(tǒng)計生成一個新的人造數(shù)據(jù)集

從原始數(shù)據(jù)集中隨機提取樣本

根據(jù)與隨機樣本的接近程度為生成人造數(shù)據(jù)集中的樣本分配權(quán)重

用這些加權(quán)樣本訓(xùn)練一個白盒模型

解釋白盒模型

就圖像而言,上述方法的主要障礙是如何生成隨機樣本,因為在這種情況下匯總統(tǒng)計將沒有任何用處。


如何生成人造數(shù)據(jù)集?最簡單的方法是,從數(shù)據(jù)集中提取一個隨機樣本,隨機打開(1)和關(guān)閉(0)一些像素來生成新的數(shù)據(jù)集但是通常在圖像中,出現(xiàn)的對象(如狗vs貓的分類中的:狗&貓)導(dǎo)致模型的預(yù)測會跨越多個像素,而不是一個像素。所以即使你關(guān)掉一兩個像素,它們看起來仍然和我們選擇樣本非常相似。所以這里需要做的是設(shè)置一個相鄰像素池的ON和OFF,這樣才能保證創(chuàng)造的人工數(shù)據(jù)集的隨機性。所以將圖像分割成多個稱為超像素的片段,然后打開和關(guān)閉這些超像素來生成隨機樣本。讓我們使用LIME進行二進制分類來解釋CNN的代碼。例如我們有以下的兩類數(shù)據(jù)。類別0: 帶有任意大小的白色矩形的隨機圖像5ecef33a-7045-11ed-b116-dac502259ad0.png5efbf4d4-7045-11ed-b116-dac502259ad0.png類別1:隨機生成的圖像(沒有白色矩形)5f258790-7045-11ed-b116-dac502259ad0.png

5f2fdf7e-7045-11ed-b116-dac502259ad0.png

然后創(chuàng)建一個簡單的CNN模型


LIME示例

%matplotlib inline
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
from keras.layers import Input, Dense, Embedding, Flatten
from keras.layers import SpatialDropout1D
from keras.layers.convolutional import Conv2D, MaxPooling2D
from keras.models import Sequential
from randimage import get_random_image, show_array
import random
import pandas as pd
import numpy as np
import lime
from lime import lime_image
from skimage.segmentation import mark_boundaries

#preparing above dataset artificially
training_dataset = []
training_label = []
for x in range(200):

img_size = (64,64)
img = get_random_image(img_size)

a,b = random.randrange(0,img_size[0]/2),random.randrange(0,img_size[0]/2)
c,d = random.randrange(img_size[0]/2,img_size[0]),random.randrange(img_size[0]/2,img_size[0])

value = random.sample([True,False],1)[0]
if value==False:
img[a:c,b:d,0] = 100
img[a:c,b:d,1] = 100
img[a:c,b:d,2] = 100

training_dataset.append(img)
training_label.append(value)

#training baseline CNN model
training_label = [1-x for x in training_label]
X_train, X_val, Y_train, Y_val = train_test_split(np.array(training_dataset).reshape(-1,64,64,3),np.array(training_label).reshape(-1,1), test_size=0.1, random_state=42)

epochs = 10
batch_size = 32
model = Sequential()
model.add(Conv2D(32, kernel_size=3, padding='same', activation='relu'))
model.add(MaxPooling2D(pool_size=2))
model.add(Flatten())
# Output layer
model.add(Dense(32,activation='relu'))
model.add(Dense(1, activation='sigmoid'))
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
model.fit(X_train, Y_train, validation_data=(X_val, Y_val), epochs=epochs, batch_size=batch_size, verbose=1)

讓我們引入LIME

x=10
explainer = lime_image.LimeImageExplainer(random_state=42)
explanation = explainer.explain_instance(
X_val[x],
model.predict,top_labels=2)
)

image, mask = explanation.get_image_and_mask(0, positives_only=True,
hide_rest=True)

上面的代碼片段需要一些解釋我們初始化了LimeImageExplainer對象,該對象使用explain_instance解釋特定示例的輸出。這里我們從驗證集中選取了第10個樣本,Get_image_and_mask()返回模型與原始圖像一起預(yù)測的高亮區(qū)域。讓我們看看一些樣本,它們實際上是1(隨機圖像),但檢測到為0(帶白框的隨機圖像)5f578f74-7045-11ed-b116-dac502259ad0.png5f63c582-7045-11ed-b116-dac502259ad0.png可以看到下圖有黃色的突出顯示區(qū)域,這張圖片的標(biāo)簽為1,但被標(biāo)記為0,這是因為高亮顯示的區(qū)域看起來像一個矩形,因此讓模型感到困惑,也就是說模型錯吧黃色標(biāo)記的部分當(dāng)成了我們需要判斷的白色矩形遮蔽。5f8d5320-7045-11ed-b116-dac502259ad0.png5f99bc14-7045-11ed-b116-dac502259ad0.png再看看上面兩個圖,與前面的例子類似,模型也預(yù)測了class=0。通過黃色區(qū)域可以判斷,某種形狀可能被模型曲解為白色方框了。

這樣我們就可以理解模型導(dǎo)致錯誤分類的實際問題是什么,這就是為什么可解釋和可解釋的人工智能如此重要。

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

    關(guān)注

    67

    文章

    8567

    瀏覽量

    137263
  • cnn
    cnn
    +關(guān)注

    關(guān)注

    3

    文章

    356

    瀏覽量

    23558
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    FPGA實現(xiàn)CNN卷積層的高效窗口生成模塊設(shè)計與驗證

    卷積神經(jīng)網(wǎng)絡(luò)(CNN)可以分為卷積層、池化層、激活層、全鏈接層結(jié)構(gòu),本篇要實現(xiàn)的,就是CNN的卷積層中的window窗。
    的頭像 發(fā)表于 04-15 10:35 ?197次閱讀
    FPGA實現(xiàn)<b class='flag-5'>CNN</b>卷積層的高效窗口生成模塊設(shè)計與驗證

    【米爾全志T153開發(fā)板評測】kws語音關(guān)鍵字識別測試

    /MFCC/ -Ikws/Source/local_NN/ -Ikws/Source/NN/DNN/ -Ikws/Source/NN/DS_CNN/ -Ikws/Source/KWS/KWS_DS_CNN
    發(fā)表于 03-18 00:08

    Modbus產(chǎn)品腳本編輯器“映射關(guān)系”解釋?映射關(guān)系的地址對應(yīng)關(guān)系?

    Modbus產(chǎn)品腳本編輯器“映射關(guān)系”解釋?映射關(guān)系的地址對應(yīng)關(guān)系?
    發(fā)表于 01-20 15:28

    工業(yè)相機的鏡頭參數(shù)在行業(yè)最新標(biāo)準(zhǔn)中是如何解釋

    。51camera機器視覺產(chǎn)品資料查詢平臺工業(yè)鏡頭是用于實現(xiàn)光束變換的鏡頭。該鏡頭的基本功能就是實現(xiàn)光束變換(調(diào)制)。我們來看看看鏡頭的主要參數(shù)行業(yè)標(biāo)準(zhǔn)解釋。1、
    的頭像 發(fā)表于 12-11 17:28 ?914次閱讀
    工業(yè)相機的鏡頭參數(shù)在行業(yè)最新標(biāo)準(zhǔn)中是如何<b class='flag-5'>解釋</b>的

    ESD測試的詳細(xì)解釋

    解釋: 01 定義與目的 ● 定義:ESD測試是模擬操作人員或物體在接觸設(shè)備時產(chǎn)生的放電,以及人或物體對鄰近物體之放電,以檢測被測設(shè)備抵抗靜電放電之干擾能力。 ● 目的:通過ESD測試,可以有效地
    發(fā)表于 11-26 07:37

    自動駕駛中常提的卷積神經(jīng)網(wǎng)絡(luò)是個啥?

    在自動駕駛領(lǐng)域,經(jīng)常會聽到卷積神經(jīng)網(wǎng)絡(luò)技術(shù)。卷積神經(jīng)網(wǎng)絡(luò),簡稱為CNN,是一種專門用來處理網(wǎng)格狀數(shù)據(jù)(比如圖像)的深度學(xué)習(xí)模型。CNN在圖像處理中尤其常見,因為圖像本身就可以看作是由像素排列成的二維網(wǎng)格。
    的頭像 發(fā)表于 11-19 18:15 ?2278次閱讀
    自動駕駛中常提的卷積神經(jīng)網(wǎng)絡(luò)是個啥?

    CNN卷積神經(jīng)網(wǎng)絡(luò)設(shè)計原理及在MCU200T上仿真測試

    CNN算法簡介 我們硬件加速器的模型為Lenet-5的變型,網(wǎng)絡(luò)粗略分共有7層,細(xì)分共有13層。包括卷積,最大池化層,激活層,扁平層,全連接層。下面是各層作用介紹: 卷積層:提取特征。“不全
    發(fā)表于 10-29 07:49

    構(gòu)建CNN網(wǎng)絡(luò)模型并優(yōu)化的一般化建議

    通過實踐,本文總結(jié)了構(gòu)建CNN網(wǎng)絡(luò)模型并優(yōu)化的一般化建議,這些建議將會在構(gòu)建高準(zhǔn)確率輕量級CNN神經(jīng)網(wǎng)絡(luò)模型方面提供幫助。 1)避免單層神經(jīng)網(wǎng)絡(luò):我們清楚神經(jīng)網(wǎng)絡(luò)本身是需要不斷抽象出更高級別的紋理
    發(fā)表于 10-28 08:02

    卷積運算分析

    的數(shù)據(jù),故設(shè)計了ConvUnit模塊實現(xiàn)單個感受域規(guī)模的卷積運算. 卷積運算:不同于數(shù)學(xué)當(dāng)中提及到的卷積概念,CNN神經(jīng)網(wǎng)絡(luò)中的卷積嚴(yán)格意義上是指互相關(guān)運算(Cross-correlation)運算,在公式當(dāng)中只是正負(fù)號不同。
    發(fā)表于 10-28 07:31

    淘寶圖片搜索接口開發(fā)實戰(zhàn):從 CNN 特征提取到商品匹配(附避坑手冊 + 可復(fù)用代碼)

    本文詳解淘寶圖片搜索接口開發(fā)全流程,涵蓋CNN特征提取、商品匹配、參數(shù)配置及400/429等高頻報錯解決方案,附合規(guī)避坑指南與可復(fù)用代碼,助你高效實現(xiàn)圖像搜商品功能。
    的頭像 發(fā)表于 10-21 10:03 ?766次閱讀

    關(guān)于保偏光纖的詳細(xì)解釋

    保偏光纖(Polarization-Maintaining Fiber,簡稱PMF)是一種特殊設(shè)計的光纖,其核心功能是在傳輸過程中保持光的偏振態(tài)不變。以下是關(guān)于保偏光纖的詳細(xì)解釋: 1. 偏振態(tài)
    的頭像 發(fā)表于 09-25 10:13 ?1316次閱讀
    關(guān)于保偏光纖的詳細(xì)<b class='flag-5'>解釋</b>

    養(yǎng)生壺主板用的是阻容降壓,拆了一個養(yǎng)生壺,自己畫了電路圖,解釋不通,沒看明白原理?

    養(yǎng)生壺主板用的是阻容降壓,拆了一個養(yǎng)生壺,自己畫了電路圖,解釋不通,沒看明白原理?
    發(fā)表于 08-01 00:29

    【高云GW5AT-LV60 開發(fā)套件試用體驗】基于開發(fā)板進行深度學(xué)習(xí)實踐,并盡量實現(xiàn)皮膚病理圖片的識別,第四階段

    接第三階段,上次說道要將cnn這個模塊接入到高云自帶的視頻實例里面,于是就開始學(xué)習(xí)和了解這個實例里面的每個模塊的功能,后來發(fā)現(xiàn),除了要看一下高云自己的ip文檔外,還要看很多視頻處理相關(guān)的協(xié)議文檔
    發(fā)表于 07-12 07:58

    【高云GW5AT-LV60 開發(fā)套件試用體驗】基于開發(fā)板進行深度學(xué)習(xí)實踐,并盡量實現(xiàn)皮膚病理圖片的識別,第三階段

    接上回,這次說一說第三階段的進展,一直在想如何將cnn融合進高云以后的視頻案例里面,比如:下圖 上面圖中文件之間的關(guān)系應(yīng)該是這樣的: 一、 完整的視頻數(shù)據(jù)處理流程 根據(jù)這些文件名,我們可以清晰地勾勒
    發(fā)表于 07-06 15:18

    【高云GW5AT-LV60 開發(fā)套件試用體驗】基于開發(fā)板進行深度學(xué)習(xí)實踐,并盡量實現(xiàn)皮膚病理圖片的識別

    。 `clahe.py 但是上面的代碼和相關(guān)的邏輯暫時就停在這里了。 后來又過了幾天,嘗試一些有關(guān)cnn的實現(xiàn)。 記得在綜合的時候要將這個文件里面的模塊名替換一下: 上面雖然綜合通過,但是還有一些警告。后面有時間的話
    發(fā)表于 06-11 22:35
    凉城县| 宝山区| 湖南省| 弥渡县| 龙江县| 福建省| 安远县| 嘉义市| 五常市| 保靖县| 奉新县| 甘泉县| 三江| 盐亭县| 苍溪县| 饶阳县| 稷山县| 武邑县| 湖南省| 鄂伦春自治旗| 田阳县| 崇信县| 棋牌| 大同县| 德庆县| 积石山| 安吉县| 富平县| 松原市| 武宣县| 龙岩市| 彭水| 额济纳旗| 三亚市| 中山市| 衡南县| 镇巴县| 文水县| 崇信县| 双流县| 广德县|