李宏毅机器学习17—Explainable ML(第四周)

Explainable machine learning 可解释的机器学习

摘要:

这节课学习可解释的机器学习,机器学习之所以需要解释,主要是为了使用者的需求,而不是为了完全理解model是如何工作的。

首先将Explainable machine learning分成两类:Local Explainable和Global Explainable。

Local Explainable可以通过遮挡法和梯度计算,画显著图的方法实现。

Global Explainable是通过cnn那节课讲的机器眼中的数字样子进行分析。

之后学习了用线性模型局部模拟,去解释另一个模型的做法,运用lime,以及lime的实际操作

最后学习了在保证决策树模型尽可能简单的前提下,让决策树模型去解释另一个模型的设计思路。

 

目录

一、Explainable machine learning的分类:

二、先来说说为什么需要Explainable ML

三、Local Explainable 

1.基本精神:

2.实现想法:

3.具体做法:

4.这种方法会出现问题:

5.使用Explainable技术时要注意有被攻击的风险

四、Global Explainable

五、利用图像生成器进行正则化(通过GAN,VAE)

六、使用线性模型去解释另一个模型

1.用一个可解释model去模仿另一个不可解释的model     

2.Local interpretable Model-Agnostic explanations (lime)

3.lime对于图像的实际应用

七、使用决策树去解释另一个模型

总结:


 

一、Explainable machine learning的分类:

李宏毅机器学习17—Explainable ML(第四周)

1.Local Explainable

计算机解释为什么觉得这张图片是一只猫

2.Global Explainable

解释在计算机眼中猫是什么样子的

 

二、先来说说为什么需要Explainable ML

李宏毅机器学习17—Explainable ML(第四周)

1.需要知道ML判别依据。

2.只有知道ML的结果为什么错了,才能把模型修改好,所以需要ml具有解释的功能。

3.可解释的ML并不等于完全理解ML是如何工作的,实际上,完全理解ML是如何工作是没必要的。可解释的ML的目的是为了满足使用者的需求。

 

可解释模型与功能强大的模型之间的对比

李宏毅机器学习17—Explainable ML(第四周)

线性模型是很容易解释的,weight就代表不同特征的重要程度,但是线性模型的功能并不够强大。

DNN是很难去解释的,但是它的功能远胜于线性模型。虽然DNN很难解释,但是我们还是需要去解释它。

 

功能强大又可以解释的模型:decision tree   决策树

决策树关于生物分类的一个例子

李宏毅机器学习17—Explainable ML(第四周)

其实复杂的决策树也是很难被解释的,当多个决策树组成一片森林时,这种情况就更复杂了。

李宏毅机器学习17—Explainable ML(第四周)

 

三、Local Explainable 

(为什么认为看到的图片是一只猫)

1.基本精神:

对于一个x,由N个元素组成,我们想要知道,这N个元素中哪些对于识别图片起到关键作用。

对于图像来说,一个元素就是像素或者图像碎片

对于文章来说,一个元素就是单词

 

2.实现想法:

删除或者修改其中元素的值,观察结果的变化。

如果变化非常大,说明这个元素对识别图片起到重要作用。

李宏毅机器学习17—Explainable ML(第四周)

 

3.具体做法:

1.遮挡法

李宏毅机器学习17—Explainable ML(第四周)

用灰色方块对图片中的每个部分依次进行遮挡,观察对识别结果的影响

蓝色区域说明此处的图像对图片识别起到重要作用

需要注意的是,要选取适当大小的方块,才能得到比较好的效果

2.梯度计算法

李宏毅机器学习17—Explainable ML(第四周)

Yk是图片输出概率最大的种类。对输入Xn+△X,观察输出Yk的变化情况。

如果|△Y/△X|很大,说明Xn的变化对结果的影响很大。通过计算Xn对Yk偏微分的绝对值,可以表示|△Y/△X|的大小。

通过计算偏微分可以得到saliency map(显著图),图中点的亮度表示微分的大小

 

4.这种方法会出现问题:

李宏毅机器学习17—Explainable ML(第四周)

这样做会出现梯度饱和的情况。

当判断一张图片是不是大象。可能图片中鼻子长度达到某一个值之后,输出是大象的概率已经很高而且不怎么改变了,这时输出对鼻子长度求偏导数结果趋近于0,那么就可能认为:鼻子长度对于图片是不是大象的判断是没有很大影响的。

 

5.使用Explainable技术时要注意有被攻击的风险

李宏毅机器学习17—Explainable ML(第四周)

使用两种方法绘制saliency map时,本来结果表现是很好的,但是加了一些noise后,虽然人用肉眼观察没有区别,但是对于计算机来说,识别图片的特征图像已经发生了变化。

 

四、Global Explainable

(解释在计算机眼中猫是什么样子的)

这里举例讲的是cnn中对数字图像的分类。

李宏毅机器学习17—Explainable ML(第四周)

Yi是一个数字,求x=argmax yi,得到的x就是计算机眼中yi应该的样子。但是这样的图片看起来和数字完全没关系,所以对上面的式子进行一些处理。

 

李宏毅机器学习17—Explainable ML(第四周)

R(x)表示让图片中的亮点尽可能的聚集在一起,这样得到的图片才会更像一个数字

 

李宏毅机器学习17—Explainable ML(第四周)

对于复杂的图片,想要得到比较好的结果需要多个正则项,对每个正则项还需要调整不同的weight。

 

五、利用图像生成器进行正则化(通过GAN,VAE)

李宏毅机器学习17—Explainable ML(第四周)

训练一个image generator,其输入一个低维度的向量,输出一张图片x。  X=G(z)

如何用图像生成器来限制机器画出来的图片呢?

将x进行图片分类可以得到y。在之前的方法中,想要得到机器眼中y的样子,就是计算X*=argmax Yi,现在增加了图像生成器,就可以计算Z*=argmax Yi.

(找到一个z,这个z代表的图片通过分类后,使yi的概率最大)

将上面的图片生成器和分类器串在一起,就变成一个很深的神经网络。输入就是z,输出就是y。

将找到的z*再带入到image generator,得到的图片就是我们想求的。

因为image generator得到的图片是人可以看得懂    ???

 

李宏毅机器学习17—Explainable ML(第四周)

这是通过图片生成器进行正则化,得到机器所认为的图片的样子

 

六、使用线性模型去解释另一个模型

1.用一个可解释model去模仿另一个不可解释的model     

李宏毅机器学习17—Explainable ML(第四周)

对于一个不可解释的模型,输入为x1,x2,xn,输出为y1,y2,yn

让蓝色的模型去模仿这个黑色的模型,使它们输入相同时,输出尽可能的接近。

蓝色模型是线性模型时,是没办法去模拟整个神经网络,但是可以模拟其中的一部分。

 

2.Local interpretable Model-Agnostic explanations (lime)

李宏毅机器学习17—Explainable ML(第四周)

1.选择一个想要解释的点x

2.选取x附近的点 (选取的点不同,得到的结果也不一样)

3.用线性模型对选取的点进行拟合

4.解释线性模型

这样就可以对神经网络中的一部分进行解释。

 

3.lime对于图像的实际应用

李宏毅机器学习17—Explainable ML(第四周)

解释这张图片为什么会被认为是一只树蛙

1.选择一个想要解释的数据点

2.选取附近样本:

将图像分割成一个个小块,作为单位进行分析

随机删除一些小块,然后输入到黑盒当中,得到识别出图片是树蛙的可能性。

李宏毅机器学习17—Explainable ML(第四周)

3用一个线性模型去拟合这个结果

先将图片特征提取成为m维向量,再输入到线性模型中进行拟合

M是指图片分割的块数,根据实际情况进行调整。

李宏毅机器学习17—Explainable ML(第四周)

4.解释学到的模型

如果Wm≈0,意味着碎片Xm对图片是不是树蛙的影响不太重要。

如果Wm为正数,意味着看到碎片Xm对图片是树蛙有积极的影响。

如果Wm为负数,意味着看到碎片Xm反而会认为图片不是树蛙。

 

通过LIME,可以知道哪些图片的碎片对于识别是重要的,哪些是不重要的

 

七、使用决策树去解释另一个模型

李宏毅机器学习17—Explainable ML(第四周)

要求:希望决策树不要太复杂

O(Tθ):表示Tθ的复杂程度。例如:Tθ的平均深度

李宏毅机器学习17—Explainable ML(第四周)

想法:训练一个神经网络,这个网络是容易被决策树解释的

对原本的loss函数加上一个正则项  λO(Tθ),也就是在训练的时候就考虑了让决策树尽可能的小。问题来了,这个公式是没办法之间用梯度下降法求微分。

一种解决方法是设计另一个神经网络,输入是神经网络z的参数,输出是z转成决策树之后的平均深度。将这个神经网络用在O(Tθ),这样整个式子就可以用梯度下降法。

 

训练一个神经网络,将一个神经网络转换成O(Tθ),进而解决O(Tθ)不能用梯度下降的方法。

 

总结:

这节课主要围绕机器学习的可解释性展开,可解释性的角度有很多,主要是为了满足使用者的具体需求去进行研究。

对于用可解释的模型去模拟解释不可解释的模型,也有很多做法。

最后对决策树函数无法直接进行梯度下降计算,采用训练神经网络去计算神经网络转换成决策树的平均深度,这个想法还是很神奇的,让我体会到神经网络运用是非常灵活的。

上一篇:【Math for ML】线性代数之——向量空间


下一篇:跑了但是最后没添加的ML领域的FS算法(无监督)