ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

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

2021-05-09 16:00:04  阅读:201  来源: 互联网

标签:解释 17 李宏毅 模型 神经网络 ML Explainable 决策树 图片


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的分类:

1.Local Explainable

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

2.Global Explainable

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

 

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

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

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

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

 

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

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

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

 

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

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

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

 

三、Local Explainable 

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

1.基本精神:

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

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

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

 

2.实现想法:

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

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

 

3.具体做法:

1.遮挡法

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

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

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

2.梯度计算法

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

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

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

 

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

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

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

 

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

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

 

四、Global Explainable

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

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

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

 

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

 

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

 

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

训练一个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得到的图片是人可以看得懂    ???

 

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

 

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

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

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

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

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

 

2.Local interpretable Model-Agnostic explanations (lime)

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

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

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

4.解释线性模型

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

 

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

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

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

2.选取附近样本:

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

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

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

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

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

4.解释学到的模型

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

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

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

 

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

 

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

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

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

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

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

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

 

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

 

总结:

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

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

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

标签:解释,17,李宏毅,模型,神经网络,ML,Explainable,决策树,图片
来源: https://blog.csdn.net/weixin_57178683/article/details/116565122

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有