2021.12.11 第7篇(ICCV2019) 简读
论文链接:Understanding Deep Networks via Extremal Perturbations and Smooth Masks
代码链接:Understanding Deep Networks via Extremal Perturbations and Smooth Masks
Contributions
- We introduce the concept of extremal perturbations
- We provide a concrete algorithm to calculate the extremal perturbations
- we extend the framework of perturbation analysis to the intermediate activations of a deep neural network rather than its input
Figure 1. extremal perturbations的example
Figure 2.Comparison with other attribution methods
Method
本文要解决的问题:
Φ
(
x
⨂
m
)
\Phi(x\bigotimes m)
Φ(x⨂m), 其中
x
x
x是RGB三通道的图片,
m
m
m是对应大小的mask。目标: find a small subset of pixels that, when preserved, are sufficient to retain a large value of the output。其实这个想法我前不久也想过,还和师兄讨论了实现,没想到19年就被发了。
前人罚函数的设计,很好理解就不展开了,不懂可以去看我之前的另一篇文章解读Interpreting Image Classifiers by Generating Discrete Masks解读同样的思路来做的。但是这样有缺点:调参难,这个本人深有体会。
本文所提方法:
通过设置一个精度下界,search for the smallest mask that achieves at least this output level,即eq3. Figure 3.体现了这个search过程
接下来是如何对mask进行梯度下降更新,由于0-1是无法用SGD的,本文提出了vectorize and sort in non-decreasing order the values of the mask
m
m
m,现在优化项变成了下式
扰动形式:
如何是mask的区域连续而不是单个单个的像素,本文采用了max convolution operator,以下是他的证明(没怎么看)
Experiments
效果肉眼可见
Figure 6:与其他方法的对比
Figure 7是一个验证所提方法对权重敏感的实验,Table 1是在其他数据集上的实验。
个人比较感兴趣的是Attribution at intermediate layers,中间层加输入得重新设计,设计如下所示:
Visualizing per-instance channel attribution
Visualizing per-class channel attribution
个人总结
这个可解释的实验思路很值得借鉴,下次有机会可以仔细研究一下代码。