近日阅读了一篇讲述可解释性的中文综述文章机器学习模型可解释性方法、应用与安全研究综述,对模型可解释性的相关知识有了进一步的了解。本文是阅读这篇综述的一些笔记以内容摘要。
背景:虽然机器学习和人工智能技术在人脸识别、自动驾驶、恶意软件检测和智慧医疗分析等领域得到了广泛的应用,但大多数情况下机器学习模型尤其是深度神经网络如同黑盒一般,人们无法确切地知道模型背后的决策依据是什么,也无法保证决策的可靠性。缺乏可解释性称为机器学习在现实任务中的进一步发展和应用的主要障碍之一。
本文的工作:
可解释性的目的:帮助人们理解机器学习模型是如何学习的,它从数据中学习到了什么,针对每一个输入它为什么会做出如此决策以及它所做的决策是否可靠
可解释性与模型复杂度、准确度之间的关系:通常情况下,结构简单的模型可解释性好,但拟合能力差,往往准确度不高、结构复杂的模型,拟合能力强,准确度高,但由于模型参数量大、工作机制复杂、透明度低,因而可解释性差。
可解释性分类:主要有两种分类角度:
Ante-hoc可解释性发生在模型训练之前,因而也称为事前可解释性。学习任务中,选择结构简单、易于理解的自解释模型,比如朴素贝叶斯、线性回归、决策树、基于规则的模型等,来实现Ante-hoc可解释性。另外,也可以构建将可解释性直接结合到具体的模型结构中的学习模型来实现Ante-hoc可解释性。
对于对自解释模型,从两个角度考虑其可解释性:
也要注意,自解释模型也需要具有合理的规模,对于高维的线性模型、深度太深的树模型,其可解释性未必很好。
广义加性模型(GAM)既能提高简单线性模型的准确率,又能保留线性模型好的内置可解释性,其一般形式为:
g ( y ) = f 1 ( x 1 ) + f 2 ( x 2 ) + ⋅ ⋅ ⋅ + f n ( x n ) g(y)=f_1(x_1)+f_2(x_2)+ ···+f_n(x_n) g(y)=f1(x1)+f2(x2)+⋅⋅⋅+fn(xn)
其中, f i ( ⋅ ) f_i(·) fi(⋅)称为特征 x i x_i xi对应的形函数(shape function),是一个单特征模型,它可能是非线性模型,也可以是线性模型。广义加性模型通过线性组合每一个单特征模型得到最终的决策形式,由于每个形函数可以是非线性的,所以它可以捕捉到特征与最终决策目标之间的非线性关系,从而提高准确率;另外,它消除了特征之间的相互作用,所以可以 保留线性模型良好的可解释性。
相关研究工作:
神经网络模型本身的可解释性很差,因此其自身可解释性只能通过额外引入可解释性模块来实现,一种有效的方法就是引入注意力机制(Attention Mechanism)。
人脑的注意力机制指的是从大量输入信息中选择小部分有用信息来重点处理,将有限的信息处理资源分配给重要的任务,解决信息超载问题。另外,注意力机制具有良好的可解释性,注意力权重矩阵直接体现了模型在决策过程中感兴趣的区域。
相关研究工作:
Post-hoc可解释性旨在利用解释方法或构建解释模型,解释一个给定的训练好的学习模型的工作机制、决策行为和决策依据,也称为事后可解释性。Post-hoc可解释性可以分为全局可解释性和局部可解释性。
典型的全局解释方法:
解释模型或解释规则提取:通过从受训模型中提取解释规则的方式,提供对复杂模型尤其是黑盒模型整体决策逻辑的理解。
根据解释对象不同,规则提取方法可分为:
缺点:
模型蒸馏是一种经典的压缩模型、降低模型复杂度方法,目的在于将复杂模型学习的函数压缩为具有可比性能的更小、更快的模型。模型蒸馏的核心思想是利用结构紧凑的学生模型(student model)来模拟结构复杂的教师模型(teacher model),从而完成从教师模型到学生模型的知识迁移过程,实现对复杂教师模型的知识蒸馏。蒸馏的难点在于压缩模型结构的同时如何保留教师模型从海量数据中学习到的知识和模型的泛化能力。
通常采用可解释性好的模型作为学生模型,来全局近似教师模型,比如线性模型、决策树、广义加性模型以及浅层神经网络等。
同样,模型蒸馏是一种全局近似,不一定能反映教师模型的真实行为。
许多研究者探索如何在输入空间实现对DNN任意层神经元计算内容的可视化,并使其尽可能通用,以便能够深入了解神经网络不同单元代表的特定含义。其中,最有效和使用最广泛的一种方法是通过在特定的层上找到神经元的首选输入最大化神经元激活,称为激活最大化(Activation Maximization,AM)方法。
激活最大化方法思想较为简单,即通过寻找有界范数的输入模式,最大限度地激活给定的隐藏单元。给定一个DNN模型,寻找最大化神经元激活的原型样本 x ∗ x^* x∗的问题可以被定义成一个优化问题,其形式化定义如下:
x ∗ = a r g m a x x f l ( x ) − λ ∣ ∣ x ∣ ∣ 2 x^*=\underset{x}{argmax}f_l(x)-\lambda ||x||^2 x∗=xargmaxfl(x)−λ∣∣x∣∣2
其中,优化目标第一项是DNN第 l l l层某一个神经元在当前输入 x x x下的激活值,第二项是正则化项,以保证输入有界。最后可以通过可视化生成的原型样本 x ∗ x^* x∗帮助我们理解该神经元在其感受野中所捕捉到的内容。我们也可以分析不同层所编码的不同表示内容。当我们分析输出层神经元的最大激活时,我们可以找到某一类别所对应的最具代表性的原型样本。
优点:
缺点:
模型的局部可解释性以输入样本为导向,通常可以通过分析输入样本的每一维特征对模型最终决策结果的贡献来实现。经典的局部解释方法包括敏感性分析解释、局部近似解释、梯度反向传播解释、特征反演解释以及类激活映射解释等。
敏感性分析是指在给定的一组假设上,从定量分析的角度研究相关自变量发生某种变化对某一特定因变量影响程度的一种不确定分析技术。其核心思想是通过逐一改变自变量的值来解释因变量受自变量变化影响大小的规律。
局部近似解释方法的核心思想是利用结构简单的可解释模型拟合待解释模型针对某一输入实例的决策结果,然后基于解释模型对该决策结果进行解释。该方法通常基于如下假设:给定一个输入实例,模型针对该实例以及该实例邻域内样本的决策边界可以通过可解释的白盒模型来近似。在整个数据空间中,待解释模型的决策边界可以任意的复杂,但模型针对某一特定实例的决策边界通常是简单的,甚至是近线性的[13]。我们通常很难也不需要对待解释模型的整体决策边界进行全局近似,但可在给定的实例及其邻域内利用可解释模型对待解释模型的局部决策边界进行近似,然后基于可解释模型提供对待解释模型的决策依据的解释。
常见的方法有:
优缺点:
基于反向传播的解释方法的核心思想是利用DNN的反向传播机制将模型的决策重要性信号从模型的输出层逐层传播到模型的输入以推导输入样本的特征重要性。
Simonyan等人最先提出了利用反向传播推断特征重要性的解释方法(Grad),具体的,Grad方法通过利用反向传播算法来计算模型的输出相对于输入图片的梯度来求解该输入图片所对应的分类显著图(Saliency Map)。
与Grad方法类似,Zeiler等人提出了反卷积网络(DeconvNet),通过将DNN的高层激活反向传播到模型的输入以识别输入图片中负责激活的重要部分。不同的是,在处理ReLu过程中,当使用Grad方法反向传播重要性时,如果正向传播过程中传入ReLu的梯度值为0,而在反卷积网络中反向传播一个重要信号时,当且仅当信号值为负,进入ReLu的重要信号被置零,而不考虑前向传播过程中输入到ReLu的信号的符号。
Springenberg等人将Grad方法与反卷积网络相结合提出了导向反向传播方法(GuidedBP),通过在反向传播过程中丢弃负值来修改ReLu函数的梯度。
与只计算输出对当前输入的梯度不同,Sundararajan等人提出了一种集成梯度方法(Intergrated Gradient),该方法通过计算输入从某些起始值按比例放大到当前值的梯度的积分代替单一梯度,有效地解决了DNN中神经元饱和问题导致无法利用梯度信息反映特征重要性的问题。
但是,Grad、GuidedBP以及 Integrated等方法通过反向传播所得到的显著图包含很多视觉可见的噪音(如下图所示),我们无法确定这种噪音是否真实地反映了模型在分类过程中的决策依据。为此,Smilkov等人提出了一种平滑梯度的反向传播解释方法(SmoothGrad),该方法通过想输入样本中引入噪声解决了Grad等方法中存在的视觉噪音问题。其核心思想是通过向待解释样本中添加噪声对相似的样本进行采样,然后利用反向传播方法求解每个采样样本的决策显著图,最后将所有求解得到的显著图进行平均并将其作为对模型针对该样本的决策结果的解释。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3swRFSln-1652334326249)(C:\Users\lenovo\AppData\Roaming\Typora\typora-user-images\image-20220511201531941.png)]
敏感性分析、局部近似以及梯度反向传播在一定程度上可以提供对待解释模型决策结果的局部解释,但他们通常忽略了待解释模型的中间层,因而遗漏了大量的中间信息。而利用模型的中间层信息,我们能更容易地表征模型在正常工作条件下的决策行为,进而可提供更准确的解释结果。特征反演(feature inversion)作为一种可视化和理解DNN中间特征表征的技术,可以充分利用模型的中间层信息,以提供对模型整体行为及模型决策结果的解释。
特征反演解释方法可分为模型级(Model-level)解释方法和实例级(Instance-level)解释方法 。模型级解释方法旨在从输 入空间中寻找可以表示 DNN神经元所学到的抽象概念解释原型(如激活最大化方法),并通过可视化和理解 DNN每一层特征表示的方式,提供对DNN每一层所提取信息的理解。然而,模型级解释方法的反演结果通常相对粗糙且难以理解,此外,如何从输入样本中自动化提取用于模型决策的重要特征仍然面临着巨大的挑战。针对模型级方法的不足,实例级特征反演方法试图回答输入样本的哪些特征被用于激活DNN的神经元以做出特定的决策。
最新研究表明,CNN不同层次的卷积单元包含大量的位置信息,使其具有良好的定位能力。基于卷积单元的定位能力,我们可以定位出输入样本中用于CNN决策的核心区域。然而,传统CNN通常在卷积池化之后 采用全连接层对卷积层提取的特征图进行组合用于最终的决策,因而导致网络的定位能力丧失。
为了解决这一问题,Zhou等人提出了类激活映射(class activation mapping, CAM)解释方法,该方法利用全局平均池化层来替代传统CNN模型中除softmax层以外的所有全连接层,并通过输出层的权重投影到卷积特征图来识别图像的重要区域。
然而CAM方法需要修改网络结构并重训练,因而在实际应用中并不实用,为此,Selvaraju等人提出了一种将梯度信息和特征映射相结合的梯度加权类激活映射方法(Grad-CAM)。这样,无需修改网络结构或重训练,避免了模的可解释性与准确性之间的权衡,适用于多种任务。
不过这些方法都只能定位到相关图像区域,缺乏像素级别梯度可视化解释方法显示细粒度特征重要性的能力,因此有进一步的改进得到导向梯度加权类激活映射方法(Guided Grad-CAM)
模型可解释性研究的初衷是提高模型的透明度,验证和评估模型决策行为和决策结果的可靠性和安全性,消除模型在实际部署中的潜在安全隐患。然而,模型可解释性相关技术也可被攻击者利用以探测机器学习模型中的漏洞,因此会给机器学习模型以及真实应用场景中尤其是风险敏感场景中的机器学习应用带来威胁。
可解释性研究当前面临的一个挑战就是如何设计更精确、更友好的解释方法,消除解释结果与模型真实行为之间的不一致;第二个挑战就是如何设计更科学、更统一的可解释性评估指标,以评估可解释方法解释性能和安全性。
对于事前可解释性方法,主要是考虑如何设计可解释的机器学习模型以消除模型准确性与可解释性之间的制约;对于事后可解释性方法,大部分研究都尝试采用近似的方法来模拟模型的全局或局部的决策逻辑,因此要考虑如何设计忠实于决策模型的安全可保障的精确解释方法,以消除解释结果与模型真实行为之间的不一致性,从而保证解释结果的可靠性和安全性。
目前,可解释性研究领域缺乏一个用于评估解释方法的科学评估体系,在CV领域,许多解释方法的评估依赖人类的认识,只能定性评估,无法对解释方法的性能进行量化,也无法对同类型的研究工作进行精确地比较。对于事前可解释性方法,其评估挑战在于如何量化模型的内在解释能力;对于事后可解释性方法,其评估挑战在于如何量化解释结果的保真度和一致性。