导读:为了解决模型的“黑盒”问题,科学家们提出了可解释机器学习。除了预测的精准性之外,可解释性也是机器学习模型是否值得信赖的重要衡量标准。

可解释机器学习(IML)的核心思想在于选择模型时,需要同时考虑模型的预测精度和可解释性,并尽量找到二者之间的最佳平衡,它不像传统黑盒模型仅考虑预测精度这一单项指标(如低MSE或高AUC);它不仅能给出模型的预测值,还能给出得到该预测值的理由,进而实现模型的安全、透明和公平等特性。

作者:索信达控股 邵平 杨健颖 苏思达 何悦 苏钰

来源:大数据DT(ID:hzdashuju)

在大数据时代,机器学习在提升产品销售、辅助人类决策的过程中能够起到很大的作用,但是计算机通常不会解释它们的预测结果。

我们在使用机器学习模型时,常用的模型性能评价指标有精度、查准率、查全率、ROC曲线、代价曲线等。如果一个机器学习模型表现得很好,我们是否就能信任这个模型而忽视决策的理由呢?答案是否定的。

模型的高性能意味着模型足够智能和“聪明”,但这不足以让我们了解它的运作原理,因此我们需要赋予模型“表达能力”,这样我们才能更加理解和信任模型。除了单一的性能评价之外,模型的评价还应该增加一个维度,以表示模型的“表达能力”,可解释性就是其中一个。

01 可解释性的定义

解释指的是用通俗易懂的语言进行分析阐明或呈现。对于模型来说,可解释性指的是模型能用通俗易懂的语言进行表达,是一种能被人类理解的能力,具体地说就是,能够将模型的预测过程转化成具备逻辑关系的规则的能力。

可解释性通常比较主观,对于不同的人,解释的程度也不一样,很难用统一的指标进行度量。我们的目标是希望机器学习模型能“像人类一样表达,像人类一样思考”,如果模型的解释符合我们的认知和思维方式,能够清晰地表达模型从输入到输出的预测过程,那么我们就会认为模型的可解释性是好的。

在《机器学习的挑战:黑盒模型正面临这3个问题》例举的基金营销小场景中,虽然模型能够判断一个客户有很大的可能性购买低风险、低收益的产品,但是模型不能解释客户倾向于购买低风险、低收益产品的更详细的原因,因此也就无法提出对这个客户来说更有针对性的营销策略,从而导致营销的效果不佳。

具备可解释性的模型在做预测时,除了给出推荐的产品之外,还要能给出推荐的理由。例如,模型会推荐一个低收益产品的原因是,该客户刚大学毕业,年纪还比较小,缺乏理财意识,金融知识也比较薄弱,尽管个人账户中金额不少,但是盲目推荐购买高收益产品,可能会由于其风险意识不足而导致更多的损失,因此可以通过一些简单的低风险理财产品,让客户先体验一下金融市场,培养客户的理财兴趣,过一段时间再购买高收益的产品。

模型的可解释性和模型的“表达能力”越强,我们在利用模型结果进行决策时便能达到更好的营销效果。

02 可解释性的分类

可解释机器学习的思想是在选择模型时,同时考虑模型的预测精度和可解释性,并尽量找到二者之间的最佳平衡。根据不同的使用场景和使用人员,我们大致可以将模型的可解释性作以下分类。

1. 内在可解释VS.事后可解释

内在可解释(Intrinsic Interpretability)指的是模型自身结构比较简单,使用者可以清晰地看到模型的内部结构,模型的结果带有解释的效果,模型在设计的时候就已经具备了可解释性。

如图2-1所示,从决策树的输出结果中我们可以清楚地看到,两个特征在不同取值的情况下,预测值存在差异。常见的内在可解释模型有逻辑回归、深度较浅的决策树模型(最多不超过4层)等。

▲图2-1 决策树结果

事后可解释(Post-hoc Interpretability)指的是模型训练完之后,使用一定的方法增强模型的可解释性,挖掘模型学习到的信息。

有的模型自身结构比较复杂,使用者很难从模型内部知道结果的推理过程,模型的结果也不带有解释的语言,通常只是给出预测值,这时候模型是不具备可解释性的。事后可解释是指在模型训练完之后,通过不同的事后解析方法提升模型的可解释性。

如图2-2所示,利用事后解析的方法,可以对不同的模型识别结果给出不同的理由:根据吉他的琴颈识别出电吉他,根据琴箱识别出木吉他,根据头部和腿部识别出拉布拉多。常用的事后解析方法有可视化、扰动测试、代理模型等。

▲图2-2 事后解释:a. 原始图片,b. 解释为电吉他的原因,c. 解释为木吉他的原因,d. 解释为拉布拉多的原因(来源:论文“"Why Should I Trust You?"—Explaining the Predictions of Any Classifier”)

2. 局部解释VS.全局解释

对于模型使用者来说,不同场景对解释的需求也有所不同。对于整个数据集而言,我们需要了解整体的预测情况;对于个体而言,我们需要了解特定个体中预测的差异情况。

局部解释指的是当一个样本或一组样本的输入值发生变化时,解释其预测结果会发生怎样的变化。

例如,在银行风控系统中,我们需要找到违规的客户具备哪个或哪些特征,进而按图索骥,找到潜在的违规客户;当账户金额发生变化时,违规的概率会如何变化;在拒绝了客户的信用卡申请后,我们也可以根据模型的局部解释,向这些客户解释拒绝的理由。

图2-2展示的既是事后解释,也是一个局部解释,是针对输入的一张图片作出的解释。

全局解释指的是整个模型从输入到输出之间的解释,从全局解释中,我们可以得到普遍规律或统计推断,理解每个特征对模型的影响。

例如,吸烟与肺癌相关,抽烟越多的人得肺癌的概率越高。全局解释可以帮助我们理解基于特征的目标分布,但一般很难获得。

人类能刻画的空间不超过三维,一旦超过三维空间就会让人感觉难以理解,我们很难用直观的方式刻画三维以上的联合分布。因此一般的全局解释都停留在三维以下,比如,加性模型(Additive Model)需要在保持其他特征不变的情况下,观察单个特征与目标变量的关系;树模型则是将每个叶节点对应的路径解释为产生叶节点结果的规则。

3. 可解释机器学习的研究方向

可解释机器学习为模型的评价指标提供了新的角度,模型设计者在设计模型或优化模型时,应该从精度解释性两个角度进行考虑。

图2-3所示的是可解释机器学习中模型精度和模型可解释性的关系,由香港大学张爱军教授提出,在学术界广为流传,图2-3中的横轴代表模型的可解释性,越往正方向,代表模型的可解释性越高;纵轴代表模型的精度,越往正方向,代表模型的精度越高。

▲图2-3 可解释机器学习:模型精度和模型可解释性的关系(图片来源:©香港大学张爱军博士)

针对模型评价的两个指标,可解释机器学习有两大研究方向,具体说明如下。

第一,对于传统的统计学模型(比如决策树、逻辑回归、线性回归等),模型的可解释性较强,我们在使用模型时可以清楚地看到模型的内部结构,结果具有很高的可解释性。

然而一般情况下,这些模型的精度较低,在一些信噪比较高(信号强烈,噪声较少)的领域,拟合效果没有当下的机器学习模型高。

在保持模型的可解释性前提下,我们可以适当地改良模型的结构,通过增加模型的灵活表征能力,提高其精度,使得模型往纵轴正方向移动,形成内在可解释机器学习模型。比如,保持模型的加性性质,同时从线性拟合拓展到非线性拟合,GAMI-Net、EBM模型均属于内在可解释机器学习模型。

第二,当下的机器学习模型(比如神经网络、深度学习),其内部结构十分复杂,我们难以通过逐层神经网络或逐个神经元观察数据的变化,在一些信噪比较低(信号较弱,噪声强)的领域,我们很容易把噪声也拟合进去,不易发现其中的错误,模型的可解释性较低。

为了提高模型的可解释性,我们可以采用以下两种方法:

  1. 降低模型结构的复杂度,如减少树模型的深度,以牺牲模型的精度换取可解释性;

  2. 保持模型原有的精度,在模型训练完之后,利用事后辅助的归因解析方法及可视化工具,来获得模型的可解释性。

无论采用哪一种方法,其目的都是让模型往横轴的正方向移动,获取更多的可解释性。LIME和SHAP等方法均属于事后解析方法。

可解释机器学习的研究在学术界和工业界都引发了热烈的反响,发表的文章和落地应用逐年增长。无论是哪一个研究方向,可解释机器学习研究的最终目的都是:

  1. 在保证高水平学习表现的同时,实现更具可解释性的模型;

  2. 让我们更理解、信任并有效地使用模型。

关于作者:邵平,资深数据科学家,索信达控股金融AI实验室总监。在大数据、人工智能领域有十多年技术研发和行业应用经验。技术方向涉及可解释机器学习、深度学习、时间序列预测、智能推荐、自然语言处理等。现主要致力于可解释机器学习、推荐系统、银行智能营销和智能风控等领域的技术研究和项目实践。

杨健颖,云南财经大学统计学硕士,高级数据挖掘工程师,一个对数据科学有坚定信念的追求者,目前重点研究机器学习模型的可解释性。

苏思达,美国天普大学统计学硕士,机器学习算法专家,长期为银行提供大数据与人工智能解决方案和技术服务。主要研究方向为可解释机器学习与人工智能,曾撰写《可解释机器学习研究报告》和多篇可解释机器学习相关文章。

本文摘编自《可解释机器学习:模型、方法与实践》,经出版方授权发布。(ISBN:9787111695714)

延伸阅读《可解释机器学习:模型、方法与实践》

点击上图了解及购买

转载请联系微信:DoctorData

推荐语:国内金融人工智能一线团队倾力打造,追踪最前沿的研究进展,全面、系统地介绍了可解释机器学习模型及方法。

干货直达

终于有人把可解释机器学习讲明白了相关推荐

  1. 终于有人把“可解释机器学习”讲明白了

    1 为什么需要解释 机器学习模型的可解释性(Interpretability)最近说得越来越多,这也是个有趣的话题.可解释性不是个新概念,很多书在介绍机器学习模型时,都会顺带提一笔这款模型的可解释性如 ...

  2. 不服不行!终于有人把AMS和WMS讲明白了!

    现在的移动开发人才市场上,初中级开发者几乎都是人满为患,互联网公司对移动开发人员的招聘要求也越来越高,尤其是那些大厂,非常看重开发者对底层的掌握. 大家可以先来看一组大厂的面试题: AMS是如何启动的 ...

  3. 终于有人把A/B测试讲明白了

    导读:对照实验有时也称为A/B测试.A/B/n 测试(强调多变体测试).实地实验.随机对照实验.分拆测试.分桶测试和平行飞行测试.本文带你了解一些相关术语及应用案例. 作者:罗恩·科哈维(Ron Ko ...

  4. 终于有人把大数据架构讲明白了

    导读:如何存储.如何利用大规模的服务器集群处理计算才是大数据技术的核心. 作者:李智慧 来源:大数据DT(ID:hzdashuju) 大数据技术其实是分布式技术在数据处理领域的创新性应用,其本质和此前 ...

  5. 6大准则+10道习题,终于有人把怎样选择图表讲明白了

    来源:大数据DT 本文约2300字,建议阅读7分钟 本文为大家介绍考虑图表类型时,该遵循那些指导原则. [ 导读 ] "我可以使用饼形图吗?"这里引用的提问是真实的,令人失望的是, ...

  6. 终于有人把红蓝对抗讲明白了

    导读:什么是红蓝对抗? 我们现在所处的时代,有人称为网络时代,有人称为信息时代,也有人称为数据时代,不管名字怎么叫吧,我想有一件事已经成为了共识,那就是我们的安全观念得要跟上时代发展. 都知道重要的东 ...

  7. 终于有人把如何精通C++讲明白了!

    2020年的最后1个月,C++20的标准正式公布了,它的变化有多大? 先来看一张图: 分别用C++11和C++20编写代码,来实现同一个数据操作的功能 显而易见,C++的代码变得更简洁了,甚至有人说, ...

  8. 终于有人把ROS机器人操作系统讲明白了

    导读:机器人是多专业知识交叉的学科,通常涉及传感器.驱动程序.多机通信.机械结构.算法等,为了更高效地进行机器人的研究和开发,选择一个通用的开发框架非常必要,ROS(Robot Operating S ...

  9. 终于有人把条件概率和贝叶斯公式讲明白了

    导读:本文将从条件概率入手,介绍事件之间独立性的相关概念,然后引出全概率公式和贝叶斯公式的基本内容,带领读者通过概率的视角初步认知现实世界. 作者:张雨萌 来源:大数据DT(ID:hzdashuju) ...

最新文章

  1. 表间数据复制--SELECT表中的数据插入到新的表中(ORACLE,MSSQL)
  2. Android开发学习笔记:对话框浅析
  3. CMT learning
  4. 基于RobotFramework实现自动化测试
  5. ruby 爬虫爬取拉钩网职位信息,产生词云报告
  6. html img src
  7. php instanceof 基类,PHP强制对象类型之instanceof操作符
  8. 这一次,字节的组织进化选择优化了CEO(附张一鸣卸任CEO内部信全文)
  9. python发展至今有哪些版本_Python发展至今有哪些版本,各版本有什么区别?
  10. 大学计算机基础流媒体,大学计算机基础经典课件.ppt
  11. 手机计算机快速切换功能,群控系统快速切换多部手机
  12. 用虚拟机玩游戏的方法!! 开3D加速!
  13. IPV4组播地址解析以及IPV4地址详解
  14. matlab fprintf和disp,matlab中 fprintf 和disp的用法
  15. 长文预警-超详细的熊猫烧香病毒分析_01
  16. Scheme 语言概要上
  17. 捣鼓openwrt不死bootloader (1)
  18. JS基础-一个完美的递归函数
  19. 模型评价指标—F1值
  20. 前美团COO干嘉伟:好的管理,打得、骂得,又哄得

热门文章

  1. Web笔记-html中svg的基本使用
  2. OllyDbg笔记-修改Messagebox的标题
  3. linux python3安装教程_linux python3安装
  4. 32岁妈妈适合转行做软件测试吗,32+大龄妈妈,AMH偏低,可丽蓝助力好孕一次就中...
  5. baseapp01: [S_ERROR]: [Account 40 => dbid 196]---------->call server client2base_xz Generate an err
  6. 最小二乘法幂函数C语言,跪求最小二乘法幂函数C 语言程序
  7. C语言判断某个字符串中 是否存在子字符串
  8. python修改xml标签的值_对python修改xml文件的节点值方法详解
  9. Spring boot配置文件两种方式
  10. 2-1:套接字(Socket)编程之必备知识