Back

LRP简介

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

深度泰勒分解(Deep Taylor Decomposition)

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

$$ 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,则:

$$ f(x) \approx \sum_1^D \frac{\partial f}{\partial x_{(d)}}(x_0)(x_{(d)}-x_{0(d)}) $$

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

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

LRP

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

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

  • LRP-0: 最简单的方式

$$ R_j = \sum_k \frac{a_j w_{jk}}{\sum_{0,i} a_i w_{ik}} R_k $$

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

$$ R_j = \sum_k \frac{a_j w_{jk}}{\epsilon + \sum_{0,i} a_i w_{ik}} R_k $$

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

$$ R_j = \sum_k \frac{a_j (w_{jk}+\gamma w_{jk}^+)}{\sum_{0,i} a_i (w_{ik}+\gamma w_{ik}^+)} R_k $$

注意这里面sum的下标\(0,i\)的意思是前一层所有的neuron\(i\)加上\(w_{0k}\)的bias项,\(a_0 = 1\)。LRP的过程可以表示如下图:

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

Built with Hugo
Theme Stack designed by Jimmy