Bias Also Matters: Bias Attribution for Deep Neural Network Explanation
会议:ICML
时间:2019年
此前提出的归因可解释方法认为可以将一个非线性的DNNs模型,在输入图像位置展开成线性模型(即 g ( x ) = w x + b g(x)=wx+b g(x)=wx+b),以解释不同输入特征的重要性。但这些方法均忽略了偏置项 b b b的重要性。本文发现偏置项b对于解释一个神经网络的归因来说是不可或缺的,并且提出一个全新的算法“bias back-propagation(BBp)”从网络输出到输入计算偏置项的贡献度,得到偏置的归因。与基于反向传播的算法结合,可以完全还原出对于输入图像的局部线性模型 g ( x ) = w x + b g(x)=wx+b g(x)=wx+b。
1. Introduction
通常情况下,如果模型是线性的,梯度就能近似表示其权重向量。由于线性模型可以局部逼近任何足够平滑的非线性模型(泰勒展开),因此梯度也可以看作是给定数据点上给定DNN的局部线性模型的权重向量。而对于一个分段线性的DNN模型(例如使用ReLU,LeakyReLU,PReLU和hard tanh为激活函数的模型来说)梯度可以表示为其局部线性模型的权重,因为这些激活函数实际上没有非线性的部分,都是通过直线构成的,可以写成线性的形式。
然而,尽管梯度能有效帮助我们理解现有的DNN模型,但目前还没有方法对其中的偏置项的作用进行研究。对于分类任务来说,线性模型的梯度部分对目标标签输出概率的贡献可以忽略不计(甚至是负对数值),只有在偏置项较大的情况下,目标标签的概率才会大于其他标签,从而得出正确的预测结果,实验表明,当仅用偏置项作为预测都能达到完整DNN 30%-40%的结果。这就证明了偏置项在DNN中的重要性。
2. Related Work
此部分主要就是介绍之前出现的基于梯度的可解释算法,并提出他们都没有明确研究偏置项的重要性。
3. Background and Motivation
通常一个前馈神经网络如下所示:
f ( x ) = W m ψ m − 1 ( W m − 1 ψ m − 2 ( … ψ 1 ( W 1 x + b 1 ) … ) + b m − 1 ) + b m (1) f(x) = W_m\psi_{m-1}(W_{m-1}\psi_{m-2} (\ldots\psi_1(W_1x+b_1)\ldots)+b_{m-1})+b_m \tag{1} f(x)=Wmψm−1(Wm−1ψm−2(…ψ1(W1x+b1)…)+bm−1)+bm(1)
其中 W i W_i Wi为权重矩阵, b i b_i bi为偏置项(标量), ψ i \psi_i ψi为响应的激活函数。 x ∈ X x \in X x∈X为包含 d i n d_{in} din维度的输入数据, f ( x ) f(x) f(x)为维度为 d o u t d_{out} dout的输出结果,每个隐藏层 i i i对应 d i d_i di个点(维度)。在后续计算中,并没有考虑softmax层。
3.1 Piecewise Linear Deep Neural Networks
在本文中,主要关注具有分段线性激活函数的DNN网络(比如使用GELU等激活函数的模型则不满足这一条件)。分段线性激活函数主要包括ReLU、Leaky ReLU、PReLU和hard tanh函数。
对于一个分段线性激活函数应用于一个实际的输入值 z z z的一般形式如下:
ψ ( z ) = { c ( 0 ) ⋅ z , i f z ∈ ( η 0 , η 1 ] c ( 1 ) ⋅ z , i f z ∈ ( η 1 , η 2 ] ⋯ , ⋯ c ( h − 1 ) ⋅ z , i f z ∈ ( η h − 1 , η h ) (2) \left.\psi(z)=\left\{\begin{array}{rl}c^{(0)}\cdot z,&\mathrm{if~}z\in(\eta_0,\eta_1]\\c^{(1)}\cdot z,&\mathrm{if~}z\in(\eta_1,\eta_2]\\\cdots,\cdots\\c^{(h-1)}\cdot z,&\mathrm{if~}z\in(\eta_{h-1},\eta_h)\end{array}\right.\right. \tag{2} ψ(z)=⎩ ⎨ ⎧c(0)⋅z,c(1)⋅z,⋯,⋯c(h−1)⋅z,if z∈(η0,η1]if z∈(η1,η2]if z∈(ηh−1,ηh)(2)
上面的公式中,包含了 h h h个线性段,其对应于实轴上的h个预定区间(比如ReLU包括2个线性段)。这里将 z z z的激活模式 ϕ ( z ) \phi(z) ϕ(z)定义为包含 z z z的区间的索引,其可以为0到h-1的任意一个值,用于决定究竟选择哪个线性段。例如,在一个ReLU激活函数 ψ R e L U ( z ) = max ( 0 , z ) \psi_{ReLU}(z)=\max(0,z) ψReLU(z)=max(0,z)中,其激活模式 ϕ ( z ) ∈ { 0 , 1 } d i \phi(z) \in \{0,1\}^{d_i} ϕ(z)∈{0,1}di,其对应的 η 0 = − ∞ \eta_0 = -\infty η0=−∞, η 1 = 0 \eta_1 = 0 η1=0, η 2 = + ∞ \eta_2 = +\infty η2=+∞。假设 z z z为4的时候,满足区间2,此时 ϕ ( z ) = 1 \phi(z) =1 ϕ(z)=1表示选择 c ( 1 ) c^{(1)} c(1)。而在ReLU中,小于0的部分置为0,大于0的部分保留原值,因此 c ( 0 ) = 0 c^{(0)} = 0 c(0)=0, c ( 1 ) = 1 c^{(1)} = 1 c(1)=1。
而分段线性激活函数可以使DNN在输入点 x x x附近变为分段线性函数。具体来说,对于DNN的每个线性部分有:
f ( x ) = ∏ i = 1 m W i x x + ( ∑ j = 2 m ∏ i = j m W i x b j − 1 x + b m ) = ∂ f ( x ) ∂ x x + b x . (3) \begin{aligned} f(x)=& \prod_{i=1}^mW_i^xx+\left(\sum_{j=2}^m\prod_{i=j}^mW_i^xb_{j-1}^x+b_m\right) \\ =& \frac{\partial f(x)}{\partial x}x+b^x. \end{aligned} \tag{3} f(x)==i=1∏mWixx+(j=2∑mi=j∏mWixbj−1x+bm)∂x∂f(x)x+bx.(3)
其中 W i x W_i^x Wix和 b i x b_i^x bix由模型中 W i W_i Wi和 b i b_i bi修改而来,满足:
x i + 1 = ψ i ( W i x i + b i ) = W i x x i + b i x (4) \begin{aligned}x_{i+1}=\psi_i(W_ix_i+b_i)=W_i^xx_i+b_i^x\end{aligned} \tag{4} xi+1=ψi(Wixi+bi)=Wixxi+bix(4)
其中 x i x_i xi为第 i i i层的激活,可以根据公式4推出公式3。而 W i x W_i^x Wix和 b i x b_i^x bix中每一行和每个元素的定义如下:
W
i
x
[
p
]
=
c
(
ϕ
(
W
i
x
i
+
b
i
)
[
p
]
)
⋅
W
i
,
a
n
d
b
i
x
[
p
]
=
c
(
ϕ
(
W
i
x
i
+
b
i
)
[
p
]
)
⋅
b
i
.
(5)
\begin{aligned}W_i^x[p]&=c^{(\phi(W_ix_i+b_i)[p])}\cdot W_i,\\\mathrm{and}\quad b_i^x[p]&=c^{(\phi(W_ix_i+b_i)[p])}\cdot b_i.\end{aligned} \tag{5}
Wix[p]andbix[p]=c(ϕ(Wixi+bi)[p])⋅Wi,=c(ϕ(Wixi+bi)[p])⋅bi.(5)
也就是直接用
c
c
c中的元素与
W
i
W_i
Wi和
b
i
b_i
bi点乘。具体的实现可以预先根据
(
W
i
x
i
+
b
i
)
[
p
]
(W_ix_i+b_i)[p]
(Wixi+bi)[p]的值构建一个矩阵
C
C
C,满足大于0则
C
[
p
]
C[p]
C[p]全部设置为1,小于0则
C
[
p
]
C[p]
C[p]全部设置为0。
举个例子:
假设某一层 x i + 1 = ψ i ( W i x i + b i ) x_{i+1}=\psi_i(W_ix_i+b_i) xi+1=ψi(Wixi+bi),其中 x i ∈ R D i n x_i \in R^{D_{in}} xi∈RDin和 x i + 1 ∈ R D o u t x_{i+1} \in R^{D_{out}} xi+1∈RDout分别表示第 i i i层和第 i + 1 i+1 i+1层的向量。 W i ∈ R D o u t × D i n W_i \in R^{D_{out} \times D_{in} } Wi∈RDout×Din, b i ∈ R D o u t b_i \in R^{D_{out}} bi∈RDout。假设 ψ i \psi_i ψi为ReLU,我们可以构建一个矩阵 C ∈ R D o u t × D o u t C \in R^{D_{out} \times D_{out}} C∈RDout×Dout和向量 B ∈ R D o u t B \in R^{D_{out} } B∈RDout其中 C C C中的第 p p p行和 B B B中第 p p p个元素根据 ( W i x i + b i ) [ p ] (W_ix_i+b_i)[p] (Wixi+bi)[p]计算。
通过这种方式,就可以将一个分段线性模型在 x x x局部近似成上述线性模型,且梯度 ∂ f ( x ) ∂ x \frac{\partial f(x)}{\partial x} ∂x∂f(x)表示线性模型的权重向量。
3.2 Attribution of DNN Outputs to Inputs
对于一个给定的输入点 x x x,用 f ( x ) f(x) f(x)表示最终预测得分。根据公式3,对于一个带分段线性的DNN网络,我们可以通过反向传播计算梯度 ∂ f ( x ) ∂ x \frac{\partial f(x)}{\partial x} ∂x∂f(x)表示其权重,而对于偏置 b b b则无法简单计算出,且没有人对偏置进行分析。
一个可能的原因是因为偏置本身只是一个标量,相对于权重向量不太重要,仅包含有关深度模型决策的次要信息。但由于应用于每个神经元的偏置项对决定激活模式至关重要(例如,将神经元的输出从负值变为正值用于 ReLU),因此本文希望能通过揭示偏置项的生成过程对深度模型的行为有更好的理解。
此外在分类模型中可以发现,部分权重项
∂
f
(
x
)
∂
x
x
\frac{\partial f(x)}{\partial x} x
∂x∂f(x)x对于决策只能起到小的甚至负作用,在这种情况下,忽略偏置项可能会提供错误的归因结果。在直觉上,偏置项还改变了分段线性 DNN 的几何形状,如下图所示,这表示偏置本身也是DNN的重要组成部分,对于分类决策起到重要的作用。
因此本文将着重于对偏置项进行解释,以得到能与权重互补的偏置项解释。
4. Bias Backpropagation for Bias Attribution
本节的目的是找到一个与输入维度 d i n d_{in} din相同的向量 β \beta β,对于每个样本满足: ∑ p = 1 d i n β [ p ] = b x \sum_{p=1}^{d_{i\boldsymbol{n}}}\beta[p]=b^{\boldsymbol{x}} ∑p=1dinβ[p]=bx,因为在公式3中的偏置只是一个标量,而如果想知道其对每个特征的归因就要构建一个输入维度为 d i n d_{in} din的向量。下面将提出一种基于反向传播的计算Bias的算法(我觉得主要思想和LRP很像,都是模拟)。
4.1 Bias Backpropagation(BBp)
假设 x l x_l xl为某个中间层的输入,满足 l ≥ 2 l \geq 2 l≥2,即:
x ℓ = ψ ℓ − 1 ( W ℓ − 1 x ℓ − 1 + b ℓ − 1 ) = ψ ℓ − 1 ( W ℓ − 1 ψ ℓ − 2 ( … ψ 1 ( W 1 x + b 1 ) … ) + b ℓ − 1 ) (6) \begin{aligned}x_\ell=&\psi_{\ell-1}(W_{\ell-1}x_{\ell-1}+b_{\ell-1})\\=&\psi_{\ell-1}(W_{\ell-1}\psi_{\ell-2}(\ldots\psi_1(W_1x+b_1)\ldots)+b_{\ell-1})\end{aligned} \tag{6} xℓ==ψℓ−1(Wℓ−1xℓ−1+bℓ−1)ψℓ−1(Wℓ−1ψℓ−2(…ψ1(W1x+b1)…)+bℓ−1)(6)
我们根据公式3中递归,可以用任意层 l l l的输入 x l x_l xl表示最后的输出 f ( x ) f(x) f(x)。因此可以得到如下引理:
引理1:给定 x x x,一个分段线性DNN的输出 f ( x ) f(x) f(x)可以写成任意层 l > 2 l > 2 l>2 的输入 x l x_l xl的线性模型( x 1 = x x_1 = x x1=x为原始数据),定义如下:
f ( x ) = ( ∏ i = ℓ m W i x ) x ℓ + ( ∑ j = ℓ + 1 m ∏ i = j m W i x b j − 1 x + b m ) (7) f(x)=\left(\prod_{i=\ell}^mW_i^x\right)x_\ell+\left(\sum_{j=\ell+1}^m\prod_{i=j}^mW_i^xb_{j-1}^x+b_m\right) \tag{7} f(x)=(i=ℓ∏mWix)xℓ+ j=ℓ+1∑mi=j∏mWixbj−1x+bm (7)
对于 l l l层每个节点 x l [ p ] x_l[p] xl[p],我们的目的是计算 β l [ p ] \beta_l[p] βl[p],其应该满足:
∑ p = 1 d ℓ β ℓ [ p ] = ∑ j = ℓ + 1 m ∏ i = j m W i x b j − 1 x + b m (8) \sum_{p=1}^{d_\ell}\beta_\ell[p]=\sum_{j=\ell+1}^m\prod_{i=j}^mW_i^xb_{j-1}^x+b_m \tag{8} p=1∑dℓβℓ[p]=j=ℓ+1∑mi=j∏mWixbj−1x+bm(8)
因此公式7可以写成 d l d_l dl求和的形式,即:
f ( x ) = ∑ p = 1 d ℓ [ ( ∏ i = ℓ m W i x ) [ p ] ⋅ x ℓ [ p ] + β ℓ [ p ] ] (9) f(x)=\sum_{p=1}^{d_\ell}\left[\left(\prod_{i=\ell}^mW_i^x\right)[p]\cdot x_\ell[p]+\beta_\ell[p]\right] \tag{9} f(x)=p=1∑dℓ[(i=ℓ∏mWix)[p]⋅xℓ[p]+βℓ[p]](9)
上式给出了输出f(x)在DNN的每个中间层节点 x l [ p ] x_l[p] xl[p]上的归因。其主要分为两部分,梯度归因和偏置归因。观察公式8等号右侧可以发现,其实际上为层 l l l到最后一层偏置项的总和(只不过不同层 b b b前面的 W W W不一样,在这个公式中 b m b_m bm表示最后一层,而 ∏ i = j m W i x b j − 1 x \prod_{i=j}^mW_i^xb_{j-1}^x ∏i=jmWixbj−1x表示层 j − 1 j-1 j−1),因此可以尝试设计一种递归规则,根据 l l l层的归因 β l \beta_l βl计算 l − 1 l-1 l−1层偏置的归因。
具体来说,可以模拟LRP贡献度分配,将 β l [ p ] \beta_l[p] βl[p]分配到 l − 1 l-1 l−1层的不同 x l − 1 [ q ] x_{l-1}[q] xl−1[q]上,并且保证这些归因之和依然为 β l [ p ] \beta_l[p] βl[p],这里用 B l [ p , q ] B_l [p,q] Bl[p,q]表示偏置的归因在 x l [ p ] x_l[p] xl[p]和 x l − 1 [ q ] x_{l-1}[q] xl−1[q]上的信息交流。下面对 B B B进行定义:
B ℓ [ p , q ] ≜ α ℓ [ p , q ] × β ℓ [ p ] (10) B_{\ell}[p,q]\triangleq\alpha_{\ell}[p,q]\times\beta_{\ell}[p] \tag{10} Bℓ[p,q]≜αℓ[p,q]×βℓ[p](10)
其中 α l [ p , q ] \alpha_l[p,q] αl[p,q]表示 x l − 1 [ q ] x_{l-1}[q] xl−1[q]对 x l [ p ] x_l[p] xl[p]的贡献度,其满足:
∑ q = 1 d ℓ − 1 α ℓ [ p , q ] = 1 a n d , ∀ p ∈ [ d ℓ ] , q ∈ [ d ℓ − 1 ] (11) \sum_{q=1}^{d_{\ell-1}}\alpha_\ell[p,q]=1\mathrm{~and,~}\forall p\in[d_\ell],q\in[d_{\ell-1}] \tag{11} q=1∑dℓ−1αℓ[p,q]=1 and, ∀p∈[dℓ],q∈[dℓ−1](11)
后面将介绍其计算方法。
对于
l
−
1
l-1
l−1层节点
x
l
−
1
[
q
]
x_{l-1}[q]
xl−1[q]的偏置归因
β
l
−
1
[
q
]
\beta_{l-1}[q]
βl−1[q]的计算方式如下:
β ℓ − 1 [ q ] = ∏ i = ℓ m W i x b j − 1 x + ∑ p = 1 d ℓ B ℓ [ p , q ] (12) \beta_{\ell-1}[q]=\prod_{i=\ell}^mW_i^xb_{j-1}^x+\sum_{p=1}^{d_\ell}B_\ell[p,q] \tag{12} βℓ−1[q]=i=ℓ∏mWixbj−1x+p=1∑dℓBℓ[p,q](12)
注意前面的 B l [ p , q ] B_l [p,q] Bl[p,q]只是通过信息交流计算出 b m b_m bm,而不是偏置的归因,因为真正的归因要加上前面其他层的偏置 b b b。而也很容易证明,对其求和可得到的:
∑ q = 1 d ℓ − 1 β ℓ − 1 [ q ] = ∑ j = ℓ m ∏ i = j m W i x b j − 1 x + b m (13) \sum_{q=1}^{d_{\ell-1}}\beta_{\ell-1}[q]=\sum_{j=\ell}^m\prod_{i=j}^mW_i^xb_{j-1}^x+b_m \tag{13} q=1∑dℓ−1βℓ−1[q]=j=ℓ∑mi=j∏mWixbj−1x+bm(13)
而其同样可以写成如公式9的形式,即:
f ( x ) = ∑ q = 1 d ℓ − 1 [ ( ∏ i = ℓ − 1 m W i x ) [ q ] ⋅ x ℓ − 1 [ q ] + β ℓ − 1 [ q ] ] (14) f(x)~=~\sum_{q=1}^{d_{\ell-1}}\left[\left(\prod_{i=\ell-1}^{m}W_{i}^{x}\right)[q]\cdot x_{\ell-1}[q]+\beta_{\ell-1}[q]\right] \tag{14} f(x) = q=1∑dℓ−1[(i=ℓ−1∏mWix)[q]⋅xℓ−1[q]+βℓ−1[q]](14)
因此我们可以从最后一层递归地应用公式10-12,从最后一层计算到第一层。整体算法如下所示:
4.2 Options to Compute Attribution Scores in α l [ p ] \alpha_l[p] αl[p]
本段将主要介绍 α l [ p ] \alpha_l[p] αl[p]的设计规则。通常 α l [ p , q ] \alpha_l[p,q] αl[p,q]表示 x l [ p ] x_l[p] xl[p]的偏差应有多少归因于 x l − 1 [ p ] x_{l-1}[p] xl−1[p]。因此本段共设计三种规则,第一种为compensation for the weight or gradient term,剩余两种为contribution of the gradient term。
第一种:
已知 x ℓ [ p ] = ∑ r : = 1 d l − 1 W ℓ − 1 x [ p , r ] x ℓ − 1 [ r ] + b ℓ x [ p ] x_\ell[p]=\sum_{r:=1}^{d_{l-1}}W_{\ell-1}^x[p,r]x_{\ell-1}[r]+b_\ell^x[p] xℓ[p]=∑r:=1dl−1Wℓ−1x[p,r]xℓ−1[r]+bℓx[p],假设 b ℓ x [ p ] b_\ell^x[p] bℓx[p]为负,则表明梯度分量 ∑ r : = 1 d l − 1 W ℓ − 1 x [ p , r ] x ℓ − 1 [ r ] \sum_{r:=1}^{d_{l-1}}W_{\ell-1}^x[p,r]x_{\ell-1}[r] ∑r:=1dl−1Wℓ−1x[p,r]xℓ−1[r]要大于本来应达到的值,因此这里要加入一个负的偏置分量 b ℓ x [ p ] b_\ell^x[p] bℓx[p],以得到输出 x ℓ [ p ] x_\ell[p] xℓ[p]。因此,根据梯度分量,应该为下层分配一个更大的偏置(因为相当于模型更关注此部分的分量,其实在计算的时候还是主要考虑梯度分量)。同理,对于 b ℓ x [ p ] b_\ell^x[p] bℓx[p]为正的情况,表示梯度分量没有达到desirable,因此对其分配一个较小的权重。公式如下:
α ℓ [ p , q ] = 1 e ( l − 1 , p , q ) = 1 exp ( s ℓ [ p , q ] / T ) ∑ r = 1 d ℓ − 1 1 e ( l − 1 , p , r ) = 1 exp ( s ℓ [ p , r ] / T ) (15) \alpha_\ell[p,q]=\frac{\mathbf{1}_{e(l-1,p,q)=1}\exp(s_\ell[p,q]/T)}{\sum_{r=1}^{d_{\ell-1}}\mathbf{1}_{e(l-1,p,r)=1}\exp(s_\ell[p,r]/T)} \tag{15} αℓ[p,q]=∑r=1dℓ−11e(l−1,p,r)=1exp(sℓ[p,r]/T)1e(l−1,p,q)=1exp(sℓ[p,q]/T)(15)
其中:
s ℓ [ p , q ] = − sign ( b ℓ x [ p ] ) ⋅ W ℓ − 1 x [ p , q ] x ℓ − 1 [ q ] (16) s_\ell[p,q]=-\operatorname{sign}(b_\ell^x[p])\cdot W_{\ell-1}^x[p,q]x_{\ell-1}[q] \tag{16} sℓ[p,q]=−sign(bℓx[p])⋅Wℓ−1x[p,q]xℓ−1[q](16)
e ( l − 1 , p , q ) = ∣ sign ( W ℓ − 1 x [ p , q ] x ℓ − 1 [ q ] ) ∣ (17) e(l-1,p,q)=|\operatorname{sign}(W_{\ell-1}^x[p,q]x_{\ell-1}[q])| \tag{17} e(l−1,p,q)=∣sign(Wℓ−1x[p,q]xℓ−1[q])∣(17)
乍看与直接计算梯度分量并进行softmax的方式没有区别,但实际上要考虑 b b b的符号,与 b b b相反。比如假设 b b b为正的话,即使此时梯度分量也为正值但其算出来的权重也很小,因为我们的目的是要分配 b b b的权重到上一层的 b b b,对于 b b b来说其表达的含义就是负贡献。
上式中 T T T为温度变量, T T T越大softmax的值越平均, T T T越小越能凸显极端值。而 e e e主要说明此处仅考虑非0值,因为0值对输出值没有任何贡献。
第二种:
为了得到 x l [ p ] x_l[p] xl[p],假设每个分量 W ℓ − 1 x [ p , q ] x ℓ − 1 [ q ] W_{\ell-1}^x[p,q]x_{\ell-1}[q] Wℓ−1x[p,q]xℓ−1[q]都应分配相同的权重,其为平均目标值,即 x ℓ [ p ] / ∑ r = 1 d l − 1 1 e ( l − 1 , p , q ) = 1 x_\ell[p]/\sum_{r=1}^{d_{l-1}}\mathbb{1}_{e(l-1,p,q)=1} xℓ[p]/∑r=1dl−11e(l−1,p,q)=1。而每个分量与平均目标值的偏移量可视为每个特征对该层输出的贡献,我们根据贡献的指数值来确定偏差项,满足:
s ℓ [ p , q ] = x ℓ [ p ] ∑ r = 1 d l − 1 1 e ( l − 1 , p , q ) = 1 − W ℓ − 1 x [ p , q ] x ℓ − 1 [ q ] (18) s_\ell[p,q]=\frac{x_\ell[p]}{\sum_{r=1}^{d_{l-1}}\mathbb{1}_{e(l-1,p,q)=1}}-W_{\ell-1}^x[p,q]x_{\ell-1}[q] \tag{18} sℓ[p,q]=∑r=1dl−11e(l−1,p,q)=1xℓ[p]−Wℓ−1x[p,q]xℓ−1[q](18)
其余部分与公式15-17相同。
第三种:
此方法与基于梯度项的贡献进行归因的方法十分相似,但只能用于ReLU激活函数下。因为在ReLU激活函数中,中间的隐藏层神经元是非负的,不像之前的方法还需要考虑负数。因此可以得到如下公式:
α ℓ [ p , q ] = 1 e + ( l − 1 , p , q ) = 1 W ℓ − 1 x [ p , q ] x ℓ − 1 [ q ] ∑ r = 1 d ℓ − 1 1 e + ( l − 1 , p , r ) = 1 W ℓ − 1 x [ p , r ] x ℓ − 1 [ r ] \alpha_\ell[p,q]=\frac{\mathbb{1}_{e^+(l-1,p,q)=1}W_{\ell-1}^x[p,q]x_{\ell-1}[q]}{\sum_{r=1}^{d_{\ell-1}}\mathbb{1}_{e^+(l-1,p,r)=1}W_{\ell-1}^x[p,r]x_{\ell-1}[r]} αℓ[p,q]=∑r=1dℓ−11e+(l−1,p,r)=1Wℓ−1x[p,r]xℓ−1[r]1e+(l−1,p,q)=1Wℓ−1x[p,q]xℓ−1[q]
其中 e + ( l − 1 , p , q ) = sign ( W ℓ − 1 x [ p , q ] x ℓ − 1 [ q ] ) e^+(l-1,p,q)=\operatorname{sign}(W_{\ell-1}^x[p,q]x_{\ell-1}[q]) e+(l−1,p,q)=sign(Wℓ−1x[p,q]xℓ−1[q])。相比于前面的方法,这里就简单的直接考虑梯度项的权重,不像第一种方法一样,因为这里只有正项。
而后续的实验证明,没有单一的解决方案可以获得最佳归因函数。
实际上这三种方法的本质,就是以一个基准,看前一层神经元 q q q对本层x的结果起到正作用还是副作用,比如第一种里当b为负数,则表示算出来的 W x Wx Wx要大于目标值,因此一定是起到正作用的,所以要取b相反的值为符号,并且本质上还是贡献度分配。
5. Experiments
与其他算法的对比结果如上图,可以看到bias的解释在某种程度上能与基于梯度的解释形成互补,比如Brambling种,基于梯度的解释更集中于关注鸟肚子部分,而bias更集中关注鸟的轮廓和尾巴。