模型可解释性
本文介绍可在 Azure 机器学习中用于解释模型的方法。
重要
随着负责任 AI 仪表板(包括模型可解释性)的发布,我们建议迁移到新体验,因为旧的 SDK v1 预览版模型可解释性仪表板将不再得到主动维护。
为何模型可解释性对模型调试非常重要
当机器学习模型的使用对人们的生活产生影响时,了解模型行为的影响因素就变得至关重要。 可解释性有助于解答方案中存在的疑问,例如:
- 模型调试:为何我的模型会犯这种错误? 如何改进模型?
- 人类与 AI 的协作:如何理解和信任模型的决策?
- 法规遵从性:我的模型是否符合法律要求?
负责任 AI 仪表板的可解释性组件通过生成人类可理解的机器学习模型预测描述,为模型生命周期工作流的“诊断”阶段做出了贡献。 它提供模型行为的多个视图:
- 全局解释:例如,哪些特征会影响贷款分配模型的整体行为?
- 局部解释:例如,为何批准或拒绝了客户的贷款申请?
还可将选定队列的模型解释作为数据点的子组来进行观察。 例如,在为特定人口群体中的个人评估模型预测的公平性时,此方法很有作用。 此组件的局部解释选项卡还可呈现完整的数据可视化效果,这对于以一般方式审视数据和查看每个队列的正确与错误预测之间的差异非常有用。
此组件的功能建立在生成模型解释的 InterpretML 包的基础之上。
在有以下需求时使用可解释性:
- 通过了解哪些特征对于预测最重要,来确定 AI 系统预测结果的可信度。
- 通过先了解模型并确定它是使用正常的特征还是仅使用虚假关联,来着手进行模型调试。
- 通过了解模型是基于敏感特征还是基于高度关联的特征做出预测,来发现潜在的不公平来源。
- 通过生成局部解释来展示结果,来建立用户对模型决策的信任。
- 完成 AI 系统的法规审核以验证模型,并监视模型决策对人类的影响。
如何解释模型
在机器学习中,“特征”是用于预测目标数据点的数据字段。 例如,若要预测信用风险,可以使用年龄、帐户大小和帐龄的数据字段。 此处的年龄、帐户大小和帐龄都是特征。 特征重要性告知每个数据字段如何影响模型的预测。 例如,尽管你可能在预测中大量使用年龄,但帐户大小和帐龄不会显著影响预测值。 数据科学家可以通过此过程解释生成的预测,使利益干系人能够洞察模型的最重要特征。
使用负责任 AI 仪表板中的类和方法以及使用 SDK v2 和 CLI v2,可以:
- 通过为整个模型(全局解释)或单个数据点(局部解释)生成特征重要性值来解释模型预测。
- 大规模实现对真实世界数据集的模型可解释性。
- 使用交互式可视化仪表板在训练时发现数据及其解释中的模式。
使用 SDK v1 中的类和方法,可以:
- 通过为整个模型或单个数据点生成特征重要性值来解释模型预测。
- 在训练和推理期间,基于真实数据集大规模实现模型可解释性。
- 使用交互式可视化仪表板在训练时发现数据及其解释中的模式。
注意
模型可解释性类通过 SDK v1 包提供。 有关详细信息,请参阅安装用于 Azure 机器学习的 SDK 包和 azureml.interpret。
支持的模型可解释性技术
负责任 AI 仪表板和 azureml-interpret
使用 Interpret-Community(一个开源 Python 包,用于训练可解释的模型,并帮助解释不透明盒 AI 系统)中开发的可解释性技术。 对于不透明盒模型,我们还不能提供有关其内部工作原理的信息。
Interpret-Community 充当以下受支持解释器的宿主,目前支持后续部分中所述的可解释性技术。
在 Python SDK v2 和 CLI v2 的负责任 AI 仪表板中受支持
可解释性技术 | 说明 | 类型 |
---|---|---|
模拟解释器(全局代理)+ SHAP 树 | 模拟解释器基于训练全局代理模型来模拟不透明盒模型的思路。 全局代理模型是本质上可解释的模型,经训练后可以尽量准确地给出任何不透明盒模型的预测近似值。 数据科学家可以解释代理模型,以得出有关不透明盒模型的结论。 负责任 AI 仪表板将 LightGBM (LGBMExplainableModel) 与 SHAP(Shapley 加法解释)树解释器搭配使用,后者是树和树系宗的特定解释器。 LightGBM 和 SHAP 树的组合为机器学习模型提供了与模型无关的全局和局部解释。 |
与模型无关 |
文本模型支持的模型可解释性技术
可解释性技术 | 说明 | 类型 | 文本任务 |
---|---|---|---|
SHAP 文本 | SHAP (SHapley Additive exPlanations) 是深度神经网络的一种常用解释方法,可用于深入了解每个输入特征对给定预测的贡献。 它基于 Shapley 值的概念,这是一种在合作游戏中为各个玩家分配积分的方法。 SHAP 将此概念应用于神经网络的输入特征,具体方式是计算每个特征在所有可能的特征组合中对模型输出的平均贡献。 具体而言,对于文本,SHAP 以分层方式对单词进行拆分,将每个字词或标记视为一个特征。 这会生成一组归因值来量化每个字词或标记对于给定预测的重要性。 最终的归因图是根据原始文本文档将这些值可视化为热度地图来生成的。 SHAP 是一种与模型无关的方法,可用于解释各种深度学习模型,包括 CNN、RNN 和转换器。 此外,它还具有几个理想属性,如一致性、准确性和公平性,这使其成为了解模型决策过程的一种可靠且可解释的技术。 | 与模型无关 | 文本多类分类、文本多标签分类 |
图像模型支持的模型可解释性技术
可解释性技术 | 说明 | 类型 | 视觉任务 |
---|---|---|---|
SHAP 视觉 | SHAP (SHapley Additive exPlanations) 是深度神经网络的一种常用解释方法,可用于深入了解每个输入特征对给定预测的贡献。 它基于 Shapley 值的概念,这是一种在合作游戏中为各个玩家分配积分的方法。 SHAP 将此概念应用于神经网络的输入特征,具体方式是计算每个特征在所有可能的特征组合中对模型输出的平均贡献。 具体而言,对于视觉,SHAP 以分层方式对图像进行拆分,将图像的每个超像素区域视为一个特征。 这会生成一组归因值来量化每个超像素或图像区域对于给定预测的重要性。 最终的归因图是通过将这些值可视化为热度地图来生成的。 SHAP 是一种与模型无关的方法,可用于解释各种深度学习模型,包括 CNN、RNN 和转换器。 此外,它还具有几个理想属性,如一致性、准确性和公平性,这使其成为了解模型决策过程的一种可靠且可解释的技术。 | 与模型无关 | 图像多类分类、图像多标签分类 |
引导式反向传播 | 引导式反向传播是深度神经网络的一种常用解释方法,可用于深入了解模型的已学习表示形式。 它通过计算输出相对于输入图像的梯度,为激活了模型中特定神经元的输入特征生成可视化效果。 与其他基于梯度的方法不同,引导式反向传播只通过正梯度进行反向传播,并使用经过修改的 ReLU 激活函数来确保负梯度不会影响可视化效果。 这会生成一个更易于解释的高分辨率显著性地图,该图突出显示输入图像中对给定预测最重要的特征。 引导式反向传播可用于解释各种深度学习模型,包括卷积神经网络 (CNN)、递归神经网络 (RNN) 和转换器。 | 自动化 ML | 图像多类分类、图像多标签分类 |
引导式 gradCAM | 引导式 GradCAM 是深度神经网络的一种常用解释方法,可用于深入了解模型的已学习表示形式。 它将引导式反向传播的基于梯度的方法与 GradCAM 的定位方法相结合,生成对特定输出类贡献最大的输入特征的可视化效果。 具体而言,它计算输出类相对于网络中最后一个卷积层的特征地图的梯度,然后根据每个特征地图的激活对该类的重要性,对每个特征地图进行加权。 这将生成一个高分辨率热度地图,该图突出显示给定输出类的输入图像中差异性很大的区域。 引导式 GradCAM 可用于解释各种深度学习模型,包括 CNN、RNN 和转换器。 此外,通过结合使用引导式反向传播,它可确保可视化效果有意义且可解释,避免虚假激活和负面贡献。 | 自动化 ML | 图像多类分类、图像多标签分类 |
集成梯度 | 集成梯度是深度神经网络的一种常用解释方法,可用于深入了解每个输入特征对给定预测的贡献。 它沿基线图像和实际输入图像之间的直线路径,计算输出类相对于输入图像的整体梯度。 此路径通常被选为两个图像之间的线性内插,基线是没有显著特征的中性图像。 通过沿此路径集成梯度,集成梯度可以衡量每个输入特征对预测的贡献,从而生成归因图。 此地图突出显示了最具影响力的输入特征,可用于深入了解模型的决策过程。 集成梯度可用于解释各种深度学习模型,包括 CNN、RNN 和转换器。 此外,它是一种有理论基础的技术,具有一组理想属性,如敏感度、实现不变性和完整性。 | 自动化 ML | 图像多类分类、图像多标签分类 |
XRAI | XRAI 是一种基于集成梯度 (IG) 的新型区域显著性方法。 它对图像进行过度细分并以迭代方式测试每个区域的重要性,根据归因分数将较小的区域合并成较大的段。 此策略生成高质量、紧密结合的显著性区域,这些区域的性能优于现有的显著性技术。 如果有办法通过某些相似性指标将输入特征聚类成段,XRAI 可与任何基于 DNN 的模型结合使用。 | 自动化 ML | 图像多类分类、图像多标签分类 |
D-RISE | D-RISE 是一种与模型无关的方法,用于为对象检测模型的预测创建直观解释。 通过考虑对象检测的定位和分类两个方面,D-RISE 可以生成显著性地图以突出显示图像中对检测器预测做出最大贡献的部分。 与基于梯度的方法不同,D-RISE 更通用,不需要访问对象检测器的内部工作,而只需访问模型的输入和输出。 该方法可应用于单阶段检测器(如 YOLOv3)、双阶段检测器(如 Faster-RCNN)和视觉转换器(如 DETR、OWL-ViT)。 D-Rise 通过创建输入图像的随机掩码来提供显著性地图,并将其与输入图像的随机掩码一起发送到对象检测器。 通过评估对象检测器分数的变化,它将每个掩码的所有检测汇总,并生成最终的显著性地图。 |
与模型无关 | 对象检测 |
在 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 机器学习计算上远程运行解释,并将解释信息记录到 Azure 机器学习运行历史记录服务中。 记录此信息后,Azure 机器学习工作室中便会提供来自该解释的报告和可视化效果以供分析。
后续步骤
- 了解如何通过 CLI v2 和 SDK v2 或 Azure 机器学习工作室 UI 生成负责任 AI 仪表板。
- 探索“负责任 AI”仪表板支持的可解释性可视化效果。
- 了解如何根据在负责任 AI 仪表板中观察到的见解生成负责任 AI 记分卡)。
- 了解如何启用自动机器学习模型 (SDK v1) 的可解释性。