为什么要解释?
因为我们喜欢给不同的决策找一个理由啊,不然我们就很难接受这个决策。在我们进行决策的时候,如果没有理由,就会没有说服力。
local explanation:为什么你认为这是一只猫?
global explanation:你心里的一只猫是什么样子的?
决策树是一个好解释的模型,比如说你认为这是一只鸟,是因为它满足前两个条件。
如果你把一个灰色的小方块,随机遮住这个图片的一些部分,当遮住以后这个图片无法识别了以后,说明这个部分是这个图片之所以会被认为是这个类别的原因。
注意:图片的大小、颜色是参数,自己调整。
对pix扰动,如果该pix的扰动对输出的影响大,说明该pix越重要。
可以转换为求梯度的问题,可以根据这个画出saliney map .
(具体原理看论文)
deep inside convolutional networks:visualising Image Classfication Models and Saliency Map
但是这个方法会有局限,因此大象的鼻子对判断大象有利,但是当饱和的情况下,就会认为没有效果。也有一些解决方法,如右边的论文是解决方法。
可解释性有可能会被攻击,如上图中就是添加了一些奇怪的噪声,就能够使可解释的结果发生很严重的变化。但是从上面那个图可以看到确实认出了卡车的部分。
判断哪些pix重要的reference:
画saliney map 有一个局限就是gradient,因为梯度饱和,在这个时候,求微分为0.但是实际上它很重要。
explanation的技术有可能被恶意攻击。上下两张图,下面的图可以通过加噪,使得模型认为这个图片是卡车是由于后面那朵云导致的。
老师搭了一个模型识别神奇宝贝和数码宝贝,发现识别准确率可以到98%,可视化以后发现:
发现机器在意的是边缘,而不是宝可梦的本体。
后来发现:
是因为两种图的格式不一样,导致的背景不一样。所以机器其实什么都没有学到。
老师这个例子是想说明可解释学习的目的,能够帮助我们分析,这个神经网络是不是学到了什么。
这个图是老师做过的一个实验。
老师调了不同的输入,可视化了使该对应的输出类别最大化的输入图片,发现全是噪声。没有观察出什么规律。这个时候,就可以加一些限制条件。
如老师在这里加了一个R(x),因为在一张黑色的图片中写数字,黑色是多数,白色是少数。因此,加完该限制条件以后,可以看到有一些图片是数字形状。
这个实验还告诉我们,如果我们也遇到类似的问题,可以根据图片的特征去add一些其它的信息。比如说,这些图都是通过不断地去调一些参数得到的。
是在上面的基础上将求X变为求Z
详细地去看这个论文,这个和GAN不一样的是,classfier没有动,而且是判断不同的类别,不是判断好坏,而且没有训练。只调z,genertor可以产生各种图片,无法控制,但是加上classfier以后,通过最大化Yi,就可以控制生成器产生什么样的图片。
还有一种方法:就是我们可以解释的模型去解释不能解释的模型,什么意思呢,就是说如果有一些输入,通过黑盒子会产生一些输出。
那么我们用一个可解释的模型,比如说线性模型,让它在相同的输入下,产生类似的输出。那么在这个线性函数中,如果w为正,就说明这个pix或者pix块,对该模型的输出是有正向作用的。这个方法叫LIME,有现成的package可以跑。
举个例子,local explanation 如在神经网络的输入输出曲线的下降的这一段,首先采样,然后用线性模型进行模拟,就可以得到模型的参数。举个例子:
把图片变成向量,再输入linear model ,一般是一个有多少个segment维度的向量。如果某个segment的w是0,说明没影响,为正,说明有正向影响。为负,说明有负影响。
把图片分成不同的部分,作为输入
这是老师对自己的穿的什么衣服进行的可视化。
除了linear model 还有decision tree可以来进行解释。
但是转成decision tree以后,decision tree 的复杂程度如何确定,作者又训练了一个模型,就是通过一个network去预测这个从深层模型转成decision tree的平均深度。吃一个深层模型的参数,输出平均深度。因为一个深度网络模型是可以用很深的决策树模型来表示,所以这个数据很好收集,将network转换成decision tree 求平均深度即可。
整个过程概括一下:
local explanation:解释为什么会把这个图片预测成猫?
global explanation:解释在模型眼里猫是什么样子的?
local explanation:
1.遮挡图片,观察模型输出变化
2.saliney map
3.gradcam
4.linear model(LIME) and decision model
global explanation:
1.变化输入图片,使卷积核最大激活。
2.变化输出噪声,通过生成器得到x,再通过classfier使输出的类别概率最大.
本文内容属于课程笔记,供大家交流分享,一起学习。没有侵犯李老师知识版权的意思~