作者:18届 cyl
日期:2020-08-15
论文:《How Sensitive are sensitivity based explanation?》
一、背景介绍:
近年来,出现了一种新的解释深度神经网络的方法:基于敏感性的解释
敏感性:它表征了随着我们改变测试输入而解释如何变化。各大论文通过改变测量变化方法、改变测试输入,定义了不同的敏感性(灵敏度)。本论文则是提供了一种演算方法,根据较简单的解释来推导复杂解释的敏感性,从而方便计算尚未提出的解释的敏感性。
目前越来越流行的方法是将任何给定的预测归因于一组输入特征,这个输入特征可能是指一个重要权重向量或者是一组重要特征。如:通过显示所有像素的权重(热力图)来解释特定的预测
其中最常用的解释方法有
1、基于预测函数的梯度对其不同输入的反应(不同输入对应不同激活值)
2、基于反事实的方法:将特征值的替换成无效特征(默认值、空白、噪声、切断传输等)
3、估计局部简单模型来解释复杂非线性映射的方法(如估计局部线性回归模型的方法)
但是难以统一评价不同的解释机制有多好。在这里需要区分两种不同的解释评价测度:
客观测度:允许我们通过改进客观度量来改进我们的解释。如:我们已经有先天的信息,一直特定的特征相关子集。我们可以测试解释出来的特征是否属于这个相关的子集。
主观测度:(由于解释本身就以人为中心,所以主观测度为主要评价)从定性展示、到人的满意度、到人是否能理解模型 三个维度进行评估。
二:本论文的贡献
1、论文重点关注对象:采用基于反事实的方法进行实验的解释方法 (即 基于灵敏度的解释)
换句话说本论文想探讨的是:在我们干扰测试输入时,解释会发生什么?解释会发生多大的变化?(即基于敏感性的解释机制本身有多敏感)(作者说:他们直觉上希望解释不要太过敏感,因为输入的一点点轻微变化就引起解释的大变样会让我们不相信解释)
2、作者给出了一种判断 一个解释 是否合理的方法。 还给出了一种在已有解释的基础上进行微调,使其解释性更好的方法
3、还给出了一种可以通过对抗性训练对模型进行再训练以改善解释灵敏度的方法。
三、本论文的实验
本论文是在一个两层的神经网络上进行的。数据集有两个为:Minst手写数字识别数据集 cifar-10 数据集(两个数据集巨小,相应的神经网络巨小) 研究对象简单,每个神经元对初始输入的映射就简单的多了。也正是因为所研究的神经网络比较简单才让本文中计算网络中的神经元相对于输入的梯度成为可能(我是这么认为的,不知道本文计算梯度的方法能不能用在深度网络中)
1、最大敏感度:在扰动到来时,解释的最大变化大小
2、平均敏感度:在扰动到来时,解释的平均变化大小
上图表示:在扰动输入点时,渐变和函数值的可视化。
蓝色线为解释敏感度 橙色线为预测敏感度
蓝色线为橙色线值的3-14倍 这也就表明了 即使人看着没有区别的两个图片,对于所定义的这种解释方式来说,解释是大不相同的。也就是表明这种解释不合理
控制变量实验:
1、用作者提出的在原有解释的基础上进行微调,让解释更好的方法
2、用作者提出的方法对模型进行二次训练,让模型的解释更加合理
Base-Grad为原本的解释不大合理的方法:因为输入没怎么变 解释却大不相同了
Base-Grad-5G为 在 二次训练后的新模型上 进行解释:
Adv-Grad为采用 微调后的新的解释方式
Adv-Grad-5G为在新的模型上用新的解释方式