李宏毅2020ML——P24-31可解释性ML

Explainable machine learning

introduce

在分类问题中,我们输入一张猫的图片,machine会告诉我们这是”猫“,但是为什么?

问题1:为什么machine会认为这个是猫呢?
问题2:machine眼中的猫是什么样子的呢?
李宏毅2020ML——P24-31可解释性ML
或者是machine在日常生活中的应用,很多时候我们需要一个解释:
李宏毅2020ML——P24-31可解释性ML
或者是通过machine的解释提升我们的model:
李宏毅2020ML——P24-31可解释性ML
那需要解释的到底是什么,是告诉我们machine是如何工作的吗? 并不是。
李宏毅2020ML——P24-31可解释性ML
我们对于可解释性和性能的比较,哪一个是我们需要的呢?
有一些本身就可以解释的model,但是效果却并不好,因为可以解释,所以我们就选择他们吗?
李宏毅2020ML——P24-31可解释性ML
那有没有即可解释又很强大的model呢?决策树
但是当事实上,真正去解决问题时,一颗决策树是不够的,通常都是一片森林,这个时候还能解释吗?
李宏毅2020ML——P24-31可解释性ML
李宏毅2020ML——P24-31可解释性ML
所以,我们需要可解释性的ML

Local Explainable

局部可解释性:去解释给出的结果,比如说为什么这个是”猫“

基本的思想:

让machine告诉我们哪些部分是对最后的结果是重要的
李宏毅2020ML——P24-31可解释性ML
方法一——灰色方块遮挡去看最后结果:
李宏毅2020ML——P24-31可解释性ML
方法二——saliency map:告诉我们哪些component是重要的
通过改变每一个部分组成的值,来看最后结果的变化
李宏毅2020ML——P24-31可解释性ML
但是这种问题的局限性在于——梯度饱和问题
李宏毅2020ML——P24-31可解释性ML
并且现在有很多的Attach Interpretation,给图片加上一些noise让最后machine的结果发生巨大的变化
李宏毅2020ML——P24-31可解释性ML

global Explainable

全局解释:让machine告诉我们它心中的猫是什么样子

方法1——activation maximization

可视化每一个神经元的输入偏好:
李宏毅2020ML——P24-31可解释性ML
通常会像图一那样出现很多白点,但是我们知道手写数字,只需要少数的地方有墨水就可以,所以我们需要去加一个R(x),这个函数是可以自己根据需要去调整的。
李宏毅2020ML——P24-31可解释性ML
别人的一些好的结果,让machine画出他们认为的样子:
李宏毅2020ML——P24-31可解释性ML

方法二

训练一个生成器,去生成我们想要的结果:
李宏毅2020ML——P24-31可解释性ML
一些好的结果:
李宏毅2020ML——P24-31可解释性ML

利用一个可解释model去解释不可解释的model

有一些模型是很容易去解释的,我们可以用这些模型去解释那些不可解释的model

Linear Model

我们训练两个model最后的输出的结果越近越好:
李宏毅2020ML——P24-31可解释性ML
但是linear model不能模拟整个NN,却可以去模拟局部的局域,利用LIME的方法:
李宏毅2020ML——P24-31可解释性ML
这个步骤中的nearby选择也是很重要的:
李宏毅2020ML——P24-31可解释性ML
用LIME对图像举例:
李宏毅2020ML——P24-31可解释性ML
李宏毅2020ML——P24-31可解释性ML
李宏毅2020ML——P24-31可解释性ML

决策数

可解释的model,除了linear model 还有决策树,我们并不希望这棵树太大,希望深度是有限制的
李宏毅2020ML——P24-31可解释性ML
NN并不容易被决策树表示,所以我们需要训练容易被决策树解释的NN:
李宏毅2020ML——P24-31可解释性ML

上一篇:容器技术|Docker三剑客之docker-machine


下一篇:C#状态机Stateless