---
# System prepended metadata

title: 5.8 Scoped Rules (Anchors)
tags: [重點摘要]

---

# 5.8 Scoped Rules (Anchors)

1. 概述
* Anchors是 LIME 的延續，用以解決 LIME 中線性模型無法確定覆蓋度的缺點，以規則集合描述模型的局部行為，根據規則的充分條件來推測模型的行為及分類結果

* 大多數的可解釋模型，都是使用一個線性模型去擬合模型的局部行為，線性模型能給出樣本中不同特徵的相對重要性。但是由於線性模型擬合的是局部的結果，對於一個未知樣本，不能確定線性模型的結果是否適用於該樣本（即不確定該樣本是否在局部範圍內），這也就是線性模型的覆蓋度是不確定的，會導致低精確度（預測模型行為的精確度）

* Anchors 為一種模型無關的解釋複雜機器學習模型的系統，使用高精度的規則進行解釋(使用局部的充分條件來解釋模型行為) 透過演算法來有效地生成這樣的規則，設計了多組實驗，針對各種複雜模型和不同領域，來驗證Anchors的可擴展性

* Anchors 無關的可解釋模型，基於if-then的規則，給出的解釋是模型在局部行為的充分條件，也就是說，若模型滿足該條件，則模型會給出某種分類(如公式)

* D(.|A)表示滿足規則A的樣本的分佈，定義A為 Anchor，當A(x)=1，且A為預測f(x)的充分條件（即樣本滿足A中所有條件時，用據此判斷原始模型對樣本的預測結果大多數條件下是正確的）。

2. 5.8.1 Finding Anchors 方法使用四個主要組件來說明
* (1) 候選生成：生成新的解釋候選。在第一輪中，每個特徵 x有一個候選項被創建並修復可能的擾動的相應值。在每隔一輪中，前一輪的最佳候選者將被一個尚未包含在其中的特徵謂擴展

* (2) 最佳候選者識別：應比較候選規則，以解釋哪些規則 x 最好的。為此，通過調用模型來評估與當前觀察到的規則匹配的擾動。但是，這些調用需要最小化以限制計算。MAB (多臂吃角子老虎機測試 Multi-Armed Bandit)用於通過順序選擇有效地探索和利用不同的策略。在給定的設置中，每個候選規則都應視為可以拉動的手臂。每次將其拉出時，都會對相應的鄰居進行評估，從而獲得有關候選規則的收益（Anchors 情況下的精度）的更多信息

* (3) 候選精度驗證：選取更多樣本，檢視其他組合候選 τ 閾值

* (4) 改進Beam 搜索：上述所有組件都組合在Beam搜索中，Beam搜索是一種圖形搜索算法，是廣度優先算法的一種變體。Beam search algorithm. 每次輸出時，不在只是找出機率最高的規則，而是找出機率最好的前N個規則(beam width)
  
 
 ## 5.8.3 表格資料分析--看圖時間
 透過圖表，可以直觀看到每組的anchors rules, coverages, precicion
 * 每條 bar 為一組 anchor
 * Bar 的寬度為coverage, X軸為該 rules 的precision
 * Bar 中的方塊為每個Features 的importance, 每格上的文字/數字為 feature 條件
 
 FIGURE 5.40 
 * 當抓到的 anchor 位在決策邊界時（decision boundary)時，會出現 rule 有多個 feature 有貢獻。每個 rules 會因含括多個 feature 而降低 coverage 。
 * 通常會用這個來判斷抓到了一個不穩定的anchor neighborhood
 
 FIGURE 5.41
 * 在一個 unbalanced 的 data 中:
     * Y=0 都是empty rule， why ?
       因為 Y=1 太少，所以取得候選規則後所抓的鄰居都是Y=0(健康的)，學不到切分出y=0 & y=1的rule，最終造成empty rule。 
     * Y=1 規則複雜， why?
        因為Y=1所在的 perturbation space 都是Y=0，rules就會overly specific，像專門為該點所設計的。找不到 generals rules並造成低coverage，因為鄰居都跟他不一樣  （類似5.40的情況）

FIGURE 5.42 想要解決5.41遇到的問題
* 方法一 samples differently
    * 造成coverage 的 scope 改變
* 方法二 modify the MAB’s confidence δ and error parameter values ϵ
    * 每次計算抽更多的樣本，但會有重複抽樣的問題（放大少數特殊樣本的影響力）

圖片中，作者選擇抽樣，讓樣本幾乎都只有 Y=1（有癌症）
優點：可以看到個別 case 的決定性因子，且具有一定的coverage 
缺點：這裡的coverage不等於全母體(global)的coverage

 
 
 
## Advantages:
Anchors比LIME好的地方：
* output容易理解，因規則容易解讀
* 可用子集資料，並以coverage來評量重要性
* 即便模型預測值是複雜、非線性仍然可以使用
* 因為使用reinforcement learning的技術，模型較不會underfitting
* model-agnostic，可用於各種模型
* 運算非常有效率，使用MAB batch sampling可以平行運算


## Disadvantages:
* 一堆參數要設定和校調，每種use case都要設計自己的perturbation function
* 很多情境下需要離散化資料，否則結果只適用於少數資料點，coverage過低。而離散化沒小心使用可能會模糊dicision boundaries、造成反效果
(Discretization is the process through which we can transform continuous variables, models or functions into a discrete form)
* 運算速度取決於模型performance
* 在某些範疇（如影像），coverage未被定義好

## Software
作者有寫Python有套件與教學，[直接看作者的推薦吧](https://github.com/marcotcr/anchor)
[Alibi](https://docs.seldon.io/projects/alibi/en/stable/methods/Anchors.html)
目前只能用在tabular data 與 text data，但理論上可用於任何形式的資料

## 參考資料
[可解釋機器學習論文理解](https://blog.csdn.net/qq_34806485/article/details/85682491)：簡單描述論文Anchors: High-Precision Model-Agnostic Explanations的重點
[可解释性机器学习](https://blog.csdn.net/weixin_37409506/article/details/102621139)：什麼？！這篇把書的內容都簡短說明
[多工學習時轉角遇到Bandit老虎機](https://www.jishuwen.com/d/p29p/zh-tw)：MAB是什麼？
[Beam width](https://www.cnblogs.com/sddai/p/10552592.html)：啟發式圖搜索算法，快速找到最接近正確解的方法之一
[作者PPT](https://drive.google.com/file/d/1QdBRUCn_yYtUlJaTyWghcp9XJZ4K2kY9/view) 
[參考論文]
https://homes.cs.washington.edu/~marcotcr/aaai18.pdf

###### tags: `重點摘要`