首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

可解释机器学习技术之后置全局可解释详解

后置全局可解释

机器学习模型从大量训练数据中自动地学习有用模式,并将学到的知识保存到模型结构和参数中。后置全局可解释旨在为预先训练的模型所获得的知识提供全局解释,并以直观的方式对模型参数或学习得到的表示进行说明。我们将现有的模型分为传统机器学习和深度学习两类,这样分类是因为我们能够从每个类别中提取一些类似的解释范例。

1. 传统机器学习解释

传统的机器学习流水线通常依赖于特征工程它将原始数据转换为更好地表示预测任务的特征。这些特征通常是可解释的,机器学习的作用是将特征表示映射到输出。我们考虑了一种简单有效的解释方法,称为特征重要性(feature importance),适用于大多数传统机器学习模型,它表明机器学习模型在进行决策时每个特征的贡献程度。

(1)模型无关解释:与模型无关的特征重要性广泛适用于各种机器学习模型。它将模型视为黑盒,并且不检查内部模型参数。

典型的方法是“置换特征重要性”,其核心思想是,通过对给定特征值置换后模型预测精度的变化进行计算,可以确定给定特征对模型整体性能的重要性。更具体地说,给定一个具有n个特征的预先训练模型和一个测试集,该模型在测试集上的平均预测得分为p,即基线精度。我们将测试集上的特征值重新排序,并在修改后的数据集上计算模型的平均预测得分。

每个特征迭代执行上述过程,最终可以分别得到n个特征的n个预测得分。然后,我们根据n个特征相对于基线精度p的得分下降程度来对其重要性进行排序。这种方法有几个优点:首先,我们不需要对人工特征进行归一化;其次,该方法可以推广到几乎所有以人工特征为输入的机器学习模型;最后,该策略在应用中被证明是稳健和有效的。

(2)模型相关解释:针对不同模型也存在特定的解释方法。模型相关解释方法通常通过检查内部模型的结构和参数来得到模型的解释。下面,我们将介绍针对两类机器学习模型计算特征的重要性。

广义线性模型(GLM)由一系列模型组成,这些模型是输入特征和模型参数的线性组合,然后输入到一些转换函数(通常是非线性的)构成的模型,如线性回归和逻辑回归。GLM的权重直接反映了特征的重要性,因此用户可以通过检查权重并将其可视化来了解模型的工作方式。然而,当不同的特征没有被适当地归一化且测量尺度变化时,通过权重进行模型解释不再可靠。此外,当特征维数过大时该方法所给出解释的可理解性会下降,这可能超出了人类的理解能力。

基于树的集成模型,如梯度提升算法、随机森林和XGBoost,通常人类是难以理解的。有几种方法可以测量每个特征的贡献度。第一种方法是计算在树分支中采用某特征时的精度提升。如果不为某个特征的分支添加额外分支,则可能存在一些错误分类的元素。在增加额外分支之后,会存在两个分支,使得每个分支都更准确。第二种方法测量特征覆盖率,即计算与一个特征相关的样本的相对数量。第三种方法是计算一个特征用于数据分割的次数。

2. DNN表征解释

DNNs不仅要研究从表征到输出的映射,而且还要从原始数据中进行表征学习。学习到的深层表征通常是人类无法解释的,因此对DNNs模型的解释主要集中在理解DNNs中间层神经元捕获的表征。在这里,我们介绍两类主要的DNN模型,即CNN和RNN的表征解释方法。

(1)CNN表征解释:针对CNN不同层上神秘表征的理解和解释吸引了越来越多的关注。在CNN表征解释的不同策略中,最为有效和广泛使用的策略是针对特定层上的神经元确定首选输人。该策略通常是通过激活最大化(AM)框架进行描述。从随机初始化图像开始,我们对图像进行优化,以最大化激活神经元。通过迭代优化,利用神经元响应值相对于图像的导数对图像做出调整。最后,对生成的图像进行可视化,就可以知道单个神经元在其感受野中探索的是什么。事实上,我们可以对任意神经元进行此类操作,从第一层神经元一直到最后一层输出神经元,以此来理解各层上的编码表示。

虽然框架很简单,但实际运用中却面临着一些挑战,其中最大的挑战是会产生奇怪的伪影。优化过程中可能会产生包含噪声和高频模式的不真实图像。由于图像搜索空间大,如果没有进行合适的正则化,即使有满足条件的图像激活神经元,图像也无法辨识。为了解决这一问题,需要利用自然图像先验知识对优化过程进行约束,以生成和自然图像类似的合成图像。一些研究者启发式地提出了一些人为先验,包括总变差范数、α范数和高斯模糊。此外,可以通过生成模型(如GAN或VAE)生成更为强大的自然图像先验,此类生成模型可将隐空间中的编码映射到图像空间。这些方法不是直接对图像进行优化,而是对隐空间编码进行优化,以找到能够激活指定神经元的图像。实验结果表明,由生成模型产生的先验信息显著改善了可视化效果。

模型可视化的结果揭示了CNN表征的一些有趣的性质。首先,神经网络在多个抽象层次上进行表征学习,从第一层到最后一层,逐渐从一般特征学到了任务相关特征。其次,神经元可以对存在语义关联的不同图像做出响应,展示了神经元具有多面性。注意,这种现象并不局限于高层神经元,所有层级的神经元都具有多面性,只是高层神经元比低层神经元更具多面性,即高层神经元对某类输入的变化具有更强的不变性。第三,CNN可以学到对象的分布式编码,可以使用基于部件的表示来描述对象,这些部件可以跨类别共享。

(2)RNN表征解释:在对CNN解释进行了大量研究后,揭示RNN表征(包括GRUs和LSTMS)所编码的抽象知识近年来也引起了人们浓厚的兴趣。语言模型常被用于对RNN表征学习的分析,语言模型的目标是根据前一个标识来预测下一个标识。研究表明RNN确实能学习到一些有用的表征。

首先,一些研究通过对能够最大化激活某个单元响应的实际输入标识进行分析,检测了RNN最后的隐藏层的表征,并对该层上不同单元的功能进行研究。研究表明,一些RNN表征单元能够捕获复杂的语言特性,如语法、语义和长期依赖关系。另外一项研究通过字符级语言模型对RNN的响应模式进行分析。该研究发现,虽然大多数神经单元很难找到特定的含义,但在RNN隐层表征中确实存在某些维度,能够关注于某些特定的语言结构,如引号、括号及文本中的行长度。在另外一项研究中,采用词级语言模型对RNN各个隐层单元所编码的语言特征进行分析。可视化结果表明,一些神经元主要对特定的语义类别产生响应,而另外一些神经单元则会对特定的语法类型或依赖关系产生响应。值得一提的是,一些隐层神经单元可以将响应值传递到后续的时间步,这就解释了为什么RNN可以学习长期依赖关系和复杂的语义特征。

其次,通过对不同隐藏层学习到的表征进行比对,发现RNN可以学习到对象的层次化表征。该研究表明,RNN表征与CNN表征之间存在相似之处。例如,采用多层LSTM构建的双向语言模型,分析此模型不同层上的表征可知,模型的下层捕获了上下文无关的语义信息,较高层次的LSTM表征则可对语义上下文进行编码。深度上下文表征层可以通过上下文进行词义消歧,因此可以用于需要考虑上下文的词义理解任务中。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20201121A0FLFS00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券