機(jī)器學(xué)習(xí)( ML )越來(lái)越多地用于醫(yī)療、教育和金融服務(wù)等多個(gè)領(lǐng)域的決策。由于 ML 模型被用于對(duì)人們有實(shí)際影響的情況,因此了解在消除或最小化偏見(jiàn)影響的決策中考慮了哪些特征是至關(guān)重要的。
模型解釋性 幫助開(kāi)發(fā)人員和其他利益相關(guān)者理解模型特征和決策的根本原因,從而使流程更加透明。能夠解釋模型可以幫助數(shù)據(jù)科學(xué)家解釋他們的模型做出決策的原因,為模型增加價(jià)值和信任。在本文中,我們將討論:
對(duì)模型可解釋性的需求
使用 SHAP 的可解釋性
GPU – 從 RAPIDS 加速 SHAP 實(shí)現(xiàn)
使用 演示筆記本 在 Azure 機(jī)器學(xué)習(xí)上使用 SHAP 進(jìn)行模型解釋。
為什么我們需要解釋性?
有六個(gè)主要原因證明機(jī)器學(xué)習(xí)中需要模型互操作性:
理解模型中的公平性問(wèn)題
對(duì)目標(biāo)的準(zhǔn)確理解
創(chuàng)建健壯的模型
調(diào)試模型
解釋結(jié)果
啟用審核
了解模型中的公平性問(wèn)題: 可解釋模型可以解釋選擇結(jié)果的原因。在社會(huì)背景下,這些解釋將不可避免地揭示對(duì)代表性不足群體的固有偏見(jiàn)。克服這些偏見(jiàn)的第一步是看看它們是如何表現(xiàn)出來(lái)的。
更準(zhǔn)確地理解目標(biāo): 對(duì)解釋的需要也源于我們?cè)诔浞掷斫鈫?wèn)題方面的差距。解釋是確保我們能夠看到差距影響的方法之一。它有助于理解模型的預(yù)測(cè)是否符合利益相關(guān)者或?qū)<业哪繕?biāo)。
創(chuàng)建穩(wěn)健的模型: 可解釋模型可以幫助我們理解預(yù)測(cè)中為什么會(huì)存在一些差異,這有助于使預(yù)測(cè)更加穩(wěn)健,并消除預(yù)測(cè)中極端和意外的變化;以及為什么會(huì)出現(xiàn)錯(cuò)誤。增強(qiáng)穩(wěn)健性也有助于在模型中建立信任,因?yàn)樗粫?huì)產(chǎn)生顯著不同的結(jié)果。
模型可解釋性還可以幫助調(diào)試模型,解釋 向利益相關(guān)者提供成果,并使 auditing 以滿足法規(guī)遵從性。
需要注意的是,在某些情況下,可解釋性 MIG 不太重要。例如,在某些情況下,添加可解釋模型可以幫助對(duì)手欺騙系統(tǒng)。
現(xiàn)在我們了解了什么是可解釋性以及為什么我們需要它,讓我們看看最近非常流行的一種實(shí)現(xiàn)方法。
使用 SHAP 和 cuML 的 SHAP 的可解釋性
有不同的方法旨在提高模型的可解釋性;一種模型不可知的方法是 夏普利值 。這是一種從聯(lián)盟博弈論中衍生出來(lái)的方法,它提供了一種公平地將“支出”分配給各個(gè)功能的方法。在機(jī)器學(xué)習(xí)模型的情況下,支出是模型的預(yù)測(cè)/結(jié)果。它的工作原理是計(jì)算整個(gè)數(shù)據(jù)集的 Shapley 值并將其組合。
cuML 是 RAPIDS 中的機(jī)器學(xué)習(xí)庫(kù),支持單 GPU 和多 GPU 機(jī)器學(xué)習(xí)算法,通過(guò) 內(nèi)核解釋程序 和 置換解釋者 提供 GPU 加速模型解釋能力。 核形狀 是 SHAP 最通用和最常用的黑盒解釋程序。它使用加權(quán)線性回歸來(lái)估計(jì)形狀值,使其成為一種計(jì)算效率高的近似值方法。
內(nèi)核 SHAP 的 cuML 實(shí)現(xiàn)為快速 GPU 模型提供了加速,就像 cuML 中的那些模型一樣。它們也可用于基于 CPU 的模型,在這些模型中仍然可以實(shí)現(xiàn)加速,但由于數(shù)據(jù)傳輸和模型本身的速度,它們 MIG 可能會(huì)受到限制。
在下一節(jié)中,我們將討論如何在 Azure 上使用 RAPIDS 內(nèi)核 SHAP 。
使用解釋社區(qū)和 RAPIDS 實(shí)現(xiàn)可解釋性
InterpretML 是一個(gè)開(kāi)源軟件包,將最先進(jìn)的機(jī)器學(xué)習(xí)可解釋性技術(shù)集成在一起。雖然本產(chǎn)品的解釋包中涵蓋了主要的解釋技術(shù)和玻璃盒解釋模型, Interpret-Community 擴(kuò)展了解釋存儲(chǔ)庫(kù),并進(jìn)一步整合了社區(qū)開(kāi)發(fā)的和實(shí)驗(yàn)性的解釋性技術(shù)和功能,這些技術(shù)和功能旨在實(shí)現(xiàn)現(xiàn)實(shí)場(chǎng)景的解釋性。
我們可以將其擴(kuò)展到 解釋 Microsoft Azure 上的模型 ,稍后將對(duì)其進(jìn)行更詳細(xì)的討論。解釋社區(qū)提供各種解釋模型的技術(shù),包括:
Tree 、 Deep 、 Linear 和 Kernel Explainers 基于形狀,
模擬解釋者 基于訓(xùn)練 全局代理模型 (訓(xùn)練模型以近似黑盒模型的預(yù)測(cè)),以及
排列特征重要性( PFI )解釋者 基于 布雷曼關(guān)于蘭德森林的論文 ,其工作原理是對(duì)整個(gè)數(shù)據(jù)集一次一個(gè)特征的數(shù)據(jù)進(jìn)行洗牌,并估計(jì)其對(duì)性能指標(biāo)的影響;變化越大,功能越重要。它可以解釋整體行為,而不是個(gè)人預(yù)測(cè)。
在社區(qū)中集成 GPU 加速 SHAP
為了使 GPU – 加速 SHAP 易于最終用戶訪問(wèn),我們將 integrated 從 cuML 的 GPU 內(nèi)核解釋者 添加到 interpret-community 包中。有權(quán)訪問(wèn) Azure 上具有 GPU s 的虛擬機(jī) ( NVIDIA Pascal 或更高版本)的用戶可以安裝 RAPIDS (》= 0.20 )并通過(guò)將 use _ ZFK5]標(biāo)志設(shè)置為 True 來(lái)啟用 GPU 解釋程序。
from interpret.ext.blackbox import TabularExplainer # "features" and "classes" fields are optional explainer = TabularExplainer(model, x_train, features=breast_cancer_data.feature_names, classes=classes, use_gpu=True)
新添加的 GPUKernelExplainer 還使用 cuML K- 均值 來(lái)復(fù)制 shap.kmeans 的行為。 KMeans 減少了解釋者要處理的背景數(shù)據(jù)的大小。它總結(jié)了通過(guò) K 個(gè)平均樣本傳遞的數(shù)據(jù)集,這些樣本由數(shù)據(jù)點(diǎn)的數(shù)量加權(quán)。將 sklearn K-Means 替換為 cuML 使我們能夠利用 GPU 的速度提升,即使在 SHAP 之前的數(shù)據(jù)預(yù)處理過(guò)程中也是如此。
基于我們的實(shí)驗(yàn),我們發(fā)現(xiàn),當(dāng)與 cuML KerneleExplainer 一起使用時(shí), cuML 模型在某些情況下會(huì)產(chǎn)生最高可達(dá) 270 倍的速度提升的最佳結(jié)果。我們還看到了具有優(yōu)化和快速預(yù)測(cè)調(diào)用的模型的最佳加速,如優(yōu)化的 sklearn 。 svm 。 LinearSVR 和 cuml 。 svm 。 SVR ( kernel =’ linear ‘) 所示。
Azure 中的模型解釋
Azure 機(jī)器學(xué)習(xí)提供了一種通過(guò) azureml-interpret SDK 包獲取常規(guī)和自動(dòng)化 ML 培訓(xùn)說(shuō)明的方法。它使用戶能夠在訓(xùn)練和推理期間,在真實(shí)世界數(shù)據(jù)集上實(shí)現(xiàn)大規(guī)模的模型可解釋性[2]。我們還可以使用交互式可視化來(lái)進(jìn)一步探索整體和單個(gè)模型預(yù)測(cè),并進(jìn)一步了解我們的模型和數(shù)據(jù)集。 Azure 解釋使用解釋社區(qū)包中的技術(shù),這意味著它現(xiàn)在支持 RAPIDS 形狀。我們將瀏覽一個(gè)演示 Azure 上使用 cuML 形狀的模型可解釋性 的示例筆記本。
在 GPU 虛擬機(jī)上使用自定義 Docker 映像設(shè)置 RAPIDS 環(huán)境(本例中為標(biāo)準(zhǔn)的_ NC6s _ v3 )。
from azureml.core import Environment | |
environment_name = "rapids" | |
env = Environment(environment_name) | |
env.docker.enabled = True | |
env.docker.base_image = None | |
env.docker.base_dockerfile = """ | |
FROM rapidsai/rapidsai:0.19-cuda11.0-runtime-ubuntu18.04-py3.8 | |
RUN apt-get update && \ | |
apt-get install -y fuse && \ | |
apt-get install -y build-essential && \ | |
apt-get install -y python3-dev && \ | |
source activate rapids && \ | |
pip install azureml-defaults && \ | |
pip install azureml-interpret && \ | |
pip install interpret-community==0.18 && \ | |
pip install azureml-telemetry | |
""" | |
env.python.user_managed_dependencies = True |
我們提供了一個(gè)腳本( train_explain.py ),它使用 cuML SVM 模型訓(xùn)練和解釋了一個(gè)二進(jìn)制分類問(wèn)題。在這個(gè)例子中,我們使用 希格斯數(shù)據(jù)集 來(lái)預(yù)測(cè)一個(gè)過(guò)程是否產(chǎn)生希格斯玻色子。它有 21 個(gè)由加速器中的粒子探測(cè)器測(cè)量的運(yùn)動(dòng)學(xué)特性。
然后,該腳本使用 GPU SHAP KerneleExplainer 生成模型解釋。
生成的解釋使用我們的 ExplanationClient 上傳到 Azure 機(jī)器學(xué)習(xí),這是上傳和下載解釋的客戶端。這可以在您的計(jì)算機(jī)上本地運(yùn)行,也可以在 Azure 機(jī)器學(xué)習(xí)計(jì)算機(jī)上遠(yuǎn)程運(yùn)行。
生成的解釋上傳到 Azure 機(jī)器學(xué)習(xí)運(yùn)行歷史記錄后,您可以在 Azure 機(jī)器學(xué)習(xí)工作室 中的解釋儀表板上查看可視化。
圖 1 :顯示模型性能和特性重要性的解釋儀表板。
我們?cè)?Azure 中的單個(gè) explain _全局調(diào)用上對(duì) CPU 和 GPU 實(shí)現(xiàn)進(jìn)行了基準(zhǔn)測(cè)試。 explain _ global 函數(shù)在使用 explain _ local 時(shí)返回聚合特征重要性值,而不是實(shí)例級(jí)特征重要性值。我們比較了 cuml 。 svm 。 SVR ( kernel =’ rbf ‘)與 sklearn 。 svm 。 SVR ( kernel =’ rbf ‘)對(duì)形狀為( 10000 , 40 )的合成數(shù)據(jù)的影響。
從表 1 中我們可以觀察到,當(dāng)我們使用 GPU 虛擬機(jī)( Standard _ NC6S _ v3 )時(shí),與具有 16 個(gè)內(nèi)核的 CPU 虛擬機(jī)( Standard _ DS5 _ v2 )相比, 2000 行解釋的速度提高了 420 倍。我們注意到,在 16 核 CPU 虛擬機(jī)上使用 64 核 CPU 虛擬機(jī)(標(biāo)準(zhǔn)_ D64S _ v3 )可以產(chǎn)生更快的 CPU 運(yùn)行時(shí)間(大約 1 。 3 倍)。這種更快的 CPU 運(yùn)行仍然比 GPU 運(yùn)行慢得多,而且更昂貴。 GPU 運(yùn)行速度快了 380 倍,成本為 0 。 52 美元,而 64 核 CPU 虛擬機(jī)的成本為 23 美元。我們?cè)?Azure 的美國(guó)東部地區(qū)進(jìn)行了實(shí)驗(yàn)。
圖 2 : Azure 上 CPU 和 GPU 虛擬機(jī)的比較。
表 1 :標(biāo)準(zhǔn) DS5 和標(biāo)準(zhǔn) NC6s _ v3 的比較。
從我們的實(shí)驗(yàn)來(lái)看,在 Azure 上使用 cuML 的 KernelExplainer 被證明更具成本和時(shí)間效率。隨著行數(shù)的增加,速度會(huì)更好。 GPU SHAP 不僅解釋了更多的數(shù)據(jù),而且還節(jié)省了更多的資金和時(shí)間。這會(huì)對(duì)時(shí)間敏感的企業(yè)產(chǎn)生巨大影響。
這是一個(gè)簡(jiǎn)單的例子,說(shuō)明如何在 Azure 上使用 cuML 的 SHAP 進(jìn)行解釋。這可以擴(kuò)展到具有更有趣的模型和數(shù)據(jù)集的更大示例。
關(guān)于作者
Nanthini 是 NVIDIA 的數(shù)據(jù)科學(xué)家和軟件開(kāi)發(fā)人員。她在 RAPIDS 團(tuán)隊(duì)工作,該團(tuán)隊(duì)專注于使用 GPU 加速數(shù)據(jù)科學(xué)管道。她的工作包括進(jìn)行概念驗(yàn)證、開(kāi)發(fā)和維護(hù)功能、將 RAPIDS 與外部框架集成,以及通過(guò)示例用例演示這些工具的使用。最近,她一直致力于 RAPIDS 框架和微軟解釋之間的集成。 2019 ,她獲得了賓夕法尼亞大學(xué)計(jì)算機(jī)科學(xué)碩士學(xué)位。
審核編輯:郭婷
-
gpu
+關(guān)注
關(guān)注
28文章
4943瀏覽量
131210 -
機(jī)器學(xué)習(xí)
+關(guān)注
關(guān)注
66文章
8501瀏覽量
134583
發(fā)布評(píng)論請(qǐng)先 登錄
中國(guó)科學(xué)院西安光機(jī)所在計(jì)算成像可解釋性深度學(xué)習(xí)重建方法取得進(jìn)展

云知聲四篇論文入選自然語(yǔ)言處理頂會(huì)ACL 2025

一種實(shí)時(shí)多線程VSLAM框架vS-Graphs介紹

算法進(jìn)化論:從參數(shù)剪枝到意識(shí)解碼的 AI 革命
Sapphire Rapids與OpenVINO?工具套件是否兼容?
大模型領(lǐng)域常用名詞解釋(近100個(gè))

AI大模型在汽車應(yīng)用中的推理、降本與可解釋性研究

了解DeepSeek-V3 和 DeepSeek-R1兩個(gè)大模型的不同定位和應(yīng)用選擇
小白學(xué)解釋性AI:從機(jī)器學(xué)習(xí)到大模型

AI模型思維鏈功能升級(jí),提升透明度與可信度
RAPIDS cuDF將pandas提速近150倍

一種基于因果路徑的層次圖卷積注意力網(wǎng)絡(luò)

評(píng)論