“Why Should I Trust you ?”Explaining the Predictions of Any Classififier.-对分类预测进行解释
作者:18屆 cyl
日期:2021-08-08
論文:《“Why Should I Trust You?” Explaining the Predictions of Any Classififier》
一、簡單介紹
本篇文章主要思路是在一個復雜的模型中的局部提出一個簡單地可解釋的模型(Explainer),以提升整個復雜模型的可解釋性。
二、問題陳述
1.盡管機器學習模型被廣泛采用,但對大多數用戶來說這些模型大多是黑匣子,只知道輸入和輸出,不知道模型到底做了什么,也就不知道模型的預測結果和模型本身值不值得信任。
2.信任程度(trust)決定了人是否會針對預測結果采取行動(trusting a prediction);決定了人是否采用新的可信任的模型(trusting a model)。
3.為什么”trust“會成為一個問題呢?首先是若我們的模型被用于解決重要的決策類問題,如醫學診斷、恐怖行動檢測時,預測失敗的結果往往是我們不能承受的。
4.所以本文致力于提出一種模型無關的解釋模型,用于解釋“黑盒子”的輸出。
三、How to do?
一、為什么我們需要解釋器?
a.“解釋”這一行為有助于提高用戶對預測結果的接受程度。
上圖表示模型對一個人是否有“Flu”的預測。上圖的最左邊是一個醫學診斷模型,它通過輸入某個病人的一些基本癥狀得出"Flu"的診斷結果,通過解釋器的處理,可以得到放大鏡里面的是我們的解釋器對于模型診斷結果的背后的解釋,綠色代表促進這個結果的特征,紅色代表反對這個結果的特征。我們將最后的選擇權交還到醫生的手里,醫生可以通過這些”解釋“來判斷是否采納機器學習的預測結果。
b.對機器學習的從業人員來說,通常要從兩個或多個模型之間選擇一個最好的模型。若僅依賴于模型在驗證集上的表現(accuracy)來評估一個模型的可信任程度是不可靠的,因為驗證集數據往往無法看作自然場景下(in the wild)的數據,更何況從業者經常高估他們模型的準確性。
上圖舉出了一個文章分類的例子,判定該文章是描述“有神論”還是“無神論”。可以知道兩次的分類都是正確的。但仔細觀察可以發現Algorithm
2所判斷的文本是無神論還是有神論的主要依據是 “Post”, “Host”,
這個詞匯與無神論本身并沒有太多的聯系,雖然它的Accuracy很高,但它依然不可信的。因此我們可以認為這種”解釋“的行為給了我們選擇/不選擇一個模型的理由。
二、LIME方法介紹
LIME的全稱為:Local Interpretable Model-Agnostic Explanation,中文字面上的意思就是與模型無關的局部可解釋性的解釋。
1.基本原理
紅色和藍色區域表示一個復雜的分類模型(黑盒),圖中加粗的紅色十字表示我們感興趣的需要解釋的樣本x,顯然,我們很難從全局用一個可解釋的模型(例如線性模型)去逼近擬合它。但是,當我們把關注點從全局放到局部時,可以看到在某些局部是可以用線性模型去擬合的。具體來說,我們從加粗的紅色十字樣本x周圍采樣,將采樣出的樣本z反代回原分類模型并得到結果(紅十字和藍色點)。虛線表示我們通過這些采樣樣本學到的局部可解釋模型,在這個例子中就是一個簡單的線性分類器。它表示的含義是,在這個區域內,虛線左邊的point可以被分類為粉色十字架、虛線右邊的點可以被分類為藍色圓點。
2.Sparse Linear Explanations
本文為了簡單,LIME算法都用線性回歸算法。
目標函數:
表示的是采樣點z在原來的模型上(即復雜模型上)的輸出結果。
定義了實例z和x的接近程度(文本的話就是余弦相似性,圖像的話就是L2范數距離)。
可以理解為先選定了一個感興趣的instance x,然后利用一個權重為的采樣方式在樣本x周圍進行采樣。z表示的是經過采樣后的取樣點。
z′是z的可解釋形式(interpretable version)(可以理解為只有部分特征的實例)。對于文本來說,interpretable version就是選出K維的bag of words;對于圖像來說,interpretable version就是一組K維super-pixel組成的向量,K是人工設置的一個常數。LIME偽代碼如下:
1.首先要有一個分類器f(復雜模型),給定取樣的數量N
2.選定一個要解釋的樣本x,并給出其可解釋形式x’
3.定義一個相似度計算方式,并確定解釋的特征長度K
4.zi’:從x‘采樣而來;將z’還原到原維度,并計算預測值f(z)以及相似度
5.收集到N次采樣后的樣本后,利用Lasso regression取得訓練后的解釋模型的權重(即K個特征的相應權重)。
4.圖像分類應用
a.選定一張感興趣的待解釋圖片
b.超像素分割
由于LIME不介入模型的內部,需要不斷采樣,這里的樣本特征就是指圖片中一個一個的像素。但如果LIME采樣的特征空間太大的話,效率會非常低,而一張普通圖片的像素少說也有上萬個。若直接把每個像素視為一個特征,采樣的空間過于龐大,嚴重影響效率;如果少采樣一些,最終效果又會比較差。所以針對圖像任務使用LIME時還需要一些特別的技巧,也就是考慮圖像的空間相關和連續的特性。不考慮一些極小特例的情況下,圖片中的物體一般都是由一個或幾個連續的像素塊構成,所謂像素塊是指具有相似紋理、顏色、亮度等特征的相鄰像素構成的有一定視覺意義的不規則像素塊,我們稱之為超像素。
上圖的左邊為原圖,右邊為進行了超像素分割后的圖像,得到的特征是一個二進制向量。
c.進行采樣
隨即刪除一些圖像塊作為采樣過程,刪掉的圖像塊標為灰色,同時對應特征值改為0表示圖像塊不存在,將這些采樣后的圖像都丟進原模型種跑一遍得到他們屬于“frog”的概率值。
d.擬合解釋模型 并對結果進行解釋
根據采樣后的圖像特征及其概率值,我們可以訓練得到一個線性模型如上所示。用最終求得的wm來表示對應圖像塊的作用情況。當wm約為0時表示第m個圖像塊與預測結果無關,當wm大于0時表示第m個圖像塊和預測結果是正相關的,當wm小于0時表示第m個圖像塊和預測結果是負相關的。
三、SP-LIME方法介紹
盡管對single prediction的解釋可以讓用戶對分類器的可靠性有些理解,但想要達到對整個模型的評估和信任是不夠的,于是我們提出了Submodular pick的思路(SP)來對模型整體進行解釋。
SP的主要目的就是要求在Set X中選擇樣本和特征 B 去展示給用戶。它的算法流程如下所示:
右圖表示了給定了一組實例X,選取B個實例的流程。由于用戶沒有時間來檢查大量的解釋,我們使用budget
B代表人類的耐心,也就是為了理解一個模型而愿意看到的解釋的數量。
(首先通過算法1得到權重矩陣,第二根據所得的權重矩陣計算特征j的特征重要性,最后用貪心算法挑選盡量少的樣本覆蓋盡量多的特征。)
左圖舉了一個5實例5個特征的例子,行代表文檔實例,列代表特征也就是words。比如第一個文檔可以用f1和f2去解釋。我們可以看到藍框的f2特征可以被用于解釋最多的實例,因此我們可以認為f2特征重要性最高。
盡管我們希望選擇包含重要特征的實例,但在向用戶展示的過程中,一組解釋不能多余,所以我們要挑選盡量少的樣本覆蓋盡量多的特征。比如,當我們已經選擇了第二行的實例后,由于第三行的實例沒有增加新的特征解釋,第四行實例出現了一個重復特征解釋,因此選擇第五行實例。
四、實驗(可略)
這里的實驗設計分為兩個部分,主要為了解決下面6個問題
第一部分-模型用戶實驗
1.對于問題“LIME結果是否準確”,這里直接用LR和Decision Tree兩種模型來實驗,限定只選擇10個feature,發現LIME選擇的feature相比其他方法能取得更好的效果;
image-20200820222903857
2.對于問題”解釋能否讓人信任“,隨機去除25%的feature(這些特征在原模型的預測結果被標記為不可信任的特征),如果預測結果變了,則說明解釋不可信。
3.針對問題”我們能夠相信這個模型嗎“,也就是用戶面對兩個精度差不多的模型,如何進行取舍的問題。試驗中作者添加了10個人工的noisy features,如果我們計算出的importance features中出現了我們加入的噪聲特征,就認為這個explanation不值得信任。
第二部分-人類實驗者參與的實驗
1.第一個實驗針對的問題是:用戶能夠選擇出最好的分類器嗎?這里用的是文本分類來實驗,通過看TopN的重要feature,來協助人工判斷哪個模型更好;經過分析svm的重要特征,發現一些并無關的詞語出現在Top的位置,說明這樣訓練出來的模型是不可靠的,這需要重新清洗樣本,重新訓練;
2.第二個實驗是針對的問題是:那些沒有先驗知識的人是否根據LIME的結果改進一個分類器?通過人工不斷刪除不重要的feature,作者發現能提升模型效果;
3.第三個實驗是針對問題:解釋能否給出模型判斷的關鍵依據?在圖像分類中,作者發現模型把哈士奇predict為狼的依據是雪地,其中雪地是判別的關鍵依據。
四、結論
總結本文:
1.提出LIME算法,可解釋任何模型的輸出結果;
2.提出SP-LIME(Submodular pick-LIME)算法,以盡量少的樣本覆蓋盡量多的特征,以便人工觀察較少的樣本,即可大致判斷模型是否可信;
3.通過實驗驗證算法的可行性與有效性。無論是專家還是非專家用戶都可以做到:在模型之間做出選擇,評估模型和預測是否值得信任,改進不值得信賴的模型,指出模型不值得信任的地方。
改進工作:
1.我們在文中只用到了線性模型作為解釋,但我們的框架支持探索各種解釋類型,如決策樹。
2.領域無關和模型無關使我們能夠探索該框架在各種領域和模型中的應用。我們希望研究該框架在語音、視頻、醫療等領域的潛在用途。
總結
以上是生活随笔為你收集整理的“Why Should I Trust you ?”Explaining the Predictions of Any Classififier.-对分类预测进行解释的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 匈牙利算法的Java语言实现
- 下一篇: eclipse语言切换