目录
思维导图
1.黑箱所带来的问题
2.从应用面论述为什么要进行可解释性分析
2.1可解释性分析指什么
2.2可解释性分析的必要性
2.3可解释性分析应用实例
2.4 可解释性分析的脑回路(以可视化为例如何)
3.如何研究可解释性分析
3.1使用好解释的模型
3.2传统机器学习常用的可解释性方法
3.3从预测能力和可解释性两个角度对比常用模型
3.4建模之前的可解释性方法、建立本身具备可解释性的模型和建模后使用可解释性方法
3.4.1建模之前的可解释性方法
3.4.2建立本身具备可解释性的模型
3.4.3建模后使用可解释性方法
4.深度学习可解释性分析(卷积神经网络为例)
4.1为什么人类无法理解深度学习在图像处理领域的应用
4.2卷积神经网络可解释性方法
5.一些综述
参考文献
可解释性分析:广义来看就是让人工智能能以人类理解这个世界的方式去理解世界,或者说以它理解世界的方式,带着人类去理解世界。
理解这几个问题:我们先看一下,如下图右所示的例子,对熊猫添加了噪声之后,从人类角度看还是熊猫,但计算机竟然识别成长臂猿,这是很可怕的,如果我们不能理解这个模型,当黑客利用模型漏洞攻击时,我们防无可防。再回到上面的问题,总结下来就是,我们希望能以人类的思考方式理解模型的脑回路,比方说,像下图左,在进行目标识别时,模型认为这个图是坦克依据的特征到底是哪部分,如果能清楚理解这个过程,那么模型的决策就有了依据,这个模型也就有了可信度。
再进一步理解:我们把模型比作老师,传统的模型在帮我们解数学题时,只能直接告诉我们答案,但没有答题思路,显然,我们无法通过这样的学习,提高我们自身解决这个问题的能力,但是如果模型有一天可以将它的解题思路以我们可以理解的方式(可解释性分析)告诉我们,那我们就获得了一个无所不能的老师,难以想象有一天人工智能开始以人类理解这个世界的方式去理解世界,甚至说以它理解世界的方式,带着人类去理解世界,是多么不可思议。
我们再看一下现阶段人工智能的表现:今年爆火的AI绘画,如下图所示,让AI画一条在水中的三文鱼,但它画了了三文鱼的刺身,这说明它并不是真的理解三文鱼是什么,它只知道三文鱼是人类的食物,再让AI画一张握手的图,下图所示的确是握手,但并不是我们人类所理解的握手,如果一直使用这种知其然,却不知其所以然的模型,长远来看,必将受其乱。这也是人工智能可解释性分析的必要性。
再看一下其他行业:比如生物领域,像在蛋白质结构上,这往往需要足够大的模型,但人类如果人类无法理解这个过程,如何信任得到的分子结构毫无问题,即便这个结构被证实可用。再比如医疗,无人驾驶等领域,一个无法理解的模型,即使能够被广泛应用,但从根本上会有很大隐患。
我们希望通过可解释性分析,从模型中得到什么信息呢,举例如下:
对于目标检测:我们想知道模型在评判一张图属于什么类别时依据的特征到底是什么。
对于自然语言处理:依据被判定为负面语言的句子,模型到底从那些字或者语言逻辑去判断的。
对于推荐系统:抖音给你推荐的视频,淘宝给你推荐的商品,知乎给你推荐的文章,这些模型背后判断的逻辑到底是什么。
教人类下围棋:众所周知,AI在围棋领域已经封神,在用AI教人类下棋的过程中,人们发现AI会下一些无法理解但又能赢的棋,如果能理解AI下棋的思考方式,对人类的提高也是非常关键的。
教人类画画:像用AI教人类画画,如果想让他成为一个好老师,我们就必须理解它的脑回路,比方说,你想提升画画水平,将自己的画作传给AI之后,目前的AI只能直接帮你修改,但它不能给你说明白,为什么这样修改更好,所以只有对模型进行可解释性分析,我们才能理解它。
细粒度图像分类:细粒度图像分类,比方说荔枝有很多种类,如何将荔枝按照不同种类进行分类,这就是细粒度图像分类。对于可解性分析的应用,我们想知道计算机去进行细粒度图像分类时,依据的是什么,这是一个很有趣的工程。
教人类学习工艺参数:让人工智能教人类学习,德国一个激光加工企业博士,发现利用激光加工过程中,有些参数会发生变化,这会影响加工质量,而想要得到这些参数,必须停机才可以,但停机的成本又太高,于是他用神经网络训练了可以实时预测参数的模型,准确率很高,然后他用可解释性分析,可视化的分析了如何获得这个参数,工人根据可视化过程去学习推算参数,竟然真的提高了很多,这个方法很简单,但这个应用场景下却从未有人成果尝试,于是这个博士,横扫了改领域的论文。
医学应用:如下图对肺炎的辨识,人工智能可以直接用色彩表示它认为可能出现问题的区域,这对医学新人水平的提高,甚至说病人的理解有很大帮助,但如果没有这个可视化的解释,人们只能到得到一个你生没生病的结果。
损伤检测应用( layerCAM):这里应用到了损伤检测,可以明显看到颜色深浅标注不一,这就是可视化解释性分析的应用。 这可以说用图像分类问题,解决了图像定位问题,本身分类对于有没有损失问题,回答的是有或者没有的答案,而这里直接把损伤位置都做了标注,可见可视化解释的用处。有没有可能用这个方法,解决一些情况下,数据集难以标注的问题,对数据集进行标注,但问题是既然能进行标注,说明已经可以识别,那标注的意义又在哪,需要思考。
识别螺丝刀:如下图所示,识别一个螺丝刀,红色区域表示识别贡献最大区域,这符合人类的理解。
识别建筑:从下图可以看出,AI识别福建土楼,是因为它有洞状结构,识别吊脚楼是因为它有棍状结构。这就是在告诉人类它的脑回路。
例如:KNN,逻辑回归,线性回归。贝叶斯,树模型是最具解释性的。
树模型:下图是一个判断是否人得病的模型,每一个节点都很清晰。是因为年龄,生活习惯,日常作息,还是其他原因,清清楚楚。
算法自带可视化:像上面图像分类中可视化分析的色彩标注。
算法自带的特征权重:比方说随机森林,能够直观得出每一个特征对最后结果的重要程度的权重。
置换重要度:就是改变一些特征的位置,看其对结果的影响。
PDP,ICE图:如下图右所示,就是通过曲线表示特征对结果的影响。PDP比方说年龄这一个特征对心脏病的影响,ICE比方说,年龄和生活作息等多个特征对心脏病的影响。
shapley:直接列出每一个特征对结果的影响程度。
LIME:就是把复杂问题简单化,比方说,一个高维数据集,是用深度神经网络,非线性曲线拟合,这很难解释,但我们可以选取一些局部数据,用线性模型解释,进而解释整个模型。
从图中可以看出,NN神经网络模型预测效果最好,但可解释性也最差,线性回归模型,可解释性最好,但预测效果最差,LIME的思路就是,用可解性最好的模型,解释可解释最差的模型。
在建模之前的可解释性方法主要涉及一些数据预处理或数据展示的方法。
数据可视化就是一类非常重要的建模前可解释性方法。很多对数据挖掘稍微有些了解的人可能会认为数据可视化是数据挖掘工作的最后一步,大概就是通过设计一些好看又唬人的图表或来展示你的分析挖掘成果。但实际上真正要研究一个数据问题之前,通过建立一系列方方面面的可视化方法来建立我们对数据的直观理解是非常必须的,特别是当数据量非常大或者数据维度非常高的时候,比如一些时空高维数据,如果可以建立一些一些交互式的可视化方法将会极大地帮助我们从各个层次角度理解数据的分布。
这是最关键的一类可解释性方法,常用的有:基于规则的模型,基于单个特征的方法, 基于实例的方法,基于稀疏性的方法,基于单调性的方法。具体解释看人工智能算法的可解释性方法研究
建模后的可解释性方法主要是针对具有黑箱性质的深度学习模型而言的, 深度学习的黑箱性主要来源于其高度非线性性质,每个神经元都是由上一层的线性组合再加上一个非线性函数的得到,人们无法像理解线性回归的参数那样通过统计学基础假设来理解神经网络中的参数含义及其重要程度、波动范围。但实际上我们是知道这些参数的具体值以及整个训练过程的,所以神经网络模型本身其实并不是一个黑箱,其黑箱性在于我们没办法用人类可以理解的方式理解模型的具体含义和行为,而神经网络的一个非常好的性质在于神经元的分层组合形式,这让我们可以用物质组成的视角来理解神经网络的运作方式。主要分为以下几类的工作:隐层分析方法、模拟/代理模型、敏感性分析方法
从下图可以很明显看出,从第3.4层开始人类已经无法理解计算机提取的特征了。
不管哪一种方法就是想知道对于分类结果,模型依据的特征是什么,反向理解就是我们想用一种方法知道,模型在分类时是否学到,像人类一样在识别一个东西时所依据的特征,比方说人类在识别一个狗时依据的是体型,毛发,五官等特点,那么模型依据的是不是这些特征呢,或者它分类依据的特征是什么,这是可解释性分析的目的。任何方法只要能实现这个目的,就是可解释性分析。
可视化卷积核和特征图:就是得到卷积核参数,和其对应的特征图,卷积核又分浅层,中层,高层,不同层提取的特征不同。AlexNet这篇论文第一次对图像处理进行了可视化。但也有个问题,对于深层的网络,所表示出来的特征完全无法理解,可能因为维度过高,不能用RGB形式表示出来,让人类理解。
遮挡,缩放,平移,旋转:如下图所示对狗眼睛进行遮挡,如果对结果有影响,就证明网络学习到了眼睛的特征。
找到能使某个神经元激活的原图像素,或者小图(就是反卷积):下图1表示神经元,2就是原图像素,说明该神经元关注该条纹特征。
基于热力图(CAM)的可视化:如下图所示,就是用颜色标注网络关注的特征部分,
进一步阐述为什么,CAM可以让我们理解网络的脑回路:比方说下图右,1表示需要识别的图,如果基于2的特征,识别为火山,如果基于3的特征,识别为后视镜。
在进一步理解GAM:如下图所示,第二张,第三张图都认为第一张图是医生,但很明显它们依据的特征不同。
语义编码降维可视化:就是网络最后一层,全连接层输出的数据带有输入的语义特征,对其进行降维让人类理解。下图就是对三维建筑风格进行降维处理,在二维空间内展示其区别。
生成满足某些要求的图像:大致意思是,强化图中某个类别的像素,让该像素的特征更加明显
。
对抗样本:待补充
1.机器学习可解释性一(LIME)_可解释机器学习_chj65的博客-CSDN博客
2.【精读AI论文】LIME机器学习可解释性分析_哔哩哔哩_bilibili
3.(重点)https://github.com/TommyZihao/zihao_course/blob/main/XAI
4.(重点)https://github.com/TommyZihao/TommyZihao
5.人工智能算法的可解释性方法研究_人工智能学家的博客-CSDN博客
6.(很全)趣味科普|可解释性人工智能_数据派THU的博客-CSDN博客
7.可解释人工智能XAI_小粒子学code的博客-CSDN博客
8.人工智能系统的可解释性研究:挑战与解决方案_禅与计算机程序设计艺术的博客-CSDN博客