許多領域問題除了準確的預測外,更需要了解為什麼模型會得出這樣的預測,以便辨認模型的前在風險及輔助人類做決策,因此可解釋的機器學習模型是近年機器學習發展的重要方向。在分類模型中,許多人喜歡使用變數重要性 (Variable Importance) 去解釋分類模型的判斷標準,然而對於較複雜的模型,每個變數的些微改變可能都會對預測解果有顯著影響,因此很難以變數重要性去解釋複雜的模型。有沒有什麼方法可以幫助我們解釋複雜的分類模型呢?今天跟大家介紹一個非常受歡迎的方法 – LIME (Local Interpretable Model-Agnostic Explanations) ,以「模型為什麼會將某個個體 (instance) 分類到特定類別」為核心精神,解釋複雜分類模型的判斷標準。
LIME 的命名由來
假設我們擁有一個複雜的分類模型 ,LIME 想要解決的問題是:能不能夠找到一個容易解釋的模型
解釋為什麼一個個體 (instance) 會被分類到
預測的類別。LIME 的名字完整說明了作者對於這個問題的核心精神─在每一個個體附近 (也就是 Local) 找出一個簡單的 / 可以被人類理解的 (也就是 Interpretable) 決策準則
(也就是 Explanation),而且對於任何的模型
都能夠適用 (也就是 Model-Agnostic)。
LIME 的核心精神
以下這張圖可以很清楚的理解上面提到的精神。假設我們希望利用特徵 與
去預測一個個體是 + 還是 o,一個複雜但預測準確的模型
得到的決策準則如下圖紅色 / 藍色的區域。從圖中可以發現,我們很難用一個簡單的模型
(也就是可解釋的 interpretable 模型) 逼近,因此我們需要利用「局部」(local) 的特性。假設我們想要解釋下圖中較粗的 + 個體為什麼會被
判斷為 + ,我們可以在該個體的附近找出一個線性的決策區域 (粗虛線),作為可解釋該個體的模型,值得注意的是,這個決策模型在該個體附近的預測準確度與
相當,但在離該個體較遠的區域預測準確度就會大幅下降,這就是所謂的局部性。
我們用來估計簡單模型 的損失函數
是什麼?首先,由於可解釋模型
要用來逼近複雜模型
,所以
與
有關。此外,與
越相似的個體,應該要給予可解釋模型與複雜模型間的誤差較重權重,因此會有一個計算「與
相似與否」的核函數 (kernel function)
。最後,我們希望解釋模型越簡單越好,因此也會加入模型的複雜度
,其中
是可能被選來解釋
的簡單模型。總結來說,「找出可解釋模型
解釋
」的問題可以轉變成最佳化問題:
其中, 是簡單模型的家族,比如說:
所有的線性分類模型
,而任何一個
的模型都可以寫為
。
接下來的問題就是,假設給定一個個體 以及預測的類別
,我們要用什麼資料訓練「局部的」可解釋模型
呢?答案是:利用
附近的其他個體作為
的訓練集合。以上面的例子來說,我們隨機抽出綠色的個體 (設為
),利用這些個體作為模型
的訓練集合,試圖得到灰色虛線。
舉例而言,如果我們用來比較 與待解釋個體
相似度的函數為高斯相似度
衡量複雜模型 與簡單模型
間差異的函數為 $\latex \ell_2$ 損失,而衡量
複雜度的方式是「非零的係數個數」,則 LIME 的問題可以寫為以下最佳化問題:
其中 是調整參數 (tuning parameter)。實務上,我們除了用
來控制獲得模型的複雜度之外,更常會限制線性模型中非 0 參數的個數,以利我們進行解釋。
範例:運用 LIME 解釋癌症預測結果
Undetstanding lime 是一個很簡單易懂的 LIME 操作教學(使用 R 的 lime 套件),裡面有一個「以腫瘤切片 (biopsy) 結果進行癌症預測」的案例,得出來的解果如下圖所示。其中每一個直方圖是一個個體,其中綠色的直條代表該特徵是支持該個體被分類到指定 label,紅色的直條代表該特徵是支持該個體被分到其他 label。預先設定線性模型中非 0 的參數不能超過 4 個,以 Case 416 為例,直方圖的 Y 軸顯示了 Case 416 得出的局部解釋模型中,4 個參數非 0 的特徵, lime 套件可以讓你選擇是否要把連續變數切成不同區間(像決策樹一樣),以便解釋複雜預測模型在 Case 416 附近的行為。
要看多少個個體,才能完整理解?
雖然只看一個個體的結果,我們對於複雜模型就有基礎的認識,但若要有全面性的理解,我們可能需要看很多個個體。但是,到底要看哪些個體呢?看多少個個體才算足夠呢?在原始的 paper 中有提供一個選擇個體的演算法,稱作 Submodular pick (SP) 演算法,但由於我沒有非常喜歡這個方法,加上這個演算法也相當直覺好懂,所以我就留給大家自己去看原始的 paper 囉 XD 有關 David’s Perspective 的最新文章,都會發布在大鼻的 Facebook 粉絲專頁,如果你喜歡大鼻的文章,還請您不吝嗇地按讚或留言給我喔!
大鼻觀點:https://www.facebook.com/davidperspective/