Explainable machine learning
introduce
在分类问题中,我们输入一张猫的图片,machine会告诉我们这是”猫“,但是为什么?
问题1:为什么machine会认为这个是猫呢?
问题2:machine眼中的猫是什么样子的呢?
或者是machine在日常生活中的应用,很多时候我们需要一个解释:
或者是通过machine的解释提升我们的model:
那需要解释的到底是什么,是告诉我们machine是如何工作的吗? 并不是。
我们对于可解释性和性能的比较,哪一个是我们需要的呢?
有一些本身就可以解释的model,但是效果却并不好,因为可以解释,所以我们就选择他们吗?
那有没有即可解释又很强大的model呢?决策树
但是当事实上,真正去解决问题时,一颗决策树是不够的,通常都是一片森林,这个时候还能解释吗?
所以,我们需要可解释性的ML
Local Explainable
局部可解释性:去解释给出的结果,比如说为什么这个是”猫“
基本的思想:
让machine告诉我们哪些部分是对最后的结果是重要的
方法一——灰色方块遮挡去看最后结果:
方法二——saliency map:告诉我们哪些component是重要的
通过改变每一个部分组成的值,来看最后结果的变化
但是这种问题的局限性在于——梯度饱和问题
并且现在有很多的Attach Interpretation,给图片加上一些noise让最后machine的结果发生巨大的变化
global Explainable
全局解释:让machine告诉我们它心中的猫是什么样子
方法1——activation maximization
可视化每一个神经元的输入偏好:
通常会像图一那样出现很多白点,但是我们知道手写数字,只需要少数的地方有墨水就可以,所以我们需要去加一个R(x),这个函数是可以自己根据需要去调整的。
别人的一些好的结果,让machine画出他们认为的样子:
方法二
训练一个生成器,去生成我们想要的结果:
一些好的结果:
利用一个可解释model去解释不可解释的model
有一些模型是很容易去解释的,我们可以用这些模型去解释那些不可解释的model
Linear Model
我们训练两个model最后的输出的结果越近越好:
但是linear model不能模拟整个NN,却可以去模拟局部的局域,利用LIME的方法:
这个步骤中的nearby选择也是很重要的:
用LIME对图像举例:
决策数
可解释的model,除了linear model 还有决策树,我们并不希望这棵树太大,希望深度是有限制的
NN并不容易被决策树表示,所以我们需要训练容易被决策树解释的NN: