天天看點

LIME-AI可解釋模型:《“Why Should I Trust You?” Explaining the Predictions of Any Classifier》論文筆記⭐論文的主要貢獻:⭐論文認為解釋器應該具備以下4個特征:⭐LIME算法:⭐SP-LIME算法:⭐實驗部分(略):⭐總結:⭐一些參考連結:

論文來源:KDD-2016

論文連結:https://arxiv.org/abs/1602.04938v3

 🚀盡管一些機器學習模型的性能很好,被得到廣泛使用,但其仍然是個黑盒子,至于為啥模型做出這樣的決定我們是不知道的,對于某些領域(如醫學領域、自動駕駛領域)來說,即使模型的準确率很高,但可能也不敢過度相信其做出的決定。是以我們需要一個解釋器來告訴我們為啥模型做出這樣的預測等細節。

⭐論文的主要貢獻:

 1.提出了一種稱為 LIME 的算法模型,它以一個能夠讓人信服的方式為任何分類模型或回歸模型解釋其做出的預測。通過一個局部的可解釋模型來近似原模型來解釋。

 2.同時,提出了一個叫SP-LIME的方法,該算法能夠挑選盡量少的樣本覆寫盡量多的特征,友善人們能夠看到較少的樣本大緻判斷是否相信這個模型。

 3.實驗驗證了算法的可行性和有效性。

 【注:這裡所說解釋器對模型預測做出的解釋,就是,比如說:在文本中,解釋器會挑選出一些單詞(即對模型做出預測貢獻較大的特征)來作為解釋;在圖像中則會挑選一些像素區域來作為解釋。這樣人們就可以直覺地确定為啥模型會做出這樣的決定,且人們對于特定領域多多少少會有一些先驗知識的了解,是以根據解釋器做出的直覺解釋,就能夠快速判斷這模型是否可信。】

LIME-AI可解釋模型:《“Why Should I Trust You?” Explaining the Predictions of Any Classifier》論文筆記⭐論文的主要貢獻:⭐論文認為解釋器應該具備以下4個特征:⭐LIME算法:⭐SP-LIME算法:⭐實驗部分(略):⭐總結:⭐一些參考連結:

⭐論文認為解釋器應該具備以下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-AI可解釋模型:《“Why Should I Trust You?” Explaining the Predictions of Any Classifier》論文筆記⭐論文的主要貢獻:⭐論文認為解釋器應該具備以下4個特征:⭐LIME算法:⭐SP-LIME算法:⭐實驗部分(略):⭐總結:⭐一些參考連結:

🚀LIME算法僞代碼如下:

LIME-AI可解釋模型:《“Why Should I Trust You?” Explaining the Predictions of Any Classifier》論文筆記⭐論文的主要貢獻:⭐論文認為解釋器應該具備以下4個特征:⭐LIME算法:⭐SP-LIME算法:⭐實驗部分(略):⭐總結:⭐一些參考連結:

🚀這個算法的僞代碼意思大概是(因為論文沒講那麼細,下面加了一些補充知識):

 如現在我們要解釋一個樣本(上圖中加粗的+):

 1️⃣1.原樣本的特征向量(可能是一些複雜的word embedding)轉成可解釋的特征向量,在文本中其實就是bag of words,二值向量,這樣更具解釋性,某個元素的值為1或0代表着個樣本有無這個單詞。而在圖像中,這個可解釋向量(二值向量)的元素則是指則某一連續像素塊構成的區域在樣本中有無(這些被劃分開的區域是指具有相似紋理、顔色等特征的相鄰像素構成的一定視覺意義下的不規則像素塊,論文稱為超像素)

【如在文本中,一個句子有3個單詞(I、am、happy),原樣本肯定都是有這3個單詞的,是以這個可解釋特征就比如這樣:

[1, 1, 1]

LIME-AI可解釋模型:《“Why Should I Trust You?” Explaining the Predictions of Any Classifier》論文筆記⭐論文的主要貢獻:⭐論文認為解釋器應該具備以下4個特征:⭐LIME算法:⭐SP-LIME算法:⭐實驗部分(略):⭐總結:⭐一些參考連結:

 2️⃣2.随機擾動這些可解釋的特征N次,得到N個樣本。然後将這些樣本帶入局部的這個線性分類器得到預測結果。将原特征次元的向量帶入原複雜分類模型得到預測結果。

【注:例如上面那個例子,随機擾動(論文說用均勻分布)在原來

[1, 1, 1]

位置上填0)得到

[1, 1, 0]、[0, 1, 1]

等樣本即z’,然後恢複到原特征次元就相當于把元素為0的位置單詞删掉得到的原特征向量】

 3️⃣3.根據随機擾動得到的樣本,我們可以計算它們與要解釋的樣本的距離,利用這個距離代入指數核計算得到原樣本相對于擾動樣本的權重,以定義要解釋的樣本的局部性。

 4️⃣4.然後根據以上結果我們就可以通過以下公式去疊代學習出這個局部的可解釋模型了,目标函數如下:

即最小化局部模型與原模型的差異,同時權衡局部模型的複雜度。

LIME-AI可解釋模型:《“Why Should I Trust You?” Explaining the Predictions of Any Classifier》論文筆記⭐論文的主要貢獻:⭐論文認為解釋器應該具備以下4個特征:⭐LIME算法:⭐SP-LIME算法:⭐實驗部分(略):⭐總結:⭐一些參考連結:

 對于選取的特征個數,論文設定成了一個常數K。具體地,因為目标函數中的損失項其實就是類似回歸問題的損失函數,然後後面加個對權重的限制,其實就是lasso回歸的表示了。(局部的可解釋性模型,即線性模型g(z’)=w·z’,我們要做的就是拟合其與目标值,即原模型的預測值。就是回歸問題呗~)上面擾動後,得到了N個樣本,然後利用這N個樣本來做lasso回歸,最後得到的線性函數即局部解釋模型的權重即為各特征對應的模型預測該樣本的貢獻度。加上那個L1限制,使一些權重為0,就相當于篩選特征。

LIME-AI可解釋模型:《“Why Should I Trust You?” Explaining the Predictions of Any Classifier》論文筆記⭐論文的主要貢獻:⭐論文認為解釋器應該具備以下4個特征:⭐LIME算法:⭐SP-LIME算法:⭐實驗部分(略):⭐總結:⭐一些參考連結:

 論文另這個限制項為下式,裡面那個||wg||_0 就是0範數,也就是非零權重的個數,因為我們要選K個特征嘛,然後>K就讓Ω(g)等于無窮大,<=k就等于|wg||_0。

LIME-AI可解釋模型:《“Why Should I Trust You?” Explaining the Predictions of Any Classifier》論文筆記⭐論文的主要貢獻:⭐論文認為解釋器應該具備以下4個特征:⭐LIME算法:⭐SP-LIME算法:⭐實驗部分(略):⭐總結:⭐一些參考連結:

 【🌙補充知識:Lasso回歸是線上性回歸模型的代價函數後面加上L1範數的限制項的模型,它通過控制參數lambda進行變量篩選和複雜度調整。使用L1或L2範數可以一定程度的防止模型的過拟合。L1範數可以使得得到的模型中若幹系數為0,進而具備一定程度的“特征選擇”或“降維”能力。L0,L1範數可以實作稀疏化,而L1系數因為有比L0更好的特性而被廣泛應用,論文上面那個公式用的是L0範數。(文末附有連結詳細講解。)】

LIME-AI可解釋模型:《“Why Should I Trust You?” Explaining the Predictions of Any Classifier》論文筆記⭐論文的主要貢獻:⭐論文認為解釋器應該具備以下4個特征:⭐LIME算法:⭐SP-LIME算法:⭐實驗部分(略):⭐總結:⭐一些參考連結:

 ❗符号定義:

f:原模型,即複雜的分類器

g:可解釋模型,即局部的簡單的可解釋模型。論文用的是線性模型,即g(z’)=w·z’

Ω(g):模型g的複雜度。(如Dtree中可以用樹的深度來表示,線性模型則可以用非零權重的數量表示)

G:局部的可解釋模型的假設空間

x:原特征次元的樣本

x’:可解釋特征次元的樣本

z’:可解釋特征次元的随機擾動得到的樣本

z:z’ 恢複到原特征次元對應的樣本

π_x(z):即樣本x和樣本z的距離相近程度的衡量

 具體地:

 這個樣本x和樣本z的距離相近程度的衡量,這取決于樣本類型,文本那就用餘弦相似度計算公式,圖像就L2範數公式咯。公式中的D即針對不同樣本類型采取的公式,然後就是利用了指數核處理得到衡量原樣本和擾動樣本的權重。

LIME-AI可解釋模型:《“Why Should I Trust You?” Explaining the Predictions of Any Classifier》論文筆記⭐論文的主要貢獻:⭐論文認為解釋器應該具備以下4個特征:⭐LIME算法:⭐SP-LIME算法:⭐實驗部分(略):⭐總結:⭐一些參考連結:

 這樣,目标函數中的損失項就可以用如下公式表示了:

(擾動樣本離原樣本越遠,我們賦予它越小的權重;越近,則賦予越大的權重。讓模型更關注局部的可解釋性。)

LIME-AI可解釋模型:《“Why Should I Trust You?” Explaining the Predictions of Any Classifier》論文筆記⭐論文的主要貢獻:⭐論文認為解釋器應該具備以下4個特征:⭐LIME算法:⭐SP-LIME算法:⭐實驗部分(略):⭐總結:⭐一些參考連結:

⭐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就越大。

LIME-AI可解釋模型:《“Why Should I Trust You?” Explaining the Predictions of Any Classifier》論文筆記⭐論文的主要貢獻:⭐論文認為解釋器應該具備以下4個特征:⭐LIME算法:⭐SP-LIME算法:⭐實驗部分(略):⭐總結:⭐一些參考連結:

 如下我們這種情況,f2特征涉及的樣本最多,那I_j就越大,說明其從從全局的視角來看更重要。同時因為第2和第5個樣本涵蓋了盡可能多的重要特征,所有SP-LIME會挑選出這2個樣本作為解釋給使用者。(其他幾個樣本都有些特征和這2個挑選的樣本的特征重複的情況,為了避免備援不選它們)

LIME-AI可解釋模型:《“Why Should I Trust You?” Explaining the Predictions of Any Classifier》論文筆記⭐論文的主要貢獻:⭐論文認為解釋器應該具備以下4個特征:⭐LIME算法:⭐SP-LIME算法:⭐實驗部分(略):⭐總結:⭐一些參考連結:

🚀SP-LIME的算法僞代碼如下:

LIME-AI可解釋模型:《“Why Should I Trust You?” Explaining the Predictions of Any Classifier》論文筆記⭐論文的主要貢獻:⭐論文認為解釋器應該具備以下4個特征:⭐LIME算法:⭐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。

LIME-AI可解釋模型:《“Why Should I Trust You?” Explaining the Predictions of Any Classifier》論文筆記⭐論文的主要貢獻:⭐論文認為解釋器應該具備以下4個特征:⭐LIME算法:⭐SP-LIME算法:⭐實驗部分(略):⭐總結:⭐一些參考連結:

 然後根據下式來優化集合V,直到找到的V實作更高的非備援覆寫率:

LIME-AI可解釋模型:《“Why Should I Trust You?” Explaining the Predictions of Any Classifier》論文筆記⭐論文的主要貢獻:⭐論文認為解釋器應該具備以下4個特征:⭐LIME算法:⭐SP-LIME算法:⭐實驗部分(略):⭐總結:⭐一些參考連結:

 因為優化上式是個NP難題,是以用貪心算法來解決,公式如僞代碼中所述。使每次疊代時添加到集合V中的樣本,能夠達到目前最高的非備援覆寫率:

 【比如說本次的樣本和上一個樣本有重複的,那通過下式相減就會去掉,即去除了備援後的來對比,選出使非備援覆寫率最大的樣本】

LIME-AI可解釋模型:《“Why Should I Trust You?” Explaining the Predictions of Any Classifier》論文筆記⭐論文的主要貢獻:⭐論文認為解釋器應該具備以下4個特征:⭐LIME算法:⭐SP-LIME算法:⭐實驗部分(略):⭐總結:⭐一些參考連結:

 是以經過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——可解釋機器學習論文了解一

繼續閱讀