LIME-AI可解释模型:《“Why Should I Trust You?” Explaining the Predictions of Any Classifier》论文笔记
論文來源:KDD-2016
論文鏈接:https://arxiv.org/abs/1602.04938v3
?
?🚀盡管一些機器學習模型的性能很好,被得到廣泛使用,但其仍然是個黑盒子,至于為啥模型做出這樣的決定我們是不知道的,對于某些領域(如醫學領域、自動駕駛領域)來說,即使模型的準確率很高,但可能也不敢過度相信其做出的決定。所以我們需要一個解釋器來告訴我們為啥模型做出這樣的預測等細節。
?
?論文的主要貢獻:
?1.提出了一種稱為 LIME 的算法模型,它以一個能夠讓人信服的方式為任何分類模型或回歸模型解釋其做出的預測。通過一個局部的可解釋模型來近似原模型來解釋。
?2.同時,提出了一個叫SP-LIME的方法,該算法能夠挑選盡量少的樣本覆蓋盡量多的特征,方便人們能夠看到較少的樣本大致判斷是否相信這個模型。
?3.實驗驗證了算法的可行性和有效性。
?【注:這里所說解釋器對模型預測做出的解釋,就是,比如說:在文本中,解釋器會挑選出一些單詞(即對模型做出預測貢獻較大的特征)來作為解釋;在圖像中則會挑選一些像素區域來作為解釋。這樣人們就可以直觀地確定為啥模型會做出這樣的決定,且人們對于特定領域多多少少會有一些先驗知識的理解,所以根據解釋器做出的直觀解釋,就能夠快速判斷這模型是否可信。】
?
?論文認為解釋器應該具備以下4個特征:
1.可解釋性(interpretable):
?可解釋的模型配上可解釋的特征才算真正的可解釋性(如DTree是個易于解釋的模型但是其前提是特征也應容易解釋),且應該對于不了解AI的外行人也能夠明白其解釋。
2.局部保真度(local fidelity):
?畢竟完全相信解釋器也是不可能的,做出對模型完整的解釋是困難的,但是其至少要在局部(即我們要觀察的那個樣本的鄰近區域)做到讓人信服。
3.與模型無關(model-agnostic):
?無論模型多么復雜,解釋器都應該能工作。
4.全局視角( global perspective):
?因為有時一些評價指標,如準確度即使很高,但模型關注的特征可能并不是合理的。我們不能光依賴于一些評價指標的高低來篩選模型,所以LIME解釋器能挑選一些代表性的樣本給用戶來解釋模型的預測是否值得信任。
?
?LIME算法:
?LIME(Local Interpretable Model-Agnostic Explanation)的目的,就是給定一個復雜的模型,能夠用一個簡單的可解釋模型(論文用的是線性模型),搭配可解釋的特征進逼近這個復雜的模型,在局部上能夠達到和復雜模型相似的效果。
【注:畢竟越簡單的模型有利于我們更好的解釋,人類越好理解。】
?LIME主要就是通過擾動輸入樣本實例的特征來判斷哪些特征對模型的預測輸出影響較大。前提是這些擾動的特征,是人類可理解的。
?如下圖,紅藍2個區域被非線性曲線分開了,從全局來看,難以用一個簡單的模型去擬合。但在局部可以用一個線性分類器(即局部可解釋模型)去劃分。
?
🚀LIME算法偽代碼如下:
🚀這個算法的偽代碼意思大概是(因為論文沒講那么細,下面加了一些補充知識):
?如現在我們要解釋一個樣本(上圖中加粗的+):
?1??1.原樣本的特征向量(可能是一些復雜的word embedding)轉成可解釋的特征向量,在文本中其實就是bag of words,二值向量,這樣更具解釋性,某個元素的值為1或0代表著個樣本有無這個單詞。而在圖像中,這個可解釋向量(二值向量)的元素則是指則某一連續像素塊構成的區域在樣本中有無(這些被劃分開的區域是指具有相似紋理、顏色等特征的相鄰像素構成的一定視覺意義下的不規則像素塊,論文稱為超像素)
【如在文本中,一個句子有3個單詞(I、am、happy),原樣本肯定都是有這3個單詞的,所以這個可解釋特征就比如這樣:[1, 1, 1]】
?2??2.隨機擾動這些可解釋的特征N次,得到N個樣本。然后將這些樣本帶入局部的這個線性分類器得到預測結果。將原特征維度的向量帶入原復雜分類模型得到預測結果。
【注:例如上面那個例子,隨機擾動(論文說用均勻分布)在原來[1, 1, 1]位置上填0)得到[1, 1, 0]、[0, 1, 1]等樣本即z’,然后恢復到原特征維度就相當于把元素為0的位置單詞刪掉得到的原特征向量】
?3??3.根據隨機擾動得到的樣本,我們可以計算它們與要解釋的樣本的距離,利用這個距離代入指數核計算得到原樣本相對于擾動樣本的權重,以定義要解釋的樣本的局部性。
?4??4.然后根據以上結果我們就可以通過以下公式去迭代學習出這個局部的可解釋模型了,目標函數如下:
即最小化局部模型與原模型的差異,同時權衡局部模型的復雜度。
?對于選取的特征個數,論文設置成了一個常數K。具體地,因為目標函數中的損失項其實就是類似回歸問題的損失函數,然后后面加個對權重的約束,其實就是lasso回歸的表示了。(局部的可解釋性模型,即線性模型g(z’)=w·z’,我們要做的就是擬合其與目標值,即原模型的預測值。就是回歸問題唄~)上面擾動后,得到了N個樣本,然后利用這N個樣本來做lasso回歸,最后得到的線性函數即局部解釋模型的權重即為各特征對應的模型預測該樣本的貢獻度。加上那個L1約束,使一些權重為0,就相當于篩選特征。
?論文另這個約束項為下式,里面那個||wg||_0 就是0范數,也就是非零權重的個數,因為我們要選K個特征嘛,然后>K就讓Ω(g)等于無窮大,<=k就等于|wg||_0。
?【🌙補充知識:Lasso回歸是在線性回歸模型的代價函數后面加上L1范數的約束項的模型,它通過控制參數lambda進行變量篩選和復雜度調整。使用L1或L2范數可以一定程度的防止模型的過擬合。L1范數可以使得得到的模型中若干系數為0,從而具備一定程度的“特征選擇”或“降維”能力。L0,L1范數可以實現稀疏化,而L1系數因為有比L0更好的特性而被廣泛應用,論文上面那個公式用的是L0范數。(文末附有鏈接詳細講解。)】
??符號定義:
f:原模型,即復雜的分類器
g:可解釋模型,即局部的簡單的可解釋模型。論文用的是線性模型,即g(z’)=w·z’
Ω(g):模型g的復雜度。(如Dtree中可以用樹的深度來表示,線性模型則可以用非零權重的數量表示)
G:局部的可解釋模型的假設空間
x:原特征維度的樣本
x’:可解釋特征維度的樣本
z’:可解釋特征維度的隨機擾動得到的樣本
z:z’ 恢復到原特征維度對應的樣本
π_x(z):即樣本x和樣本z的距離相近程度的衡量
?具體地:
?這個樣本x和樣本z的距離相近程度的衡量,這取決于樣本類型,文本那就用余弦相似度計算公式,圖像就L2范數公式咯。公式中的D即針對不同樣本類型采取的公式,然后就是利用了指數核處理得到衡量原樣本和擾動樣本的權重。
?這樣,目標函數中的損失項就可以用如下公式表示了:
(擾動樣本離原樣本越遠,我們賦予它越小的權重;越近,則賦予越大的權重。讓模型更關注局部的可解釋性。)
?
?SP-LIME算法:
?Submodular Pick for explanation models
?前面用LIME對單個樣本的預測提供了解釋。但是單個樣本的解釋還不足以讓使用者信服
?整個模型。且如果解釋所有樣本給用戶看的話,用戶肯定也沒這么多時間和耐心去看。所以SP-LIME的提出就是為了能夠挑出盡可能少的樣本但是這些樣本能夠盡可能多的覆蓋一些更重要的特征,這樣通過這些樣本就能夠較全面的了解模型做出的預測更依賴于哪些特征,以便用戶能較快的判斷該模型是否能夠信任了。
??符號定義:
X:給定的樣本集合
B:代表人類的耐心,也就是為了理解一個模型而愿意看到的解釋樣本的數量
W_ij:代表X中的第i個樣本經過LIME后,得到的第j個特征的重要性得分,即權重
W:即有所有W_ij構成的權重矩陣,即解釋矩陣。
I_j:定義其等于W中第j列,根號下所有W_ij的和。用來代表這個特征在解釋空間中的全局重要性得分。所以說,該特征能夠用來解釋的樣本越多,那I_j就越大。
?如下我們這種情況,f2特征涉及的樣本最多,那I_j就越大,說明其從從全局的視角來看更重要。同時因為第2和第5個樣本涵蓋了盡可能多的重要特征,所有SP-LIME會挑選出這2個樣本作為解釋給用戶。(其他幾個樣本都有些特征和這2個挑選的樣本的特征重復的情況,為了避免冗余不選它們)
?
🚀SP-LIME的算法偽代碼如下:
?其實就是根據LIME先得到 W 矩陣,然后計算 I 矩陣。接著就是用貪心算法去篩選出少于B個樣本作為解釋樣本呈現給用戶。
?通過下面的集合函數c,來定義非冗余覆蓋率:
?給定 W 和 I,計算至少在集合V的一個樣本中出現過一次的特征的總重要性得分。
(公式中空心1是指示函數,[ ]括號里面為真的話取1,為假的話取0)
?意思就是:若采樣集合V里存在樣本xi,且其對應權重W_ij大于0的話,認為V中包含了特征j,有1·j=j,否則認為V中不包含特征j。
?然后根據下式來優化集合V,直到找到的V實現更高的非冗余覆蓋率:
?因為優化上式是個NP難題,所以用貪心算法來解決,公式如偽代碼中所述。使每次迭代時添加到集合V中的樣本,能夠達到當前最高的非冗余覆蓋率:
?【比如說本次的樣本和上一個樣本有重復的,那通過下式相減就會去掉,即去除了冗余后的來對比,選出使非冗余覆蓋率最大的樣本】
?所以經過SP-LIME算法就能得到盡可能少的樣本,這些樣本又能夠覆蓋盡可能多的特征,反映盡可能完整的模型情況給用戶。
?
?實驗部分(略):
?Are explanations faithful to the model?
?Should I trust this prediction?
?Can I trust this model?
?Can users select the best classifier?
?Can non-experts improve a classifier?
?Do explanations lead to insights?
?實驗證明了LIME在大多數模型的信任任務測試上(CV、NLP)能夠產生有用的解釋,實驗還加入了一些噪聲特征進去,LIME能夠得出解釋這些特征不重要。用LIME剔除一些無用的特征使模型性能提高。還有讓ML專家和非專家根據LIME得出的解釋來選擇模型,改善不信任的模型
?
?總結:
?LIME既能對CV任務中的分類結果進行解釋,還能對NLP任務中的結果進行解釋,LIME具有廣泛性,與模型無關。但一個缺點就是速度會比較慢,畢竟采樣得到擾動樣本還要傳入原模型進行預測。
?我們可以利用LIME來對模型的預測做解釋,也可以用它來挑選出最好的模型,也可以利用LIME來做一些特征工程上的工作,將LIME得出的一些不重要特征進行剔除,以提高模型的分類預測能力。
?LIME是2016年提出的,作者在2018年又繼續改進在AAAI提出了Anchors方法《Anchors:High-Precision Model-Agnostic Explanations》,其目的是建立一套更精細的規則系統。而LIME在局部建立的是線性可分模型,線性模型能給出樣本中不同特征的相對重要性。但是,由于線性模型擬合的是局部的結果,對于一個未知樣本,不能確定線性模型的結果是否適用于該樣本(即不確定該樣本是否在局部范圍內),Anchor指出了LIME中線性模型無法確定覆蓋度(后文詳細解釋)的缺點。
?
?一些參考鏈接:
【1】(會有一些直觀地例子講解)【論文閱讀·2】”Why Should I Trust You?” Explaining the predictions of Any Classifier
【2】LIME:Why Should I Trust You? 文獻筆記
【3】(會有部分代碼分析LIME的算法原理)LIME:為什么我應該相信你?解釋任何模型的預測結果
【4】LASSO回歸與L1正則化
【5】Anchors:High-Precision Model-Agnostic Explanations——可解釋機器學習論文理解一
總結
以上是生活随笔為你收集整理的LIME-AI可解释模型:《“Why Should I Trust You?” Explaining the Predictions of Any Classifier》论文笔记的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 对伪元素::after和::before
- 下一篇: Swift如何实现与JSON互转