Counterfactual Visual Explanations
[TOC]
简介
Counterfactual 反事实思维
首先介绍一下反事实思维,对于已经发生的事情,如果可以更改一些初始的条件,那么事情的发展可能就完全不同,与事实相反。这里介绍的反事实视觉解释,就是说如果可以更改样例中的某一部分,那么模型的预测结果就会完全不同。
Fig1中左边的图模型预测为Crested Auklet(C类),右边的图预测为Red Faced Cormorant(C‘类),那么怎么让模型认为左边的图是C’类呢?这篇文章用了一个很有趣的方法:把C‘类图像中的一部分替换掉原图,就是图像中红框标出的部分,替换掉一张嘴,就会使图像I变成C‘类。
动机 于是问题就变成了如何寻找这样的一个区域(CounterFactual Visual Explanation)可以使得模型预测从c类变成c'类。并设计了一个实验证明了如果可以展示这样的反事实解释,那么就可以更好的帮助用户学习到有用的知识。
方法
对于输入图像,输出为,原始图像预测为c类,目标即为。将network划分为两部分,第一部分为特征提取器,第二部分为决策部分。在这篇文章中,主要分析的就是如何改变特征提取的结果使得模型预测为c‘类。
为了简化目标,不直接对I进行修改,而是从c'类中直接寻找一个样本I',将其中的一部分进行替换,,从而使得模型预测为c'。具体过程如下:
从右到左依次为:使用Permutation矩阵对I'进行排列,接着使用Gating Vector确定哪些区域需要被替换,同时确保Gating Vector中替换的部分尽量小。
为了加速计算,提出了以下两种方式:
- 贪心策略。每次只替换一个区域,即得到边际效应最高的部分。
- 梯度优化。将上文中的Gating Vector改为和为1的非负向量,Permutation Matrix改为Right stochastic matrix,这样就可以使用梯度下降求解。
实验结果
下面是用上述方法得到的实验结果。
第一个实验室MNIST数据集,第二个是Caltech-UCSD Birds数据集。第一列是c类,第二列是c'类,第三列是合成之后的图像。