积分梯度是用于解释神经网络决策的局部解释方法,源自于对梯度饱和问题的解决。该方法通过积分路径避免了梯度饱和,提供了一种线性近似模型来解释单个输入样本的预测原因。然而,积分梯度的结果对积分路径敏感,可能存在不唯一性,这引发了一些争议。积分梯度在解释神经网络时,能够展示每个特征对预测的重要性,有助于理解模型决策过程。
摘要由CSDN通过智能技术生成
y
^
=
f
(
x
)
的原因。有些模型本身就是可解释的,比如线性回归、决策树、朴素贝叶斯等;有些模型则很困难解释,比如神经网络
可解释性总体可以分为 “
事前可解释性
” 和 “
事后可解释性
”
-
事前(ante-hoc)可解释性
:指通过训练结构简单、可解释性好的模型或将可解释性结合到具体的模型结构中的自解释模型使模型本身具备可解释能力。
-
事后(post-hoc)可解释性
:指通过开发可解释性技术解释已训练好的机器学习模型。根据解释目标和解释对象的不同,post-hoc可解释性又可分为全局可解释性(global interpretability)和局部可解释性(local interpretability)。全局可解释性旨在帮助人们理解复杂模型背后的整体逻辑以及内部的工作机制,局部可解释性旨在帮助人们理解机器学习模型针对每一个输入样本的决策过程和决策依据。
其中事后可解释性又分为 “全局可解释性” 和 “局部可解释性”
-
全局可解释性
:一般指
模型告诉我们它眼中各类标签对应的样本应该具有什么样的特征
。具体来说,可以利用可理解的规则集合对模型生成可解释的符号描述;或从难解释模型中提取一个可解释模型;又或者我们把模型结果定住,反向找哪些输入能使得结果最显著,从而获取机器眼中某类对象的总体特征(对象甚至可以是抽象的概念)。下图是神经网络模型中代表 “happy” 和 “serious” 的图像特征(更多相关图像见
OpenAI Microscope
)
-
局部可解释性
:一般
以输入样本为导向,试图分析某个输入样本的每一维特征对模型最终决策结果的贡献
。经典的局部解释方法包括敏感性分析解释、局部近似解释、梯度反向传播解释、特征反演解释以及类激活映射解释等
下图给出可解释方法的粗略分类,更多详细说明,请参考:
机器学习的可解释性(总结)
-
本方法思想来自 “事后可解释性 - 局部解释 - 敏感性解释”,有趣的一点在于其给出的解释可以组成一个线性模型,因此其属于 “事后可解释性 - 局部解释 - 局部近似方法”
-
先说明一下 “敏感性解释” 的思想。我们知道每个样本由多个特征组成,记作
x
=
{
x
1
,
x
2
,
...
,
x
n
}
,这里特征的选取是多种多样的
-
对于传统ML方法,特征通常是直接给定的。比如西瓜书例子中,西瓜的 “色泽”、“敲声”…
-
在CV领域,特征可以是图像中的一个像素、一块区域…
-
在NLP领域,特征可以是句子中的一个单词、一个词组…
-
…
-
现在想要知道某个特征对做预测的重要程度,最简单的想法就是修改它的值或直接拿掉它,看看预测结果变化有多大,变化越大就越重要。看下面这个图像分类任务的例子,在测试图片的任意位置贴一个固定大小的灰色方块,看看方块贴各个位置时对于预测结果的影响,把综合结果显示为热力图(越偏蓝影响越大),如图可见这种方法找到的关键特征是比较合理的
这个方法中,方块的大小和颜色都是需要调整的超参数,而且解释结果对于这些超参数是敏感的
-
上面这个方法显然有些粗糙了,为了得到更精确的结果,做两个改动
-
方格尺寸缩小到一个像素
-
评估重要程度时,对某个方块(像素)施加微小扰动
\begin{aligned} \phi_i^{IG}(f,\pmb{x},\pmb{x}') &= \sum_{k=0}^{m}\frac{\partial f(\pmb{x}'+\frac{k}{n}(\pmb{x}-\pmb{x}'))}{\partial x_i}\triangle x_i \\ &= \sum_{k=0}^{m}\frac{\partial f(\pmb{x}'+\frac{k}{n}(\pmb{x}-\pmb{x}'))}{\partial x_i}\frac{1}{n}(x_i-x_i')\\ \end{aligned}
ϕ
i
I
G
(
f
,
x
,
x
′
)
=
k
=
0
∑
m
∂
x
i
∂
f
(
x
′
+
n
k
(
x
−
x
′
))
△
x
i
=
k
=
0
∑
m
∂
x
i
∂
f
(
x
′
+
n
k
(
x
−
x
′
))
n
1
(
x
i
−
x
i
′
)
再取个极限
\begin{aligned} \phi_i^{IG}(f,\pmb{x},\pmb{x}') &= \int_0^1\frac{\delta f(\pmb{x}'+\alpha(\pmb{x}-\pmb{x}'))}{\delta x_i}d\alpha(x_i-x_i') \\ &= (x_i-x_i') \int_0^1\frac{\delta f(\pmb{x}'+\alpha(\pmb{x}-\pmb{x}'))}{\delta x_i}d\alpha \end{aligned}
ϕ
i
I
G
(
f
,
x
,
x
′
)
=
∫
0
1
δ
x
i
δ
f
(
x
′
+
α
(
x
−
x
′
))
d
α
(
x
i
−
x
i
′
)
=
(
x
i
−
x
i
′
)
∫
0
1
δ
x
i
δ
f
(
x
′
+
α
(
x
−
x
′
))
d
α
注意,
虽然通常和上面一样选择
f(\pmb{x})-f(\pmb{x}') = \sum_i \phi_i^{IG}(f,\pmb{x},\pmb{x}') =\boldsymbol{\phi}^{IG}(f,\pmb{x},\pmb{x}')
f
(
x
)
−
f
(
x
′
)
=
i
∑
ϕ
i
I
G
(
f
,
x
,
x
′
)
=
ϕ
I
G
(
f
,
x
,
x
′
)
更重要的是,设
\theta_i (f,\pmb{x},\pmb{x}')= \int_0^1\frac{\delta f(\mathbf{x}'+\alpha(\mathbf{x}-\mathbf{x}'))}{\delta x_i}d\alpha
θ
i
(
f
,
x
,
x
′
)
=
∫
0
1
δ
x
i
δ
f
(
x
′
+
α
(
x
−
x
′
))
d
α
,有
f(\pmb{x})-f(\pmb{x}') = \boldsymbol{\phi}^{IG}(f,\pmb{x},\pmb{x}') =\big< (\pmb{x}-\pmb{x}'),\boldsymbol{\theta}(f,\pmb{x},\pmb{x}')\big>
f
(
x
)
−
f
(
x
′
)
=
ϕ
I
G
(
f
,
x
,
x
′
)
=
⟨
(
x
−
x