99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

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

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

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

使用LIME解釋CNN

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

掃碼添加小助手

加入工程師交流群

作者:Mehul Gupta

來(lái)源:DeepHub IMBA

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

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

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

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

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

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

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

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

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

解釋白盒模型

就圖像而言,上述方法的主要障礙是如何生成隨機(jī)樣本,因?yàn)樵谶@種情況下匯總統(tǒng)計(jì)將沒(méi)有任何用處。


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

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

然后創(chuàng)建一個(gè)簡(jiǎn)單的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對(duì)象,該對(duì)象使用explain_instance解釋特定示例的輸出。這里我們從驗(yàn)證集中選取了第10個(gè)樣本,Get_image_and_mask()返回模型與原始圖像一起預(yù)測(cè)的高亮區(qū)域。讓我們看看一些樣本,它們實(shí)際上是1(隨機(jī)圖像),但檢測(cè)到為0(帶白框的隨機(jī)圖像)5f578f74-7045-11ed-b116-dac502259ad0.png5f63c582-7045-11ed-b116-dac502259ad0.png可以看到下圖有黃色的突出顯示區(qū)域,這張圖片的標(biāo)簽為1,但被標(biāo)記為0,這是因?yàn)楦吡溜@示的區(qū)域看起來(lái)像一個(gè)矩形,因此讓模型感到困惑,也就是說(shuō)模型錯(cuò)吧黃色標(biāo)記的部分當(dāng)成了我們需要判斷的白色矩形遮蔽。5f8d5320-7045-11ed-b116-dac502259ad0.png5f99bc14-7045-11ed-b116-dac502259ad0.png再看看上面兩個(gè)圖,與前面的例子類似,模型也預(yù)測(cè)了class=0。通過(guò)黃色區(qū)域可以判斷,某種形狀可能被模型曲解為白色方框了。

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

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

    關(guān)注

    66

    文章

    8503

    瀏覽量

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

    關(guān)注

    3

    文章

    354

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

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

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

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

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

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

    。 `clahe.py 但是上面的代碼和相關(guān)的邏輯暫時(shí)就停在這里了。 后來(lái)又過(guò)了幾天,嘗試一些有關(guān)cnn的實(shí)現(xiàn)。 記得在綜合的時(shí)候要將這個(gè)文件里面的模塊名替換一下: 上面雖然綜合通過(guò),但是還有一些警告。后面有時(shí)間的話
    發(fā)表于 06-11 22:35

    算力領(lǐng)域常用名詞解釋

    本文系統(tǒng)地整理和解釋了算力領(lǐng)域中常用的數(shù)十個(gè)關(guān)鍵名詞,并按照以下維度進(jìn)行了分類:基礎(chǔ)概念、系統(tǒng)架構(gòu)、硬件架構(gòu)、基礎(chǔ)運(yùn)算類型、計(jì)算模式、相關(guān)軟件架構(gòu)與部署模式、浮點(diǎn)精度格式、算力類型、算力關(guān)聯(lián)與服務(wù)
    的頭像 發(fā)表于 04-07 11:21 ?496次閱讀
    算力領(lǐng)域常用名詞<b class='flag-5'>解釋</b>

    一個(gè)過(guò)零檢測(cè)電路,但有部分電路沒(méi)看明白,有大神可以詳細(xì)解釋一下嗎

    一個(gè)過(guò)零檢測(cè)電路,但是沒(méi)明白粉色框部分有什么作用,有大神可以詳細(xì)解釋一下嗎
    發(fā)表于 03-20 00:40

    無(wú)法轉(zhuǎn)換TF OD API掩碼RPGA模型怎么辦?

    \'/Tensorflow-Object-Detection-API-train-custom-Mask-R-CNN-model-master/inference_graph/saved_model\' >
    發(fā)表于 03-06 06:44

    大模型領(lǐng)域常用名詞解釋(近100個(gè))

    本文總結(jié)了大模型領(lǐng)域常用的近100個(gè)名詞解釋,并按照模型架構(gòu)與基礎(chǔ)概念,訓(xùn)練方法與技術(shù),模型優(yōu)化與壓縮,推理與應(yīng)用,計(jì)算與性能優(yōu)化,數(shù)據(jù)與標(biāo)簽,模型評(píng)估與調(diào)試,特征與數(shù)據(jù)處理,倫理與公平性、其他
    的頭像 發(fā)表于 02-19 11:49 ?784次閱讀
    大模型領(lǐng)域常用名詞<b class='flag-5'>解釋</b>(近100個(gè))

    小白學(xué)解釋性AI:從機(jī)器學(xué)習(xí)到大模型

    科學(xué)AI需要可解釋性人工智能的崛起,尤其是深度學(xué)習(xí)的發(fā)展,在眾多領(lǐng)域帶來(lái)了令人矚目的進(jìn)步。然而,伴隨這些進(jìn)步而來(lái)的是一個(gè)關(guān)鍵問(wèn)題——“黑箱”問(wèn)題。許多人工智能模型,特別是復(fù)雜的模型,如神經(jīng)網(wǎng)
    的頭像 發(fā)表于 02-10 12:12 ?624次閱讀
    小白學(xué)<b class='flag-5'>解釋</b>性AI:從機(jī)器學(xué)習(xí)到大模型

    請(qǐng)解釋什么是雙絞線

    雙絞線是一種常用的通信傳輸介質(zhì),由兩根相互絕緣的金屬導(dǎo)線(通常是銅導(dǎo)線)按一定密度互相絞合在一起組成。以下是關(guān)于雙絞線的詳細(xì)解釋: 一、結(jié)構(gòu)特點(diǎn) 導(dǎo)線材料:雙絞線通常由兩根22~26號(hào)絕緣銅導(dǎo)線組成
    的頭像 發(fā)表于 01-17 10:53 ?1077次閱讀

    FPAG技術(shù)問(wèn)題合集

    今天給大俠帶來(lái)在FPAG技術(shù)交流群里平時(shí)討論的問(wèn)題答疑合集,以后還會(huì)多推出本系列,話不多說(shuō),上貨。 交流問(wèn)題 ? Q :大佬們,誰(shuí)做過(guò)FPGA 的一維卷積神經(jīng)網(wǎng)絡(luò)(1D-CNN)算法加速么?除了
    的頭像 發(fā)表于 12-07 10:05 ?678次閱讀

    虛擬主機(jī)名詞解釋

    虛擬主機(jī)(Virtual Host/Virtual Server)是一種在單一主機(jī)或主機(jī)群上,實(shí)現(xiàn)多網(wǎng)域服務(wù)的方法,可以運(yùn)行多個(gè)網(wǎng)站或服務(wù)的技術(shù)。以下是關(guān)于虛擬主機(jī)的詳細(xì)解釋,rak小編為您整理發(fā)布虛擬主機(jī)名詞解釋
    的頭像 發(fā)表于 10-25 09:26 ?723次閱讀

    EAK解釋了如何為船舶推進(jìn)器應(yīng)用選擇合適的0電感水冷功率電阻器

    在過(guò)去五年中,英國(guó)海事部門(mén)的生產(chǎn)力迅速提高。在建造或翻新船舶時(shí)選擇要包含的正確組件對(duì)于確保生產(chǎn)力和效率保持較高水平至關(guān)重要。在這里,功率電阻器制造商 EAK 的項(xiàng)目總監(jiān)解釋了如何為您的船舶應(yīng)用選擇合適的電阻器。
    的頭像 發(fā)表于 10-09 07:50 ?500次閱讀
    EAK<b class='flag-5'>解釋</b>了如何為船舶推進(jìn)器應(yīng)用選擇合適的0電感水冷功率電阻器

    UAF42(POLE-PAIR)在中文中的具體解釋是什么?

    請(qǐng)問(wèn)這個(gè)詞(POLE-PAIR)在中文中的具體解釋是什么?該如何理解?它在電路設(shè)計(jì)中有什么通途?
    發(fā)表于 08-07 08:26

    網(wǎng)線b類接線順序詳細(xì)解釋

    網(wǎng)線B類接線順序,即按照T568B標(biāo)準(zhǔn)進(jìn)行接線的順序,具體為:白橙、橙、白綠、藍(lán)、白藍(lán)、綠、白棕、棕。這個(gè)順序是指網(wǎng)線兩端水晶頭中8根線的排列順序。以下是對(duì)網(wǎng)線B類接線順序的詳細(xì)解釋: 一、網(wǎng)線B類
    的頭像 發(fā)表于 07-19 10:15 ?1.6w次閱讀

    杰理JL芯片絲印解釋, 如何通過(guò)絲印來(lái)判斷真實(shí)型號(hào),供參考

    ) 為什么會(huì)這樣呢,因?yàn)槟且淮帜付际巧a(chǎn)日期批號(hào)等組成的,所以直接搜是查不到的,以下分解杰理的絲印解釋,是有規(guī)律的,分解完后就可以判斷具體型號(hào)了。 以下方法來(lái)源:Chip markings
    的頭像 發(fā)表于 07-17 16:26 ?4382次閱讀
    杰理JL芯片絲印<b class='flag-5'>解釋</b>, 如何通過(guò)絲印來(lái)判斷真實(shí)型號(hào),供參考