目录
Limitation of Gradient based Approaches
Activation Minimization (review)
Using a model to explain another
Local Interpretable Model-Agnostic Explanations (LIME)
概述
本节首先提出了一个问题,机器为什么“能”知道?接着从两个角度作出了思考:比如对于一个分类问题,可以考虑:Local Explanation: Why do you think this image is a cat?,还有Global Explanation:What do you think a "cat" looks like?
此外,解释性机器学习可解释机器学习也有现实意义,比如“证据何在?”,“凭什么给你贷款?”;毕竟,模型可能正确率高,但是什么都没学到;此外,如果你知道哪里出了什么问题,我们也多了一些参考。而对于同一个模型而言,Interpretable与Powerful是存在博弈的。深度模型可能很强大,但也因此难以解释。此外,决策树可能是一个既强大由可解释的模型;但是有时,问题复杂了,也难以解释。因此,如何限制决策树深度并且起到模拟作用的难题值得讨论。
Introduction
要求机器不仅要告诉我们结果是cat,还要告诉我们为什么
Why we need Explainable ML?
我们不仅需要机器结果的精确度,还需要进行模型诊断,看机器学习得怎么样;有的任务精确度很高,但实际上机器什么都没学到
有模型诊断后,我们就可以根据模型诊断的结果再来调整我们的模型。
Lee’s Point of View
- 这并不等于完全了解一个模型,完全了解一个模型并不是必要的
- Explainable ML的目标就是让人高兴,就是为了人存在的,让人觉得爽
- 针对不同的人,提供给不同的解释
Interpretable v.s. Powerful
模型的可解释性和模型的能力之间有矛盾。
一些模型,比如线性模型,可解释性很好,但效果不佳。而深度网络,虽然能力一流,但缺乏可解释性。
我们的目标不是直接选择可解释性好的模型,而是让能力强的模型具有更好的解释性。
同时具有强大能力和可解释性的,是决策树。
但决策树结构如果很复杂,那么可解释性也会很差。(森林)
Local Explanation
Basic Idea
对于输入的x,我们将其分成各个components,每个component由一个像素,或者一小块组成,
我们现在的目标是知道每个component对making the decision的重要性有多少,那么我们可以通过remove或者modify其中一个component的值,看此时的decision会有什么变化。
例如:找一个图片,然后用一个灰色的方块,这个方块可以在图片中任意一个位置。当灰色图片位于某个位置导致机器判断改变,那么我们就把这个位置的方块区域看为重要的component。
上图中,蓝色区域就是重要区域,把这个区域遮住就会无法判断这是一只国美狗。
此外,还有一种方法:如下图,在某一个变量上加一个小小的扰动,看y值的变化。
如上,根据每个值对目标值得偏微分,我们可以画出一个Saliency Map,可以看出,机器真的看出了什么是动物。
Limitation of Gradient based Approaches
求导的局限性:比如鼻子长到一定程度,就可以确定这是一只大象,但是导数却是0,得出鼻子不重要这样的结论,明显是不对的。
还有就是说,鼻子的长度超过某个阈值之后,再变长对于判断大象这个事情没有啥帮助了。这个明显是不合理的。
Attack Interpretation
基于梯度与Saliency Map,可以进行些攻击行为,使用时要小心。比如在图片上进行一些小小的噪声扰动,导致解释的结果就变了呢!
Global Explanation
Activation Minimization (review)
之前我们的目标是找到一个image,使得输出的y达到最大值;现在我们的目标不仅是找到x使输出y达到最大值,还需要把image变得更像是一个digit,不像左边那个图,
几乎全部的像素点都是白色,右边的图只有和输出的digit相关的pixel才是白色这里我们通过加入了一个新的限制R ( x ) R(x)R(x)来实现,可以表示图像和digit的相似度。
这样的话就有更多的超参数需要调了。。。。
Constraint from Generator
上面提到要对图片做一个限制,比较像一个图片,这个事情可以用Generator来做,大概步骤如下:
通过一个低维向量进行输入,经过GAN或者VAE等生成模型,得到图片。然后再接入上面的模型,image x要使得输出越像y越好,
现在加入了生成模型后,就是要找z使得输出越像y越好,最好的那个z记为z*:再输入Generator,得出x*,产生一个好的Image。
用这个方法得到的一些结果:
Using a model to explain another
现在我们使用一个interpretable model来模仿另外一个uninterpretable model;下图中的Black Box为uninterpretable model,比如Neural Network,
蓝色方框是一个interpretable model,比如Linear model;现在我们的目标是使用相同的输入,使linear model和Neural Network有相近的输出。
实际上并不能使用linear model来模拟整个neural network,但可以用来模拟其中一个local region。
Local Interpretable Model-Agnostic Explanations (LIME)
下图中input为x,output为y,都是一维的,表示Black Box中x和y的关系,由于我们并不能用linear model来模拟整个neural network,但可以用来模拟其中一个local region
- 首先给出要explain的point,代入black box里面
- 在第三个蓝色point(我们想要模拟的区域)周围sample附近的point,nearby的区域不同,结果也会不同
- 使用linear model来模拟neural network在这个区域的行为
- 得知了该区域的linear model之后,我们就可以知道在该区域x和y的关系,即x越大,y越小,也就interpret了原来的neural network在这部分区域的行为
Decision Tree
如果我们用不限制深度的decision tree,那么我们就可以使用decision tree来模拟black box(neural network),使两者的输出相近,但decision tree的深度不可能是没有限制的。
我们设neural network的参数为 θ,decision tree的参数为Tθ,使用O(Tθ)来表示Tθ的复杂度,复杂度可以用Tθ的深度来表示,也可以用neural的个数来表示;现在我们的目标不仅是使两者输出相近,
还需要使O(Tθ)的值最小化。
使O(Tθ)的值最小化的方法如下图所示:
但是值得注意的是这个正则项没法做偏导,所以没有办法做GD。
解决办法,在某一篇paper中,其中心思想是用一个随机初始化的结构简单的NN,训练后可以模拟出决策树的参数,然后用NN替换上面的正则项,NN是可以偏导的,然后就可以GD了。
总结和展望
本节学习了Explainable ML,即我们不仅要会用机器学习,还要让机器学习具有可解释性。我们不仅需要机器结果的精确度,还需要进行模型诊断,看机器学习得怎么样;有的任务精确度很高,但实际上机器什么都没学到有模型诊断后,我们就可以根据模型诊断的结果再来调整我们的模型。机器为什么“能”知道?可以从两个方面考虑这个问题,即局部解释和全局解释。
局部解释中有效的方法如遮挡法,即可以通过修改或者删除这一部分来看看结果有多大的影响,如果影响很大,则这部分很重要。还可以在某一个变量上加一个小小的扰动,看y值的变化,但是基于梯度与Saliency Map,可以进行些攻击行为,我们使用的使用需要小心。
全局解释中有效方法如使用一个可解释的模型解释另一个uninterpretable model、LIME以及决策树这种可以interpretable,也是比较powerful的方法。