可解释学习笔记(李宏毅老师课程)

为什么要解释?
因为我们喜欢给不同的决策找一个理由啊,不然我们就很难接受这个决策。在我们进行决策的时候,如果没有理由,就会没有说服力。
在这里插入图片描述
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使输出的类别概率最大.

本文内容属于课程笔记,供大家交流分享,一起学习。没有侵犯李老师知识版权的意思~

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值