一、模型可解释性

    近年来,机器学习(深度学习)取得了一系列骄人战绩,但是其模型的深度和复杂度远远超出了人类理解的范畴,或者称之为黑盒(机器是否同样不能理解?),当一个机器学习模型泛化性能很好时,我们可以通过交叉验证验证其准确性,并将其应用在生产环境中,但是很难去解释这个模型为什么会做出此种预测,是基于什么样的考虑?作为机器学习从业者很容易想清楚为什么有些模型存在性别歧视、种族歧视和民族仇恨言论(训练样本的问题),但是很多场景下我们需要向模型使用方作出解释,让其清楚模型为什么要做出此种预测,如模型替代医生判断病情,给出病人合理的解释至关重要,在商业场景中,模型为公司做出决策,需要给出令管理层信服的解释。另外,给出解释也可以帮助我们进一步改善模型,优化特征,提高泛化性。

    本文就LIME( Local Interpretable Model-Agnostic Explanations, LIME)方法如何解释黑盒模型作出简要的介绍和公式推导,介绍其优缺点,文末附上自己的一些简单思考

二、 LIME

    LIME的主要思想是利用可解释性模型(如线性模型,决策树)局部近似目标黑盒模型的预测,此方法不深入模型内部,通过对输入进行轻微的扰动,探测黑盒模型的输出发生何种变化,根据这种变化在兴趣点(原始输入)训练一个可解释性模型。值得注意的是,可解释性模型是黑盒模型的局部近似,而不是全局近似,这也是其名字的由来。

    LIME的数学表示如下:

\[
explanation(x)=arg\min_{g\in G}L(f,g,\pi_x)+\Omega(g)
\]

    对于实例\(x\)的解释模型\(g\),我们通过最小化损失函数来比较模型\(g\)和原模型\(f\)的近似性,其中,\(\Omega (g)\)代表了解释模型\(g\)的模型复杂度,\(G\)表示所有可能的解释模型(例如我们想用线性模型解释,则\(G\)表示所有的线性模型),\(\pi_{x}\) 定义了\(x\)的邻域。我们通过最小化\(L\)使得模型\(f\)变得可解释。其中,模型\(g\),邻域范围大小,模型复杂度均需要定义。

    下面对于结构化数据类型,简要说明LIME的工作流程。

    对于结构化数据,首先确定可解释性模型,兴趣点x,邻域的范围。LIME首先在全局进行采样,然后对于所有采样点,选出兴趣点x的邻域,然后利用兴趣点的邻域范围拟合可解释性模型。如下图\(^1\)

其中,背景灰色为负例,背景蓝色为正例,黄色为兴趣点,小粒度黑色点为采样点,大粒度黑点为邻域范围,右下图为LIME的结果。

    LIME的优点我们很容易就可以看到,原理简单,适用范围广,可解释任何黑箱模型。但是在实际应用中,存在几个问题:

  • 需要确定邻域范围;邻域范围不同,得到的局部可解释性模型可能会有很大的差别,如下图

    对于x=1.6,不同的邻域范围(0.1,0.75,2)对应的可解释性模型是完全不同的,甚至相悖。

  • 采样是全样本集采样,采样是利用高斯分布进行采样,忽略了特征之间的关系,这可能导致一些不大可能出现的样本点来解释模型。

  • 解释模型的复杂度需要提前定义。

  • 解释的不稳定性。利用相同参数相同方法进行的重复解释,得到的结果可能完全不同.\(^5\)

三、总结

    模型可解释性作为目前机器学习领域研究的热门,LIME的成果是很有启发性的,通过对黑盒模型某局部点的无限次探测,拟合出一个局部可解释性的简单模型。但是其缺点同样明显,这些缺点也导致了LIME方法难以大规模应用。

    后续将介绍基于Shapley值的SHAP方法(现在在研读,就是有点看不懂。看懂了再写)

参考链接:

  1. https://christophm.github.io/interpretable-ml-book/lime.html
  2. https://blog.csdn.net/a358463121/article/details/52313585
  3. https://cloud.tencent.com/developer/article/1096716
  4. 论文地址:https://arxiv.org/pdf/1602.04938v1.pdf
  5. Alvarez-Melis, David, and Tommi S. Jaakkola. “On the robustness of interpretability methods.” arXiv preprint arXiv:1806.08049 (2018).)

    本文由飞剑客原创,如需转载,请联系私信联系知乎:@AndyChanCD

复杂模型可解释性方法——LIME的更多相关文章

  1. NNs(Neural Networks,神经网络)和Polynomial Regression(多项式回归)等价性之思考,以及深度模型可解释性原理研究与案例

    1. Main Point 0x1:行文框架 第二章:我们会分别介绍NNs神经网络和PR多项式回归各自的定义和应用场景. 第三章:讨论NNs和PR在数学公式上的等价性,NNs和PR是两个等价的理论方法 ...

  2. 基于 Koa平台Node.js开发的KoaHub.js的控制器,模型,帮助方法自动加载

    koahub-loader koahub-loader是基于 Koa平台Node.js开发的KoaHub.js的koahub-loader控制器,模型,帮助方法自动加载 koahub loader I ...

  3. 评价指标的局限性、ROC曲线、余弦距离、A/B测试、模型评估的方法、超参数调优、过拟合与欠拟合

    1.评价指标的局限性 问题1 准确性的局限性 准确率是分类问题中最简单也是最直观的评价指标,但存在明显的缺陷.比如,当负样本占99%时,分类器把所有样本都预测为负样本也可以获得99%的准确率.所以,当 ...

  4. thinkphp模型中的获取器和修改器(根据字段名自动调用模型中的方法)

    thinkphp模型中的获取器和修改器(根据字段名自动调用模型中的方法) 一.总结 记得看下面 1.获取器的作用是在获取数据的字段值后自动进行处理 2.修改器的作用是可以在数据赋值的时候自动进行转换处 ...

  5. 深度学习模型调优方法(Deep Learning学习记录)

    深度学习模型的调优,首先需要对各方面进行评估,主要包括定义函数.模型在训练集和测试集拟合效果.交叉验证.激活函数和优化算法的选择等. 那如何对我们自己的模型进行判断呢?——通过模型训练跑代码,我们可以 ...

  6. ASP.NET MVC中的模型装配 封装方法 非常好用

    下面说一下 我们知道在asp.net mvc中 视图可以绑定一个实体模型 然后我们三层架构中也有一个model模型 但是这两个很多时候却是不一样的对象来的 就拿微软的官方mvc例子来说明 微软的视图实 ...

  7. PRML读书会第三章 Linear Models for Regression(线性基函数模型、正则化方法、贝叶斯线性回归等)

    主讲人 planktonli planktonli(1027753147) 18:58:12  大家好,我负责给大家讲讲 PRML的第3讲 linear regression的内容,请大家多多指教,群 ...

  8. sklearn中树模型可视化的方法

    在机器学习的过程中,我们常常会用到树模型的方式来解决我们的问题.在工业界,我们不仅要针对某个问题利用机器学习的方法来解决问题,而且还需要能力解释其中的原理或原因.今天主要在这里记录一下树模型是怎么做可 ...

  9. IRT模型的参数估计方法(EM算法和MCMC算法)

    1.IRT模型概述 IRT(item response theory 项目反映理论)模型.IRT模型用来描述被试者能力和项目特性之间的关系.在现实生活中,由于被试者的能力不能通过可观测的数据进行描述, ...

随机推荐

  1. LeetCode探索初级算法 - 动态规划

    LeetCode探索初级算法 - 动态规划 今天在LeetCode上做了几个简单的动态规划的题目,也算是对动态规划有个基本的了解了.现在对动态规划这个算法做一个简单的总结. 什么是动态规划 动态规划英 ...

  2. springboot以jar运行时参数传递

    springboot以jar运行时参数传递 spring boot项目我们都习惯以内嵌tomcat方式.直接打包成jar,运行时使用: java -jar XXX.jar  --spring.prof ...

  3. eclipse中注释模板使用

    步骤: Window -->Preferences-->Java-->Code Style -->Code Templates-->Comments 1.Files可对整 ...

  4. 虚拟化(一) -VMware产品介绍

    https://www.cnblogs.com/zhrngM/p/9547928.html 由于公司最近在做虚拟化监控,因此就需要把虚拟化方面的知识给学习总结一下,对于虚拟化的概念,摘自百度百科,如下 ...

  5. Net基础篇_学习笔记_第九天_数组_三个练习

    练习一: using System; using System.Collections.Generic; using System.Linq; using System.Text; using Sys ...

  6. Winforn中导入Excel并显示然后获取多选框选中的内容

    场景 使用NPOI导入Excel并赋值给DataTable,然后显示在DataGrdView上,并且添加多选框,然后获取选中行的内容. Winform中使用NPOI实现Excel导入并赋值给DataT ...

  7. jsp学习:jsp学习阶段性总结2019.9.21

    Jsp学习 jsp语法格式: 脚本程序:<% 代码片段 %> jsp声明:<%! declaration; [ declaration; ]+ ... %> 表达式:<% ...

  8. TensorFlow2.0(1):基本数据结构—张量

    1 引言 TensorFlow2.0版本已经发布,虽然不是正式版,但预览版都发布了,正式版还会远吗?相比于1.X,2.0版的TensorFlow修改的不是一点半点,这些修改极大的弥补了1.X版本的反人 ...

  9. [VB.NET Tips]字符串连接

    在很多应用场景下我们都需要对字符串进行拼接操作. 在每一次连接字符串时,都要在堆上分配新的内存空间,每一个分配都有一定的消耗. 较长的字符串在堆中分配,对其进行连接操作需要花费很长的时间,先连接小的字 ...

  10. Java方法调用的字节码指令学习

    Java1.8环境下,我们在编写程序时会进行各种方法调用,虚拟机在执行这些调用的时候会用到不同的字节码指令,共有如下五种: invokespecial:调用私有实例方法: invokestatic:调 ...