機器學習2021 — 深入黑箱:可解釋機器學習 (XAI) 技術概論
機器學習2021 — 深入黑箱:可解釋機器學習 (XAI) 技術概論¶
深入黑箱:可解釋機器學習 (XAI) 技術概論
近年來,隨著深度學習模型在各領域取得巨大成功,它們的複雜性也日益增加,被戲稱為「黑箱模型」。可解釋機器學習 (XAI) 的目標在於讓機器不只給出答案,還能提供得到答案的理由。
一、 可解釋機器學習的重要性與必要性
即使機器能夠得出正確的答案,也不代表它一定聰明。著名的「神馬漢斯」故事提醒我們,這匹馬看似能解數學題,實則只是偵測到人類微妙的情感變化以知道何時停止跺蹄,牠並非真正學會了數學。同樣地,我們需要確保人工智慧系統不是在利用不相關的特徵,而是真的學會了正確的概念。
可解釋性在許多實際應用中是必須的:
-
法律與金融領域的合規性: 銀行若使用機器學習模型來決定是否向客戶貸款,根據法律規定,必須給出判斷的理由。
-
關鍵領域的信任與安全: 在醫療診斷或法律判決等性命攸關的場景中,若模型是個黑箱,我們很難相信其判斷是公正且正確的,這也涉及到判斷是否帶有種族歧視等問題。
-
模型偵錯與改進: 當深度學習模型犯錯時,通常工程師只能盲目調整參數(如 Learning Rate 或網路架構)。若模型具有解釋力,我們便能知道它錯在哪裡,從而更有效率地修正模型。
-
自駕車決策: 當自駕車緊急剎車導致乘客受傷時,判斷其是否有問題,取決於急剎的理由(例如,是否因為看到老人過馬路)。
何謂好的解釋?
雖然可解釋性(Explanation)的目標往往不明確,難以設立明確的評分標準。但許多觀點認為,一個好的解釋,是能讓人接受的解釋。研究顯示,人類在被給出一個理由時,即使理由薄弱(如「因為我需要先列印」),接受度也會大幅提高。因此,XAI 的目標也是提供一個理由,讓客戶、老闆或使用者對黑箱模型感到安心與高興。
二、 局部解釋 (Local Explanation)
局部解釋旨在回答一個特定問題:對於一個特定的輸入物件 x,模型為什麼會做出現在這個判斷。
- 基本原理與目標
局部解釋的目標是找出輸入物件 x 中的哪些組件 (component) 對於模型判斷最終類別是重要的。
• 組件定義: 對於影像,組件可以是像素 (Pixel) 或區塊 (Segment)。對於語言處理,組件可能是一個詞彙 (Token)。
• 重要性判斷: 基本原則是擾動測試 (Perturbation Test)。如果將某個組件移除或改動後,模型的分類結果產生巨大影響,則該組件即是重要的。
- 關鍵技術與應用
A. 灰方塊擾動測試:
最簡單的方法是將一個灰色方塊貼在圖片上並移動,觀察模型對目標類別的信心分數變化。例如,當灰方塊挪到博美狗的臉上時,機器會無法判斷它是博美狗,這表明該區域是判斷的關鍵。
B. 梯度計算與顯著性圖 (Saliency Map):
此方法是計算輸入(如像素 xN)的微小擾動 (Δx) 對模型輸出 (YK 或 Loss e) 造成的影響 (ΔyK 或 Δe)。計算上,即是求該像素對輸出的偏微分 (Partial Derivative) 的絕對值。
• Saliency Map: 透過將偏微分的絕對值視覺化,以亮度或顏色表示每個像素的重要性,從而知道機器是看到圖中牛的位置而非草地做出判斷。
• 偵測偏差: Saliency Map 是重要的除錯工具。例如,在寶可夢與數碼寶貝的分類實驗中,模型可能學到只看背景(PNG 檔背景是黑的)來分類,而非看動物本身。它也可能發現模型根據圖片左下角的英文字串判斷出「馬」。
• 限制: 梯度飽和 (Gradient Saturation) 問題:當模型對某個特徵(如大象鼻子長度)的信心分數已達頂點時,即使特徵改變,梯度可能趨近於 0,導致模型錯誤地判斷該特徵不重要。
• 改進: Integrated Gradient (IG) 是一種解決梯度飽和問題的方法。SmoothGrad 則是透過對輸入圖片加雜訊後計算多個 Saliency Map 並取平均,以減少雜訊,使結果更易於人眼解讀。
C. LIME (Local Interpretable Model-Agnostic Explanations):
LIME 是針對單一輸入點的局部解釋技術。它的核心概念是利用一個可解釋的模型(通常是線性模型)去模仿黑盒模型在該輸入點附近的行為。由於線性模型的能力有限,無法模仿整個複雜模型的行為,因此 LIME 專注於局部的解釋。
• 影像應用: 在解釋影像分類時,LIME 會先將影像切成小區塊(Segment)。然後,透過隨機丟棄(塗灰)這些區塊來生成附近的樣品 (Sample)。
• 分析: 這些樣品會被丟入黑盒模型得到分數,接著訓練一個線性模型去擬合(Fit)這些輸入(區塊是否存在,用 0/1 表示)與黑盒輸出分數的關係。
• 結果: 分析線性模型的權重 (Weight, WN),即可知道每個區塊對判斷結果的影響:權重為正代表對該判斷有正向影響;權重為負代表對該判斷有負面影響;趨近於 0 則代表不重要。
三、 全局解釋 (Global Explanation)
全局解釋的目的並非針對任何一張特定圖片進行分析,而是要取出訓練好的模型,檢查對這個網路而言,某一個類別的概念到底長什麼樣子。它是想瞭解模型學習到的一般性特徵或概念。
- 基本原理與技術
A. 最大化激活(Maximizing Activation):
此方法是尋找或創造一張圖片 X∗,這張圖片不是來自資料庫,而是由機器自己創造出來的,目標是讓模型內部的某一部分(如某個 Filter 的 Feature Map)或最終的分類輸出分數達到最大化 (Maximize)。
• 過程: 將圖片 X 視為需要學習的參數(未知變數),使用類似梯度下降的反向過程 — — 梯度上升 (Gradient Ascent) 來最佳化 X,以找到能最大化激活的 X∗。
• 分析 Filter: 觀察中間層 Filter 對應的 X∗,可以知道該 Filter 負責偵測什麼樣的 Pattern。例如,在手寫數字辨識中,Filter 可能偵測基本的筆畫,如橫線或斜直線。
• 分析類別: 如果試圖找出讓某個最終類別(如數字 0)分數最高的 X∗,單純最大化往往只會得到一堆雜訊,看起來不像人想像中的數字。
• 加入限制: 為了解決雜訊問題,必須在最佳化過程中加上額外的限制 (Constraint),例如限制白色點(筆畫)的數量。通過嚴格的限制和參數調整,才能反推出人類可辨識的物體樣貌,例如文獻中反推的丹頂鶴或甲蟲的樣貌。
B. 使用生成器 (Generator):
為了產生更像樣的圖片,可以結合 Image Generator(如 GAN 或 VAE)。
• 過程: 訓練一個生成器 G,它能將低維向量 z 轉換成圖片 X。接著,不是直接找圖片 X,而是找一個低維向量 z∗。讓 G(z∗) 產生的圖片 X∗ 丟入分類器後,能最大化目標類別的分數。
• 結果: 此方法可以產生出清晰的圖像,例如機器心中「螞蟻」或「火山」的樣貌。
- 其他全局解釋方法
• 觀察神經元輸出: 透過將高維度的神經元輸出降維到二維,可以視覺化觀察網路的每一層學到了什麼。
例如在語音辨識中,可以觀察到網路經過幾層後,能將不同人說的內容相同的句子在特徵空間中對齊。
• 探測 (Probing): 訓練一個探針(通常是分類器)詞性 (POS Tag) 或人名地名 (NER) 等資訊。但是Probing有一個可能影響的是訓練出來的classifier表現未知,因此也無法判定某一層結果的好壞到底是該層學到資訊或是分類器訓練不夠好。
總結來說:局部解釋是針對單一事件尋找特定證據(如 Saliency Map 顯示哪個像素重要),幫助我們理解模型在該次判斷的依據;而全局解釋是針對模型整體,透過反推或分析內部參數,讓我們理解模型對世界的概念性認知(如 Filter 偵測的 Pattern 或理想中的「貓」長什麼樣子)。
參考資料
Comments
Loading comments…
Leave a Comment