系列文章目录
前言
前边学习了一部分机器学的例子和相关基础知识,了解到机器学习实际上就是去寻找适合的函数,但是实际上到底所谓的适合的函数究竟是如何得来的,这一节我们重点介绍机器学习的可解释性
一、解释机器学习
对于训练好的模型,我们输入猫的图片它会告诉我们这是猫,我们输入狗的模型,它会告诉我们这是狗,但是它又是怎么判断图片显示的究竟是什么呢?
1.控制变量法
对于一张图片,它会有很多的component(成分),我们可以一个一个的去更改或者去除这些成分,如果当更改某一个成分时发现模型的检测结果发生较大变化,那么这个成分就是模型判断图片分类的根本因素
例如,我们可以在图片的某个位置上添加一个方块来掩盖原来的图像,按照某种规律移动方块,根据模型检测结果,我们可以确定模型判断图片类别的决定因素是什么。
注:红色位置代表对于模型判断影响不大,蓝色区域代表对于模型判断影响较大
2.梯度计算法
![](https://i-blog.csdnimg.cn/blog_migrate/c5c7ad0be245b2551c05ab047ca537b8.png)
我们可以微小的更改xn的大小然后看更改哪一个xn时yk的变化较大,为了更方便的计算x对于yk的影响,我们可以通过梯度来计算,图片中越亮的位置代表改点的梯度越大,即对于模型的的分类结果影响更大
对于这种方法这里有几个具体的例子
但是这里面还存在一个问题——梯度饱和
鼻子的长度和模型判断图片是大象的概率关系很大,但是我们计算梯度的时候会发现,当大象的鼻子长度大于某个值的时候,模型判断是大象的几率不再增大,这也就是梯度饱和,梯度的变化率由大变小渐渐趋近于0
3.梯度计算法具体例子
![](https://i-blog.csdnimg.cn/blog_migrate/9dc550ba5c97881da6d74218a0de183b.png)
![](https://i-blog.csdnimg.cn/blog_migrate/6473be77e257765d2f67f1e0658a0937.png)
又例如:
前边我们提到过通过梯度上升的方法,我们可以寻找一个x使得yi最大,现在我们还可以通过生成器寻找这样的x,我们可以将一个低维向量输入生成器,由生成器生成一个x,再将x输入到分类模型中,这有一些类似于生成对抗网络
4.用可解释的模型解释复杂的模型——LIME
LIME的方法就是用一个可解释的模型去解释一个目前不可解释的模型,例如我们进行图片识别,我们想要知道进行图片识别的模型C是怎么识别出图片的,C通过图片的那一部分判定图片是树蛙。
![](https://i-blog.csdnimg.cn/blog_migrate/ea13131c76f8c610100d0251c619340b.png)
![](https://i-blog.csdnimg.cn/blog_migrate/21de75b8a19ed3151a72d827d68c2b6b.png)
这里是LIME的一些相关知识
https://blog.csdn.net/happytofly/article/details/80122605
总结
将前边提到的机器学习的解释问题从整体上简要的叙述了一下