本文主要是介绍【李宏毅2020 ML/DL】P26-33 Explainable ML,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
我已经有两年 ML 经历,这系列课主要用来查缺补漏,会记录一些细节的、自己不知道的东西。
已经有人记了笔记(很用心,强烈推荐):https://github.com/Sakura-gh/ML-notes
本节内容综述
- 机器为什么“能”知道?可以从两个角度考虑,比如对于一个分类问题,可以考虑:Local Explanation: Why do you think this image is a cat?,还有Global Explanation: What do you think a "cat" looks like?
- 此外,解释性机器学习可解释机器学习也有现实意义,比如“证据何在?”,“凭什么给你贷款?”;毕竟,模型可能正确率高,但是什么都没学到;此外,如果你知道哪里出了什么问题,我们也多了一些参考。
- 李老师讲了他自己的观点,见[小细节](#Lee’s Point of View)
- Interpretable与Powerful是存在博弈的。深度模型可能很强大,但也因此难以解释。Let's make deep network explainable.此外,决策树可能是一个既强大由可解释的模型;但是有时,问题复杂了,也难以解释。
- 先从Local Explanation: Explain the Decision讲起。具体讲了基于梯度的Saliency Map,以及一些局限性和***方法。
- 接着,做了一个 Case Study ,区分数码宝贝和神奇宝贝。(过程充满欢乐…)
- 接着开始Global Explanation: Explain the Whole Model部分。之前在P17 CNN中,有讲过Activation Maximization,知道DNN很容易被迷惑。本节课进行了简单复习。
- "Regularization from Generator",向机器输入一个低纬度向量,机器输出图片。因此要Training a generator(GAN, VAE, etc.)。
- 接着分享的是,USING A MODEL TO EXPLAIN ANOTHER;用一个模型去解释另一个模型。讲到了Local Interpretable Model-Agnostic Explanations(LIME)。LIME很有趣,举了两个例子,展示其应用。
- 此外,还讲了 Decision Tree 。Decision Tree 可以无限深度,来模仿黑盒子;但是,决策树太深了,也不便于解释,因此,如何限制决策树深度并且起到模拟作用的难题值得讨论。
文章目录
- 本节内容综述
- 小细节
-
-
- Lee's Point of View
- Local Explanation: Explain the Decision
-
- Limitation of Gradient based Approaches
- Attack Interpretation
- Case Study: Pokemon v.s. Digimon
- Regularization from Generator
- USING A MODEL TO EXPLAIN ANOTHER
-
- Local Interpretable Model-Agnostic Explanations(LIME)
- LIME: Image
- Decision Tree
小细节
Lee’s Point of View
李老师观点:可解释机器学习可能不需要一定解释出来什么,但是要让人决定“爽”。
Local Explanation: Explain the Decision
我们期望知道,变量中哪些值起了作用。
如何做?把一些数据去掉,看看影响。
如上图,如果把灰色方块放在狗头上,机器认为其是狗的概率大大降低了。
此外,还有一种方法,如下图,在某一个变量上加一个小小的扰动,看y值的变化。
如上,根据每个值对目标值得偏微分,我们可以画出一个Saliency Map,可以看出,机器真的看出了什么是动物。
Limitation of Gradient based Approaches
如上,大象的鼻子对于机器来讲,可能很重要;但是对于Gradient based Approaches来讲,把大象鼻子长一点、短一点都是看不出影响的,因为在大象鼻子长度可能处于一个平滑区间,梯度是饱和的(Gradient Saturation)。
解决方案可以是用的别的指标,而非梯度,如右边两篇论文。
Attack Interpretation
此外,基于梯度与Saliency Map,可以进行些***行为。
如上,可以像下面两张图一样,加一些人眼注意不到的noise,来误导机器认知,进而产生***作用。
Case Study: Pokemon v.s. Digimon
如上,网上有相关数据集。即便是人类,可能也很难分辨一些特殊物种,到底是数码宝贝还是宠物小精灵。
机器能否做到呢?
胡乱叠了几层 CNN ,训练集准确率98.9%;测试集98.4%。很惊人。
于是李老师做了Saliency Map。
发现机器更在意的是图片的边缘。
李老师回去看了下数据,发现:
- 宝可梦的图片大多是PNG;
- 而Digimon大多是JPEG??????
非常幽默了,可以说是。
Regularization from Generator
如图,我们将问题转化为“找一个最好的z”。效果如下。
USING A MODEL TO EXPLAIN ANOTHER
我们用一个具有解释能力的模型,去模仿一个不可解释的模型。
但是难题在于,线性模型可能不能很好地模仿其他模型如神经网络的行为。
然而,我们可以模仿一个 local 部分,而非全貌。
Local Interpretable Model-Agnostic Explanations(LIME)
LIME四步如上,其中,注意第二部找到nearby的数据很重要。这个nearby的决定直接影响效果。
LIME: Image
如上,先手动将图片分成许多小部分,再随机丢掉某些部分,生成一个新数据,将新数据放入黑盒,查看分数。
如图,如果想用线性函数,我们需要对输入数据降维:
- 对于这个例子,我们可以用0-1变量表示某个小块是否存在。
如上,我们现在则可以分析这些参数:
- 如果权重接近0,则说明这个区域与青蛙无关;
- 如果正数,则说明这个区域与青蛙相关;
- 如果负数,则说明这个区域让机器认为其不是青蛙。
如图,李老师用自己的照片做了个实验。
机器认为李老师的照片和服可能性0.25,实验袍可能性0.05。于是李老师进行了LIME。
最后得出与实验袍相关的segment;以及与和服相关的segment。
Decision Tree
如上,我们规定一个指标,描述决策树的深度。
如上,在训练神经网络时,就把“树的复杂度”考虑为优化目标。
但是,这个指标难以微分。于是这篇文章训练了另一个神经网络,那个神经网络用于把主神经网络的参数作为输入,预测树的深度,然后对主神经网络的参数做微分...
这篇关于【李宏毅2020 ML/DL】P26-33 Explainable ML的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!