Why we need Explainable ML?
- 用機器來協助判斷履歷
具體能力?還是性別?
- 用機器來協助判斷犯人是否可以假釋
具體事證?還是膚色?
- 金融相關的決策常常依法需要提供理由
為什麼拒絕了這個人的貸款?
- 模型診斷:到底機器學到了甚麼
不能只看正確率嗎?想想神馬漢斯的故事
- Goal of ML Explanation ≠you completely know how the ML model work
- Human brain is also a Black Box!
People don’t trust network because it is Black Box, but you trust the decision of human!
一、Local Explanation:Explain the Decision
方法1:
基本的思想是:将一个对象切割成许多份,然后查看这每一个组成部分对决策的重要性。大致的做法是,删除或修改组件的值,观察决策的变化。如果发生比较大的数值改变,就说明当前的这个组件是比较重要的。
方法2:
遮挡图像的某个位置,然后得到不同的输出结果。如果结果变动较大,则说明遮挡的位置比较重要。折腾的大小,颜色是需要自己设定的。
1.Saliency Map
通过改变每一个像素点,得到输出的改变,求其梯度,如果数值比较大就说明当前的这个改动的像素点占比较重要的位置,梯度也会增大。利用以上的数学表达式,可以求解出其重要程度,然后再根据这个数据,对每个位置绘制出一个关注度图。
但是这种通过计算梯度的变化的方法来计算哪一个segment是重要还是不重要是有问题的,因为会出现Gradient Saturation梯度饱和的情况。
有两个方法可以解决梯度饱和的这个问题:
- DeepLIFT(https://arxiv.org/abs/1704.02685)
- Integrated gradient (https://arxiv.org/abs/1611.02639)
而且,这个中可解释性的方法是可能被攻击或者是误导的。
通过以上的方法可以得到图像中哪些地方是比较重要的,但是,如果对图像添加上一些噪声,机器可能就不是根据原有的卡车的位置的像素点去判断其为一辆卡车,而可能是根据一朵云判断其为一个卡车,这就是噪声对机器进行了误导判断,也可以说是一种误导的攻击。但是,分类的结果是没有改变的,而人也没有看出变化。
所以explanation这样的技术有可能是被恶意攻击的。
李宏毅老师实例验证了下Saliency Map的作用,想看他能否分辨数码宝贝与神奇宝贝,训练了3个epoch之后的正确率达到了98%+,但是结果却是因为两种数据集的图像格式不一样,一个是png没有背景,一个jpeg有背景,所以其实机器什么也没有学到,只是根据背景是不是黑色的,来判断出是哪一种数据集。
二、GLOBAL EXPLANATION:EXPLAIN THE WHOLE MODEL
如何知道机器以为的某一件样品是长什么样子的呢?
1.Activation Minimization
以手写数字为例,当我们想知道机器认为什么样的图片是一个数字5,那么此时就使得相对应的输出值最大便可。但是,这么操作会得出左图这样的噪声,为了使其看起来想一个数字,想要额外的做一些限制,比如不能出现这么多的白边等等。限制条件为R(x)
其他一些限制条件比较充足的例子:
2.Constraint from Generator
现在换一个策略是:现在有一个已经train好的分类器,可以输出是狗的概率是多少,而现在想从一个分布中输入生成器,通过生成器来生成一张图片;再通过这个分类器。现在想要限制生成器,让其使得分类器输出狗的概率越高越好,从而便得到了机器认为的分布z是什么样子的。
三、USING A MODEL TO EXPLAIN ANOTHER
1.Local Interpretable Model-Agnostic Explanations (LIME)
思路:有些模型更容易解释。使用可解释的模型来模仿不可解释的模型
使用可解释模型来模仿不可解释模型的行为。Local Interpretable Model-Agnostic Explanations (LIME)
但是,线性模型的能力有限,不能模仿神经网络,但尽管如此,它可以模仿局部区域。
但对于第二步中在附近sample的区域不同,得到的结果也会不同。所以需要适当的调整。
对于图像来说,具体的流程算法如下所示:
将图片分割成对个小区域,然后随机删除一下来计算仍然是青蛙的概率
其中M是取决于图像被切割分成了几类
xm=0代表了该区域被删除,xm=1代表了该区域还存在
然后通过Extract辅助降维,再通过Linear拟合前述那个黑箱的结果,尝试解释。
也就是将图像变成一位向量,再去拟合原结果。
如此可以得到一些连的区域权值值。
- If 𝑤-≈0:该区域对于判断这张图片是不是青蛙而已不太重要
- If 𝑤-is positive :该区域对于判断这张图片是不是青蛙有正向的影响,存在某种映射关系
- If 𝑤-is negative:该区域对于判断这张图片是不是青蛙有反向的影响,也就是认为不是青蛙
结论:
Lime这个技术,可以知道说对一个image的classifier而言,哪些区域是比较重要的,而哪些区域是对结果没有说明影响的。
2.Decision Tree
除了linear的model以外,还有其他的选择,决策树也可以。
同样的,使用决策树也存在一个问题,那就是不希望这个决策树的深度太深。