专栏首页相约机器人现代机器学习中的模型可解释性概述

现代机器学习中的模型可解释性概述

作者 | Rui Aguiar

来源 | Medium

编辑 | 代码医生团队

模型可解释性是当今机器学习中最重要的问题之一。通常某些“黑匣子”模型(例如深度神经网络)已部署到生产中,并且正在运行从工作场所安全摄像头到智能手机的所有关键系统。令人恐惧的是,甚至这些算法的开发人员都无法理解为什么正是这些算法真正做出了自己的决定,甚至更糟的是,如何防止对手利用它们。

尽管“黑匣子”算法的设计者面临许多挑战,但并非完全没有希望。实际上,有许多方法可以阐明模型所做的决策。甚至有可能了解模型预测中哪些特征最为突出。

在本文中,对机器学习中更深层模型的模型可解释性进行了全面概述。希望解释在传统上被认为是“黑匣子”的更深层次的模型实际上可以令人惊讶地解释。使用与模型无关的方法将可解释性应用于所有不同种类的黑匣子模型。

部分依赖图

部分依赖图显示了特征对ML模型结果的影响。

回归的偏相关方程

局部依赖通过将机器学习模型的输出边缘化到不感兴趣的特征的分布上(以集合C中的特征表示)而起作用。这使得偏相关函数显示了关心的特征(通过购买S集表示)与预测结果之间的关系。通过边缘化其他特征,得到了仅依赖于S中特征的函数。这使得易于理解特定特征的变化如何影响模型预测。例如,这里有3个关于温度,湿度和风速的PDP图,与通过线性模型预测的自行车销量有关。

PDP用于温度,湿度和风速,以解决自行车数量就是结果的回归问题。从这些图中可以清楚地看出,温度是决定租用多少辆自行车的重要决定因素,温度越高,租用的自行车越多。

PDP甚至可以用于分类功能。以下是季节对自行车租赁的影响。

季节对自行车租赁影响的部分依赖图

对于分类,偏相关图显示给定类别的给定不同特征值的概率。处理多类问题的一个好方法是每个类一个PDP。

局部依赖图法是有用的,因为它是全局的。它指出了某个功能与该功能所有值上的目标结果之间的全局关系。

好处

部分依赖图非常直观。如果让所有数据点都假定该特征值,则某个特征在某个值的偏相关函数表示平均预测。

缺点

使用部分依赖函数,实际上最多只能建模两个功能。

独立性的假设:假设要绘制的要素与任何其他要素都不相关。例如,如果预测的是身高和体重之外的血压,则必须假设身高与体重无关。出现这种情况的原因是,如果要绘制高度,则必须对重量的边际分布求平均值(反之亦然)。例如,这意味着对于一个很高的人,可以具有很小的权重,而在实际数据集中可能看不到。

想为模型实现一个PDP。从哪里开始?

这是scikit-learn的实现。

https://scikit-learn.org/stable/modules/partial_dependence.html

排列特征的重要性

置换特征重要性是通过在置换特征之后计算模型的预测误差的变化来衡量特征重要性的一种方法。如果特征的值增加会增加模型误差,则该功能“重要”,而如果值的排列会造成模型误差不变,则该功能“不重要”。

该算法的工作原理如下:

input: a model f, feature matrix X, target vector Y and error measure L(y, f)

1. Estimate the original model error e⁰ = L(Y, f(x))

2. For each feature j:

- Generate feature matrix X' by permuting feature j in the original feature matrix X.

- Estimate the new error e¹=L(Y, f(X')) based off the model's predictions for the new data X'

- Calculate the permutation feature importance FI=e¹/e⁰. You can also use e¹-e⁰.

3. Sort the features by descending FI.

在按FI降序对要素进行排序后,可以绘制结果。这是自行车租赁问题的置换特征重要性图。

自行车出租的置换特征重要性图。您以清楚地看到,该模型将温度和自2011年以来的天数视为最重要的功能。

好处

可解释性:功能重要性是指功能失真时错误会增加多少。这很容易解释和可视化。

置换功能的重要性提供了对模型行为的全局了解。

置换特征的重要性不需要训练新模型或重新训练现有模型,只需将特征改组即可。

缺点

目前尚不清楚应该为样区使用训练还是测试数据。

如果要素相关,则在对要素进行置换后,可能会获得不切实际的样本,从而使结果产生偏差。

向模型中添加关联的功能可能会降低其他功能的重要性。

想为模型实现置换特征的重要性。从哪里开始?

这是eli5模型在Python中的实现。

https://eli5.readthedocs.io/en/latest/blackbox/permutation_importance.html

累积局部效应图

ALE图是部分依赖图的更快,更公正的替代方法。测量特征如何影响模型的预测。由于它们没有偏见,因此它们处理相关功能要比PDP更好。

如果机器学习模型的特征相关联,则部分依赖图将不可信,因为您可以通过更改单个特征来生成实际上不太可能的样本。ALE图通过还基于要素的条件分布来计算预测差异而不是平均值来解决此问题。一种解释方式是考虑ALE

“让我向您展示模型预测在功能的一个小的“窗口”中如何变化。”

这是ALE图中发生的情况的直观解释。

ALE图计算。将x1划分为“窗口”。对于每个窗口中的所有点,当用窗口的上下边界替换每个点时,计算预测的差异。

这也可以通过两个功能来完成。

2D-ALE图。与1D图相同的基本思想,但是无需使用上下“窗口”范围,而是可以计算网格中正方形的四个角的预测差异。

计算完每个窗口的预测差异后,即可生成ALE图。

自行车出租的ALE地块。显然温度对自行车租赁预测有很大影响,但是还可以看到,如果湿度高于某个点,则对自行车租赁预测也有显着影响。

ALE图也可以用于分类特征。

月份和自行车租赁的ALE图。1月和3月似乎对租用的自行车数量影响不大,但12月和11月似乎有很大的负面影响。

好处

ALE图是无偏的,这意味着它们可与相关特征一起使用。

ALE图的计算速度很快。

ALE图的解释很清楚。

缺点

ALE图的实现复杂且难以理解。

如果要素紧密相关,则解释仍然很困难。

二阶或2D ALE图可能难以解释。

通常,最好是在PDP上使用ALE,特别是在期望相关功能的情况下。

想为模型实现ALE。从哪里开始?

这是一个提供ALE实现的库。

https://github.com/blent-ai/ALEPython

个人条件期望

单个条件期望(ICE)图在每个数据点显示一行。它产生了一个图,该图显示了模型对数据点的预测如何随要素在集合中所有数据点上的变化而变化。对于下面的图,可以在训练集自行车租赁数据中查看所有实例中温度,湿度和风速变化时的ICE图。

自行车共享的ICE图

查看此图,可能会问自己:查看ICE图而不是PDP有什么意义?似乎很难解释。

PDP只能显示功能与预测之间的平均关系。仅当要为其计算PDP的要素与其他要素之间的相互作用不相关时,这才行得通,但是在强而相关的相互作用的情况下,ICE图表将更具洞察力。

好处

像PDP图一样,ICE图也非常直观易懂。

ICE图解比PDP图解可以更好地揭示异构关系。

缺点

ICE曲线一次只能显示一个功能。

用这种方法产生的曲线图可能难以阅读和拥挤。

想为模型实现ICE。从哪里开始?

这是ICE实现的可解释性概述。

http://savvastjortjoglou.com/intrepretable-machine-learning-nfl-combine.html

替代模型

替代模型是经过训练的近似黑匣子预测的可解释模型(例如决策树或线性模型)。通过解释代理模型的决策,可以更好地理解黑匣子。

生成替代模型的算法很简单。

1. Select a dataset X that you can run your black box model on.

2. For the selected dataset X, get the predictions of your black box model.

3. Select an interpretable model type (e.g. linear model or decision tree)

4. Train the interpretable model on the dataset X and the black box's predictions.

5. Measure how well the surrogate model replicates the predictions of the black box model.

6. Interpret the surrogate model.

一种衡量代理通过R平方度量标准复制黑盒的能力的方法:

R平方度量是一种测量代理模型捕获的方差的方法。R平方值接近1表示代理模型很好地捕获了方差,接近0表示代理模型很好地捕获了方差,并且不能很好地解释黑盒模型。

好处

这种方法很直观:通过近似来了解黑匣子模型认为重要的内容。

易于度量:很明显,可解释模型在通过R平方度量值近似黑盒方面的表现如何。

缺点

线性模型可能无法很好地近似黑盒模型。

将得出有关黑匣子模型的结论,而不是有关实际数据的结论,因为将黑匣子的模型预测用作标签而没有看到真实的事实。

即使确实很好地估计了黑匣子模型,“可解释”模型的可解释性实际上也不能代表黑匣子模型学到的知识。

可能难以解释可解释的模型。

想实现代理模型。从哪里开始?

这是代理模型实现的可解释性概述。

http://savvastjortjoglou.com/intrepretable-machine-learning-nfl-combine.html

可解释性的未来

随着机器学习在日常生活中变得越来越重要,可解释性的未来比以往任何时候都更加重要。相信一些趋势将对可解释性的未来进行分类,这将影响将来与AI模型的交互方式。

模型不可知性可解释性重点

深度学习研究的所有趋势都指出了这样一个事实,即深度网络并未满足于当前的计算和数据限制。重要的是要认识到,随着模型在从图像识别到文本生成的各个方面越来越深入,需要一种可以在所有类型的模型中提供可解释性的方法。机器学习在不同领域的应用越广泛,泛化性将变得越来越有用。在此博客文章中讨论的方法只是一个开始,但是需要从整体上更认真地考虑可解释性,以便更好地理解为什么为日常动力提供支持的机器学习系统正在做出决策。

自我解释的模型

认为在将来会存在的大多数机器学习系统中,尚未出现的一种趋势是可自我解释的模型的思想。如今大多数系统只是出于用户不透明的原因做出决策。相信将来会改变。如果自动驾驶汽车决定停车,将知道原因。如果Alexa无法理解句子,它将详细告诉出了什么问题以及如何更清楚地表达查询。使用可以自我解释的模型,可以更好地了解生活中的ML系统如何工作。

加强模型审查

最后,已将黑匣子模式审查推到了幕后。不了解模型正在做出的决策,而且似乎并没有特别困扰任何人。将来这将不得不改变。当模型开始犯错误时,工程师和数据科学家将被追究责任,这将导致一种趋势,即将以与训练模型数据集相同的严格性来检查模型做出的决策。

参考文献:

这里的大多数示例都是从出色的可解释性机器学习书中获得启发的。

https://christophm.github.io/interpretable-ml-book/

本文分享自微信公众号 - 相约机器人(xiangyuejiqiren),作者:代码医生

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-12-05

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 技术解读EfficientNet系列模型——图片分类的领域的扛把子

    EfficientNet系列模型作为图片分类领域精度最高的模型(没有之一)。它到底用了哪些技术?有哪些值得我们借鉴的地方?本文将详细阐述一下这个事情。具体内容如...

    代码医生工作室
  • 癫痫发作分类ML算法

    癫痫是一种中枢神经系统疾病(CNS),在美国影响约1.2%(340万人),全球影响超过6500万。此外大约每26人中就有一人会在其一生中的某个时刻患上癫痫症。癫...

    代码医生工作室
  • 使用深度学习进行分心驾驶检测

    https://github.com/Apoorvajasti/Distracted-Driver-Detection

    代码医生工作室
  • 干货 | 携程AI模型引擎设计与实践

    携程技术
  • Hadoop之上的模型部署 - CDSW1.4新功能模块

    CDSW1.4提供了一个新的模型模块,可以让数据科学家通过REST API的方式来构建,部署和管理模型,从而提供预测。如下图所示,这个功能可以帮助数据科学家实现...

    Fayson
  • 知乎“看山杯”夺冠记

    比赛介绍 这是一个文本多分类的问题:目标是 “参赛者根据知乎给出的问题及话题标签的绑定关系的训练数据,训练出对未标注数据自动标注的模型”。通俗点讲就是:当用户在...

    朱晓霞
  • 「AI工程论」AI的透明性(Transparent)及一种多因素评估方法

    让人工智能发挥作用的一个基石是机器学习——机器从经验和数据中学习,并随着学习而不断提高的能力。事实上,机器学习的研究和应用的爆炸式增长使得人工智能成为了最近的兴...

    用户7623498
  • 从实验室到工厂,模型部署中的几个重要问题及解决方案

    选自kdnuggets 作者:Mauricio Vacas 机器之心编译 参与:Quantum Cheese、微胖 在这篇文章中,我们会讨论在模型管理和部署中如...

    机器之心
  • [语音识别] 07 语言模型

    MachineLP
  • 从基线模型开始:别担心,模型最开始都让人不忍直视

    大数据文摘

扫码关注云+社区

领取腾讯云代金券