机器学习笔记11 ( Explainable ML )
Explainable ML
机器学习,不仅要能判别input是什么,并且需要给出 reason?
1、Explainable ML
1)是什么?
2)为什么?
2、Local Explanation: Explain the Decision
Questions: Why do you think this image is a cat?
3、GLOBAL EXPLANATION: EXPLAIN THE WHOLE MODEL
Question: What do you think a “cat” looks like?
4、Using a model to explain another
1、Explainable ML
1)是什么?
EXPLAINABLE MACHINE LEARNING :让机器在判断input的同时,需要知道为什么这样判断。
2)为什么?
2、Local Explanation: Explain the Decision
Questions: Why do you think this image is a cat?
我们需要知道机器是通过input 的哪部分,来确定输入的是个什么东西的。
因此我们将input 分为几个部分,通过像素、点等。在语音识别里可能是个字等。
但是我们如何知道,机器是通过哪部分来判别的呢?
方法一:通过一块灰色方块遮挡住图片的部分,如果挡在一个地方使得机器不能正确识别,说明这个地方就很重要
如下图,蓝色的区域,表示如果将灰色方块放在这个地方,识别成功的概率就很低,说明这地方很重要。
方法二:
在input 向量的某个地方加上一部分,则得到的 yk(被辨识出来的机率) 也会产生变化,并求output 与 input 的变化比/偏微分,如果某个地方很重要,则在这个地方的微分也就越大。
如下图黑色中间亮的区域,表示微分值比较大,也就是比较重要。
此方法的限制
对于我们人类而言,大象的鼻子足够长我们就可以认为这是一只大象,就算再长也不会影响我们的判断了;但是对于机器,在长到一定程度时,求微分就会得到0,也就是机器会觉得,鼻子长度和input 是不是大象没有关系。显然不太对。
3、GLOBAL EXPLANATION: EXPLAIN THE WHOLE MODEL
Question: What do you think a “cat” looks like?
1)我们想要知道,机器眼中的某个东西应该是什么样子?
在以往的操作中,都是给一个input ,机器判断input 是个什么东西,并给出是这个东西的概率,比如数字8,但是我们现在反过来做,我们想要知道机器眼中的数字8是什么样子,我们就把input 判断为8 的概率 yi拿出来,我们要寻找一个input,使得能让机器把 input 判别为 8 的东西的概率yi 最大。此时的input 也就是x star 就是机器眼中的 8 的什么样子。
但是呢,前面攻击和防御的课里我们说过,一段浑浊的干扰,就能让机器把他判别为任何我们想要的东西,但是我们想要知道机器眼中的东西是什么样子,就要尽可能使得这个东西干净(除了这个东西没有别的东西)。比如一块白板上只有一个数字 8 其余的地方什么都没有。
因此修改 function,在后面加上R(X),表示的含义是,内容尽可能地少,一块白板,没有东西的的地方也就是0,只有有数字的地方是黑色的,因此也就有值。
2)让机器自己画一个我们想要的东西
首先,我们需要train一个model G,它可以给一个 input ,然后output 一个 image。但是这个image 我们无法控制。
在上面,我们会给一个要求的东西,然后会找到一张图片使得机器认为这个图片就是我们要求的东西,现在我们在前面再加一步,给一个向量,让G产生一张image,然后把这个image丢进分类器中,让他会觉得这个图片是我们想要的东西的概率最大。 因此我们就会得到一个向量 使得 这个东西是我们想要的东西。然后把这个向量丢进G,产生的图片也就是我们想要的图片。
4、Using a model to explain another
1)、解释
如下图,一个为止的 nerual network,也是就是black box,我们想要解释这个未知的东西。
首先,寻找一组向量作为input,可以得到一组output。
其次,建立另一个model,比如linear model,也用同样的input,并对此model进行训练,使得output与黑盒子的output 尽可能地相同。
然后,我们就可以用我们训练好的已知的model 来解释black box。
当然这样存在一个弊端,一个nerual network 并不是一个linear model 能解释得。但是呢?如果只是解释部分位置,也就够用了,具体看下面的LIME。
2、LIME
Local Interpretable ModelAgnostic Explanations (LIME)局部可解释模型不可知论解释
步骤如下图所示。
1. 寻找想要解释的地方。
2. 在想要解释的点周围寻找更多样本。
3. 用linear model 做拟合
4. 解释这个linear model
但是在寻找样本的时候,需要控制好间距。否则就会有如下的情况。很明显 x 和 y 应该不是线性关系,但是选择不当就会让人以为关系是线性的。
3)在图像上的应用
首先,将图像分为好几个部分。
其次,选择我们想要解释的部分。并在这部分周围选择一部分,组成一个大像素点。
然后,将这部分丢进black box中,得到识别成功的概率。
接着,将上面的 input 丢进一个linear model中,但是呢再丢进去之前需要将input做一下处理,0表示像素被删除的部分,1表示留下的部分。
最后,train 这个 model,得到像素点的 weight。
如果某个像素点(x)前的weight > 0 说明这个点对于结果的识别很重要。
如果某个像素点(x)前的weight越接近0说明这个点对于结果的识别越不重要。
如果某个像素点(x)前的weight < 0 说明这个点对于结果的识别起反作用。
上面的例子呢,我们是用linear model 来解释一个 neural network,我们还可以用其他的东西来解释。比如Decision Tree 。
原则上只要Decision tree设置的足够深,可以表示一切neural network,但是这样也就更加麻烦了。
下面 𝜃 为neural network的参数,T𝜃为 Decision tree的某些参数,建立一个function O(T𝜃)表示Decision tree的复杂程度。