為什麼模型會這樣認為?解釋的深度學習方法的介紹-視覺化篇

文章推薦指數: 80 %
投票人數:10人

我們可以透過回去看對應的特徵值(是否有輪子的分數、是否是金屬色的分數)來評估為什麼分類器會做出這樣的判斷。

而深度學習的作法如下:. 1. 將影像輸入好訓練的模型, ... GetunlimitedaccessOpeninappHomeNotificationsListsStoriesWritePublishedinTaiwanAIAcademy為什麼模型會這樣認為?解釋的深度學習方法的介紹-視覺化篇深度學習在近年來已經成為機器學習中最主流的技巧。

影像分類、物件偵測、語者識別、語音輸入…等等數不清的應用都有深度學習蹤跡。

「為什麼模型會做出這樣的預測?」這是一個重要的問題,否則未來我們所依賴的技術發生不如預期的錯誤時,將會無法知道原因以及如何修正。

促使我撰寫這篇文章的原因,是因為今年(2020)四月份有一篇很熱門的可解釋深度學習技術的統整論文ExplainableDeepLearning:AFieldGuidefortheUninitiated中,內部有很多關於深度學習模型解釋的技巧。

本篇medium將會介紹該篇論文的第4.1章節VisualizationMethods中列出的CAM跟Grad-CAM的概念。

前言傳統的機器學習與End-to-End深度學習主要不同處在於:1.是否透過人工抽取特徵2.模型是否通過許多層數的隱藏層source:https://lawtomated.com/a-i-technical-machine-vs-deep-learning/以傳統機器學習為例,若我們要判斷一張圖片是不是車子,人類可能會採取以下行動:1.判斷圖片中是否有輪子的分數:透過一些影像處理方法,算出是否有類似橢圓的區塊2.主要區塊是否是金屬色的分數3.得到上述特徵後,透過一些分類器,如Logistic-Regression、SupportVectorMachine、DecisionTree等等來得到有關這個輸入跑出對應輸出的機率值我們可以透過回去看對應的特徵值(是否有輪子的分數、是否是金屬色的分數)來評估為什麼分類器會做出這樣的判斷。

而深度學習的作法如下:1.將影像輸入好訓練的模型,讓其直接預測結果這種方法,對於工程師、研究者來講都是非常吸引人的:對工程師來說,這種End-to-End的模式在程式碼架構上是完全不需要額外做修改的,要改的部份只是蒐集不同的資料集後做TransferLearning。

對研究者來說,這種深度學習的模型,他的成效很好、不過很難解釋,這邊研究者就針對這兩個方向去研究:讓模型表現的更好;又或者嘗試去解釋模型。

難解釋的主要原因如下:一開始深度學習的成效不太好,所以沒有太多研究者針對這個主題的分支去額外做研究。

模型太過複雜(相對傳統的分類器),在當時沒有一個很直觀的作法能夠去解釋它。

在ExplainableDeepLearning:AFieldGuidefortheUninitiated有列出許多解釋深度學習模型的方法。

以下將會先介紹如何解釋線性模型,再帶入CAM以及Grad-CAM的概念。

線性模型要解釋線性模型,非常的簡單考慮以上的線性模型x_i為輸入的第i個維度y_j為輸出值第j個維度w_(i,j)為輸入的第i個維度影響輸出第j個維度的權重值單純只看y_2的時,我們可以寫出以下式子這時,要分析輸入對於y_2的影響量,可以由觀察上面的式子來得出x_i對y_2的影響量為w_(i,2)x_iClassActivationMaps(CAM)的概念就是上面線性模型概念的延伸。

而Gradient-weightedClassActivationMapping(Grad-Cam)是CAM的延伸版:將非線性模型做偏微分後,當作其是線性模型,再利用該值去估計其對輸出的影響量。

知道線性模型如何影響輸出值後,就可以往下去看兩篇論文的精華了。

ClassActivationMaps(CAM)CAM概念非常直觀,要知道在深層網路中的位置給予了輸出值多大的影響。

只需要了解上面描述線性模型的1式就能知道其是怎麼做的。

考慮一般的分類模型將網路的最後一個卷積層經過全局平均(GlobalAveragePooling)後形成一個n維度的向量,再接一個全連接層後,最後再通過softmax就能去預測最後的分類了。

透過去觀查最後一卷積層的不同位置對於輸出的影響,就能夠套用上面描述線性模型的概念,來得知該位置對於輸出的影響程度了。

而要知道該位置是怎麼影響輸出值的,請看下面的式子:S_c是類別c在通過softmax前的分數w_k^c是第k個channel影響類別c的權重f_k(x,y)是最後一個卷積層的第k個channel的位置x,y的值在第一行中右半部分對第k個頻道做了全局平均左半部分將全局平均後的值與對應的權重相乘後再加起。

可以注意到,左半部分在做的事情,就是單純的線性模型。

在第二行中將summation做了一些重新排列,這次右半部分將座標為(x,y)的所有channel的值經過加權後加總左半部分是將則是將所有座標的加權值加起這邊右半部分就是座標(x,y)對於類別c的影響量了作者將值畫成熱圖後,顏色較暖的區域為影響值較高,較冷為影響值較低不過,在比較複雜的模型中,例如最後有兩層全連接層,或者是用RNN之類的模型,該方法是無法得出熱圖的。

因為其要求輸出能夠直接接觸到卷積層的最後一層。

Gradient-weightedClassActivationMapping(Grad-Cam)CAM與Grad-Cam要找的都是深層網路對輸出值的影響,上一小節已經提到,CAM需要直接從網路的最後一層拿到權重值與特徵值相乘後加總,而Grad-Cam是權重值以偏微分替代掉:上方偏微分式中得到了某一層網路的第k個channel對輸出的第c個元素有多少影響量α_k^c。

下式則是Grad-Cam提出的方法:將該layer的值直接與α_k^c相乘後對channel加總,再通過ReLU即可得出最後的熱圖。

這個方法是將特徵值對最終輸出值的影響量以線性模型來逼進。

與CAM比較,CAM只適用於最後面為全連接層的網路架構,且該層在該處為線性模型。

Grad-Cam是將模型以偏微分來逼近線性模型,而在原本就是線性模型的情況是不會失真的,在原文獻就有提到Grad-Cam完全是CAM的延伸版,有興趣的讀者可以回去看該論文。

與CAM比較的優勢之處,是Grad-Cam可以在各種模型上,唯一的限制是需要影像經過全局平均。

想要看影像分類的熱圖,就針對該類別對影像做偏微分;想要看影像理解(ImageCaption),就對輸出該文字的位置對影像做偏微分;AttentionBasedModel,一樣偏微分回去;等等Grad-Cam概念圖以線性模型來逼近是Grad-Cam的優點也是缺點優點是概念非常簡單,要求偏微分值只需做反傳導(backpropagation)即可得到,而在現階段套件是非常好直接得出的。

缺點部份,由於模型複雜,不能保證用線性模型去逼近會是一個好的作法,可能會導致錯估。

線性估計的缺點y=x^3以y=x³的例子來說,在x=8時,y=512但如果以線性作法來逼近,給予y的值為x*3x²=3x³=1536的值以這個例子來說,不管x為多少,其用線性估計的值都會是原值的3倍,看起來是個還不錯的估計,因為至少估計值是正比於原值的y=log(x)而若是y=log(x)在x=8時,y≈2但如果以線性作法來逼近,不管x為多少,都是提供x*1/x=1的值給y在此例時用線性模型來預估結果不是一個好作法。

為什麼要解釋模型當然,做機器學習時,最重要的是成效好不好,不過成效好不一定代表模型有學到正確的事情,以下列出李宏毅老師在其課程中舉的例子他們簡單的架了一個CNN模型來對寶可夢以及數碼寶貝來分類,訓練完成後知道了他們的TestingScore非常的高,之後他們就用了些方法去得到哪些像素是重要的,發現結果如下李宏毅:ExplainableML(3/8)他們發現,對模型來說,影像中物件外的空白處是對模型做判斷用的依據,這時,他們就回去檢查資料結果發現資料集的儲存格式不一樣:寶可夢是用png檔儲存數碼寶貝是用jpeg儲存李宏毅:ExplainableML(3/8)而png與jpeg檔案的背景在讀取後分別為黑色以及白色,模型在訓練時就發現了這個規律,並直接表現出來,這也是為什麼訓練以及測試的時候表現都非常好,但是模型不一定做的是你認為正確的事情。

小結在本篇medium中,解釋特徵值對線性模型影響量的概念,描述ClassActivationMaps(CAM)是利用線性模型的概念來做熱圖的生成以及Gradient-weightedClassActivationMapping(Grad-Cam)是CAM的泛化版本,其是透過假設模型是線性的,透過偏微分來得到估計的不同頻道的權重值,最後再做與CAM相同的事情來生成熱圖。

除了以上方法,還有許許多多用來解釋模型的作法:像是直接將loss對pixel做偏微分畫成熱點圖;用一個方塊將影像遮住某些區塊來看看遮住區塊對於loss的擾動程度;看看怎樣的輸入值能夠讓某一個neuron的輸出值最大;等等很建議對解釋模型這主題有興趣的讀者去看李弘毅老師的影片ExplainableML以及ExplainableDeepLearning:AFieldGuidefortheUninitiated這篇論文。

參考文獻李宏毅ExplainableML(2019):https://www.youtube.com/watch?v=lnjrn3bF9lAZhou,Bolei,etal.“Learningdeepfeaturesfordiscriminativelocalization.”ProceedingsoftheIEEEconferenceoncomputervisionandpatternrecognition.2016.Selvaraju,RamprasaathR.,etal.“Grad-cam:Visualexplanationsfromdeepnetworksviagradient-basedlocalization.”ProceedingsoftheIEEEinternationalconferenceoncomputervision.2017.Xie,Ning,etal.“ExplainableDeepLearning:AFieldGuidefortheUninitiated.”arXivpreprintarXiv:2004.14545(2020).MorefromTaiwanAIAcademynews,techreviewsandsupplementalmaterialsReadmorefromTaiwanAIAcademyAboutHelpTermsPrivacyGettheMediumappGetstarted湯沂達(Yi-Dar,Tang)52FollowersATaiwaneseAIengineer,eagertoexplore/followstraightforwardandrobustAIalgorithms/models.FollowMorefromMediumExquisiteWorkersExquisiteWorkersannouncesthefirstNFTCompetitionforClimateatCOP26WazirParvinderSinghWearedying.MagictheCat“AlwaysCrashingintheSameCar”—JGBallard’s1971Crash!MarkColemanDirtySecretsoftheHiddenIndustryHelpStatusWritersBlogCareersPrivacyTermsAboutKnowable



請為這篇文章評分?