女人荫蒂被添全过程13种图片,亚洲+欧美+在线,欧洲精品无码一区二区三区 ,在厨房拨开内裤进入毛片

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

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

3天內不再提示

使用LIME解釋CNN

Dbwd_Imgtec ? 來源:未知 ? 2022-11-25 11:15 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

作者:Mehul Gupta

來源:DeepHub IMBA


我們已經介紹過很多解析機器學習模型的方法,例如如pdp、LIME和SHAP,但是這些方法都是用在表格數據的,他們能不能用在神經網絡模型呢?今天我們來LIME解釋CNN。

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

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

LIME在處理表格數據時為訓練數據集生成摘要統計:

  • 使用匯總統計生成一個新的人造數據集

  • 從原始數據集中隨機提取樣本

  • 根據與隨機樣本的接近程度為生成人造數據集中的樣本分配權重

  • 用這些加權樣本訓練一個白盒模型

  • 解釋白盒模型

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

如何生成人造數據集?

最簡單的方法是,從數據集中提取一個隨機樣本,隨機打開(1)和關閉(0)一些像素來生成新的數據集
但是通常在圖像中,出現的對象(如狗vs貓的分類中的:狗&貓)導致模型的預測會跨越多個像素,而不是一個像素。所以即使你關掉一兩個像素,它們看起來仍然和我們選擇樣本非常相似。
所以這里需要做的是設置一個相鄰像素池的ON和OFF,這樣才能保證創造的人工數據集的隨機性。所以將圖像分割成多個稱為超像素的片段,然后打開和關閉這些超像素來生成隨機樣本。
讓我們使用LIME進行二進制分類來解釋CNN的代碼。例如我們有以下的兩類數據。

類別0: 帶有任意大小的白色矩形的隨機圖像
類別1:隨機生成的圖像(沒有白色矩形)

然后創建一個簡單的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()返回模型與原始圖像一起預測的高亮區域。
讓我們看看一些樣本,它們實際上是1(隨機圖像),但檢測到為0(帶白框的隨機圖像)

可以看到下圖有黃色的突出顯示區域,這張圖片的標簽為1,但被標記為0,這是因為高亮顯示的區域看起來像一個矩形,因此讓模型感到困惑,也就是說模型錯吧黃色標記的部分當成了我們需要判斷的白色矩形遮蔽。
再看看上面兩個圖,與前面的例子類似,模型也預測了class=0。通過黃色區域可以判斷,某種形狀可能被模型曲解為白色方框了。

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

END


歡迎加入Imagination GPU與人工智能交流2群
入群請加小編微信:eetrend89

(添加請備注公司名和職稱)

推薦閱讀


Imagination 基于 O3DE 引擎的光線追蹤 Demo 詳解

Imagination Technologies是一家總部位于英國的公司,致力于研發芯片和軟件知識產權(IP),基于Imagination IP的產品已在全球數十億人的電話、汽車、家庭和工作場所中使用。獲取更多物聯網智能穿戴、通信汽車電子、圖形圖像開發等前沿技術信息,歡迎關注 Imagination Tech!


原文標題:使用LIME解釋CNN

文章出處:【微信公眾號:Imagination Tech】歡迎添加關注!文章轉載請注明出處。

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

    關注

    1

    文章

    599

    瀏覽量

    62167

原文標題:使用LIME解釋CNN

文章出處:【微信號:Imgtec,微信公眾號:Imagination Tech】歡迎添加關注!文章轉載請注明出處。

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

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

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

    【高云GW5AT-LV60 開發套件試用體驗】基于開發板進行深度學習實踐,并盡量實現皮膚病理圖片的識別

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

    算力領域常用名詞解釋

    本文系統地整理和解釋了算力領域中常用的數十個關鍵名詞,并按照以下維度進行了分類:基礎概念、系統架構、硬件架構、基礎運算類型、計算模式、相關軟件架構與部署模式、浮點精度格式、算力類型、算力關聯與服務
    的頭像 發表于 04-07 11:21 ?459次閱讀
    算力領域常用名詞<b class='flag-5'>解釋</b>

    無法轉換TF OD API掩碼RPGA模型怎么辦?

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

    大模型領域常用名詞解釋(近100個)

    本文總結了大模型領域常用的近100個名詞解釋,并按照模型架構與基礎概念,訓練方法與技術,模型優化與壓縮,推理與應用,計算與性能優化,數據與標簽,模型評估與調試,特征與數據處理,倫理與公平性、其他
    的頭像 發表于 02-19 11:49 ?769次閱讀
    大模型領域常用名詞<b class='flag-5'>解釋</b>(近100個)

    小白學解釋性AI:從機器學習到大模型

    科學AI需要可解釋性人工智能的崛起,尤其是深度學習的發展,在眾多領域帶來了令人矚目的進步。然而,伴隨這些進步而來的是一個關鍵問題——“黑箱”問題。許多人工智能模型,特別是復雜的模型,如神經網
    的頭像 發表于 02-10 12:12 ?608次閱讀
    小白學<b class='flag-5'>解釋</b>性AI:從機器學習到大模型

    解釋什么是雙絞線

    雙絞線是一種常用的通信傳輸介質,由兩根相互絕緣的金屬導線(通常是銅導線)按一定密度互相絞合在一起組成。以下是關于雙絞線的詳細解釋: 一、結構特點 導線材料:雙絞線通常由兩根22~26號絕緣銅導線組成
    的頭像 發表于 01-17 10:53 ?1010次閱讀

    虛擬主機名詞解釋

    虛擬主機(Virtual Host/Virtual Server)是一種在單一主機或主機群上,實現多網域服務的方法,可以運行多個網站或服務的技術。以下是關于虛擬主機的詳細解釋,rak小編為您整理發布虛擬主機名詞解釋
    的頭像 發表于 10-25 09:26 ?707次閱讀

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

    請問這個詞(POLE-PAIR)在中文中的具體解釋是什么?該如何理解?它在電路設計中有什么通途?
    發表于 08-07 08:26

    網線b類接線順序詳細解釋

    網線B類接線順序,即按照T568B標準進行接線的順序,具體為:白橙、橙、白綠、藍、白藍、綠、白棕、棕。這個順序是指網線兩端水晶頭中8根線的排列順序。以下是對網線B類接線順序的詳細解釋: 一、網線B類
    的頭像 發表于 07-19 10:15 ?1.6w次閱讀

    cnn常用的幾個模型有哪些

    CNN(卷積神經網絡)是一種深度學習模型,廣泛應用于圖像識別、自然語言處理等領域。以下是一些常用的CNN模型: LeNet-5:LeNet-5是最早的卷積神經網絡之一,由Yann LeCun等人于
    的頭像 發表于 07-11 14:58 ?1885次閱讀

    卷積神經網絡通常包括哪幾層

    卷積神經網絡(Convolutional Neural Networks,簡稱CNN)是一種深度學習模型,廣泛應用于圖像識別、視頻分析、自然語言處理等領域。CNN的核心特點是能夠自動提取輸入數據
    的頭像 發表于 07-11 14:41 ?1394次閱讀

    圖像分割與語義分割中的CNN模型綜述

    圖像分割與語義分割是計算機視覺領域的重要任務,旨在將圖像劃分為多個具有特定語義含義的區域或對象。卷積神經網絡(CNN)作為深度學習的一種核心模型,在圖像分割與語義分割中發揮著至關重要的作用。本文將從CNN模型的基本原理、在圖像分割與語義分割中的應用、以及具體的模型架構和調
    的頭像 發表于 07-09 11:51 ?2019次閱讀

    CNN與RNN的關系?

    在深度學習的廣闊領域中,卷積神經網絡(CNN)和循環神經網絡(RNN)是兩種極為重要且各具特色的神經網絡模型。它們各自在圖像處理、自然語言處理等領域展現出卓越的性能。本文將從概念、原理、應用場景及代碼示例等方面詳細探討CNN與RNN的關系,旨在深入理解這兩種網絡模型及其在
    的頭像 發表于 07-08 16:56 ?1639次閱讀

    CNN在多個領域中的應用

    ,通過多層次的非線性變換,能夠捕捉到數據中的隱藏特征;而卷積神經網絡(CNN),作為神經網絡的一種特殊形式,更是在圖像識別、視頻處理等領域展現出了卓越的性能。本文旨在深入探究深度學習、神經網絡與卷積神經網絡的基本原理、結構特點及其在多個領域中的廣泛應用。
    的頭像 發表于 07-08 10:44 ?2928次閱讀
    主站蜘蛛池模板: 潍坊市| 梓潼县| 隆德县| 昔阳县| 邵武市| 莲花县| 离岛区| 莱芜市| 灵武市| 麻栗坡县| 吉隆县| 建湖县| 巧家县| 黑河市| 柳江县| 密云县| 朝阳县| 广安市| 吐鲁番市| 新沂市| 偃师市| 兴文县| 合山市| 克拉玛依市| 木里| 邢台县| 涞源县| 五大连池市| 永定县| 乳山市| 长葛市| 深圳市| 肇庆市| 会昌县| 阳泉市| 孝义市| 安泽县| 建德市| 灵丘县| 阆中市| 垫江县|