2

LRP简介

 2 years ago
source link: https://blog.xpgreat.com/p/lrp/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

机器学习的可解释性一直以来都是一个大问题,模型中的海量权重和连接关系让机器学习一直被视为黑盒模型。为了解决这个问题,Explainable AI (XAI)是一个前沿的研究方向。关于可解释性的研究,推荐这篇综述。本文简要介绍解释深度神经网络(DNN)的算法LRP(Layerwise Relevance Propagation)。

深度泰勒分解(Deep Taylor Decomposition)

在介绍LRP之前,首先需要简单了解一下深度泰勒分解的思想方法。只要学过高数的都知道一种近似计算函数值的方法,即泰勒公式:

f(x)=∑0+∞f(n)(a)n!(x−a)n=f(a)+f′(a)1!(x−a)+f′′(a)2!(x−a)2+… f(x) = \sum_0^{+\infin} \frac{f^{(n)}(a)}{n!}(x-a)^n \\= f(a) + \frac{f'(a)}{1!}(x-a) + \frac{f''(a)}{2!}(x-a)^2 + … f(x)=0∑+∞​n!f(n)(a)​(x−a)n=f(a)+1!f′(a)​(x−a)+2!f′′(a)​(x−a)2+…

类似的,我们可以对一个深度神经网络进行泰勒分解,假定f(x)f(x)f(x)是神经网络学习到的预测函数,对它进行一阶泰勒展开,并假设参照点的函数值为0,则:

f(x)≈∑1D∂f∂x(d)(x0)(x(d)−x0(d)) f(x) \approx \sum_1^D \frac{\partial f}{\partial x_{(d)}}(x_0)(x_{(d)}-x_{0(d)}) f(x)≈1∑D​∂x(d)​∂f​(x0​)(x(d)​−x0(d)​)

其中ddd是向量xxx的对应维度的值。上面的式子可以看做梯度乘以与零点的差,可以用它来构造可解释性heatmap。

所以想要解释模型的预测结果,需要结合模型的属性和输入的数据,在DTD中是将模型梯度和输入数据相乘,而在LRP中是通过模型的权重(也就是各层的梯度)和模型中间结果来计算加权平均,从最后一层传导到输入层,得到模型的解释。

LRP包括两步,第一步是传统的使用神经网络向后传播计算预测值,在这个过程中保存下所有的中间值;第二步是把神经网络反过来,从后向前依层计算各层的Relevance score,最终传导到最初的输入层,而输入层对应的Relevance score则可以被用来解释模型的预测结果,可以用来绘制heat map、高亮文本等等。LRP的算法过程可以表示如下:

其中relprop使用l−1l-1l−1层的中间值a(l−1)a^{(l-1)}a(l−1)、后一层的relevance score R(l)R^(l)R(l)和lll层的权重(记为flf_lfl​)。一般有三种方式进行传播:

  • LRP-0: 最简单的方式

Rj=∑kajwjk∑0,iaiwikRk R_j = \sum_k \frac{a_j w_{jk}}{\sum_{0,i} a_i w_{ik}} R_k Rj​=k∑​∑0,i​ai​wik​aj​wjk​​Rk​

  • LRP-ϵ\epsilonϵ: 分母上加入了一个微小值

Rj=∑kajwjkϵ+∑0,iaiwikRk R_j = \sum_k \frac{a_j w_{jk}}{\epsilon + \sum_{0,i} a_i w_{ik}} R_k Rj​=k∑​ϵ+∑0,i​ai​wik​aj​wjk​​Rk​

  • LRP-γ\gammaγ: 计算权重时多加/减一部分正项,以达到偏向正向影响或负向影响的效果

Rj=∑kaj(wjk+γwjk+)∑0,iai(wik+γwik+)Rk R_j = \sum_k \frac{a_j (w_{jk}+\gamma w_{jk}^+)}{\sum_{0,i} a_i (w_{ik}+\gamma w_{ik}^+)} R_k Rj​=k∑​∑0,i​ai​(wik​+γwik+​)aj​(wjk​+γwjk+​)​Rk​

注意这里面sum的下标0,i0,i0,i的意思是前一层所有的neuroniii加上w0kw_{0k}w0k​的bias项,a0=1a_0 = 1a0​=1。LRP的过程可以表示如下图:

LRP的理论证明可以参考这篇综述的第五章,LRP的本质上等价于特殊情况下的DTD。值得注意的是,上面的三种表达中,LRP-γ\gammaγ和LRP-ϵ\epsilonϵ基于深度整流网络(deep rectifier network),而对于其他类型的激活函数,LRP的表达则更为复杂。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK