含蓄的四季豆 · 需要语音朗读的福音一个支持多语言朗读的离线语 ...· 3 周前 · |
有腹肌的警车 · C++ 异常处理机制的实现 - zzfx ...· 4 月前 · |
坚韧的竹笋 · FFmpeg命令行实现两路/多路视频拼接 ...· 5 月前 · |
曾深爱过的咖啡 · C语言学习笔记——结构体和共用体-阿里云开发者社区· 1 年前 · |
相关博客
【自然语言处理】【可解释性】NKB:用于预训练Transformers的神经知识银行
【自然语言处理】【可解释性】自注意力归因:解释Transformer内部的信息交互
【深度学习】【积分梯度】深度网络的公理归因(Axiomatic Attribution for Deep Networks)
【自然语言处理】【可解释性】Perturbed Masking:分析和解释BERT的无参数探针
【机器学习】【可解释性】LIME
【自然语言处理】【聚类】TELL:可解释神经聚类
【自然语言处理】【Prompt】语言模型即知识库(Language Models as Knowledge Bases)
【自然语言处理】【Prompt】P-tuning
人类做归因通常是依赖于反事实直觉。当人类将某些责任归因到一个原因上,隐含地会将缺失该原因的情况作为比较的基线(baseline)。例如,想睡觉的原因是困了,那么不困的时候就不想睡觉。
基于人类归因的原理,深度网络归因也需要一个基线(baseline)输入来模拟原因缺失的情况。在许多深度网络中,输入空间天然存在着一个baseline。例如,在目标识别网络中,纯黑图像就是一个基线。下面给出深度网络归因的正式定义:
定义 1 :假设存在一个函数 F ( x ) 的贡献。
首先,在使用图像神经网络预测病情的场景中,归因能够帮助医生了解是哪部分导致模型认为该患者生病了;其次,可以利用深度网络归因来为基于规则的系统提供洞见;最后,还可以利用归因来为推荐结构提供依据。
定义 :如果对于所有仅在一个特征上具有不同取值的输入(input)和基线(baseline),并且模型为两者给出了不同的预测。那么,那个不同取值的特征应该被赋予一个非0归因。若一个归因方法满足上面的要求,则称该归因方法满足 Sensitivity(a) 。
在线性模型中,如果要debug预测结果,模型开发人员仅需要检测模型系数和输入特征的乘积即可。对于深度网络来说,梯度可以看做是线性模型系数的类似物。因此,看起来将梯度和输入特征的乘积作为归因方法的起点是一个合理的选择。 但是,梯度违反了Sensitivity。
举例来说,一个单变量 x = 2 处为0。因此,这个例子中梯度违反了 Sensitivity 。
直觉上解释上面问题的原因就是,预测函数可能在输入处是平坦的,那么不论其与基线有多大的差异,其梯度均为0,这也导致缺乏敏感性。
方法 DeConvNets 和 Guided back-propagation 违反了 Sensitivity(a) 。
DeepLift 和 LRP(Layer-wise relevance propagation) 则使用基线来解决 Sensitivity 问题,其使用某种意义上的“离散梯度”来代替原始的连续梯度,并通过一个大的、离散的step来避免平坦的区域,从而避免破坏 Sensitivity 。但是, DeepLift 和 LRP 违反了 Implementation Invariance (下一个公理)。
functionally equivalent :如果两个网络对所有的输入均有相同的输出,则称这两个网络functionally equivalent(即忽略了网络的实现)。
Implementation Invariance :一个归因方法对于两个functionally equivalent网络的归因总是一致的,那么称该归因方法满足 Implementation Invariance 。
梯度的链式法则 \frac{\partial f}{\partial g}=\frac{\partial f}{\partial h}\cdot\frac{\partial h}{\partial g} ∂ g ∂ f = ∂ h ∂ f ⋅ ∂ g ∂ h 本质上是满足Implementation Invariance。将
DeepLift 和 LRP 使用离散梯度来替代梯度,并使用改进的反向传播来计算归因中的离散梯度。但是,离散梯度通常不满足链式法则,因此这些方法不满足 Implementation Invariance 。
积分梯度法是基于网络所表示的函数定义的,而不是具体的网络结构,因此其满足 Implementation Invariance 。
下面通过两步来证明积分梯度法的唯一性。首先,定义了一种称为路径方法(Path Methods)的归因方法,其是积分梯度法的推广,并证明路径方法(Path Methods)是唯一满足既定公理的方法;其次,我们讨论为什么积分梯度法是各种路径方法中的最优选择。
积分梯度法是沿着基线(baseline input)和输入(input)间的直线对梯度进行累计。但是,在这两点间存在着许多的路径,每种路径则对应着不同的归因方法。例如,在输入为2维的例子中,图1中的三条路径分别对应不同的归因方法。
(1) 路径方法满足公理Implementation Invariance
路径方法满足Implementation Invariance,原因同积分梯度法一致。即路径方法是基于网络所表示函数的梯度进行归因,与网络的实现无关。
(2) 路径方法满足公理Completeness
i
=
1
∑
n
PathIntegratedGrad
i
γ
(
x
)
=
F
(
x
)
−
F
(
x
′
)
(3) 路径方法满足公理Sensitivity(b)
公理Sensitivity(b)指的是,由网络实现的函数如果不依赖某些变量,那么这些变量上的归因为0。
基于梯度的方法均满足这个公理,路径方法同样也满足。
(4) 路径方法满足公理Linearity
公理Linearity指的是,如果使用两个深度网络建模的函数 b 进行加权求和。由于路径方法满足Completeness,那么显然满足Linearity。
路径方法(Path Methods)是仅有的始终满足Implementation Invariance、Sensitivity(b)、Linearity和Completeness的方法。 (Paths and consistency in additive cost sharing. Friedman 2004)
本部分解决了积分梯度法为什么是一个最优的选择。首先,其在数学上的定义最简单;其次,该方法满足对称保存。
(1) 如果交换两个输入变量不改变函数的值,那么称 输入变量关于该函数对称 。举例来说,如果对于所有的 F 对称。
(2) 如果输入中的对称变量具有相同的值,并且基线(baseline)在对称变量上也具有相同的值,如果输入中对称变量的归因相同,那么就称这样的归因方法是满足对称保持的。
(3) 举例来说,存在一个逻辑回归模型
积分梯度法是路径方法中唯一满足对称保持的方法。 (证明见原始论文附录A)
如果允许对多条路径的归因进行平均,那么也存在一些其他的方法满足对称保持。但是,多条路径平均的方法在计算成本上太高,不太适合深度网络。
1.1 应用积分梯度法的关键步骤是选择一个好的基线,基线在模型中的得分最好接近0,这样有助于对归因结果的解释。
1.2 基线必须代表一个完全没有信息的样本,这样才能区别出原因是来自输入还是基线。
1.3 在图像任务中可以选择全黑图像,或者由噪音组成的图像。在文本任务中,使用全0的embedding是一个较好的选择。
1.4 图像中的全黑图像也代表着一种有意义的输入,但是文本中的全0向量完全没有任何有效的意义。
积分梯度可以通过求和来高效地做近似计算,只需要将基线
\text{IntegratedGrad}_i^{approx}(x)::=(x_i-x'_i)\times \sum_{k=1}^m\frac{\partial F(x'+\frac{k}{m}\times (x-x'))}{\partial x_i}\times \frac{1}{m}
IntegratedGrad
i
a
pp
ro
x
(
x
)
::=
(
x
i
−
x
i
′
)
×
k
=
1
∑
m
∂
x
i
∂
F
(
x
′
+
m
k
×
(
x
−
x
′
))
×
m
1
其中,
深度网络的公理归因Axiomatic Attribution for Deep Networks一、简介本文研究的问题是,将深度网络的预测结果归因到输入的特征中。本文确定了两条归因的基本公理:Sensitivity和Implementation Invariance,并基于这两个公理设计了一种新的归因方法,称为积分梯度法(Integrated Gradients)。该论文之前的许多归因方法并不完全满足这两条公理。积分梯度法(Integrated Gradients)使用起来很简单,不需要修改原