公众信任是人工智能高效使用的重要条件。- [马克沃尔特爵士]
仅在过去的五年中,人工智能研究人员在图像识别,自然语言理解和棋盘游戏等领域取得了重大突破。由于公司正在考虑将关键决策移交给医疗保健和金融等行业的人工智能,因此缺乏对复杂机器学习模型的理解存在很大问题。这种缺乏理解可能导致模型传播偏见,我们在刑事司法,政治,零售,面部识别和语言理解中看到了很多这样的例子。
所有这些都对信任产生了不利影响,根据我的经验,这是公司抵制企业部署AI的主要原因之一。解释或解释AI是研究的热门话题,因为现代机器学习算法是黑盒子,没有人真正理解它们的工作原理。此外,欧盟法规现在根据GDPR“解释权”解释AI 。在这篇博客文章中,我将介绍一些可以添加到数据科学库中的技术,以提高模型理解。
团队数据科学过程
首先,您在构建和部署AI应用程序时遵循了哪些流程?在Microsoft,我们遵循称为团队数据科学流程(TDSP)的敏捷和迭代方法,该流程从CRISP-DM和KDD等流程中获取灵感。在这篇文章中,我将放大该过程的建模和部署阶段。
在开发模型时,第一步是学习。您训练模型以检测历史数据中的模式,这需要经过多次迭代的训练和验证才能选择最佳模型。获得学习型模型后,下一步就是测试。这意味着在模型之前没有看到的盲数据集上评估模型。我写了一篇关于衡量模型优度的博客文章,您可以应用这些技术来量化商业价值并与业务利益相关者分享。在证明业务价值之后,下一个合乎逻辑的步骤通常是部署将模型投入生产。部署后,一个非常常见的问题是模型没有按预期执行。这有两个主要原因:
数据/概念漂移:当数据分布随时间变化或用于训练模型的历史数据存在偏差且不代表实际生产数据时,就会发生这种情况。
数据泄漏:当训练和验证数据中的特征或属性无意泄漏否则不会出现在推理时间的信息时,就会发生这种情况。一个典型的例子是 2008年的 KDD竞赛,即早期乳腺癌检测,其中一个特征(患者ID)被发现与目标类密切相关。
在野外部署模型之前,我们可以通过引入模型理解的额外步骤来规避这些问题。通过解释模型,我们可以获得更深入的理解并解决偏差,泄漏和信任等问题。
但是,什么是可解释性?
可解释性是指人类能够一致地估计模型预测的程度,人类能够理解并遵循模型预测的程度,以及最终人类在模型出错时能够检测到的程度。
可解释性对不同的人意味着不同的东西:
对于数据科学家来说,这意味着要更好地理解模型,看看模型表现好坏的情况以及原因。这种理解有助于数据科学家构建更强大的模型。
对于业务利益相关者而言,这意味着要深入了解为什么人工智能系统做出特定决定以确保公平性并保护其用户和品牌。
对于用户来说,这意味着要理解模型做出决策的原因,并在模型出错时允许有意义的挑战。
对于专家或监管机构来说,它意味着审核AI系统并遵循决策路径,尤其是在出现问题时。
在谈论可解释性和模型理解时,注意这些不同的人物角色很重要。
模型透明度
模型的可解释性可以通过学习的响应函数与输入特征的复杂程度来表征。上图显示了三种不同类型的响应函数:
线性,单调:这些是最可解释的函数,因为对输入要素的更改会导致目标变量在单个方向(正或负)上成比例变化。这允许我们计算相对特征重要性度量和原因代码。原因代码有助于理解为什么学习模型预测特定输入的高或低。它为我们提供了输入特征预测影响的定性度量,即它是强,弱,正还是负。
非线性,单调:机器学习算法学习的大多数响应函数都是非线性的。单调性可确保输入要素的相对变化导致目标变量在单个方向上发生变化。非线性,单调函数也是可解释的,因为它允许我们计算相对特征重要性度量和原因代码。
非线性,非单调:这些是现代机器学习算法学习的最常见的函数,并且是最难解释的。这是因为输入变量的变化会导致目标变量在任何方向上以不同的速率发生变化。我们可以为这些函数计算的唯一可解释的度量是相对特征重要性。解释这些功能是本文的重点。
超越功能重要性
现在让我们看一个具体的例子。问题是预测美国高中生的数学,阅读和写作成绩。我们获得的历史数据包括性别,种族/民族(匿名),家长教育水平,学生是否吃了标准/免费/补贴午餐和测试准备水平。鉴于这些数据,我训练了一个多级随机森林模型。
为了解释模型学到了什么,最简单的技术之一是查看相对特征的重要性。特征重要性衡量给定特征对预测结果的影响有多大。从上图可以看出,两个最重要的特征是 - 父母的教育水平和种族/民族。这是有用的信息,但它没有告诉我们任何关于不同教育程度如何影响成绩以及种族和教育如何相互作用的信息。
输入,部分依赖关系图(PDP)!
PDP向我们展示了特征对预测结果的边际效应。在Python中,您可以使用scikit-learn中的实现,这限制了渐变增强回归量/分类器。由Jiangchun Lee开发的PDPBox更好的实现。该库的灵感来自ICEBox,它是R的PDP实现,并支持所有scikit-learn机器学习模型。
现在让我们看看PDP的实际应用。上图显示了不同教育水平对预测数学A和F成绩的影响。当你在x轴上从左到右时,父母的教育水平会提高,从高中开始一直到硕士学位。您会注意到,随着父母教育水平的提高,对预测A级的影响会增加。你看到F级的下降趋势相似,即父母受教育程度越高,对预测F级的影响就越小。这种分析表明,父母的教育水平是一个有效的特征。
现在让我们看一下预测数学A级的特征相互作用。我在这里选了两个最重要的功能。父母的教育水平在y轴上,当你从下到上时,教育水平会提高。学生的匿名种族或种族在x轴上显示,其中不同的点代表不同的种族 - 本研究中有5个不同的群体。请注意热图中的颜色 - 紫色/蓝色代表预测A级的低影响,绿色/黄色代表高影响。
将第0组边缘化,您可以看到随着父母教育水平的提高,对预测A级的影响也会增加。这是有道理的,因为它表明教育水平对等级的影响比对种族的影响更大。因此,该模型很好地学习了这种相关性。但是第5组的情况如何呢?看起来无论教育水平如何,如果学生属于第5组,那么这对预测A级有很大的影响。这对我来说看起来很可疑
可能存在采样偏差的数据存在问题
模型的问题
社会的系统性问题
事实证明,这里使用的Kaggle数据集是人为的错误,第5组没有正确表示。无论如何,重点是通过仅仅考虑特征重要性,这些见解都不可能。
决策树上的侧栏
我想揭穿一个关于决策树的常见误解 - 它们是极其可解释的。让我们再看一个具体的例子。问题是根据4个特征 - 花瓣长度和宽度,以及萼片的长度和宽度来预测给定的鸢尾花是Setosa,Versicolor还是Virginica。我为这个分类任务 训练了一个简单的决策树,你可以很容易地在scikit-learn中看到训练好的模型,如上所示。当您沿着树中的不同分支走下去时,您可以看到这些特征如何影响模型的决策,并且外行人很容易理解它。
现在让我们来看一个更具挑战性的问题。医院希望使用AI系统来早期发现乳腺癌。这是一个模型理解至关重要的例子,因为它是生死攸关的情况。在数据集中,我们给出了30种不同的功能。我再次为这个二进制分类任务训练了一个简单的决策树。从下面的可视化中,您可以看到随着特征数量的增加,决策树的复杂性也会增加,并且解释起来会变得更加困难。
您可以说我们可以通过降维来减小特征空间的大小,这是完全有效的。但你必须明白,你在这里做了一个权衡 - 你为了简单而牺牲了准确性。这可能不是特别针对这种关键决策采取的正确策略。因此,决策树不是解决可解释性问题的灵丹妙药。
后期解释
让我们回到乳腺癌检测问题。由于准确性对于这样一个关键任务很重要,如果我们训练了更复杂的树木(如随机森林或梯度提升树)甚至是黑盒神经网络,那该怎么办?我们如何解释这些复杂的模型?
假设您训练的复杂模型学习如上所示的决策函数,以将恶性细胞(红色)与良性细胞(蓝色)分开。解释此复杂模型的方法是选择要解释的实例。然后训练一个更简单的线性模型,该模型近似于该实例周围的复杂模型。这意味着我们使用更简单的模型通过查看围绕它的类似情况来解释该实例。因此,学习的表示在当地是忠实的,但不是全球性的。这种事后解释技术称为LIME,它代表局部可解释模型无关的解释。它是在2016 年提出的并且自从(Github上的5343颗星,截至05年3月5日)以来获得了很多人气。
现在让我们从不同的角度来看看它。我们已经获得了我们想要分类的不同乳腺癌细胞的数据,在方框图中表示为x。我们正在训练的是学会了一门复杂的函数模型˚F用于分隔恶性案件的良性病变。然后,我们训练一个简单的线性代理模型g,通过近似该点周围的复杂函数来解释一个实例x’。这个简单模型学到的参数就是解释。这在下面以数学方式显示。
Scott M. Lundberg等人在NeurIPS 2017上提出了一个框架,该框架统一了包括LIME在内的各种附加特征归因方法。在该论文中,SHAP(代表SHapley Additive exPlanation)值被用作特征重要性的统一度量。2017年发布了SHAP的Python实现,统一了LIME和其他技术,如DeepLIFT和树解释器。该图书馆自发布以来也越来越受欢迎(截至03年3月3日,Github上有3909颗星)。您可以按如下方式安装SHAP。
现在针对乳腺癌检测问题,我已经训练了一个随机森林分类器,在保持测试集上获得100%的平均精度 - 见下面的PR曲线。
为了解释这个模型,我选择了一个恶意案例来运行SHAP树解释器。该模型预测该病例是恶性的,概率为0.9。该数据集中的恶性基础率为0.6251。SHAP提供的解释如下所示 - 其中正面影响用红色表示,负面影响用蓝色表示。您可以看到不同的特征值如何将基本预测推高到90%的确定性。具有最大正面影响的特征是 - 最差区域,最差凹点和平均凹点。
对于良性情况也可以获得类似的解释。我挑选了一个良性细胞,模型以100%的确定性预测,即0%的可能性是恶性的。您可以从下面的解释中看到各种特征值如何将恶性肿瘤的基本概率从0.6251降低到0.具有最大负面影响的特征是 - 最差凹点,平均周长和最差半径。这种解释很好,因为它使我们更深入地了解模型如何达到最终预测。
上面的解释可以使用下面的代码片段生成 - 整个源代码可以在这里找到。
您还可以使用SHAP可视化每个功能在预测目标类中的平均影响。这由左下方的图表显示。你可以看到两个最重要的特征是 - 最差的凹点和平均凹点。右图显示了这两个特征在预测恶性类别中的相互作用。
SHAP还可用于解释黑盒深度学习模型。下面是SHAP解释在MNIST数据集上训练的卷积神经网络的示例。SHAP DeepLIFT实现用于解释预测。红色像素表示对预测数字的影响很大。值得注意的是,DeepExplainer模型已经找到了一些很好的解释 - 例如,数字0的空白中间和数字4的两条垂直线之间没有连接.SHAP存储库中有更多很酷的例子。
MOAR工具!
我在本文中几乎没有涉及到表面,并且您可以应用更多可解释性技术,例如:
使用RNN语言模型生成文本说明
使用显着性图来解释模型所关注的内容
使用代表性学习并使用t-SNE等技术对其进行定性可视化
我在这个Github页面上添加了很多资源以供进一步阅读。
透明度面临的挑战
我想以一个警告结束。在阿德里安·韦勒(Adrian Weller)的一篇有趣的论文中,他认为人工智能透明度应该是实现目标的手段,而不是目标本身。韦勒博士借鉴多智能体博弈论,表明更多的透明度可能导致所有人的不利全球结果,并可能使AI被恶意行为者滥用。毫无疑问,AI系统必须是安全的,并且必须防范对抗性攻击。这又是另一个活跃的研究领域,值得一篇单独的博文!