机器学习可解释性(一)
机器学习可解释性(二) 之 可解释模型
机器学习可解释性(三) 之模型无关方法
机器学习可解释性(四) 之 shap

文章目录

  • what: 什么是可解释性(interpretability)
  • why: 为什么需要可解释性
  • how:如何进行可解释性分析
  • self-thinking:个人理解

Kaggle Notebook GM 排名第二的 Dan Becker 在他的推送 What 70% of Data Science Learners Do Wrong 中特意提到了一点:

Learn how to interpret model output. For example, you need to understand measures of model accuracy to know if you can trust a model. Learn machine learning explainability techniques, like permutation importance.

这位大佬目前在kaggle上开源了180+个专家级别的notebook。那么受到这么重量级人物推荐的 模型可解释性 到底是何方神圣,我们就来一探究竟。

what: 什么是可解释性(interpretability)

可解释性是以一种人类可理解的方式将特征值与模型预测联系起来,使人们能够认可模型预测结果。通俗一点说,就是把原本黑盒的模型变得透明化,使有经验水平的用户都可以明白模型的含义。

机器学习模型的可解释性越高,人就越容易理解为什么做出某些决策或预测。如果一个模型 的决策比另一个模型的决策能让人更容易理解,那么它就比另一个模型有更高的解释性。

但这里要注意一点,假设有一个包含成千上万neuron的神经网络,对其进行可解释性分析需要细致地探究到每一个neuron如何传播吗?其实不然。可解释性不需要知道网络里面的每一个数字,每一个矩阵,每一个激活函数。这里又要引出第二个问题,那就是我们为了什么需要可解释性。

why: 为什么需要可解释性

对于一个运行良好的机器学习模型,除了知道模型的预测是什么(例如,客户流失的概率或某种药物对病人的疗效),还会涉及到模型为什么做出这样的预测。

考虑一个哈士奇与狼分类器的例子,分类器将一些哈士奇误分类为狼。使用可解释的机器学习方法,你会发现错误分类是由于图像上的雪造成的。分类器学会了使用雪作为一个特征来将 图像分类为狼,这对于在训练数据集中分离狼和哈士奇可能是有道理的,但在实际使用中则不然。

对于模型的可解释性分析可以在一定程度上帮助人们更好的理解模型行为,有时候为了解释预测结果甚至可以牺牲预测性能。

进行可解释性分析,在建模阶段,可以辅助开发人员理解模型,进行模型的对比选择,必要时优化调整模型;在投入运行阶段,可以向业务方解释模型的内部机制,对模型结果进行解释。比如银行信用评分模型,需要向未通过的申请者解释为何拒绝他们的申请。

对于可解释性的需求,可以大致归结于如下两个方面:

  • 渴望获取知识(学习能力):如果模型仅给出预测而没有解释,那么我们无法捕获到模型从数据中获取的知识。

  • 渴望找到事物不一致的原因(好奇心):如果机器学习模型拒绝了贷款申请,对于申请者来说,他们需要知道为什么结果与预期不一致。

当然,并非所有情况下模型都需要可解释性:

  • 在低风险的环境中使用的模型不需要,因为即使结果错误也不会造成严重后果(如电影推荐系统)
  • 已经被广泛研究和评估的方法 (例如,光学字符识别 OCR) 也不需要

how:如何进行可解释性分析

在介绍如何进行可解释性分析之前,需要了解一个很有干扰性的概念:算法透明度

  • 算法透明度:指算法如何从数据中学习模型,以及它可以学习到什么样的关系 —> 是对算法如何工作的理解。
    如线性模型的最小二乘法等算法已被深入地研究和理解,它们的特点是透明度高。 深度学习方法 (通过具有数百万权重的网络推动梯度) 不太容易理解,对其内部工作机制的探究是当前的研究重点,它们被认为是低透明度的。
  • 模型可解释性:是对最终学习的特定模型的理解 —> 是对数据和学习模型的理解。

了解了两者的区别后,进行可解释性分析时,需要着重关注如下两点:

  • 全局层面:对于训练好的模型,哪些特征是最重要的或者是不重要的 —> 特征重要性。
    全局的模型可解释性有助于基于特征理解目标结果的分布
  • 模块层面:特征是如何影响该模型的预测过程。
    对于线性模型,可以通过特征的权重来定量的衡量每个特征对最终预测结果的影响程度,对于树来说,可以借助分裂节点和叶节点预测。

该部分的介绍会穿插在下面的两类方法中。

关注上述两点时,根据可解释性方法的作用阶段,可以分为:

  • 本质 (intrinsic): 通过限制机器学习模型的复杂性 (训练阶段) —> 采用结构简单的具有可解释性的机器学习模型,如单颗决策树模型、线性模型。

  • 事后 (post-hoc): 在训练后通过分析特征输入和输出解释模型 (预测阶段)—>采用与模型无关的解释方法,如置换特征重要性、特征依赖图。

关于 可解释的模型模型无关方法,后续会分别介绍。

在关注 特征是如何影响模型预测 时,根据可解释性方法的使用范围,可以分为:

  • 局部:解释特征对于单个实例预测结果的影响。
  • 全局:解释特征对于整个模型预测结果的影响。

对于一组实例预测的解释,可以将其视为一个完整的数据集,使用全局方法分析;也可以对每个实例使用单独的局部解释方法,然后为整个组列出其结果或对结果进行聚合。所以在上面不单独列出。

该部分的介绍会穿插在基于模块层面的介绍中。

self-thinking:个人理解

对于模型可解释性的需求在深度学习领域格外突出。试想某天无人驾驶车真的可以上路了,你真的会放开方向盘在车里刷手机吗?只有当人们可以去解释其背后的算法,才能建立起人们与模型之间的信任。否则就只能靠漫长的实践去证明。就像第一次使用支付宝时,大家都曾有过质疑:转进去的钱安全吗?最后阿里用时间证明了一切。

最后,想要成为一个高级算法研究人员或者开发人员,理解模型的行为一定是绕不开的一环。希望我们都早日成为自己崇拜的那个人。

机器学习可解释性(一)相关推荐

  1. 机器学习可解释性工具箱XAI

    http://blog.itpub.net/29829936/viewspace-2600454/ XAI是Github上的一个机器学习可解释性工具箱.XAI包含多种分析和评价数据和模型的工具.XAI ...

  2. 博弈论夏普利值!提高机器学习可解释性的新方法!

    全文共7141字,预计学习时长21分钟 图源:Unsplash 从"约翰•纳什"到"板球世界杯" 还记得<美丽心灵>的男主(也是现实生活中传奇的一代 ...

  3. ML之PDP:机器学习可解释性之部分依赖图(Partial Dependence Plots)之每个特征如何影响您的预测?

    ML之PDP:机器学习可解释性之部分依赖图(Partial Dependence Plots)之每个特征如何影响您的预测? 目录 机器学习可解释性之部分依赖图之每个特征如何影响您的预测? Partia ...

  4. 归因分析笔记5:机器学习可解释性

    目录 可解释的机器学习 从宏观业务流程看可解释机器学习 使机器学习可解释两种方法 可解释性的范围 模型不可知的全局方法 排列特征重要性(模型依赖) 模型不可知的局部方法 Shapley 值 Shapl ...

  5. 机器学习可解释性(二) —— 类激活映射(CAM)

    # 机器学习可解释性(二)--类激活映射(CAM) 文章目录 1.序言 2.方法介绍 2.1 CAM 2.2 GradCAM 2.3 GradAM++ 2.4 LayerCAM 3.算法实现 3.1 ...

  6. 机器学习可解释性(一) —— 累积局部效应图(ALE)

    一.序言 深度学习的"黑盒"特性如今越来越让计算机工作者困扰,因此模型的可解释性问题在近些年越来越受到人们的关注.作为该领域的萌新,我开始一点点学习相关领域的内容,参考的书籍是:& ...

  7. XAI/ML:机器学习可解释性之模型洞察之为什么以及什么时候你需要洞察力?

    XAI/ML:机器学习可解释性之模型洞察之为什么以及什么时候你需要洞察力? 目录 Why and when do you need insights? 1.What Types of Insights ...

  8. 1200+标星,3千多人点赞,这本书让你系统了解机器学习可解释性丨开源免费阅读...

    郭一璞 发自 凹非寺  量子位 报道 | 公众号 QbitAI 机器学习的黑箱性一直让很多人感到头大. 对许多技术人员来说,机器学习在出现问题的时候,总会让人一头雾水,搞不清楚具体是哪里出了问题. 而 ...

  9. 【文献翻译】综述:机器学习可解释性

    原文链接:Review Study of Interpretation Methods for Future Interpretable Machine Learning Abstract 近年来,黑 ...

最新文章

  1. matlab 如何代码自已标注_MATLAB概述
  2. 基于语义分割的视频弹幕防挡实现(训练、测试、部署实现)
  3. 数据结构算法的引言+时间复杂度
  4. 比特币交易平台 php,比特币PHP离线交易开发包
  5. Python中os与sys两模块的区别
  6. JZOJ__Day 4:【普及模拟】游戏
  7. SuSe防火墙iptables配置
  8. response.setContentType(“text/html;charset=utf-8“)后依然乱码的解决方法
  9. ofd 文件发票解析
  10. java maven 混淆_maven混淆Java代码
  11. 实战 | 对地震数据进行分析
  12. Verilog算法入门
  13. 新站如何解决收录问题
  14. java写出麻将和牌的算法,麻将胡牌算法
  15. cad无法安装_CAD软件下载好了,为什么安装不上?有两个原因,解决方法在这
  16. CVPR 2022 | 百变发型!中科大/微软/港城大提出HairCLIP:基于文本和参考图像的头发编辑方法...
  17. 微信小程序车辆登记+后台管理系统
  18. github项目推荐:少儿图形化编程启蒙游戏
  19. 今日踩坑Maven:omitted for duplicate
  20. Android百度地图 - 在地图上标注已知GPS纬度经度值的一个或一组覆盖物 - OPEN 开发经验库 - 360安全浏览器 8.1...

热门文章

  1. 基于python的电脑硬体设备信息获取
  2. 【网络安全】WEB漏洞 pickchu靶场搭建:实例演示sql数字注入、目录遍历漏洞、文件下载漏洞
  3. 解析!2018软件测试官方行业报告
  4. 淘宝 npm 源将在 2022 年 5 月 31 日更换域名服务
  5. JLink V8刷固件方式 转载整合
  6. Java_第08章_面向对象编程(高级)
  7. GTF基因注释文件详解
  8. html5+实现一键分享多张图片到朋友圈
  9. 【美少女】阿里二面又是个温柔小哥?呵,有点意思
  10. 李阳疯狂英语突破对话(51)-Departure and Arrival出发与到达