论文标题:Learning Important Features Through Propagating Activation Differences
论文作者:Avanti Shrikumar, Peyton Greenside, Anshul Kundaje
论文发表时间及来源:Oct 2019,ICML
论文链接:http://proceedings.mlr.press/v70/shrikumar17a/shrikumar17a.pdf
DeepLIFT方法
1. DeepLIFT理论
DeepLIFT解释了目标输入、目标输出与“参考(reference)”输入、“参考”输出间的差异。“参考”输入是人为选择的中性的输入。
用表示单层神经元或多层神经元的集合,为对应的“参考”,有。用表示目标输入经过的输出(当为全部神经元的集合时,为目标输出),表示“参考”输出,有 。如(1)式,为各个输入贡献分数的加和。
2. 乘数(Multiplier)与链式法则
乘数与偏导数类似:偏导数是指产生无穷小变化时,的变化率;而乘数是指产生一定量的变化后,的变化率。
这里可理解为中间层的。给定每个神经元与其直接后继的乘数,即可计算任意神经元与目标神经元的乘数。
3. 定义“参考”
MNIST任务中,使用全黑图片作为“参考”。
CIFAR10任务中,使用原始图像的模糊版本能突出目标输入的轮廓,而全黑图片作为参考时产生了一些难以解释的像素。
DNA序列分类任务中,以ATGC的期望频率作为“参考”。即目标输入是四维的one-hot编码,“参考”输入是相同维度的ATGC期望频率。这里还有一种方法没有看懂,见Appendix J。
4. 区分正、负贡献
当应用RevealCancel规则时,区分正、负贡献非常重要。
5. 分配贡献分数的规则
线性规则
用于Dense层,卷积层,不可用于非线性层。定义线性函数,则。
公式有点复杂,举例说明。“参考”输入,目标输入,则由式(6)得,由式(8)得两个特征贡献分数分别为3和8,由式(12)得两个神经元的乘数分别为3和4。乘数的作用是,如果神经网络有两层线性函数,为第一层神经元,为第二层神经元,则第二层的乘数为5,由式(3)得整个神经网络第一个特征的乘数为15,第二个特征的乘数为20,每个位置的输入乘以乘数就是其贡献分数。
Rescale规则
用于非线性层,如ReLU,tanh或sigmoid等。由于非线性函数只有一个输入,则,,和分别为:
当时,可用梯度代替。Rescale规则解决了梯度饱和问题和值域问题,例子见论文。
RevealCancel规则
这里说明为何 和 需分开计算。下图是一个计算最小值的操作,假定,目标输入,,则,。根据线性规则,可知,。根据Rescale规则,,,。则总贡献分数为, 总贡献分数为。
同样地,梯度,输入*梯度方法也会赋予其中一个特征0的贡献分数,这忽略了特征间的相互依赖性。 和 分开计算的公式为:
文章来源:https://www.toymoban.com/news/detail-510805.html
用这种方法计算出和的贡献分数均为0.5,其过程简单来说是把每一层神经元输出做+、-的区分,两条路径分别计算乘数与贡献分数后再加和。计算过程有点复杂,详见Appendix C 3.4。 文章来源地址https://www.toymoban.com/news/detail-510805.html
到了这里,关于模型可解释性 DeepLIFT 论文解析的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!