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

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

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

深度學(xué)習(xí)圖像識別解釋方法的概述

LiveVideoStack ? 來源:LiveVideoStack ? 作者:Ali Abdalla ? 2021-02-04 16:33 ? 次閱讀

圖像識別(即 對圖像中所顯示的對象進行分類)是計算機視覺中的一項核心任務(wù),因為它可以支持各種下游的應(yīng)用程序(自動為照片加標(biāo)簽,為視障人士提供幫助等),并已成為機器學(xué)習(xí)(ML)算法的標(biāo)準(zhǔn)任務(wù)。

在過去的十年中,深度學(xué)習(xí)(DL)算法已成為最具競爭力的圖像識別算法。但是,它們默認是“黑匣子”算法,也就是說很難解釋為什么它們會做出特定的預(yù)測。

為什么這會成為一個問題呢?這是因為ML模型的使用者通常出于以下原因而希望能夠解釋圖像的哪些部分導(dǎo)致了算法的預(yù)測結(jié)果:

1.機器學(xué)習(xí)調(diào)試模型,開發(fā)人員可以分析解釋識別偏差和預(yù)測模型是否可能推廣到新的圖像

2. 機器學(xué)習(xí)模型的用戶可能會更加信任一個模型,如果提供了為什么做出特定預(yù)測的解釋的話。

3. 關(guān)于ML的法規(guī)(例如GDPR)要求一些算法決策可以用人類的語言來解釋。

在以上因素的推動下,在過去的十年中,研究人員開發(fā)了許多不同的方法來打開深度學(xué)習(xí)的“黑匣子”,旨在使基礎(chǔ)模型更具可解釋性。有些方法對于某些種類的算法是特定的,而有些則是通用的。有些是快的,有些是慢的。

在本文中,我們概述了一些為圖像識別而發(fā)明的解釋方法,討論了它們之間的權(quán)衡,并提供了一些示例和代碼,您可以自己使用Gradio來嘗試這些方法。

留一法 LEAVE-ONE-OUT

在深入研究之前,讓我們從一個適用于任何類型圖像分類的非?;镜乃惴ㄩ_始:留一法(LOO)。

LOO是一種易于理解的方法。如果您要從頭開始設(shè)計一種解釋方法的話,那么這是您可能會想到的第一個算法。其想法是首先將輸入圖像分割為一系列較小的子區(qū)域。然后,運行一系列預(yù)測,每次遮罩(即將像素值設(shè)置為零)其中一個子區(qū)域。根據(jù)每個區(qū)域的“蒙版”相對于原始圖像影響預(yù)測的程度,為每個區(qū)域分配一個重要度分數(shù)。直觀地來說,這些分數(shù)量化了哪一部分的區(qū)域最有助于進行預(yù)測。

因此,如果我們在一個3x3的網(wǎng)格中將圖像分成9個子區(qū)域,則LOO如下所示:

cd46b320-61dd-11eb-8b86-12bb97331649.png

那些最暗的紅色方塊是影響輸出最大的方塊,而顏色最亮的方塊對輸出的影響最小。在這種情況下,當(dāng)頂部中心區(qū)域被遮罩時,預(yù)測置信度下降幅度最大,從初始的95%下降到67%。

如果我們以更好的方式進行分割(例如,使用超像素而不是網(wǎng)格),我們將獲得一個相當(dāng)合理的顯著圖,該圖突出了杜賓犬的臉,耳朵和尾巴。

LOO是一種簡單而強大的方法。根據(jù)圖像分辨率和分割方式,它可以產(chǎn)生非常準(zhǔn)確和有用的結(jié)果。正如使用InceptionNet預(yù)測的那樣,下面這張圖就是LOO應(yīng)用于1100?×?825像素的金毛尋回犬圖像。

在實踐中,LOO的一個巨大優(yōu)勢是它不需要任何訪問模型內(nèi)部的功能,甚至可以處理除識別之外的其他計算機視覺任務(wù),從而使它成為一個靈活的通用工具。

那有什么缺點呢?首先,它很慢。每次一個區(qū)域被遮罩,我們就對圖像進行推斷。要獲得一個具有合理分辨率的顯著圖,您的遮罩尺寸可能必須很小。因此,如果您將圖像分割成100個區(qū)域,則將需要100倍的推理時間才能獲得熱度圖。另一方面,如果您有太多的子區(qū)域,則對它們中的任何一個區(qū)域進行遮罩不一定會在預(yù)測中產(chǎn)生很大的差異。此LOO的第二個限制是,它沒有考慮到區(qū)域之間的相互依賴性。

因此,讓我們來看一個更快,更復(fù)雜的技術(shù):梯度上升。

梯度上升 VANILLA GRADIENT ASECENT [2013]

梯度上升這一方法的提出,可以追溯到2013年發(fā)表的一篇名為Visualizing Image Classification Models and Saliency Maps [2013]的論文中找到。LOO和梯度上升這兩個方法之間存在著概念上的關(guān)系。使用LOO時,我們考慮到當(dāng)我們逐個遮蓋圖像中的每個區(qū)域時,輸出是如何變化的。通過梯度上升,我們可以一次計算出每單個像素對輸出的影響。我們?nèi)绾巫龅竭@一點的呢?答案是使用反向傳播的改進版本。

通過使用標(biāo)準(zhǔn)的反向傳播,我們可以計算出模型損失相對于權(quán)值的梯度。梯度是一個包含每個權(quán)重值的向量,反映了該權(quán)重的微小變化將對輸出產(chǎn)生了多大的影響,并從本質(zhì)上告訴我們哪些權(quán)重對于損失最重要。通過取該梯度的負值,我們可以將訓(xùn)練過程中的損失降到最低。對于梯度上升,取而代之的是類分數(shù)相對于輸入像素的梯度,并告訴我們哪些輸入像素對圖像分類最重要。通過網(wǎng)絡(luò)的這一單個步驟為我們提供了每個像素的重要性值,我們以熱圖的形式顯示該值,如下所示:

Simonyan等人用單一反向傳播過程計算出顯著性圖示例

這是我們的杜賓犬的圖像:

這里的主要優(yōu)勢是——速度;因為我們只需要通過網(wǎng)絡(luò)一次可以得到熱圖,所以梯度上升的方法比LOO快得多,盡管最終得到的熱圖有點粗糙。

在杜賓犬的圖像上,LOO(左)與梯度上升(右)方法進行了比較。這里的模型是InceptionNet。

盡管梯度上升是十分可行的,但人們發(fā)現(xiàn)這種被稱為Vanilla梯度上升的原始公式有一個明顯的缺點:它傳播負梯度,最終會導(dǎo)致干擾和噪聲的輸出。為解決這些問題,我們提出了一種新方法——“引導(dǎo)反向傳播”。

引導(dǎo)反向傳播 guided back-propogation [2014]

引導(dǎo)式反向傳播一開始是發(fā)表在了Striving for Simplicity: The All Convolutional Net [2014]上,其中,作者提出在反向傳播的常規(guī)步驟中增加一個來自更高層的額外引導(dǎo)信號。從本質(zhì)上講,當(dāng)輸出為負時,該方法就會阻止來自神經(jīng)元的梯度反向流動,僅保留那些導(dǎo)致輸出增加的梯度,從而最終減少噪聲。

d0f4e05a-61dd-11eb-8b86-12bb97331649.png

在此圖像中,我們顯示了一個給定圖層的反向傳播梯度(左),其輸出顯示在右側(cè)。在頂層,我們展示了整齊的梯度。在底層,我們展示了引導(dǎo)反向傳播,每當(dāng)輸出為負時,它將零梯度化。(圖來自Springenberg等人)

引導(dǎo)式反向傳播的工作速度幾乎與梯度上升一樣快,因為它只需要通過網(wǎng)絡(luò)一次,但通常會產(chǎn)生更清晰的輸出,尤其是在物體邊緣附近。該方法相對于沒有最大池化層的神經(jīng)體系結(jié)構(gòu)中的其他方法來說特別有效。

在杜賓犬的圖像上,梯度上升(左)與“引導(dǎo)式反向傳播”(右)進行了比較。這里的模型是InceptionNet。

但是,人們發(fā)現(xiàn),梯度上升和引導(dǎo)式反向傳播仍然存在一個主要問題:當(dāng)圖像中存在兩個或更多類別時,它們通常無法正常工作,這通常發(fā)生在自然圖像中。

梯度類別響應(yīng)圖 grad-cam [2016]

現(xiàn)在來到了Grad-CAM,或者梯度加權(quán)類別激活映射,該方法在: Visual Explanations from Deep Networks via Gradient-based Localization [2016]文章中有著相關(guān)的介紹。在這里,作者發(fā)現(xiàn),當(dāng)在最后一個卷基層的每個濾波器處而不是在類分數(shù)上(但仍相對于輸入像素)提取梯度時,其解釋的質(zhì)量得到了改善。為了得到特定于類的解釋,Grad-CAM對這些梯度進行加權(quán)平均,其權(quán)重基于過濾器對類分數(shù)的貢獻。結(jié)果如下所示,這遠遠好于單獨的引導(dǎo)反向傳播。

具有兩個類別(“貓”和“狗”)的原始圖像使用了引導(dǎo)反向傳播的方式,但是生成的熱量圖突出顯示了這兩個類。一旦將Grad-CAM用作過濾器,引導(dǎo)式Grad-CAM便會生成高分辨率,區(qū)分類別的熱圖。(圖片來自Selvaraju等人)

作者進一步推廣了Grad-CAM,使其不僅適用于目標(biāo)類,而且適用于任何目標(biāo)“概念”。這意味著可以使用Grad-CAM來解釋為什么圖像字幕模型可以預(yù)測特定的字幕,甚至可以處理多個輸入的模型,例如可視化問答模型。由于這種靈活性,Grad-CAM已變得非常流行。以下是其架構(gòu)的概述。

d4e76fca-61dd-11eb-8b86-12bb97331649.png

Grad-CAM概述:首先,我們向前傳播圖像。對于除所需類別(tiger cat)之外的所有類別梯度設(shè)置為0,其余設(shè)置為1。然后將該信號反向傳播到所關(guān)注的整流卷積特征圖,我們結(jié)合這些特征圖來計算粗糙Grad-CAM定位(藍色熱圖),它表示模型在做出特定決策時必須尋找的位置。最后,我們將熱圖與引導(dǎo)反向傳播逐點相乘,得到高分辨率和概念特定的Guided Grad-CAM可視化。(圖片和描述來自Selvaraju等人)

平滑梯度 smoothgrad [2017]

然而,您可能已經(jīng)注意到,就算使用所有先前所介紹的方法,結(jié)果仍然不是很清晰。SmoothGrad, presented in SmoothGrad: removing noise by adding noise [2017], 這篇文章是對先前方法的修改版本。這個想法很簡單:作者指出,如果輸入圖像首先受到噪聲干擾,則可以為每個版本的干擾輸入計算一次梯度,然后將靈敏度圖平均化。盡管運行時間更長,但這會得到更清晰的結(jié)果。

以下是引導(dǎo)式反向傳播和平滑梯度圖像的對比:

杜賓犬圖像上的標(biāo)準(zhǔn)制引導(dǎo)反向傳播(左)與平滑梯度(右)。這里的模型是InceptionNet。

當(dāng)您面對所有的方法時,會選擇哪一種?或者,當(dāng)方法之間發(fā)生沖突時,是否有一種方法在理論上可以證明比其他方法更好?讓我們看一下集成梯度的方法。

集成梯度 integrated gradients [2017]

與此前的論文不同,Axiomatic Attribution for Deep Networks [2017]的作者從解釋的理論基礎(chǔ)開始。他們專注于兩個公理:靈敏度和實現(xiàn)不變性,為此,他們提出了一個好的解釋方法應(yīng)該滿足這兩項。

靈敏度公理意味著,如果兩個圖像的有一個像素恰好不同(但所有其他像素都相同),并且產(chǎn)生不同的預(yù)測,則解釋算法應(yīng)為該不同像素提供非零的屬性。而實現(xiàn)不變性公理意味著算法的底層實現(xiàn)不應(yīng)影響解釋方法的結(jié)果。他們使用這些原則來指導(dǎo)一種新的歸因方法的設(shè)計,該歸因方法稱為“集成梯度(IG)”。

IG從基線圖像(通常是輸入圖像的完全變暗的版本)開始,并增加亮度,直到恢復(fù)原始圖像為止。針對每幅圖像計算類別分數(shù)相對于輸入像素的梯度,并對其進行平均以獲得每個像素的全局重要性值。IG除了理論特性外,還解決了普通梯度上升的另一個問題:飽和梯度。由于梯度是局部的,因此它們不能捕獲像素的全局重要性,而只能捕獲特定輸入點的靈敏度。通過改變圖像的亮度并計算不同點的梯度,IG可以獲得更完整的圖片,包含了每個像素的重要性。

在杜賓犬圖像上的標(biāo)準(zhǔn)引導(dǎo)反向傳播(左)與集成梯度(右),均使用了平滑梯度進行了平滑處理。這里的模型是InceptionNet。

盡管這通常可以產(chǎn)生更準(zhǔn)確的靈敏度圖,但是該方法速度較慢,并且引入了兩個新的附加超參數(shù):基線圖像的選擇以及生成集成梯度的步驟數(shù)。那么,我們可以不用這些么?

模糊集成梯度 blur integratedgradients [2020]

這就是我們最終的解釋方法,即模糊集成梯度。該方法在Attribution in Scale and Space [2020],中提出,旨在解決具有集成梯度的特定問題,包括消除“基線”參數(shù),并消除某些易于在解釋中出現(xiàn)的視覺偽像。

模糊集成梯度方法通過測量一系列原始輸入圖像逐漸模糊的版本梯度(而不是像集成梯度那樣變暗的圖像)。盡管這看起來似乎是微小的差異,但作者認為這種選擇在理論上更為合理,因為模糊圖像不會像選擇基線圖像那樣在解釋中引入新的偽影。

杜賓犬圖像上的標(biāo)準(zhǔn)集成梯度(左)與模糊集成梯度(右),均使用平滑梯度進行了平滑。這里的模型是InceptionNet。

寫在最后

從2010年開始到現(xiàn)在,是機器學(xué)習(xí)在解釋方法方面碩果累累的十年,并且現(xiàn)在有大量用于解釋神經(jīng)網(wǎng)絡(luò)行為的方法。我們已經(jīng)在本篇文章中對它們進行了比較,我們非常感謝幾個很棒的圖書館,尤其是Gradio,來創(chuàng)建您在GIF和PAIR代碼的TensorFlow實現(xiàn)中看到的接口。用于所有接口的模型都是Inception Net圖像分類器。

原文標(biāo)題:圖像識別解釋方法的視覺演變

文章出處:【微信公眾號:LiveVideoStack】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

責(zé)任編輯:haq

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

    關(guān)注

    9

    文章

    521

    瀏覽量

    38320
  • 機器學(xué)習(xí)
    +關(guān)注

    關(guān)注

    66

    文章

    8435

    瀏覽量

    132879
  • 深度學(xué)習(xí)
    +關(guān)注

    關(guān)注

    73

    文章

    5511

    瀏覽量

    121382

原文標(biāo)題:圖像識別解釋方法的視覺演變

文章出處:【微信號:livevideostack,微信公眾號:LiveVideoStack】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    AI圖像識別攝像機

    ?AI圖像識別攝像機是一種集成了先進算法和深度學(xué)習(xí)模型的智能監(jiān)控設(shè)備。這些攝像機不僅能夠捕捉視頻畫面,還能實時分析和處理所拍攝的內(nèi)容,從而實現(xiàn)對特定對象、場景或行
    的頭像 發(fā)表于 11-08 10:38 ?324次閱讀
    AI<b class='flag-5'>圖像識別</b>攝像機

    GPU深度學(xué)習(xí)應(yīng)用案例

    GPU在深度學(xué)習(xí)中的應(yīng)用廣泛且重要,以下是一些GPU深度學(xué)習(xí)應(yīng)用案例: 一、圖像識別 圖像識別
    的頭像 發(fā)表于 10-27 11:13 ?447次閱讀

    AI大模型在圖像識別中的優(yōu)勢

    AI大模型在圖像識別中展現(xiàn)出了顯著的優(yōu)勢,這些優(yōu)勢主要源于其強大的計算能力、深度學(xué)習(xí)算法以及大規(guī)模的數(shù)據(jù)處理能力。以下是對AI大模型在圖像識別中優(yōu)勢的介紹: 一、高效性與準(zhǔn)確性 處理速
    的頭像 發(fā)表于 10-23 15:01 ?883次閱讀

    深度識別算法包括哪些內(nèi)容

    :CNN是深度學(xué)習(xí)中處理圖像和視頻等具有網(wǎng)格結(jié)構(gòu)數(shù)據(jù)的主要算法。它通過卷積層、池化層和全連接層等組件,實現(xiàn)對圖像特征的自動提取和識別。 應(yīng)
    的頭像 發(fā)表于 09-10 15:28 ?435次閱讀

    圖像識別算法有哪幾種

    計算機科學(xué)家開始嘗試使用計算機來處理和分析圖像數(shù)據(jù)。最初的圖像識別算法主要基于模板匹配和邊緣檢測等簡單方法,但隨著計算機硬件和算法的不斷發(fā)展,圖像識別算法逐漸變得更加復(fù)雜和高效。 20
    的頭像 發(fā)表于 07-16 11:22 ?1246次閱讀

    圖像檢測和圖像識別的原理、方法及應(yīng)用場景

    圖像檢測和圖像識別是計算機視覺領(lǐng)域的兩個重要概念,它們在許多應(yīng)用場景中發(fā)揮著關(guān)鍵作用。 1. 定義 1.1 圖像檢測 圖像檢測(Object Detection)是指在
    的頭像 發(fā)表于 07-16 11:19 ?4756次閱讀

    圖像識別算法都有哪些方法

    圖像識別算法是計算機視覺領(lǐng)域的核心任務(wù)之一,它涉及到從圖像中提取特征并進行分類、識別和分析的過程。隨著深度學(xué)習(xí)技術(shù)的不斷發(fā)展,
    的頭像 發(fā)表于 07-16 11:14 ?5880次閱讀

    圖像識別算法的提升有哪些

    引言 圖像識別是計算機視覺領(lǐng)域的核心任務(wù)之一,旨在使計算機能夠自動地識別和理解圖像中的內(nèi)容。隨著計算機硬件的發(fā)展和深度學(xué)習(xí)技術(shù)的突破,
    的頭像 發(fā)表于 07-16 11:12 ?713次閱讀

    圖像識別算法的優(yōu)缺點有哪些

    圖像識別算法可以快速地處理大量圖像數(shù)據(jù),提高工作效率。與傳統(tǒng)的人工識別方法相比,圖像識別算法可以在短時間內(nèi)完成對大量圖像的分析和
    的頭像 發(fā)表于 07-16 11:09 ?1829次閱讀

    圖像識別算法的核心技術(shù)是什么

    圖像識別算法是計算機視覺領(lǐng)域的一個重要研究方向,其目標(biāo)是使計算機能夠像人類一樣理解和識別圖像中的內(nèi)容。圖像識別算法的核心技術(shù)包括以下幾個方面: 特征提取 特征提取是
    的頭像 發(fā)表于 07-16 11:02 ?707次閱讀

    圖像識別技術(shù)的原理是什么

    圖像識別技術(shù)是一種利用計算機視覺和機器學(xué)習(xí)技術(shù)對圖像進行分析和理解的技術(shù)。它可以幫助計算機識別和理解圖像中的對象、場景和活動。
    的頭像 發(fā)表于 07-16 10:46 ?1273次閱讀

    圖像識別屬于人工智能嗎

    屬于。圖像識別是人工智能(Artificial Intelligence, AI)領(lǐng)域的一個重要分支。 一、圖像識別概述 1.1 定義 圖像識別是指利用計算機技術(shù)對
    的頭像 發(fā)表于 07-16 10:44 ?1233次閱讀

    基于Python的深度學(xué)習(xí)人臉識別方法

    基于Python的深度學(xué)習(xí)人臉識別方法是一個涉及多個技術(shù)領(lǐng)域的復(fù)雜話題,包括計算機視覺、深度學(xué)習(xí)、以及
    的頭像 發(fā)表于 07-14 11:52 ?1306次閱讀

    如何利用CNN實現(xiàn)圖像識別

    卷積神經(jīng)網(wǎng)絡(luò)(CNN)是深度學(xué)習(xí)領(lǐng)域中一種特別適用于圖像識別任務(wù)的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)。它通過模擬人類視覺系統(tǒng)的處理方式,利用卷積、池化等操作,自動提取圖像中的特征,進而實現(xiàn)高效的
    的頭像 發(fā)表于 07-03 16:16 ?1484次閱讀

    圖像識別技術(shù)原理 圖像識別技術(shù)的應(yīng)用領(lǐng)域

    圖像識別技術(shù)是一種通過計算機對圖像進行分析和理解的技術(shù)。它借助計算機視覺、模式識別、人工智能等相關(guān)技術(shù),通過對圖像進行特征提取和匹配,找出圖像
    的頭像 發(fā)表于 02-02 11:01 ?2669次閱讀