模型可解釋性

本文描述方法供您用於 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 慣例的預測函式 predictpredict_proba。 如果模型不支援,您可以將模型包裝成函式,以產生與 Scikit 中的 predictpredict_proba 相同的結果,然後搭配選取的解釋器來使用該包裝函式。

如果提供的是管線,則說明函式會假定執行中管線指令碼會傳回預測。 使用此包裝技術,azureml.interpret 可以支援透過 PyTorch、TensorFlow 和 Keras 深度學習架構定型的模型,以及傳統的機器學習模型。

本機和遠端計算目標

azureml.interpret 封裝主要用於本機和遠端計算目標。 如果在本機執行封裝,SDK 函式不會接觸任何 Azure 服務。

您可以在 Azure Machine Learning Compute 上遠端執行說明,並將說明資訊記錄到 Azure Machine Learning 的執行歷程記錄服務。 記錄此資訊之後,Azure Machine Learning 工作室上就有來自說明的報告和視覺效果供使用者分析。

後續步驟