Axiomatic Attribution for Deep Networks (Integrated Gradients) 论文阅读笔记

本文主要是介绍Axiomatic Attribution for Deep Networks (Integrated Gradients) 论文阅读笔记,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Axiomatic Attribution for Deep Networks

会议:ICLR
时间:2017年

本文首先提出两个可解释性模型的基本公理(fundamental axioms),敏感性(Sensitivity)和实现不变性(Implementation Invariance)。之后提出一个全新的可解释性算法积分梯度(Integrated Gradients),能有效解决现有梯度的可解释方法仅对单个图像进行解释,存在梯度饱和的问题。

1. Motivation and Summary of Results

本文主要研究将深度网络的预测归因于其输入特征的问题,对归因的定义如下:

定义1:假设用公式 F : R n → [ 0 , 1 ] F: R^n \rarr [0, 1] F:Rn[0,1]表示一个分类神经网络,且输入为 x = ( x 1 , … , x n ) ∈ R n x=(x_1,\ldots,x_n)\in\mathbb{R}^n x=(x1,,xn)Rn。输入 x x x的预测相对于baseline输入 x ′ x' x的归因可以用向量 A F ( x , x ′ ) = ( a 1 , … , a n ) ∈ R n A_F(x,x')=(a_1,\ldots,a_n)\in\mathbb{R}^n AF(x,x)=(a1,,an)Rn表示,其中 a i a_i ai表示维度 x i x_i xi对预测分数 F ( x ) F(x) F(x)的贡献度。

例如对于一个目标识别网络,归因方法可以告诉我们,模型在预测时对输入图像关注的部分。

然而基于归因方法的一个重要难题是其难以通过实验来评估。例如,我们很难将模型的错误与归因方法的错误区分开来,也就是我们不知道到底是模型的问题还是归因算法的问题,产生最后得到的结果。因此本文采用了一种公理化方法,根据一些基本原则来构建新的归因方法,以弥补以前方法的不足。这种方法有助于确保新的归因方法更符合理论要求。

而在后面章节也会对该可解释模型的实际应用进行讨论。

基线值问题:当我们想要将一件事的产生归因于哪些原因时,通常会生成一个基线值作为参考标准。比如一个我们看到桌子上有一个水杯(存在),那么没有水杯的桌子就是一个作为参考的基线值(不存在)。这也是为什么DeepLIFT等可解释模型要引入基线值的想法。其实我的理解还是需要考虑某个过程,因为当仅参考某单个样本(比如传统基于某张图象进行泰勒展开的梯度方式)时,归因的结果往往会受限于当前时刻的特性。

2. Two Fundamental Axioms

这里讨论两个基于归因方法的公理。这里将讨论一些主流基于归因的方法包括DeepLIFT,LRP,Deconv-net,Guided Back-propagation等。

2.1 Axiom:Sensitivity(a)

首先介绍公理敏感性,定义如下:如果对于每个输入和baseline在一个特征上的值不同并且预测的结果也不同,那么该特征对应的归因值就不应该为0。也就是一个输入特征发生变化进而引起结果发生改变,那么这个特征就应该有归因值。(实际上就是梯度饱和问题)

而基于梯度的方法违反了这一公理。假设有一个变量和一个带有ReLU的模型: f ( x ) = 1 − R e L U ( 1 − x ) f(x) = 1 - ReLU(1-x) f(x)=1ReLU(1x)。假设baseline为 x = 0 x=0 x=0,输入 x = 2 x=2 x=2。此时模型结果从0变为1,但因为模型 f f f x = 1 x=1 x=1处变得平坦,其梯度为0。根据基于梯度的方法,此部分的归因结果为0,因此违反了敏感性。这里主要的原因还是模型梯度饱和引起的。

这里引用[1]博客中的内容进一步解释一下:

敏感性准则要求归因技术在模型函数上梯度处处存在,本质上由于模型函数往往是一个非线性函数不可避免的存在梯度饱和的区域,当处于梯度饱和阶段时有效特征往往被无效归因,为此才要求梯度处处存在。比如在一个动物分类系统中,模型对大象进行学习时可能会以大象的鼻子作为判别依据(因为大象相对于其他种类的动物,鼻子格外的长),对一张大象图像进行识别的时候,在图像中大象的鼻子在初期相较于大象身高比值为0.2的时候,系统对该类别的置信度随着比值的增长逐渐提高(梯度存在),但鼻子到达足够长的时候(可能是0.5比例)系统对大象类别的置信度随比值增长而不再显著提高甚至停滞(梯度饱和),此时利用直接梯度的归因技术得到的结果在鼻子这个特征上将是不显著的,但是我们知道事实并非如此。因此,敏感性公理就是要求归因技术在面对梯度饱和的时候能够在辨识性特征上保留有效梯度,以致于合理归因。
在这里插入图片描述
**其他基于反向传播的方法。**此外,另一些方法通过反向传播的方式或通过贡献度分配,对图像进行归因,如DeepLIFT,LRP,Deconv-net,Guided Back-propagation。但Deconv-net,Guided Back-propagation算法违反了敏感性公理,因为仅当 ReLU 在输入处打开时,这些方法才会通过 ReLU 节点进行反向传播。这里举一个简单的例子,假设存在如下的一个网络:
在这里插入图片描述
首先我们固定输入 x 1 x_1 x1为一个大于1的值。之后改变 x 2 x_2 x2的值,可以发现输出结果随着 x 2 x_2 x2从0增加到 x 1 x_1 x1-1而逐渐减小,根据敏感性定理, x 2 x_2 x2应该被分配一个归因值。但根据back-propagated算法, x 2 x_2 x2的梯度在 R e L U ( z 1 − 1 − z 2 ) ReLU(z_1 - 1 - z_2) ReLU(z11z2)中为一个负值(因为 z 2 z_2 z2前面是负号),因此无法通过 R e L U ( x 2 ) ReLU(x_2) ReLU(x2)(在back-propagated算法中会过通过一个ReLU滤掉负值),进而证明Deconv-net,Guided Back-propagation算法违反了敏感性公理。

而DeepLIFT和LRP算法通过baseline的方法解决敏感度问题,并且在某种意义上通过计算”离散梯度“代替连续梯度作为输入,而两个方法最主要的区别就在于如何计算离散梯度。

下面是对离散梯度的理解:"离散梯度"指的是相对于输入的分段(或间断的)梯度。通常,神经网络中使用的梯度是瞬时梯度,它表示对输入微小变化的响应,即在输入的连续范围内微小变化的情况下的梯度。我的理解DeepLIFT就是通过计算输入于baseline之间的差距,计算贡献度,而LRP中虽然没有明说,但其也算是针对全0的baseline计算差距。

这种方式的优势我们以一个带有sigmoid的神经元为例:当x值特别大的时候,神经元的输出接近于1,此时的梯度近似为0。也就表明虽然该输入x对此神经元有最大的激活(也就是有用的),但其计算的归因为0。而如LRP中,当我们直接考虑根据神经元的输出值计算分配贡献度,就不会受到梯度为0的影响,因此归因的值也不会是0。

2.2 Axiom:Implementation Invariance

实现不变性的定义如下:如果两个网络对于所有的输入均有相同的输出,那么即使他们的实现方式不同,但这两个网络在功能上是等价的。归因方法应满足特征不变性,即在等价的网络上具有相同归因。(实际上就是不满足链式法则,同一结果有不同的模型对应)
这里接着借用[1]中提到的例子加深对特征不变性的理解:
F 1 F_1 F1 F 2 F_2 F2的内部实现不一致但满足 F 1 ( x ) = F 2 ( x ) F_1(x) = F_2(x) F1(x)=F2(x)时,称为这两个函数是功能等效的,此时若针对一个相同的输出值对这两个函数进行归因分析理应得到相同的归因结果,就称这个归因技术是满足实现不变性的。
在这里插入图片描述
然而DeepLIFT和LRP却违反了特征不变性,例子如下:
在这里插入图片描述
上图表示两个不同的模型 f f f g g g,能输出相同的结果,但其计算的归因结果却完全不同。

而基于梯度的方法在实现上是不变的,其主要是由于链式法则: ∂ f ∂ g = ∂ f ∂ h ⋅ ∂ h ∂ g \frac{\partial f}{\partial g}=\frac{\partial f}{\partial h}\cdot\frac{\partial h}{\partial g} gf=hfgh。比如 f f f g g g的梯度可以直接根据 ∂ f ∂ g \frac{\partial f}{\partial g} gf或根据链式法则计算,而不需要考虑中间 h h h的实现细节。但对于反向传播进行修改的LRP和DeepLIFT算法将连续梯度替换为离散梯度,不满足链式法则。即: f ( x 1 ) − f ( x 0 ) g ( x 1 ) − g ( x 0 ) ≠ f ( x 1 ) − f ( x 0 ) h ( x 1 ) − h ( x 0 ) ⋅ h ( x 1 ) − h ( x 0 ) g ( x 1 ) − g ( x 0 ) \frac{f(x_1)-f(x_0)}{g(x_1)-g(x_0)}\neq\frac{f(x_1)-f(x_0)}{h(x_1)-h(x_0)}\cdot \frac{h(x_1)-h(x_0)}{g(x_1)-g(x_0)} g(x1)g(x0)f(x1)f(x0)=h(x1)h(x0)f(x1)f(x0)g(x1)g(x0)h(x1)h(x0)

至于为什么不相等,举个例子: f ( x ) = 2 x , g ( x ) = x 2 , h ( x ) = x 3 f(x) = 2x, g(x)=x^2, h(x)=x^3 f(x)=2x,g(x)=x2,h(x)=x3,当 x 0 = 1 , x 1 = 2 x_0 = 1, x_1 = 2 x0=1,x1=2时结果不同。

3. Our Method:Integrated Gradients

假设存在一个神经网络 F : R n → [ 0 , 1 ] F:R^n \rightarrow [0,1] FRn[0,1]。令 x ∈ R n x \in R^n xRn表示真实输入, x ′ ∈ R n x' \in R^n xRn表示基线输入,在图像模型中,其一般表示为全黑的输入。

这里考虑 R n R^n Rn中的一条从 x ′ x' x x x x的直线路径(straightline path),并计算路径上每个点对应梯度。积分梯度定义为梯度沿从基线 x ′ x' x到输入 x x x的直线路径的路径积分。

输入 x x x和基线 x ′ x' x沿第 i i i维的积分梯度定义如下,其中 ∂ F ( x ) ∂ x i \frac{\partial F(x)}{\partial x_{i}} xiF(x)表示 F ( x ) F(x) F(x)沿第 i i i维度的梯度。

IntegratedGrads i ( x ) : : = ( x i − x i ′ ) × ∫ α = 0 1 ∂ F ( x ′ + α × ( x − x ′ ) ) ∂ x i d α \text{IntegratedGrads}_i(x)::=(x_i-x_i^{\prime})\times\int_{\alpha=0}^1\frac{\partial F(x^{\prime}+\alpha\times(x-x^{\prime}))}{\partial x_i}d\alpha IntegratedGradsi(x)::=(xixi)×α=01xiF(x+α×(xx))dα

其主要思想就是,当我们仅输入一张图像并对其进行泰勒展开计算梯度,会受到梯度饱和问题的影响。而通过这种方法,我们通过α控制图像像素值,从小到大,这样对应的激活值也不会一开始就处于饱和状态。此时将不同位置的梯度累加,即使某些像素在最后饱和了,但积分过程中会存在一些比较大的梯度,因此还是能有效识别部分饱和位置的梯度。可以用Sigmoid类似的函数理解。

但注意一点,这里的公式在求偏导时候用的是 x i x_i xi而不是 x i ′ x'_i xi,为什么可以这么写还没理解明白

此处,本文发现积分梯度满足一个全新的公理,**完备性Completeness,**即归因相加等于输入 x x x的结果 F F F与基线 x ′ x′ x作为输入得到的结果之间的差值,如下所示:

命题1:如果 F : R n → R F:R^n \rightarrow R FRnR几乎处处可微,则:

Σ i = 1 n IntegratedGrads i ( x ) = F ( x ) − F ( x ′ ) \Sigma_{i=1}^n\text{IntegratedGrads}_i(x)=F(x)-F(x^{\prime}) Σi=1nIntegratedGradsi(x)=F(x)F(x)

由于baseline的结果约等于0,因此可得 Σ i = 1 n IntegratedGrads i ( x ) = F ( x ) \Sigma_{i=1}^n\text{IntegratedGrads}_i(x)=F(x) Σi=1nIntegratedGradsi(x)=F(x),满足完备性。

下面将说明此算法为何满足第二节的公理:

**实现不变性:**由于本方法是基于梯度的方法,无需考虑中间实现过程,因此满足实现不变性。

**敏感性:**由于本方法满足完备性,而完备性是敏感性的更高实现,因此本方法必定满足敏感性。而完备性之所以是敏感性的更高实现,我的理解是如果一个像素的改变导致 F ( x ) F(x) F(x)改变,那么其对应的归因值也一定应该发生改变,否则公式 Σ i = 1 n IntegratedGrads i ( x ) = F ( x ) \Sigma_{i=1}^n\text{IntegratedGrads}_i(x)=F(x) Σi=1nIntegratedGradsi(x)=F(x)则不能成立。

综上,本文提出的方法能同时满足实现不变性和敏感性。

4. Uniqueness of Integrated Gradients

目前存在许多评估可解释模型可信度的方法。如在目标检测任务的背景下,通常会选择 k k k个解释分数最大的像素,改变这些像素的值后查看预测分数的下降程度。如果分数有较大下降则表示这 k k k个像素的解释是有意义的。但像素扰动产生的图像可能不自然,并且分数下降可能只是因为网络在训练中从未见过类似的情况。

另有一些方法通过人工构建目标box,并计算框内解释像素的百分比。然而在一些情况下,背景中的上下文也会对预测做出贡献。下图中的菜粉蝶图像就是一个很好的例子,其中叶子上的像素也通过积分梯度呈现出来。

在这里插入图片描述
但发现这些方法无法有效区分解释图像的差异是由哪种问题导致的:扰动数据引起的问题、模型不正常行为引起的问题,以及解释方法本身存在问题。

由于经验评估方法无法清晰区分这些问题的根本原因,研究者决定采用一种公理化的方法来设计一个好的解释方法,即依赖于一组公理或原则来构建解释方法。这种方法的设计基于数学公理,确保解释方法满足一些重要性质(如"敏感性"和"实现不变性"),从而提高解释方法的质量和可信度。研究者认为,通过采用公理化的方法,他们可以更清晰地定义什么样的解释方法被视为"好",并且能够确保所设计的解释方法满足一些基本原则。这种方法帮助他们提高了对解释方法性能的理论理解,从而更可靠地解决了问题。

下面包括一部分讨论梯度积分的合理性,但这里就不展开介绍了,该部分主要是丰富论文内容的,实际学习意义感觉并不大,这里只简单介绍以下路径积分梯度。

4.1 Path Methods

本文提出的积分梯度方法提出通过直线的路径计算输入与baseline的积分梯度。而实际上,在两点之间可以由很多不同的路径,而不同的路径构成了不同的归因方法。如下图所示:

在这里插入图片描述
下面对路径积分梯度给出一个标准公式,其中 γ = ( γ 1 , … , γ n ) : [ 0 , 1 ] → R n \gamma=(\gamma_1,\ldots,\gamma_n):[0,1]\to\mathbb{R}^n γ=(γ1,,γn):[0,1]Rn x ′ x' x x x x的一条路径, γ ( 0 ) = x ′ \gamma(0)=x' γ(0)=x γ ( 1 ) = x \gamma(1)=x γ(1)=x。此路径函数 γ ( α ) \gamma(\alpha ) γ(α)的定义如下:

γ ( α ) = x ′ + α × ( x − x ′ ) , α ∈ [ 0 , 1 ] \gamma(\alpha)=x^{\prime}+\alpha\times(x-x^{\prime}),\alpha\in[0,1] γ(α)=x+α×(xx),α[0,1]

其表示 α \alpha α下的输入图像 γ ( α ) \gamma(\alpha ) γ(α)。想要选择不同的路径,只需要设置不同的 α \alpha α即可。对于输入 x x x的第 i i i维特征,沿着路径梯度积分的定义如下:

P a t h I n t e g r a t e d G r a d s i γ ( x ) : : = ∫ α = 0 1 ∂ F ( γ ( α ) ) ∂ γ i ( α ) ∂ γ i ( α ) ∂ α d α \mathsf{PathIntegratedGrads}_i^\gamma(x)::=\int_{\alpha=0}^1\frac{\partial F(\gamma(\alpha))}{\partial\gamma_i(\alpha)}\frac{\partial\gamma_i(\alpha)}{\partial\alpha}d\alpha PathIntegratedGradsiγ(x)::=α=01γi(α)F(γ(α))αγi(α)dα

注意与梯度积分的差别,这里不是对 x i x_i xi求偏导,而是对输入图像 γ i ( α ) \gamma_i(\alpha ) γi(α)求偏导。理论上这里的解释更正确。

这里的重点是不同的路径构成了不同的归因方法,我们可以通过选择一些特殊的路径进行归因,以得到更准确的效果,但本文还是主要讨论使用直线作为路径的合理性。

5. Applying Integrated Gradients

5.1 Selecting a Benchmark

应用积分梯度的一个关键就是选择一个好的baseline,通常情况下我们希望选择的baseline的分数应尽可能为0(不包含任何信号),这样才能将归因结果仅归结于输入值。

在目标识别模型中,通常使用全黑的输入图像作为baseline。然而,一些全噪声合成图像同样可能输出值为0,可以作为baseline。但全黑图像得到的归因结果在视觉上具有清晰的边缘。而在自然语言处理中,通常使用全0的参考embedding vector。

5.2 Computing Integrated Gradients

在实际运算中,通常通过求和的方式逼近积分,公式如下:

IntegratedGrads i a p p r o x ( x ) : : = ( x i − x i ′ ) × Σ k = 1 m ∂ F ( x ′ + k m × ( x − x ′ ) ) ) ∂ x i × 1 m \text{IntegratedGrads}_i^{approx}(x)::=(x_i-x_i')\times\Sigma_{k=1}^m\frac{\partial F(x'+\frac km\times(x-x')))}{\partial x_i}\times\frac1m IntegratedGradsiapprox(x)::=(xixi)×Σk=1mxiF(x+mk×(xx)))×m1

其中m为积分的黎曼和近似的步值,在实际测试中,当选取20到300步值足以在5%的偏差内近似积分。

Reference

[1]. https://zhuanlan.zhihu.com/p/428131762

这篇关于Axiomatic Attribution for Deep Networks (Integrated Gradients) 论文阅读笔记的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/344454

相关文章

JAVA智听未来一站式有声阅读平台听书系统小程序源码

智听未来,一站式有声阅读平台听书系统 🌟 开篇:遇见未来,从“智听”开始 在这个快节奏的时代,你是否渴望在忙碌的间隙,找到一片属于自己的宁静角落?是否梦想着能随时随地,沉浸在知识的海洋,或是故事的奇幻世界里?今天,就让我带你一起探索“智听未来”——这一站式有声阅读平台听书系统,它正悄悄改变着我们的阅读方式,让未来触手可及! 📚 第一站:海量资源,应有尽有 走进“智听

AI hospital 论文Idea

一、Benchmarking Large Language Models on Communicative Medical Coaching: A Dataset and a Novel System论文地址含代码 大多数现有模型和工具主要迎合以患者为中心的服务。这项工作深入探讨了LLMs在提高医疗专业人员的沟通能力。目标是构建一个模拟实践环境,人类医生(即医学学习者)可以在其中与患者代理进行医学

【学习笔记】 陈强-机器学习-Python-Ch15 人工神经网络(1)sklearn

系列文章目录 监督学习:参数方法 【学习笔记】 陈强-机器学习-Python-Ch4 线性回归 【学习笔记】 陈强-机器学习-Python-Ch5 逻辑回归 【课后题练习】 陈强-机器学习-Python-Ch5 逻辑回归(SAheart.csv) 【学习笔记】 陈强-机器学习-Python-Ch6 多项逻辑回归 【学习笔记 及 课后题练习】 陈强-机器学习-Python-Ch7 判别分析 【学

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识

论文翻译:arxiv-2024 Benchmark Data Contamination of Large Language Models: A Survey

Benchmark Data Contamination of Large Language Models: A Survey https://arxiv.org/abs/2406.04244 大规模语言模型的基准数据污染:一项综述 文章目录 大规模语言模型的基准数据污染:一项综述摘要1 引言 摘要 大规模语言模型(LLMs),如GPT-4、Claude-3和Gemini的快

论文阅读笔记: Segment Anything

文章目录 Segment Anything摘要引言任务模型数据引擎数据集负责任的人工智能 Segment Anything Model图像编码器提示编码器mask解码器解决歧义损失和训练 Segment Anything 论文地址: https://arxiv.org/abs/2304.02643 代码地址:https://github.com/facebookresear

数学建模笔记—— 非线性规划

数学建模笔记—— 非线性规划 非线性规划1. 模型原理1.1 非线性规划的标准型1.2 非线性规划求解的Matlab函数 2. 典型例题3. matlab代码求解3.1 例1 一个简单示例3.2 例2 选址问题1. 第一问 线性规划2. 第二问 非线性规划 非线性规划 非线性规划是一种求解目标函数或约束条件中有一个或几个非线性函数的最优化问题的方法。运筹学的一个重要分支。2

【C++学习笔记 20】C++中的智能指针

智能指针的功能 在上一篇笔记提到了在栈和堆上创建变量的区别,使用new关键字创建变量时,需要搭配delete关键字销毁变量。而智能指针的作用就是调用new分配内存时,不必自己去调用delete,甚至不用调用new。 智能指针实际上就是对原始指针的包装。 unique_ptr 最简单的智能指针,是一种作用域指针,意思是当指针超出该作用域时,会自动调用delete。它名为unique的原因是这个

查看提交历史 —— Git 学习笔记 11

查看提交历史 查看提交历史 不带任何选项的git log-p选项--stat 选项--pretty=oneline选项--pretty=format选项git log常用选项列表参考资料 在提交了若干更新,又或者克隆了某个项目之后,你也许想回顾下提交历史。 完成这个任务最简单而又有效的 工具是 git log 命令。 接下来的例子会用一个用于演示的 simplegit

记录每次更新到仓库 —— Git 学习笔记 10

记录每次更新到仓库 文章目录 文件的状态三个区域检查当前文件状态跟踪新文件取消跟踪(un-tracking)文件重新跟踪(re-tracking)文件暂存已修改文件忽略某些文件查看已暂存和未暂存的修改提交更新跳过暂存区删除文件移动文件参考资料 咱们接着很多天以前的 取得Git仓库 这篇文章继续说。 文件的状态 不管是通过哪种方法,现在我们已经有了一个仓库,并从这个仓