作者:18届 cyl

日期:2021-08-08

论文:《“Why Should I Trust You?” Explaining the Predictions of Any Classififier》

一、简单介绍

本篇文章主要思路是在一个复杂的模型中的局部提出一个简单地可解释的模型(Explainer),以提升整个复杂模型的可解释性。

二、问题陈述

1.尽管机器学习模型被广泛采用,但对大多数用户来说这些模型大多是黑匣子,只知道输入和输出,不知道模型到底做了什么,也就不知道模型的预测结果和模型本身值不值得信任。
2.信任程度(trust)决定了人是否会针对预测结果采取行动(trusting a prediction);决定了人是否采用新的可信任的模型(trusting a model)。
3.为什么”trust“会成为一个问题呢?首先是若我们的模型被用于解决重要的决策类问题,如医学诊断、恐怖行动检测时,预测失败的结果往往是我们不能承受的。
4.所以本文致力于提出一种模型无关的解释模型,用于解释“黑盒子”的输出。

三、How to do?

一、为什么我们需要解释器?
a.“解释”这一行为有助于提高用户对预测结果的接受程度。

上图表示模型对一个人是否有“Flu”的预测。上图的最左边是一个医学诊断模型,它通过输入某个病人的一些基本症状得出"Flu"的诊断结果,通过解释器的处理,可以得到放大镜里面的是我们的解释器对于模型诊断结果的背后的解释,绿色代表促进这个结果的特征,红色代表反对这个结果的特征。我们将最后的选择权交还到医生的手里,医生可以通过这些”解释“来判断是否采纳机器学习的预测结果。

b.对机器学习的从业人员来说,通常要从两个或多个模型之间选择一个最好的模型。若仅依赖于模型在验证集上的表现(accuracy)来评估一个模型的可信任程度是不可靠的,因为验证集数据往往无法看作自然场景下(in the wild)的数据,更何况从业者经常高估他们模型的准确性。

上图举出了一个文章分类的例子,判定该文章是描述“有神论”还是“无神论”。可以知道两次的分类都是正确的。但仔细观察可以发现Algorithm
2所判断的文本是无神论还是有神论的主要依据是 “Post”, “Host”,
这个词汇与无神论本身并没有太多的联系,虽然它的Accuracy很高,但它依然不可信的。因此我们可以认为这种”解释“的行为给了我们选择/不选择一个模型的理由。

二、LIME方法介绍
LIME的全称为:Local Interpretable Model-Agnostic Explanation,中文字面上的意思就是与模型无关的局部可解释性的解释。
1.基本原理

红色和蓝色区域表示一个复杂的分类模型(黑盒),图中加粗的红色十字表示我们感兴趣的需要解释的样本x,显然,我们很难从全局用一个可解释的模型(例如线性模型)去逼近拟合它。但是,当我们把关注点从全局放到局部时,可以看到在某些局部是可以用线性模型去拟合的。具体来说,我们从加粗的红色十字样本x周围采样,将采样出的样本z反代回原分类模型并得到结果(红十字和蓝色点)。虚线表示我们通过这些采样样本学到的局部可解释模型,在这个例子中就是一个简单的线性分类器。它表示的含义是,在这个区域内,虚线左边的point可以被分类为粉色十字架、虚线右边的点可以被分类为蓝色圆点。

2.Sparse Linear Explanations
本文为了简单,LIME算法都用线性回归算法。
目标函数:

表示的是采样点z在原来的模型上(即复杂模型上)的输出结果。
定义了实例z和x的接近程度(文本的话就是余弦相似性,图像的话就是L2范数距离)。

可以理解为先选定了一个感兴趣的instance x,然后利用一个权重为的采样方式在样本x周围进行采样。z表示的是经过采样后的取样点。

z′是z的可解释形式(interpretable version)(可以理解为只有部分特征的实例)。对于文本来说,interpretable version就是选出K维的bag of words;对于图像来说,interpretable version就是一组K维super-pixel组成的向量,K是人工设置的一个常数。LIME伪代码如下:

1.首先要有一个分类器f(复杂模型),给定取样的数量N
2.选定一个要解释的样本x,并给出其可解释形式x’
3.定义一个相似度计算方式,并确定解释的特征长度K
4.zi’:从x‘采样而来;将z’还原到原维度,并计算预测值f(z)以及相似度
5.收集到N次采样后的样本后,利用Lasso regression取得训练后的解释模型的权重(即K个特征的相应权重)。

4.图像分类应用
a.选定一张感兴趣的待解释图片
b.超像素分割

由于LIME不介入模型的内部,需要不断采样,这里的样本特征就是指图片中一个一个的像素。但如果LIME采样的特征空间太大的话,效率会非常低,而一张普通图片的像素少说也有上万个。若直接把每个像素视为一个特征,采样的空间过于庞大,严重影响效率;如果少采样一些,最终效果又会比较差。所以针对图像任务使用LIME时还需要一些特别的技巧,也就是考虑图像的空间相关和连续的特性。不考虑一些极小特例的情况下,图片中的物体一般都是由一个或几个连续的像素块构成,所谓像素块是指具有相似纹理、颜色、亮度等特征的相邻像素构成的有一定视觉意义的不规则像素块,我们称之为超像素。
上图的左边为原图,右边为进行了超像素分割后的图像,得到的特征是一个二进制向量。

c.进行采样

随即删除一些图像块作为采样过程,删掉的图像块标为灰色,同时对应特征值改为0表示图像块不存在,将这些采样后的图像都丢进原模型种跑一遍得到他们属于“frog”的概率值。

d.拟合解释模型 并对结果进行解释

根据采样后的图像特征及其概率值,我们可以训练得到一个线性模型如上所示。用最终求得的wm来表示对应图像块的作用情况。当wm约为0时表示第m个图像块与预测结果无关,当wm大于0时表示第m个图像块和预测结果是正相关的,当wm小于0时表示第m个图像块和预测结果是负相关的。

三、SP-LIME方法介绍
尽管对single prediction的解释可以让用户对分类器的可靠性有些理解,但想要达到对整个模型的评估和信任是不够的,于是我们提出了Submodular pick的思路(SP)来对模型整体进行解释。
SP的主要目的就是要求在Set X中选择样本和特征 B 去展示给用户。它的算法流程如下所示:

右图表示了给定了一组实例X,选取B个实例的流程。由于用户没有时间来检查大量的解释,我们使用budget
B代表人类的耐心,也就是为了理解一个模型而愿意看到的解释的数量。
(首先通过算法1得到权重矩阵,第二根据所得的权重矩阵计算特征j的特征重要性,最后用贪心算法挑选尽量少的样本覆盖尽量多的特征。)
左图举了一个5实例5个特征的例子,行代表文档实例,列代表特征也就是words。比如第一个文档可以用f1和f2去解释。我们可以看到蓝框的f2特征可以被用于解释最多的实例,因此我们可以认为f2特征重要性最高。
尽管我们希望选择包含重要特征的实例,但在向用户展示的过程中,一组解释不能多余,所以我们要挑选尽量少的样本覆盖尽量多的特征。比如,当我们已经选择了第二行的实例后,由于第三行的实例没有增加新的特征解释,第四行实例出现了一个重复特征解释,因此选择第五行实例。

四、实验(可略)
这里的实验设计分为两个部分,主要为了解决下面6个问题
第一部分-模型用户实验
1.对于问题“LIME结果是否准确”,这里直接用LR和Decision Tree两种模型来实验,限定只选择10个feature,发现LIME选择的feature相比其他方法能取得更好的效果;

image-20200820222903857
2.对于问题”解释能否让人信任“,随机去除25%的feature(这些特征在原模型的预测结果被标记为不可信任的特征),如果预测结果变了,则说明解释不可信。
3.针对问题”我们能够相信这个模型吗“,也就是用户面对两个精度差不多的模型,如何进行取舍的问题。试验中作者添加了10个人工的noisy features,如果我们计算出的importance features中出现了我们加入的噪声特征,就认为这个explanation不值得信任。

第二部分-人类实验者参与的实验
1.第一个实验针对的问题是:用户能够选择出最好的分类器吗?这里用的是文本分类来实验,通过看TopN的重要feature,来协助人工判断哪个模型更好;经过分析svm的重要特征,发现一些并无关的词语出现在Top的位置,说明这样训练出来的模型是不可靠的,这需要重新清洗样本,重新训练;

2.第二个实验是针对的问题是:那些没有先验知识的人是否根据LIME的结果改进一个分类器?通过人工不断删除不重要的feature,作者发现能提升模型效果;

3.第三个实验是针对问题:解释能否给出模型判断的关键依据?在图像分类中,作者发现模型把哈士奇predict为狼的依据是雪地,其中雪地是判别的关键依据。

四、结论

总结本文:
1.提出LIME算法,可解释任何模型的输出结果;
2.提出SP-LIME(Submodular pick-LIME)算法,以尽量少的样本覆盖尽量多的特征,以便人工观察较少的样本,即可大致判断模型是否可信;
3.通过实验验证算法的可行性与有效性。无论是专家还是非专家用户都可以做到:在模型之间做出选择,评估模型和预测是否值得信任,改进不值得信赖的模型,指出模型不值得信任的地方。
改进工作:
1.我们在文中只用到了线性模型作为解释,但我们的框架支持探索各种解释类型,如决策树。
2.领域无关和模型无关使我们能够探索该框架在各种领域和模型中的应用。我们希望研究该框架在语音、视频、医疗等领域的潜在用途。

“Why Should I Trust you ?”Explaining the Predictions of Any Classififier.-对分类预测进行解释相关推荐

  1. Paper:LIME之《Why Should I Trust You? Explaining the Predictions of Any Classifier为什么要相信你?解释任何分类器的预测》翻

    Paper:LIME之<Why Should I Trust You? Explaining the Predictions of Any Classifier为什么要相信你?解释任何分类器的预 ...

  2. #Paper Reading# Why Should I Trust You? Explaining the Predictions of Any Classifier

    论文题目: "Why Should I Trust You?" Explaining the Predictions of Any Classifier 论文地址: https:/ ...

  3. “Why Should I Trust You?”:Explaining the Predictions of Any Classifier 论文笔记

    "Why Should I Trust You?":Explaining the Predictions of Any Classifier论文笔记 KDD 2016 原文链接 M ...

  4. 神经网络的可解释性综述!

    ↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习,不错过 Datawhale干货 作者:机器学习小谈,来源:图灵人工智能 地址|https://zhuan ...

  5. 神经网络的可解释性综述

    报道:人工智能前沿讲习   作者:知乎-机器学习小谈 地址:https://zhuanlan.zhihu.com/p/368755357 本文以 A Survey on Neural Network ...

  6. 【综述专栏】神经网络的可解释性综述

    来源:知乎 作者:知乎-机器学习小谈 地址:https://zhuanlan.zhihu.com/p/368755357 本文以 A Survey on Neural Network Interpre ...

  7. 神经网络的可解释性综述【A Survey on Neural Network Interpretability】

    人工智能可解释性的背景意义 1.1 什么是可解释性 Interpretability (of a DNN) is the ability to provide explanations in unde ...

  8. Explaining complex machine learning models with LIME

    (This article was first published on Shirin's playgRound, and kindly contributed to R-bloggers) 272 ...

  9. 【读论文】A Unified Approach to Interpreting Model Predictions

    目录 1. 这篇文章主要做了什么? 2. Additive Feature Attribution Methods 加性特征归因方法 2.1 LIME 2.2 DeepLIFT 2.3 Layer-W ...

最新文章

  1. 世界被一种神秘的数学力量彻底改变了
  2. 初等数学O 集合论基础 第二节 映射与集合的势
  3. 使用Buildroot为Nxp i.mx6ul制作文件系统
  4. boost::multiprecision模块mpfr相关的测试程序
  5. vscode 最好的ui主题
  6. NSTimer 与 Run loop Modes
  7. ElasticSearch sql 插件安装
  8. 华为智能手环智能手表软件测试,一块智能手表的测试之旅,揭秘华为运动健康科学实验室...
  9. 没有bug队——加贝——Python 练习实例 7,8
  10. 信息学奥赛一本通 1084:幂的末尾 | OpenJudge NOI 小学奥数 7833
  11. python什么时候用进程什么时候用线程_Python多线程/多进程释疑:为啥、何时、怎么用?...
  12. linux 重启oracle实例_Oracle实战(二)-Oracle概述
  13. python FastDFS
  14. mysql回表慢sql_MySQL 的覆盖索引与回表
  15. flux架构浅谈:什么数据才应该放store
  16. 判断浏览器是否最小化
  17. 基于Java+SpringBoot+vue+elementui图书商城系统设计实现
  18. BIGEMAP中打开高清卫星影像谷歌地图
  19. mac linux 键盘布局,Macbook Pro 推出中文键盘布局
  20. 壮游奇迹哪个服务器稳定,壮游奇迹MU官方选哪个区好呢?

热门文章

  1. Baidu Apollo代码解析之Planning的结构与调用流程(1)
  2. python飞机大战概要设计_飞机大战--毕业论文--初稿.doc
  3. SLG游戏中大地图实现使用四叉树技术
  4. C++入门基础(万字总结)(建议收藏!!!)
  5. 深度学习训练时GPU利用率忽高忽低问题
  6. saber框架 blade-core-tool:2.5.1 maven无法正常下载
  7. 把款软件可以测试双显卡,如何看自己的电脑是不是双显卡?双显卡有什么好处?...
  8. 千亿资本角逐二手车电商,前瞻还是大泡沫?
  9. mysql 过滤微信昵称表情_微信昵称emoji表情的过滤
  10. 【数据库原理及应用】——数据查询SELECT(学习笔记)