圖像識(shí)別(即 對(duì)圖像中所顯示的對(duì)象進(jìn)行分類(lèi))是計(jì)算機(jī)視覺(jué)中的一項(xiàng)核心任務(wù),因?yàn)樗梢灾С指鞣N下游的應(yīng)用程序(自動(dòng)為照片加標(biāo)簽,為視障人士提供幫助等),并已成為機(jī)器學(xué)習(xí)(ML)算法的標(biāo)準(zhǔn)任務(wù)。
在過(guò)去的十年中,深度學(xué)習(xí)(DL)算法已成為最具競(jìng)爭(zhēng)力的圖像識(shí)別算法。但是,它們默認(rèn)是“黑匣子”算法,也就是說(shuō)很難解釋為什么它們會(huì)做出特定的預(yù)測(cè)。
為什么這會(huì)成為一個(gè)問(wèn)題呢?這是因?yàn)镸L模型的使用者通常出于以下原因而希望能夠解釋圖像的哪些部分導(dǎo)致了算法的預(yù)測(cè)結(jié)果:
1.機(jī)器學(xué)習(xí)調(diào)試模型,開(kāi)發(fā)人員可以分析解釋識(shí)別偏差和預(yù)測(cè)模型是否可能推廣到新的圖像
2. 機(jī)器學(xué)習(xí)模型的用戶(hù)可能會(huì)更加信任一個(gè)模型,如果提供了為什么做出特定預(yù)測(cè)的解釋的話。
3. 關(guān)于ML的法規(guī)(例如GDPR)要求一些算法決策可以用人類(lèi)的語(yǔ)言來(lái)解釋。
在以上因素的推動(dòng)下,在過(guò)去的十年中,研究人員開(kāi)發(fā)了許多不同的方法來(lái)打開(kāi)深度學(xué)習(xí)的“黑匣子”,旨在使基礎(chǔ)模型更具可解釋性。有些方法對(duì)于某些種類(lèi)的算法是特定的,而有些則是通用的。有些是快的,有些是慢的。
在本文中,我們概述了一些為圖像識(shí)別而發(fā)明的解釋方法,討論了它們之間的權(quán)衡,并提供了一些示例和代碼,您可以自己使用Gradio來(lái)嘗試這些方法。
留一法 LEAVE-ONE-OUT
在深入研究之前,讓我們從一個(gè)適用于任何類(lèi)型圖像分類(lèi)的非?;镜乃惴ㄩ_(kāi)始:留一法(LOO)。
LOO是一種易于理解的方法。如果您要從頭開(kāi)始設(shè)計(jì)一種解釋方法的話,那么這是您可能會(huì)想到的第一個(gè)算法。其想法是首先將輸入圖像分割為一系列較小的子區(qū)域。然后,運(yùn)行一系列預(yù)測(cè),每次遮罩(即將像素值設(shè)置為零)其中一個(gè)子區(qū)域。根據(jù)每個(gè)區(qū)域的“蒙版”相對(duì)于原始圖像影響預(yù)測(cè)的程度,為每個(gè)區(qū)域分配一個(gè)重要度分?jǐn)?shù)。直觀地來(lái)說(shuō),這些分?jǐn)?shù)量化了哪一部分的區(qū)域最有助于進(jìn)行預(yù)測(cè)。
因此,如果我們?cè)谝粋€(gè)3x3的網(wǎng)格中將圖像分成9個(gè)子區(qū)域,則LOO如下所示:
那些最暗的紅色方塊是影響輸出最大的方塊,而顏色最亮的方塊對(duì)輸出的影響最小。在這種情況下,當(dāng)頂部中心區(qū)域被遮罩時(shí),預(yù)測(cè)置信度下降幅度最大,從初始的95%下降到67%。
如果我們以更好的方式進(jìn)行分割(例如,使用超像素而不是網(wǎng)格),我們將獲得一個(gè)相當(dāng)合理的顯著圖,該圖突出了杜賓犬的臉,耳朵和尾巴。
LOO是一種簡(jiǎn)單而強(qiáng)大的方法。根據(jù)圖像分辨率和分割方式,它可以產(chǎn)生非常準(zhǔn)確和有用的結(jié)果。正如使用InceptionNet預(yù)測(cè)的那樣,下面這張圖就是LOO應(yīng)用于1100?×?825像素的金毛尋回犬圖像。
在實(shí)踐中,LOO的一個(gè)巨大優(yōu)勢(shì)是它不需要任何訪問(wèn)模型內(nèi)部的功能,甚至可以處理除識(shí)別之外的其他計(jì)算機(jī)視覺(jué)任務(wù),從而使它成為一個(gè)靈活的通用工具。
那有什么缺點(diǎn)呢?首先,它很慢。每次一個(gè)區(qū)域被遮罩,我們就對(duì)圖像進(jìn)行推斷。要獲得一個(gè)具有合理分辨率的顯著圖,您的遮罩尺寸可能必須很小。因此,如果您將圖像分割成100個(gè)區(qū)域,則將需要100倍的推理時(shí)間才能獲得熱度圖。另一方面,如果您有太多的子區(qū)域,則對(duì)它們中的任何一個(gè)區(qū)域進(jìn)行遮罩不一定會(huì)在預(yù)測(cè)中產(chǎn)生很大的差異。此LOO的第二個(gè)限制是,它沒(méi)有考慮到區(qū)域之間的相互依賴(lài)性。
因此,讓我們來(lái)看一個(gè)更快,更復(fù)雜的技術(shù):梯度上升。
梯度上升 VANILLA GRADIENT ASECENT [2013]
梯度上升這一方法的提出,可以追溯到2013年發(fā)表的一篇名為Visualizing Image Classification Models and Saliency Maps [2013]的論文中找到。LOO和梯度上升這兩個(gè)方法之間存在著概念上的關(guān)系。使用LOO時(shí),我們考慮到當(dāng)我們逐個(gè)遮蓋圖像中的每個(gè)區(qū)域時(shí),輸出是如何變化的。通過(guò)梯度上升,我們可以一次計(jì)算出每單個(gè)像素對(duì)輸出的影響。我們?nèi)绾巫龅竭@一點(diǎn)的呢?答案是使用反向傳播的改進(jìn)版本。
通過(guò)使用標(biāo)準(zhǔn)的反向傳播,我們可以計(jì)算出模型損失相對(duì)于權(quán)值的梯度。梯度是一個(gè)包含每個(gè)權(quán)重值的向量,反映了該權(quán)重的微小變化將對(duì)輸出產(chǎn)生了多大的影響,并從本質(zhì)上告訴我們哪些權(quán)重對(duì)于損失最重要。通過(guò)取該梯度的負(fù)值,我們可以將訓(xùn)練過(guò)程中的損失降到最低。對(duì)于梯度上升,取而代之的是類(lèi)分?jǐn)?shù)相對(duì)于輸入像素的梯度,并告訴我們哪些輸入像素對(duì)圖像分類(lèi)最重要。通過(guò)網(wǎng)絡(luò)的這一單個(gè)步驟為我們提供了每個(gè)像素的重要性值,我們以熱圖的形式顯示該值,如下所示:
Simonyan等人用單一反向傳播過(guò)程計(jì)算出顯著性圖示例
這是我們的杜賓犬的圖像:
這里的主要優(yōu)勢(shì)是——速度;因?yàn)槲覀冎恍枰ㄟ^(guò)網(wǎng)絡(luò)一次可以得到熱圖,所以梯度上升的方法比LOO快得多,盡管最終得到的熱圖有點(diǎn)粗糙。
在杜賓犬的圖像上,LOO(左)與梯度上升(右)方法進(jìn)行了比較。這里的模型是InceptionNet。
盡管梯度上升是十分可行的,但人們發(fā)現(xiàn)這種被稱(chēng)為Vanilla梯度上升的原始公式有一個(gè)明顯的缺點(diǎn):它傳播負(fù)梯度,最終會(huì)導(dǎo)致干擾和噪聲的輸出。為解決這些問(wèn)題,我們提出了一種新方法——“引導(dǎo)反向傳播”。
引導(dǎo)反向傳播 guided back-propogation [2014]
引導(dǎo)式反向傳播一開(kāi)始是發(fā)表在了Striving for Simplicity: The All Convolutional Net [2014]上,其中,作者提出在反向傳播的常規(guī)步驟中增加一個(gè)來(lái)自更高層的額外引導(dǎo)信號(hào)。從本質(zhì)上講,當(dāng)輸出為負(fù)時(shí),該方法就會(huì)阻止來(lái)自神經(jīng)元的梯度反向流動(dòng),僅保留那些導(dǎo)致輸出增加的梯度,從而最終減少噪聲。
在此圖像中,我們顯示了一個(gè)給定圖層的反向傳播梯度(左),其輸出顯示在右側(cè)。在頂層,我們展示了整齊的梯度。在底層,我們展示了引導(dǎo)反向傳播,每當(dāng)輸出為負(fù)時(shí),它將零梯度化。(圖來(lái)自Springenberg等人)
引導(dǎo)式反向傳播的工作速度幾乎與梯度上升一樣快,因?yàn)樗恍枰ㄟ^(guò)網(wǎng)絡(luò)一次,但通常會(huì)產(chǎn)生更清晰的輸出,尤其是在物體邊緣附近。該方法相對(duì)于沒(méi)有最大池化層的神經(jīng)體系結(jié)構(gòu)中的其他方法來(lái)說(shuō)特別有效。
在杜賓犬的圖像上,梯度上升(左)與“引導(dǎo)式反向傳播”(右)進(jìn)行了比較。這里的模型是InceptionNet。
但是,人們發(fā)現(xiàn),梯度上升和引導(dǎo)式反向傳播仍然存在一個(gè)主要問(wèn)題:當(dāng)圖像中存在兩個(gè)或更多類(lèi)別時(shí),它們通常無(wú)法正常工作,這通常發(fā)生在自然圖像中。
梯度類(lèi)別響應(yīng)圖 grad-cam [2016]
現(xiàn)在來(lái)到了Grad-CAM,或者梯度加權(quán)類(lèi)別激活映射,該方法在: Visual Explanations from Deep Networks via Gradient-based Localization [2016]文章中有著相關(guān)的介紹。在這里,作者發(fā)現(xiàn),當(dāng)在最后一個(gè)卷基層的每個(gè)濾波器處而不是在類(lèi)分?jǐn)?shù)上(但仍相對(duì)于輸入像素)提取梯度時(shí),其解釋的質(zhì)量得到了改善。為了得到特定于類(lèi)的解釋?zhuān)珿rad-CAM對(duì)這些梯度進(jìn)行加權(quán)平均,其權(quán)重基于過(guò)濾器對(duì)類(lèi)分?jǐn)?shù)的貢獻(xiàn)。結(jié)果如下所示,這遠(yuǎn)遠(yuǎn)好于單獨(dú)的引導(dǎo)反向傳播。
具有兩個(gè)類(lèi)別(“貓”和“狗”)的原始圖像使用了引導(dǎo)反向傳播的方式,但是生成的熱量圖突出顯示了這兩個(gè)類(lèi)。一旦將Grad-CAM用作過(guò)濾器,引導(dǎo)式Grad-CAM便會(huì)生成高分辨率,區(qū)分類(lèi)別的熱圖。(圖片來(lái)自Selvaraju等人)
作者進(jìn)一步推廣了Grad-CAM,使其不僅適用于目標(biāo)類(lèi),而且適用于任何目標(biāo)“概念”。這意味著可以使用Grad-CAM來(lái)解釋為什么圖像字幕模型可以預(yù)測(cè)特定的字幕,甚至可以處理多個(gè)輸入的模型,例如可視化問(wèn)答模型。由于這種靈活性,Grad-CAM已變得非常流行。以下是其架構(gòu)的概述。
Grad-CAM概述:首先,我們向前傳播圖像。對(duì)于除所需類(lèi)別(tiger cat)之外的所有類(lèi)別梯度設(shè)置為0,其余設(shè)置為1。然后將該信號(hào)反向傳播到所關(guān)注的整流卷積特征圖,我們結(jié)合這些特征圖來(lái)計(jì)算粗糙Grad-CAM定位(藍(lán)色熱圖),它表示模型在做出特定決策時(shí)必須尋找的位置。最后,我們將熱圖與引導(dǎo)反向傳播逐點(diǎn)相乘,得到高分辨率和概念特定的Guided Grad-CAM可視化。(圖片和描述來(lái)自Selvaraju等人)
平滑梯度 smoothgrad [2017]
然而,您可能已經(jīng)注意到,就算使用所有先前所介紹的方法,結(jié)果仍然不是很清晰。SmoothGrad, presented in SmoothGrad: removing noise by adding noise [2017], 這篇文章是對(duì)先前方法的修改版本。這個(gè)想法很簡(jiǎn)單:作者指出,如果輸入圖像首先受到噪聲干擾,則可以為每個(gè)版本的干擾輸入計(jì)算一次梯度,然后將靈敏度圖平均化。盡管運(yùn)行時(shí)間更長(zhǎng),但這會(huì)得到更清晰的結(jié)果。
以下是引導(dǎo)式反向傳播和平滑梯度圖像的對(duì)比:
杜賓犬圖像上的標(biāo)準(zhǔn)制引導(dǎo)反向傳播(左)與平滑梯度(右)。這里的模型是InceptionNet。
當(dāng)您面對(duì)所有的方法時(shí),會(huì)選擇哪一種?或者,當(dāng)方法之間發(fā)生沖突時(shí),是否有一種方法在理論上可以證明比其他方法更好?讓我們看一下集成梯度的方法。
集成梯度 integrated gradients [2017]
與此前的論文不同,Axiomatic Attribution for Deep Networks [2017]的作者從解釋的理論基礎(chǔ)開(kāi)始。他們專(zhuān)注于兩個(gè)公理:靈敏度和實(shí)現(xiàn)不變性,為此,他們提出了一個(gè)好的解釋方法應(yīng)該滿(mǎn)足這兩項(xiàng)。
靈敏度公理意味著,如果兩個(gè)圖像的有一個(gè)像素恰好不同(但所有其他像素都相同),并且產(chǎn)生不同的預(yù)測(cè),則解釋算法應(yīng)為該不同像素提供非零的屬性。而實(shí)現(xiàn)不變性公理意味著算法的底層實(shí)現(xiàn)不應(yīng)影響解釋方法的結(jié)果。他們使用這些原則來(lái)指導(dǎo)一種新的歸因方法的設(shè)計(jì),該歸因方法稱(chēng)為“集成梯度(IG)”。
IG從基線圖像(通常是輸入圖像的完全變暗的版本)開(kāi)始,并增加亮度,直到恢復(fù)原始圖像為止。針對(duì)每幅圖像計(jì)算類(lèi)別分?jǐn)?shù)相對(duì)于輸入像素的梯度,并對(duì)其進(jìn)行平均以獲得每個(gè)像素的全局重要性值。IG除了理論特性外,還解決了普通梯度上升的另一個(gè)問(wèn)題:飽和梯度。由于梯度是局部的,因此它們不能捕獲像素的全局重要性,而只能捕獲特定輸入點(diǎn)的靈敏度。通過(guò)改變圖像的亮度并計(jì)算不同點(diǎn)的梯度,IG可以獲得更完整的圖片,包含了每個(gè)像素的重要性。
在杜賓犬圖像上的標(biāo)準(zhǔn)引導(dǎo)反向傳播(左)與集成梯度(右),均使用了平滑梯度進(jìn)行了平滑處理。這里的模型是InceptionNet。
盡管這通常可以產(chǎn)生更準(zhǔn)確的靈敏度圖,但是該方法速度較慢,并且引入了兩個(gè)新的附加超參數(shù):基線圖像的選擇以及生成集成梯度的步驟數(shù)。那么,我們可以不用這些么?
模糊集成梯度 blur integratedgradients [2020]
這就是我們最終的解釋方法,即模糊集成梯度。該方法在Attribution in Scale and Space [2020],中提出,旨在解決具有集成梯度的特定問(wèn)題,包括消除“基線”參數(shù),并消除某些易于在解釋中出現(xiàn)的視覺(jué)偽像。
模糊集成梯度方法通過(guò)測(cè)量一系列原始輸入圖像逐漸模糊的版本梯度(而不是像集成梯度那樣變暗的圖像)。盡管這看起來(lái)似乎是微小的差異,但作者認(rèn)為這種選擇在理論上更為合理,因?yàn)槟:龍D像不會(huì)像選擇基線圖像那樣在解釋中引入新的偽影。
杜賓犬圖像上的標(biāo)準(zhǔn)集成梯度(左)與模糊集成梯度(右),均使用平滑梯度進(jìn)行了平滑。這里的模型是InceptionNet。
寫(xiě)在最后
從2010年開(kāi)始到現(xiàn)在,是機(jī)器學(xué)習(xí)在解釋方法方面碩果累累的十年,并且現(xiàn)在有大量用于解釋神經(jīng)網(wǎng)絡(luò)行為的方法。我們已經(jīng)在本篇文章中對(duì)它們進(jìn)行了比較,我們非常感謝幾個(gè)很棒的圖書(shū)館,尤其是Gradio,來(lái)創(chuàng)建您在GIF和PAIR代碼的TensorFlow實(shí)現(xiàn)中看到的接口。用于所有接口的模型都是Inception Net圖像分類(lèi)器。
原文標(biāo)題:圖像識(shí)別解釋方法的視覺(jué)演變
文章出處:【微信公眾號(hào):LiveVideoStack】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
責(zé)任編輯:haq
-
圖像識(shí)別
+關(guān)注
關(guān)注
9文章
521瀏覽量
38331 -
機(jī)器學(xué)習(xí)
+關(guān)注
關(guān)注
66文章
8438瀏覽量
132928 -
深度學(xué)習(xí)
+關(guān)注
關(guān)注
73文章
5512瀏覽量
121410
原文標(biāo)題:圖像識(shí)別解釋方法的視覺(jué)演變
文章出處:【微信號(hào):livevideostack,微信公眾號(hào):LiveVideoStack】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論