李宏毅机器学习第九周


摘要

本周学习了可解释性概念及其重要性,以及在机器学习中实现可解释性的不同方法。在可解释性方面,探讨了为什么需要使模型的决策过程更具可理解性,并如何在不同层面上实现解释性。在局部解释性方面,介绍了局部解释性的概念,并深入探讨了移除和修改数据的方法。在全局解释性方面,学习了激活最小化方法,并介绍了通过生成器进行“正则化”的方法。此外,还学习了如何使用一个模型来解释另一个模型,并深入了解了LIME(Local Interpretable Model-Agnostic Explanations)算法,包括其原理和实现过程。


Abstract

This week, the concept of interpretability and its significance, along with various methods to achieve interpretability in machine learning, were studied. Concerning interpretability, the reasons for making a model’s decision process more comprehensible were explored, along with how interpretability can be realized at different levels. In terms of local interpretability, the notion was introduced, and methods involving data removal and modification were extensively examined. Regarding global interpretability, the activation minimization method was studied, along with the approach of “regularization” through a generator. Additionally, the utilization of one model to explain another was covered, and a detailed understanding of the LIME (Local Interpretable Model-Agnostic Explanations) algorithm, including its principles and implementation process, was gained.


1.可解释的概念和意义

机器学习可解释性(Interpretable Machine Learning)是指机器学习模型能够以一种人类可理解的方式解释其预测结果和决策过程的能力。在机器学习的实际应用中,可解释性对于用户、开发者和监管者来说都具有重要的意义。
机器学习的可解释性对于多个方面具有重要意义。首先,它能够增加人们对模型的信任,因为可解释性使人们能够理解模型是如何做出特定预测或决策的。这种理解使人们可以审查模型的工作原理,并确认模型是否基于合理逻辑操作;其次,可解释性有助于错误诊断和改进。通过理解模型在哪些情况下可能出现错误,可以更准确地定位问题,并对模型进行改进,提升其性能和准确性;最后,可解释性还能够指导特征工程。通过揭示模型关注的特征和模式,可以更好地进行特征选择和特征工程,从而提升模型的性能和可靠性。
所谓的可解释性其实也分为两种,一种是局部可解释性(Local Explanation),一般指的是机器说明如何判断这个样例(例如分类问题中,机器如何将一张猫的图片分成猫);另一种是全局可解释性(Global Explanation),一般指的是机器如何对总体进行特征判断(例如分类问题中,机器认为猫长什么样子)。

2.Local Explanation

2.1 Introduction of Local Explanation

Local explanation的基本思路是给出一个对象x,这个对象可以图片和文本,如下图所示。
在这里插入图片描述

其中的components可能是像素或者单词,这时模型需要给出这些components对于模型最终决策的重要性,做法是移除或者修改component的值,观察对于决策的影响。对决策改变大的,那么就是重要的component。

2.1.1 Removing Way

在图像中的组成要素可以看作是“一块区域”,这也是CNN的基本假设。那就可以移除一部分,然后来记录移除这个部分的影响。如下图,就是将一部分区域涂灰,然后再进行预测,预测的效果在图的下方,与上图涂灰区域的中心对应,预测效果越差就越是冷色调。那就可以说明,冷色调的部分很大程度上影响了机器最后判断,也就是机器学到的内容。
在这里插入图片描述

2.1.2 Modifying Way

可以从另一个角度来去寻找机器更看重哪些信息,对于比较重要的信息,按道理更有可能是对最后的结果影响越大,那么相当于就是,如果输入信息有改变,那么对结果的改变就会更大;如果我们把这个思想取极限,那么就是导数了。
如下图所示,导数越大的地方越明亮。当然,这里是计算结果对N个要素的求导而不是单纯的对每个像素求导,因为明显一个像素的改变不会影响结果,也不算是一个特征。
在这里插入图片描述
但这个方法也存在一定的局限性, 或者说在某些场景中表现也不是很好,例如下图的中间图片,虽然它将羚羊的大致轮廓表达了出来,但是另外区域的杂讯还是特别的多;因此可以用SmoothGrad来尝试解决,得到右边的图,可以看到效果更好。SmoothGrad的做法是为原始的图片重复多次,每次加入随机产生的杂讯来影响每一个像素点,然后对于每一次得到的图像都画Saliency Map,最后再将其平均起来即可。
在这里插入图片描述
但这种使用偏微分的方法有时会出现信息冗余现象,如下图所示,横轴是鼻子长度而纵轴是说判断为大象的概率。显然,鼻子长是大象的一个极其显著的特点,这里的曲线也可以确定机器是关注到这一点的了;但是鼻子长到足够明显了的时候,再长貌似就没有必要了,即信息冗余。如果在这个时候看梯度,那竟然几乎是0,从而和上述的想法相矛盾。
在这里插入图片描述

3.Global Explanation

假设机器看见了猫,那么机器到底认为猫长什么样呢?

3.1 Activation Minimization (review)

对于这个类别的可解释性模型来说,它并不是说明一个特定的样本长什么样子、属于什么分类,而是根据模型内的参数来理解说为什么某一个类的样本会长这个样子,可以简单理解为让机器说明它心理想象的猫长什么样子。
下面通过一个图像检测的例子来说明对于这种问题的解决思路。
在这里插入图片描述
对于图中的每一个filter,可以看成它是对上一层所输出的图像的某一块区域的监测,如果监测到它希望得到的信息,那么它的值就会比较大。但是现在Global Explaination的任务不是针对特定样本而言,也就是说没有样本来生成各层的图像。而为了知道每一层的每一个filter它想要监测什么内容,可以来创造图像,即如上图所示,创造一个图片对应的向量,使得它输出进入能够使得我们当前观察的这个filter最大,即下图所示。
在这里插入图片描述
再来观测X*对应的图像,就可以知道这个filter它想检测什么样的类型了,如下图:在这里插入图片描述
这样的想法可以直接用于输出层(output)吗?
也就是说找一张图片,让这个图片通过机器后输出某一个类别的概率最大,那么有可能实现吗?实际上效果很差,例如在手写数字的识别例子中,如下图所示。
在这里插入图片描述
这其中的解释大概可以说成:因为机器它不一定是看到某个数字的样子才会输出对应的类别,它可能真的没有学习到这个规律,只是学习到从一堆杂讯中寻找到它认为是某个类别的信息。
如何让其看起来清晰一些?
首先确定哪个一种数字是想要的,比如yi位置所对应的数字,现在找要一张图片x,能够使得yi的值最大,但实际可能得到x是左边雪花的结果,人眼很难辨识,所以为了好看,需要在后面加一个项R(x)。R(x)可以有不同的定义,这里是用所有的强度加起来,因为实际上的手写图片的多数区域都没有数值,减去强度之后或许会有帮助。
在这里插入图片描述

3.2 “Regularization” from Generator

那么为了避开上节这么多的约束呢,还有一个办法就是引入生成器来帮助。即假设已经通过很多的图片训练完成了一个生成器(用GAN、VAE等),然后将生成器接到原分类模型之前,如下图所示。
在这里插入图片描述
那现在的目标就转换成找到一个z的向量,生成图片之后能够使得y对该图片的分类的信心分数最大。那么要得到可解释性的东西,就再将向量z转换成图片即可,这样得到的效果可能是很好的,如下图所示。
在这里插入图片描述

4.Using a model to explain another

另一种可能能更泛化的解释复杂模型的方式,就是用一些操作,使用可解释的模型来解释复杂模型。一般用的可解释的模型是线性模型和比较简单的决策树模型等等。
以线性模型为例,来简单解释如何用简单模型解释复杂模型。
线性模型是最容易解释的模型,不论参数有多少个,每个参数的意义都是能很鲜明的说出这个对应项的情况的。那就试图用线性模型直接去尽量的切合的神经网络的结果,如下图所示。
在这里插入图片描述
然而实际上,线性模型过于简单,很多时候根本无法胜任这个任务。只能退而求其次,希望看到一个区域内的情况,然后来做出的决策。因此,LIME就应运而生。当然,这个所谓的局部的大小,可能会对模型有极大的影响,因此调参也成为了一项技术活。

5.LIME(Local Interpretable Model-Agnostic Explanations)

5.1 算法原理

对于一个分类器(复杂模型),想用一个可解释的模型(简单模型如线性规划),搭配可解释的特征在全局上进行分析是极其困难的,相反,如果能在某一局部的决策边缘上验证其可解释性,即可说明该分类器的优越性能。
在这里插入图片描述

如上图所示,从加粗的红色十字样本(待解释样本)周围采样,所谓采样就是对原始样本的特征做一些扰动,将采样出的样本用分类模型分类并得到结果(红十字和蓝色点),同时根据采样样本与加粗红十字的距离赋予权重(权重以标志的大小表示)。虚线表示通过这些采样样本学到的局部可解释模型,在这个例子中就是一个简单的线性分类器。在此基础上,就可以依据这个局部的可解释模型对这个分类结果进行解释了

5.2 算法实现

在这里插入图片描述

总结

本周的学习聚焦于机器学习模型的可解释性。深入探讨了可解释性的概念、意义以及不同层面上的实现方法。局部解释性强调了在特定样本级别上解释模型决策的重要性,介绍了移除和修改数据的方法来探索模型行为。全局解释性方面,学习了激活最小化方法,并探讨了通过生成器进行“正则化”的方法。还学习了如何使用一个模型来解释另一个模型的决策过程,以及如何使用LIME算法生成可解释的解释模型。通过这些学习,深入了解了如何在不同层面上实现模型的可解释性,从而更好地理解和信任模型的决策。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值