- Explainable Machine Learning
- Local Explanation
- Global Explanation
- LIME
- Decision Tree
十四、Explainable Machine Learning(可解释机器学习)
机器不仅要告诉我们它知道,而且要告诉我们它为什么知道。
(一)介绍
explanation分为两大类:
(1)Local Explanation
今天已经给机器一张图片,它要告诉我们为什么它觉得这张图片里面有一只猫。
(2)Global Explanation
不是针对某一张图片来进行解释,而是要它告诉我们在它的心里这张图片长什么样子。
举例:公司用机器来协助判读履历–看的是能力还是性别?
举例:用机器来协助判断罪犯是否可以假释–根据具体事证还是肤色?
模型诊断:到底机器学到了什么?不能只看正确率。
通过模型诊断可以提供我们如何更进一步精进机器学习的方向。
一些model本身很容易被解释,对这些model而言不需要提出新的explanation的技术,比如linear model(从weight得知feature的信息),但是不是很powerful。Deep network很难被解释,但是却比linear model更加powerful,所以要想办法让deep network变得可解释的。
那有没有可以被解释并且又powerful的model?
或许decision tree(决策树)可以做到:
但是一个tree也可以是很难被解释的:
(二)Local Explanation:Explain the Decision
(为什么觉得这张图片是“cat”?)
基本idea:
现在有一个object x x x,object中有很多小的components: { x 1 , . . . , x n , . . . , x N } \begin{Bmatrix} x_1,...,x_n,...,x_N \end{Bmatrix} {
x1,...,xn,...,xN},如果是image的话,那么一个component指的就是一个pixel、一个segment等,如果指的是text的话,那么component就是a word。
目标:我们希望机器在这个components里面哪一个component对它判断出现在的结果是重要的,哪些是不重要的。
idea:把某一个component移除或者修改,观察对机器的判断造成的影响大小,如果产生较大的影响,这个component就是重要的component。
举例:有一张图片,丢到neural network里面,结果是一只博美狗,接下来,在这个图片上贴上一个灰色的斑块(贴在任意位置),如果贴在这只狗的脸上,机器就会产生歧义的结果:
这个灰色斑块(gray box)的大小是至关重要的。
举例:假设现在有一张图片,这个图片的pixel是 { x 1 , . . . , x n , . . . , x N } \begin{Bmatrix} x_1,...,x_n,...,x_N \end{Bmatrix} {
x1,...,xn,...,xN},把这张图片丢到image的辨识系统中,它会output一个答案,比如把狗狗的照片丢到image辨识系统,它会告诉我们这是一只狗,image辨识系统的输出是一个向量,distribution,它会给每一个向量都给一个几率,即 y k y_k yk:the prob of the predicted class of the model。
假如现在辨识这张图片为狗狗,如下图:
我们把狗的几率拿出来,写作 y k y_k yk,我们想知道为什么对机器而言这张图片是一只狗—做法:我们把input中的某个pixel加上一个小扰动,观察这个小扰动对我们的 y k y_k yk造成多大影响:
如果这个扰动对