Explainable AI(1) —
LIME (Local Interpretable Model-Agnostic Explanations)

Cyan
Taiwan AI Academy
Published in
9 min readJun 10, 2020

在開始閱讀前,可以先看看這篇paper團隊做的介紹影片,了解為何需要可解釋模型:

LIME,是由Local(局部), Interpretable(可理解), Model-Agnostic(視模型為黑盒子)與Explanations(解釋)這四個核心價值所組成,底下會就論文的架構來逐一說明。

1.Interpretable Data Representations(可理解的資料表徵)

在跳進解釋模型之前,要先談談「資料」的「可理解的表徵(interpretable representation)」跟「特徵(feature)」之間的區分。
這些我們要拿來分析的資料表徵,必須要是人類可以理解的,才能去解釋他或是調控他;而特徵,是模型看資料的角度,以圖像為例,是由一個三個channel分別表示RGB的張量所構成,但就人類觀點可能很難將其轉化成我們熟悉的「特徵」,像是圖片中有沒有臉、有沒有樹等等的,以下是兩個例子:

  • 在文本分類的課題裡,一種可理解表徵可能會是一個binary vector,每個element表示這個字有沒有出現(1或0)
  • 另一種大家比較熟悉的課題:圖像分類,一樣可以有類似的表示方式:一個binary vector,裡面每個element表示了這張圖的超像素(super-pixel)有沒有出現。

Superpixel:簡單來說,就是把pixel周圍相似的其他pixel混合成一塊塊的segments,每一個segment就可以當作是一個superpixel(𝑠𝑝ᵢ)。

以下圖為例,這些superpixels可以轉化為我們認知上的「特徵」,像是臉、眼睛、衣服或手臂等等的,這些都能由superpixels來組合出來。

https://ivrl.epfl.ch/research/superpixels

註:知乎有一篇在介紹superpixel演算法的文章,非常值得一讀:

2.Fidelity-Interpretability Trade-off(忠實度與可解釋的權衡)

接著就是著手設計我們的解釋模型,要從所有可能的解釋模型集合𝐺找到一個簡單的解釋模型𝑔,我們需要考慮到幾個面向:

  • 首先,我們希望我們的解釋模型最好是能像decision tree或是linear model能直接告訴我們因為哪些因子導致他會這麼判別,然而不是所有的𝑔都能這麼簡單易懂,所以需要測量模型複雜度的指標:model complexity Ω(𝑔)來把關解釋模型到底容不容易懂。

舉例來說,在decision tree裡面的Ω(𝑔)可能是測量樹的深度,而在linear model裡面可能是測量非零的權重有幾個。

  • 由於想要考慮𝑓在一個局部區域的表徵,所以要先以一個sample 𝑥ᵢ來當作基準,將與𝑥ᵢ相似的抽樣樣本𝑧加入考量,越接近的樣本應該要給予更重的誤差權重,因此利用一個kernel function 𝜋ₓ(𝑧)來計算𝑧與𝑥的接近的程度,同時也定義何謂𝑥的附近區域(局部性)。
  • 最後,𝑓與𝑔在𝑥上的誤差要越小越好,意即要盡量忠實的呈現模型𝑓的結果;然而越忠實呈現𝑓的結果,可能會導致我們的𝑔越難以解釋,我們使用𝐿(𝑓,𝑔,𝜋ₓ)來量測在𝜋ₓ所定義的局部區域中,𝑔有多不像𝑓。

所以綜合上述這三點,找出解釋模型𝑔就可以轉化為解出一個最佳化問題:

上式要最小化的目標為𝑓與𝑔之間的差異加上𝑔的複雜度,即希望𝑔能有跟𝑓一樣的表現同時能夠解釋

3.Sampling for Local Exploration(局部探索抽樣)

由於LIME的核心之一是Model-Agnostic(視模型為黑盒子),意即對於模型沒有任何假設,同時又要最小化上面的loss:𝐿(𝑓,𝑔,𝜋ₓ),所以當這些可理解的輸入變化時,為了要了解模型𝑓在局部的行為,作者就用了抽樣的方法進行,並且利用𝜋ₓ來作為抽樣樣本的權重(意即我們只想要local samples而非global,如同前面所說,越接近𝑥ᵢ的𝑧,其權重越大),來估計𝐿(𝑓,𝑔,𝜋ₓ)。

對於抽樣的方法則是以下列三個步驟進行:

  1. 抽樣的資料必須要是「可理解的」(interpretable),所以這時我們就需要前面提到的「可理解的表徵」這種形式的資料來幫助我們進行抽樣,而得到想要的局部樣本。
  2. 我們將原本的sample 𝑥先轉為 𝑥′(像是將圖片從tensor轉為superpixel vector),再將非零的elements做隨機均勻抽樣(抽樣的elements數也是隨機均勻抽樣),由此我們就可以得到一堆的擾動樣本(perturbed samples) 𝑧′。這時,這些擾動樣本還是以「可理解的表徵」的形式儲存。
  3. 有了這些局部的資料後,我們必須先把它轉成模型看得懂的形式𝑧,才可以把它餵給𝑓,來得到我們想要的label 𝑓(𝑧)。一旦有了這些𝑧′以及對應的label 𝑓(𝑧),我們就能利用上面的求最佳化方法,得到我們想要的解釋模型𝑔。

底下是一個簡單例子來說明求得解釋模型𝑔的方法:
圖中區分出紅、藍色塊的部分是我們希望了解的二元分類模型𝑓,我們以「亮紅色加號」表示要解釋的樣本,符號(點或加號)比較大的就是所謂的局部的樣本(𝜋ₓ比較大)。
而針對這些樣本,我們可以透過最佳化找出一個解釋模型𝑔(即粗黑虛線)來擬合 在該局部區域的分類狀況。

https://github.com/marcotcr/lime

4.Sparse Linear Explanations (稀疏的線性解釋)

接下來的部分就是找出解釋模型𝑔的細節。在paper中,作者使用linear model來當作𝐺的model sets:

在解釋模型中, 𝑤_𝑔ᵢ值越大代表該superpixel 𝑧ᵢ′越與預測的該類結果乘正相關,反之乘負相關,而0則代表與預測結果無相關。並且以下面方式定義kernel function 𝜋ₓ以及 𝐿:

Distance function 𝐷的定義在text中可以是 cosine distance,而在圖片中則可以是L2 distance,之後用一個 σ常數當作是採樣的寬度(越大表示「局部」的範圍越大)

而Ω(𝑔)的設定可以依課題而異,像是針對文本分類,我們為了要加強可解釋性而想要對文字的數量設定一個上限𝐾的時候,就可以使用下面這種公式:

或是在圖像辨識時,可以像這篇paper一樣使用K-LASSO (先用Lasso選出K個features再丟進model去算least square error,達到線性模型稀疏化的結果,以方便我們解釋模型的行為)來作為解釋模型,詳細的演算法流程如下:

最後,對於interpretable representation有兩個重要的點要補充:

  • 因為我們把模型當成黑盒子的關係,有些「可理解的表徵」是沒有能力解釋某些模型分類的行為,像是如果用superpixel的representation,我們無法知道模型是怎麼把一張棕褐色的老照片判別為「復古」。
  • 我們對𝐺的選擇也會影響到解釋力,像是如果模型𝑓在局部的區域依然展現高度的非線性,我們的線性模型𝑔也沒有辦法擬合得很好。

paper的後面一個章節是在說怎麼自動化找出能夠代表模型表徵的樣本,不過需要一種通用的interpretable representation,能讓不同樣本的binary vector中每個element有共同的意義,所以在image classification的例子中就不能使用superpixel這種很直覺的轉換方法了,而且內文也沒有特別提到這種representation要怎麼設計,故這邊就不再多加贅述。

讀完這篇論文覺得四大概念中,Local(局部)與Model-Agnostic(視模型為黑盒子)這種想法非常的有趣:前者是針對樣本來分析模型,所以能夠在複雜的模型中找到一線可解釋的曙光;後者厲害的地方是,不管你是比賽神器Xgboost還是參數一堆的CNN,LIME都幾乎能用同一招來拆解。最後就是所有人讀論文最期待的網址 — github啦!這篇也是很佛的提供了github網址給大家實驗看看,連結:https://github.com/marcotcr/lime,有興趣的可以來實驗看看喔!

參考資料

Original Paper:“Why Should I Trust You?” Explaining the Predictions of Any Classifier

--

--