【笔记】机器学习 - 李宏毅 -- Explainable ML 可解释性机器学习

课程笔记

前言

两种可解释性:
局部解释:为什么这种图是猫?
全局解释:猫是什么样子的?

为什么需要可解释机器学习?(打开黑盒)

一般的提升效果的方法就是一顿暴调参数,可解释性可以帮助我们更好地提升模型性能。

其实人也是个黑盒(这个观点太6了)。
可解释机器学习的目标,不需要真正知道模型如何工作,只需要给出可信服的解释,让人满意就行。
对此还可以针对不同人的接受能力给出不同层次的解释。

模型的可解释性和模型的能力之间有矛盾。
一些模型,比如线性模型,可解释性很好,但效果不佳。而深度网络,虽然能力一流,但缺乏可解释性。
我们的目标不是直接选择可解释性好的模型,而是让能力强的模型具有更好的解释性。

同时具有强大能力和可解释性的,是决策树。
但决策树结构如果很复杂,那么可解释性也会很差。(森林)

局部解释

一个研究对象可以分成很多个部分,如何判断各部分对于决策的重要性?
可以通过修改或者删除这一部分来看看结果有多大的影响,如果影响很大,则这部分很重要。

举例:

可以用saliency map来可视化,图中的白点就是偏导数的值。

更多资料:

求导的局限性:比如鼻子长到一定程度,就可以确定这是一只大象,但是导数却是0,得出鼻子不重要这样的结论,明显是不对的。

这个也可以被对抗攻击,

宝可梦和数码宝贝的例子:

分类的效果太好了,用saliency map分析后发现,关注点在图的边缘,为什么?

因为格式不一样,背景不同。。。其实程序并没有学会分类宝可梦和数码宝贝。

全局解释

之前讲过,什么样的输入可以得到最好的分类结果,可以看到机器认为的居然是下面这样的一些图。

可以通过加正则项,然后来使图像看起来更像数字。

这样的话就有更多的超参数需要调了。。。。

如果说输入先经过一个生成器,使得不管什么样的向量,都可以经生成器得到一个合理的图片,然后再对图片分类。
通过图片的类别,反推优化输入,这样会更好一些。

得到的结果不错,

用另一个模型去做解释

可以用一个解释性更好的模型去模拟另一个模型的效果。
虽然线性模型不能完全模拟神经网络,但在局部上,模拟效果还是不错的。(LIME方法)

这个方法的局限是,选取的局部粒度的大小会影响模拟的效果。

举例:

切分后,可以提取成一个向量,然后可以用线性模型拟合。通过权重的大小,判断各分块的重要性。

如果是决策树模型来模拟的话,我们希望这个树不要太大,那么可以设置一个树的复杂度参数。

不过这个复杂度参数不能微分。(paper中有一种收集很多复杂度数据,然后求解的方法)

课程地址

Explainable ML

posted @ 2020-03-03 17:39  Yanqiang  阅读(1282)  评论(0编辑  收藏  举报