编者按:随着 AI 模型日益简单,模型可解释的重要性和挑战日益凸显。通过模型可解释,能够领导特色工程的优化、检测偏差、加强模型使用者对模型的可信度。
Anaconda 资深数据科学家 Sophia Yang 总结了 8 种模型可解释罕用技术和工具,对其次要特色进行了概述。
以下是译文,Enjoy!
作者 | Sophia Yang
编译 | 岳扬
当初 ML/AI 模型变得越来越简单,对模型的解释和阐明也变得越来越具备挑战性。一个简略的、容易解释的回归或决策树模型曾经不能齐全满足技术和商业需要。越来越多的人应用汇合办法(ensemble methods) 和深度神经网络来取得更好的预测和更高的准确性。然而,那些简单的模型很难解释、调试和了解。因而,很多人称这些模型为黑箱模型。
当咱们训练一个 ML/AI 模型时,咱们常常关注技术细节,如 step size, layers, early stopping, dropout, dilation 等等。咱们并不真正晓得为什么咱们的模型会有某种行为。
例如对于一个信用风险模型,为什么咱们的模型会给每个人调配一个特定的分数?咱们的模型依赖哪些特色?咱们的模型是否重大依赖一个不正确的特色?即便咱们的模型不把种族和性别作为输出特色,咱们的模型是否从其余特色中推断出这些属性并引入对某些群体的偏见?利益相关者能了解和信赖模型的行为吗?该模型是否为人们提供如何进步信用分数的领导?
模型的解释和阐明能够提供这些问题的答案,帮忙咱们调试模型,缩小偏差,并建设对模型的信赖。
大家对机器学习模型的可了解性和可解释性越来越感兴趣。钻研人员和机器学习从业者曾经设计了许多模型解释技术。在这篇文章中,咱们将对八种风行的模型解释技术和工具进行高阶概述,包含 SHAP(以一种对立的办法来解释任何机器学习模型的输入)、LIME(用于解释机器学习模型的个别预测)、Explainable Boosting Machine(可解释加强机)、Saliency maps(显著图)、TCAV(一种新型线性可解释性办法)、Distillation(蒸馏技术)、Counterfactual(反事实)和 lnterpretML(能为开发人员提供多种形式来试验 AI 模型和零碎,并进一步解释模型)。
SHAP
图 1. SHAP 解释了机器学习模型的输入(起源:https://shap.readthedocs.io/,MIT license)
“SHAP(SHapley Additive exPlanations)[1]是一种博弈论的办法,可用于解释任何机器学习模型的输入。它利用博弈论中的经典 Shapley 值及其相干扩大,将最优信用调配与部分解释分割起来。”
图 1 显示了 SHAP 的工作原理。假如根本率 (Base rate),即预测值 E[f(x)] 的先验背景期望值为 0.1。当初咱们有一个新的察看对象,其特色是年龄 =65,性别 =F,血压 =180,BMI=40。这个新察看对象的预测值是 0.4。咱们如何解释 0.4 的输入值和 0.1 的根本率之间的差别?这就是 Shapley 值产生作用的中央。
- 让咱们从根本率 0.1 开始。
- 加上 BMI Shapely 值为 0.1,咱们失去 0.2。
- 加上 BP Shapely 值为 0.1,咱们失去 0.3。
- 加上性别 Shapely 值为 -0.3,咱们失去 0。
- 加上年龄 Shapely 值 0.4,咱们失去 0.4。
基于 Shapely 值的相加性,对于这个新的察看对象,模型预测值为 0.4。SHAP 值提供每个特色的重要性的解释,并解释了模型预测的运作形式。
咱们如何计算 Shapley 值?SHAP 绘制了线性模型的局部依赖图(Partial Dependence Plot),其中 X 轴代表特色,Y 轴代表给定特色的输入预期值(见图 2)。一个特色的 Shapley 值是预期模型输入与该特色给定值时的局部依赖图之间的差值,即图中红线的长度。
图 2. 局部依赖图(起源:https://shap.readthedocs.io/,MIT license)
Shapley 值的计算可能很简单,因为它须要所有的联结排列的平均值。shap 库应用抽样和优化技术来解决所有的计算,并对表格数据、文本数据、甚至图像数据返回间接的后果(见图 3)。能够通过 conda install -c conda-forge shap 来装置 SHAP,而后咱们看一个例子。
图 3. SHAP 解释图像分类(起源:https://shap.readthedocs.io/,MIT license)
Lime
模型在全局上可能是简单的。Lime(Local Interpretable Model-Agnostic Explanations)不关注整体简单的模型行为,而是关注部分区域,用线性近似来反映被预测实例四周的行为。
图 4 阐明了 Lime 是如何工作的。蓝色 / 粉红色的背景代表原始模型的决策函数。红叉(咱们称之为 X)是咱们想要预测和解释的实例 / 新察看对象。
- 获取 X 四周的采样点
- 应用原始模型来预测每个采样点
- 依据样本与 X 的靠近水平对其进行加权(加权较大的点在图中对应于较大的尺寸)。
- 在加权的样本上拟合一个线性模型(虚线)。
- 用这个线性模型来解释 X 四周的行为。
图 4. Lime 预测图(起源:https://github.com/marcotcr/lime,BSD license)
通过 Lime,咱们能够在部分解释表格数据、文本数据和图像数据的模型行为。上面是一个应用 Lime 来解释文本分类器的例子。咱们能够看到,这个分类器对实例的预测是正确的,但理由是谬误的。
图 5. Lime 解释文本分类器的例子(起源:https://github.com/marcotcr/lime, BSD license)
要理解更多对于 Lime 的信息,请查看 https://github.com/marcotcr/lime,并通过 pip install lime 进行装置。
Explainable Boosting Machine
“可解释加强机(EBM)[2]是一种基于树的、循环梯度晋升的狭义加成模型,具备主动互动检测性能。EBM 个别状况下和最先进的黑箱模型一样精确,同时还可能放弃齐全可解释。”
EBM 的工作形式如下:
在每次迭代中,咱们轮流对特色进行套袋法(bagging,即 bootstrap aggregating 的缩写)和梯度晋升树的训练。咱们先对第一个特色进行训练,而后更新残差并对第二个特色进行训练,始终到实现对所有特色的训练。
而后咱们多次重复这个过程。
因为 EBM 是一个一个地循环解决特色,它能够显示每个特色在最终预测中的重要性。
EBM 是在 interpret.ml[3]中实现的,咱们将在下文介绍它。
Saliency maps(显著图)
显著图办法被宽泛用于解释神经网络图像分类工作。它掂量每个像素的重要性,并强调哪些像素对预测有影响的。显著性图取每个类绝对于每个图像输出像素的梯度或导数,并将梯度可视化(见图 6)。
图 6. 显著性图(起源:https://pair-code.github.io/s…,Apache license)
PAIR Saliency 我的项目提供了“framework-agnostic implementation for state-of-the-art saliency methods(最先进的显著性办法的框架无关的实现)”,包含 Guided Integrated Gradients, XRAI, SmoothGrad, Vanilla Gradients, Guided, Backpropagation, Integrated Gradients, Occlusion, Grad-CAM, Blur IG。
要理解更多对于 Saliency 的内容,请查看 https://github.com/PAIR-code/…,并通过 pip install saliency 进行装置。
TCAV
TCAV(一种新型线性可解释性办法)是指用概念激活向量(CAVs)进行定量测试。TCAV“量化了用户定义的概念对于分类后果的重要水平 – 例如,对斑马对条纹的存在有多敏感的预测”[4](Kim,2018)。
图 7. 用概念激活向量进行测试 (起源:Kim, 2018)
TCAV 执行以下步骤来确定一个概念是否重要。
定义概念激活向量(图 7 步骤 a -d):TCAV 应用概念图像(有条纹物体的图像)和随机图像的例子作为输出,并检索出层的激活函数。而后,训练一个线性分类器来拆散激活函数,并取与超平面决策边界正交的向量(CAV)。CAV 代表图像中的条纹水平。
计算 TCAV 得分(图 7 步骤 e):TCAV 得分是通过与 CAV 的方向性导数来计算的。它代表了模型对一个特定概念的敏感性,如条纹。
CAV 验证:测试一个概念是否有动态意义。同样的过程也能够用随机与随机图像。咱们能够将概念对随机图像的 TCAV 得分散布与随机与随机图像的 TCAV 得分散布进行比拟。能够进行双侧 t 测验来测试 TCAV 得分散布的差别。
要理解更多对于 TCAV 的信息,请查看 https://github.com/tensorflow… 并通过 pip install tcav 进行装置。
Distillation(蒸馏技术)
“在机器学习中,常识蒸馏是将常识从一个大模型转移到一个小模型的过程。”
在模型解释的背景下,大模型是黑箱模型,也是老师模型。较小的模型是解释者,即学生模型。学生模型试图模拟老师模型的行为,并且是可解释的。
例如,人们能够构建一个决策树来靠近原始的简单模型[5](Bastani,2019)。Bastani 的论文“提出了一种学习决策树的模型提取算法 – 为了防止适度拟合,该算法通过被动采样新的输出并应用简单模型对其进行标记来生成新的训练数据。”
图 8. 用决策树解释黑箱模型。(起源: Interpreting Blackbox Models via Model Extraction. Osbert Bastani, Carolyn Kim, Hamsa Bastani. 2019)
Counterfactual(反事实剖析)
反事实剖析形容的是为扭转模型预测所需的最小的输出特色变动。这里咱们提出了很多 “ 如果 “ 问题。如果咱们减少这个特色或缩小那个特色呢?例如,依据一个黑盒模型,约翰有很高的心脏病危险。如果约翰每周锤炼 5 天呢?如果约翰是个素食主义者呢?如果约翰不吸烟呢?这些变动会导致模型预测的扭转吗?这些反事实剖析提供了易于了解的解释。
对于生成反事实剖析的钻研有很多,办法也很多。例如,DiCE(多样化的反事实解释)为同一个人生成了一组多样化的特色烦扰选项,这个人的贷款被回绝了,但如果支出减少 1 万美元或支出减少 5000 美元,并有 1 年以上的信用记录,就会失去批准。DiCE 在反对用户特定要求的状况下,对输出的多样性和原始输出进行了优化。
要理解更多对于 interpretML 的信息,请查看文档[6],并通过 conda install -c conda-forge dice-ml 进行装置。
图 9. DiCE (起源: https://github.com/interpretm…, MIT license)
lnterpretML
“InterpretML(能为开发人员提供多种形式来试验 AI 模型和零碎,并进一步解释模型)是一个开源的软件包,它将最先进的机器学习解释技术整合在一起。”
interpretML 为可解释模型 (glassbox model) 提供解释性,包含:
- 可解释加强机
- 线性模型
- 决策树
- 决策规定
它还提供了对黑箱模型的解释,应用了:
- SHAP 解释模型
- LIME 解释器
- 局部依赖图
- 莫里斯敏感性剖析
interpretML 的后果能够在其 Plotly dashboard 上显示。
图 10. interpretML dashboard (起源: https://interpret.ml/docs/get…, MIT license)
要理解更多对于 interpretML 的信息,请查看文档 [7] 并通过 conda install -c interpretml interpret 进行装置。
参考资料
[1] Welcome to the SHAP documentation — SHAP latest documentation. https://shap.readthedocs.io/
[2] Explainable Boosting Machine. https://interpret.ml/docs/ebm…
[3] InterpretML. http://interpret.ml/
[4] Interpretability Beyond Feature Attribution: Quantitative Testing with Concept Activation Vectors (TCAV). Been Kim, Martin Wattenberg, Justin Gilmer, Carrie Cai, James Wexler, Fernanda Viegas, Rory Sayres. 2018.
[5] Interpreting Blackbox Models via Model Extraction. Osbert Bastani, Carolyn Kim, Hamsa Bastani. 2019
[6] Diverse Counterfactual Explanations (DiCE) for ML — DiCE 0.9 documentationhttp://interpret.ml/DiCE/
[7] https://interpret.ml/docs/get…
IDP-Inspiration 是 IDP 常设专栏。在这里,咱们会分享国内外数据科学家和算法工程师在实战中总结的贵重教训,为想要从事数据迷信和 AI 开发生产相干工作的小伙伴提供借鉴!
AI 相干技术投稿,请分割 Alex@baihai.ai