# 5.7 Local Surrogate (LIME) ---------------- ## Theory: * LIME (Local Interpretable Model-Agnostic Explanations) * 限制式 * x : instance * f : original model * G : the family of possible explanations 可解釋的模型(如:線性回歸) * πx : 跟x的距離(相似度) * Ω(g) : model complexity 模型g的複雜度(e.g.決策樹的深度) * The recipe for training local surrogate models: * 選擇想解釋的個案 * 擾動樣本(perturb the input),再用這些擾動後樣本丟回原本的複雜模型找到預測值 * 根據新樣本與想解釋個案的距離進行加權 * 使用加權後得新樣本及預測值(擾動後樣本產出的)重新訓練新的可解釋模型 * 用簡單線性模型解釋個案 * K值:決定要放多少的因子去預測,K值少容易解釋,K值多則仿真度高 * LASSO(least absolute shrinkage and selection operator,最小絕對收縮和選擇算子),可參考4.7.1說明 ## 5.7.1 LIME for Tabular Data * 案例圖片簡述 A : 假設一組特徵空間x1, x2,而分類器邊界為淺藍色範圍(顏色深的為一類) B : 選取一個想解釋的資料點,並且取出常態分配的樣本(擾動樣本),如黑點所示 C : 距離想解釋的資料點越近的,給予越大的權重 (可以透過kernel width來調整想要取到多近) D : 拿C圖所示的這組樣本,訓練一個可解釋的模型,例如線性模型,並且得到一個近似的邊界 * LIME currently uses an exponential smoothing kernel to define the neighborhood. * 較小的內核寬度(kernel width)意味著實例必須非常接近才能影響局部模型 * 較大的內核寬度意味著距離較遠的實例也會影響模型 ## 5.7.2 LIME for Text 1. 將原文本的文字隨機移除 2. 每個字都變成二元的因子:1表示該字存在文本內,0則否 3. 看預測結果如何變化,來對原始複雜模型解釋 ## 5.7.3 > 所謂像素塊是指具有相似纹理、颜色、亮度等特征的相臨像素構成的有一定視覺意義的不規則像素塊,我們稱之為超像素。將圖片分割成一個個超像素的算法稱為超像素分割算法 - image classification 中,可以用 super pixel 的方式,先做 image separation,然後用 binary vector,來表示某個 super pixel 是否有存在,這個 binary vector,無論在影像辨識或文章分類,都代表某個元素 (人類可理解) 存在與否 - 針對這兩個部分(Original Image & Interpretable Components),設計成 Feature 也會是不同的表現方式。原始圖片進行辨識時,套入 CNN 模型的話,就會是一個三維的向量 (RGB),然後每個維度,就代表所對應 pixel 在該 channel 的數值;若是 super pixel,則是利用一個 binary vector 來表示,而每一個元素,代表第 i 個 super pixel,是否有存在於這張圖片之中。 - 如前面所述,先把原始的照片,轉成可解釋的資料表示 (Feature to Interpretable Data Representation)。左半邊就是原始照片,透過 RGB 三個 channel,將各 pixel 的數值,餵入CNN 模型,所以是一個三維的向量。接著再透過 super pixel 的方式,去取得這張照片的可解釋資料表示式。 - 選定一個想解釋的樣本,接下來就是要對這個樣本進行「可解釋的擾動」。並且在擾動完後,要還原到原始特徵的維度。 - 為了要進行擾動,把這張影像以一個 𝑑' 維的向量表示,並且向量裡的值只會是 0 或 1,而這個向量的第 i 個位置的數值,就代表第 i 個 super pixel 存在與否。若此向量的第 i 個數值為 0,代表將第 i 個 super pixel 蓋住,以下圖表示就是用灰色覆蓋;反之,若第 i 個數值為 1,則是保留該 super pixel。有了這樣的關係,就可以隨機抽取任 n 個 super pixel,選擇是否要覆蓋或是保留,這樣的做法,就是在進行「可被解釋的擾動」。至於擾動的程度大小或是數目是使用者可以設定。 - 然後再將這 N 個樣本,先還原到原始特徵空間,得到預測值做為真實值,並利用可解釋特徵的資料表示,建立簡單線性回歸,然後觀察哪些 super pixel 的係數很大。 - 在得到這些較大的係數後,再把相對應的 super pixel 視覺化,就能理解模型為什麼會做出這些判斷。 ## 參考資料 * https://medium.com/@kstseng/lime-local-interpretable-model-agnostic-explanation-%E6%8A%80%E8%A1%93%E4%BB%8B%E7%B4%B9-a67b6c34c3f8 * 內文code https://github.com/marcotcr/lime/blob/ce2db6f20f47c3330beb107bb17fd25840ca4606/lime/lime_tabular.py * http://www.atyun.com/3320.html * https://compstat-lmu.github.io/iml_methods_limitations/lime-neighbor.html * https://medium.com/analytics-vidhya/explain-your-model-with-lime-5a1a5867b423 ## Advantages: * 挑個好解釋的代理模型,例如決策樹 * 非正式場合接受度高 * 適用資料類型範圍廣,數據、文字、影像 * Python、R 都有 package ## Disadvantages: * 數據資料缺點:定義 neighborhood 範圍太廣 * Sample 給代理模型 unlikely data points (from 常態分配) * 必須先定義好代理(解釋)模型的複雜度 * 解釋的不穩定 ###### tags: `重點摘要`
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up