文章名称
【AAAI-2020】【University College Dublin-VistaMilk SFI Research】On Generating Plausible Counterfactual and Semi-Factual Explanations for Deep Learning
核心要点
文章旨在从因果推断的角度,生成半反事实、反事实的样例,实现图像分类模型的可解释性。作者提出PIECE框架,通过修改所谓”异常“的特征,生成似是而非的反事实样本、半事实样本,是半事实样本解释方法第一次被应用于深度学习当中。
下一节主要介绍了问题的背景,以及什么事反事实可解释性和半事实可解释性(包括对应的案例)。这一节主要介绍算法的具体步骤。
研究背景
如前所述,PIECE的框架包括待解释的图片分类模型以及解释样本生成模型。为了方便解释,首先定义一些符号,
- 目标(测试)图片记作
,实际类别为
。生成的解释样本记作
,预测类别为
,
- CNN模型中,选中一个层来获取特征,该层可以被记作X,被提取的特征记作x。经过PIECE修改的特征记作x
- CNN模型中,
之前的层被统称为
![]()
- CNN模型中,分类器(输出层)被称为
,输出的概率向量(表示各个标签的概率)记作
,概率最大的标签(类别)记作
,其概率为
![]()
- CNN模型中,利用到的隐向量记作
![]()
方法细节
识别counterfactual class
给定了图片之后,希望寻找一个反事实的标签,这个过程需要用到生成器
来实现。一方面,从正态分布中采样数据向量
,通过优化如下目标得到适合图片
的输入隐向量
。这样学习到的生成器
能够很好的把随机输入
映射到图片空间中。

随后,可以利用如下两种方法来寻找反事实标签(训练的时候,文章的反事实标签不是认为指定的),
- 如果给定图片后,分类器本身就分错了,那么就用错误的标签当做反事实类别。
- 如果给定图片后,分类器能够正确预测图片(样本)的类别,需要利用梯度上升的方法优化如下图所示的目标,来调整输入
,当预测的类别第一次发生变换时,记录下这个类别作为反事实类别。

生成(半)反事实样本
PIECE主要经过3个步骤生成反事实解释,
- 从观测特征集合中,识别出分类器用于决策的“特殊”特征。
- 改变特征值得到反事实样本。
- 利用GAN从修改后的潜在特征表示上,在像素空间中重构图像以可视化了反事实样本,生成反事实解释。
识别决策的“特殊”特征
作者利用在分类器判断图像类别为反事实类别
时,encoder最后一层激活函数的取值
来判断该特征是否是“特殊”特征。首先,确定不同激活函数取值的概率密度,其计算公式如下图所示。其中,
表示特征(也就是对应的最后一层的神经元)的激活取值的概率。由于模型采用ReLu,所以最终约束条件为
,并且该概率可以被分为两部分。
- 第一部分,是
的时候,表示其概率为
。
表示在
这一点概率为1的冲击函数。
- 第二部分,是
的时候,表示其概率为
。其中,
为
在不同取值下的概率密度函数。

个人感觉,上述公式,是首先判断是否为0,在判断大于0时不同取值的概率。作者采用a Gaussian, Gamma, Exponential三种分布拟合
,并利用Kolmogorov-Smirnov test(KS)来评估拟合优度,并寻去3种分布中拟合的最好的,作为最终的
。
随后,在拟合的概率分布中,按如下图所示的方式判断是否为“特殊”特征。即如果该特征的激活或不激活的情况都是小概率事件(显著的),那么该特征就很重要,是“特殊”特征。具体逻辑比较晦涩,感兴趣的同学可以参考原文。
criteria 1
criteria 2
改变决策的“特殊”特征
识别出的“特殊”特征可以被分为,对反事实类别有积极贡献和有消极贡献的两部分。PIECE只修改有消极贡献的“特殊”特征(这样做可以减少对特征的修改)。值得注意的是,只有满足链接权重特征和识别过程标准的特征才会被修改。并且,如果修改这些特征能促使分类器把样本判别为反事实类别,也只会修改到其期望值(不会过度修改)。
为了生成半事实样本,“特殊”特征被按照影响分类器决策的概率从低到高排序。因为这样方便修改,半事实生成过程正确停止。
重构反事实解释
最终,PIECE利用如下图所示的优化目标实现反事实样本的可视化解释。其中是GAN的输入,生成的反事实解释图片为

代码实现
PIECE修改特征的伪代码如下图所示。

心得体会
反事实标签
个人理解,利用分类器错误的类别作为反事实标签,在一些反事实样本生成的文献中认为可以调优这部分生成,因为分类错的样本其实是利用了模型的不鲁棒性,并不是我们期望解释的部分。这也是对抗样本生成和反事实样本生成的区别,作为反事实的标签应该尽可能是模型能正确预测的标签,或在观测样本就分类错误的时候,也对特征进行改动。
网友评论