模型可解釋性
本文描述方法供您用於 Azure Machine Learning 中的模型可解釋性。
重要
隨著包含模型可解釋性的負責任 AI 儀表板發行,建議您改為使用新版本,因為舊版的 SDKv1 預覽模型可解釋性儀表板將不再主動維護。
模型可解釋性對模型偵錯的重要性
若機器學習模型的使用方式會影響到人們的生活,就一定要了解什麼因素會影響到模型的行為。 可解譯性有助於回答下列案例中的問題,例如:
- 模型偵錯:為什麼我的模型發生這個錯誤? 如何改善我的模型?
- 人類 AI 共同作業:該如何了解及信任模型的決策?
- 法規合規性:我的模型是否符合法律需求?
負責任 AI 儀表板的可解釋性元件,能對機器學習模型的預測產生人類可理解的敘述,以此方式參與模型生命週期工作流程的「診斷」階段。 它會針對模型行為提供多種觀點:
- 全域說明:例如,哪些特徵會影響貸款配置模型的整體行為?
- 局部說明:例如,客戶的貸款申請為何通過核准或遭到拒絕?
您也可以觀察所選世代的模型說明,作為資料點的子群組。 舉例來說,在評估模型預測對特定人口統計群組中的個人的公平性時,這種方式就相當有價值。 此元件的 [局部說明] 索引標籤也會呈現完整的資料視覺效果,非常適合一般的資料檢視工作,並且可注意每個世代的正確預測與不正確預測之間的差異。
此元件的功能是由 InterpretML 封裝所建立,其會產生模型的說明。
當您有以下需求時,請使用可解譯性:
- 藉由瞭解對於預測而言最重要的功能,判斷您的 AI 系統預測值得信任的程度。
- 為了處理您的模型偵錯,請先了解模型,並確認模型是否使用良好的特徵,或只是假性相互關聯。
- 了解模型是否是根據敏感性特徵或高度相互關聯的特徵進行預測,以找出潛在的不公平性來源。
- 產生局部說明以描述其結果,建立使用者對模型決策的信任。
- 完成 AI 系統的法規稽核,以驗證模型並監視模型決策對人類的影響。
如何解讀模型
在機器學習中,「特徵」是用來預測目標資料點的資料欄位。 例如,若要預測信用風險,可能會使用年齡、帳戶規模和帳戶存留期的資料欄位。 在此案例中,年齡、帳戶規模和帳戶存留期都是特徵。 透過特徵重要度,可看出每個資料欄位如何影響模型的預測。 例如,雖然可能在預測期間大量使用到年齡,帳戶規模和帳戶存留期可能不會對預測值產生重大影響。 透過此流程,資料科學家在解釋產生的預測結果,可採取能讓專案關係人清楚了解模型最重要特徵的方式。
使用負責任 AI 儀表板中的類別和方法,以及使用 SDK v2 和 CLI v2,可做到以下幾點:
- 產生整個模型 (全域說明) 及/或個別資料點 (局部說明) 的特徵重要度值,以解釋模型預測。
- 在大規模真實資料集上達成模型可解釋性。
- 在定型階段,使用互動式視覺效果儀表板來探索資料模式及其說明。
使用 SDK v1 中的類別與方法,可做到以下幾點:
- 產生整個模型及/或個別資料點的特徵重要度值,以解釋模型預測。
- 在定型和推斷期間,在大規模真實資料集上達成模型可解釋性。
- 在定型階段,使用互動式視覺效果儀表板來探索資料模式及其說明。
注意
模型可解譯性類別是由 SDK v1 套件提供。 如需詳細資訊,請參閱安裝適用於 Azure Machine Learning 的套件和 azureml.interpret。
支援的模型可解釋性技術
負責任 AI 儀表板與 azureml-interpret
使用的是 Interpret-Community 中開發的可解釋性技術。這是開放原始碼 Python 封裝,用於定型可解釋模型,並協助說明黑箱 AI 系統。 黑箱模型即是我們不具有內部作業資訊的模型。
Interpret-Community 可作為以下支援解釋器的主機,且目前支援下一節中介紹的可解譯性技術。
在 Python SDK v2 及 CLI v2 中的負責任 AI 儀表板支援
可解譯性技術 | 描述 | 類型 |
---|---|---|
模仿解釋器 (全域代理) + SHAP 樹狀 | 模仿解釋器以定型全域代理模型的概念為基礎來模仿黑箱模型。 全域代理模型是一種本質上可解釋的模型,經過定型以盡可能準確接近任何黑箱模型的預測。 資料科學家可以解讀代理模型,以得出黑箱模型的結論。 負責任 AI 儀表板會使用 LightGBM (LGBMExplainableModel) 與 SHAP (SHapley Additive exPlanations) 樹狀解釋器配對,這是樹狀與樹狀集成的專用解釋器。 LightGBM 和 SHAP 樹狀的組合,提供不限機器學習模型的全域和局部說明。 |
模型無關 |
Python SDK v1 支援
可解譯性技術 | 描述 | 類型 |
---|---|---|
SHAP 樹狀解釋器 | SHAP 的樹狀解釋器,著重於樹狀和樹狀集成專用的多項式快速時間 SHAP 值估計演算法。 | 模型專用 |
SHAP 深度解釋器 | 根據 SHAP 的說明,深度解釋器是「深度學習模型中 SHAP 值的高速近似演算法,是依據 SHAP NIPS 文件所述的 DeepLIFT 關係所建構而成。 支援 TensorFlow 模型和使用 TensorFlow 後端的 Keras 模型 (也初步支援 PyTorch)。」 | 模型專用 |
SHAP 線性解釋器 | SHAP 線性解釋器計算線性模型的 SHAP 值,並選擇性解釋特徵間的相互關聯。 | 模型專用 |
SHAP 核心解釋器 | SHAP 核心解釋器使用特殊加權的局部線性迴歸來估計任何模型的 SHAP 值。 | 模型無關 |
模仿解釋器 (全域代理) | 模仿解釋器以定型全域代理模型的概念為基礎來模仿黑箱模型。 全域代理模型是一種本質上可解釋的模型,經過定型以盡可能準確接近「任何黑箱模型」的預測。 資料科學家可以解讀代理模型,以得出黑箱模型的結論。 您可以使用下列其中一個可解釋模型作為代理模型:LightGBM (LGBMExplainableModel)、線性迴歸 (LinearExplainableModel)、隨機梯度下降解釋模型 (SGDExplainableModel),或決策樹 (DecisionTreeExplainableModel)。 | 模型無關 |
排列特徵重要度解釋器 | 排列特徵重要度 (PFI) 是用來說明分類和迴歸模型的技術,靈感得自於 Breiman 的隨機樹系文件 (英文)(請參閱第 10 節)。 概括而言,其運作方式是一次一個特徵將整個資料集的資料隨機洗牌,並計算所關注效能計量的變動幅度。 變更愈大,該特性愈重要。 PFI 可以說明任何基礎模型的整體行為,但不說明個別預測。 | 模型無關 |
除了上述可解釋性技術,我們還支援另一種 SHAP 型的解釋器,稱為表格式解釋器。 視模型而定,表格式解釋器會使用其中一種支援的 SHAP 解釋器:
- 適用於所有樹狀式模型的樹狀解釋器
- 適用於深度神經網路 (DNN) 模型的深度解釋器
- 適用於線性模型的線性解釋器
- 適用於所有其他模型的核心解釋器
表格式解釋器也會比直接 SHAP 解釋器更大幅增強特徵和效能:
- 初始化資料集摘要:當最看重解釋的速度時,我們會對初始化資料集做摘要處理,並產生一小組具有代表性的樣本。 此方法可加速產生整體和個別的特徵重要度值。
- 取樣評估資料集如果您傳入大量的評估樣本,但實際上並不需要評估所有樣本,您可以將取樣參數設為
true
,以加快整體模型說明的計算速度。
下圖顯示所支援解釋器的目前結構:
支援的機器學習模型
SDK 的 azureml.interpret
封裝支援依下列資料集格式定型的模型:
numpy.array
pandas.DataFrame
iml.datatypes.DenseData
scipy.sparse.csr_matrix
說明函式接受模型和管線做為輸入。 如果提供模型,則模型必須實作符合 Scikit 慣例的預測函式 predict
或 predict_proba
。 如果模型不支援,您可以將模型包裝成函式,以產生與 Scikit 中的 predict
或 predict_proba
相同的結果,然後搭配選取的解釋器來使用該包裝函式。
如果提供的是管線,則說明函式會假定執行中管線指令碼會傳回預測。 使用此包裝技術,azureml.interpret
可以支援透過 PyTorch、TensorFlow 和 Keras 深度學習架構定型的模型,以及傳統的機器學習模型。
本機和遠端計算目標
azureml.interpret
封裝主要用於本機和遠端計算目標。 如果在本機執行封裝,SDK 函式不會接觸任何 Azure 服務。
您可以在 Azure Machine Learning Compute 上遠端執行說明,並將說明資訊記錄到 Azure Machine Learning 的執行歷程記錄服務。 記錄此資訊之後,Azure Machine Learning 工作室上就有來自說明的報告和視覺效果供使用者分析。
後續步驟
- 了解如何透過 CLI v2 和 SDK v2 或 Azure Machine Learning 工作室 UI 產生負責任 AI 儀表板。
- 探索負責任 AI 儀表板支援的可解釋性視覺效果。
- 了解如何根據負責任 AI 儀表板中觀察到的見解來產生負責任 AI 計分卡。
- 了解如何啟用自動化機器學習模型的可解釋性。