机器学习笔记:可解释机器学习

Posted UQI-LIUWJ

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了机器学习笔记:可解释机器学习相关的知识,希望对你有一定的参考价值。

来自 李宏毅2019-Explainable ML_哔哩哔哩_bilibili

0 前言

深度学习可以做的事情是,比如我们给模型一张猫的照片,模型可以预测:”这是一只猫“

我们现在想知道的是:模型为什么会认为这是一只猫呢?

 1 local explanation & global explanation

 1.1 local explanation

(why do you think this is a cat?)

        比如我们想要知道图片每一个部分对于最终分类决策的重要性,我们可以丢弃掉某一个部分/修改这一个部分的值,观察分类结果的变化程度

        如果变化多的话,那么就说明去掉的这一部分对于决策很重要

 

        在实际的例子中,通过用一个灰色的方块遮掉一部分的图像,判断遮掉之后的图像预测ground-truth label的概率(红色表示概率大,蓝色表示概率小)

        可以看到不同的区域对于预测 label的影响是不一样的,以左边的小狗为例,把头遮掉了,预测的概率就比遮掉别的区域小多了。

Visualizing and understanding convolutional networks.ECCV 2014

        另一种方法是,我修改某一个部分图像的内容,去看修改之后预测概率的变化,变化越大的表示越重要

         以上图为例,我们调整某一个部分的x,看相应的label概率y的变化量

        这两个变化量的比值就是yk对于特定点的偏导,用saliency map来可视化,越”亮“的点表示影响越大

1.2 global explanation

(what do you think a ”cat“ looks like)

以mnist 为例,我们希望得到不同label对应的图像的模样

 理论上我们可以通过argmax(yi)的方式找到标签yi对应的那些image,但是在实操中,结果可能是像上图那样的”雪花图“

于是我们需要加一些正则项,来约束图像的”面目“

一种方法就是添加图下的正则项,使得image长得”像“一个数字

针对不同的dataset,不同的application,我们需要不同的正则项

 1.2.1 从generator的角度想global explanation

        在上一小节中,不难发现,我们需要人为地设定正则项。但在很多问题中,这个是不太好设计的。于是就有人想到要用生成器来生成image

        

        我们有一个image generator,他的作用是输入一个低维的向量,通过generator(GAN或者VAE这种)生成一张图片

        用generator的角度来看global explanation,我们可以将image generator输出的graph再送入一个image classifier(和上一小节的classifier结构就一样了)

        此时我们依旧是希望找到argmax yi,不过由于我们事先接了一个image generator,所以此时所有的image x都是合理的graph,不会出现上一小节那样的非数字graph的不合理的”雪花图“,故而不用正则项来约束生成的graph长啥样。

2 使用另外的模型来解释某一黑盒模型

        核心思想是,我们希望用一个可解释的模型(比如下图的线性模型)来模拟一个不可解释的模型    

        从某种意义上和,和知识蒸馏的思路是一样的

        但是问题在于,一般的可解释性模型都是比较简单的模型,可能比较复杂的神经网络它模拟不了——>所以我们可能模拟的只是一小块区域附近的神经网络

        2.1 LIME local interpretable model-agnostic explanations

用红色的线性模型,模拟一部分蓝色的黑盒模型

注意这里的”nearby“,对nearby定义的不同,会导致不同的结果(比如上图和下图)

 

 2.1.1 决策树 & LIME

理论上讲,如果决策树足够深的话,他一定可以模拟任何一个黑盒模型。但是足够深的决策树就没有很好的解释性了

于是我们就需要对决策树进行一定的约束:

 

 

以上是关于机器学习笔记:可解释机器学习的主要内容,如果未能解决你的问题,请参考以下文章

学习打卡02可解释机器学习笔记之ZFNet

学习打卡07 可解释机器学习笔记之Shape+Lime代码实战

学习打卡07 可解释机器学习笔记之Shape+Lime代码实战

学习打卡07 可解释机器学习笔记之Shape+Lime代码实战

学习打卡07 可解释机器学习笔记之Shape+Lime代码实战

学习打卡04可解释机器学习笔记之Grad-CAM