概
本文和对比学习和因果推断没有关系, 只是试图解释why P rather than Q 的问题.
本文可以归属于CAM.
主要内容
比如我们的网络(f)可以用于区分篦鹭(spoonbill)和火烈鸟(flamingo).
现在有一张篦鹭的图片, 网络会给出一个概率, 一般的CAM的方法通过这个概率来判断哪个区域是被关注的.
更进一步地, 我们关心为什么这张图片中地是篦鹭而不是火烈鸟.
一般的CAM方法没法解答这个问题, 本文就给出了一个解释, 答案如上图. 即脖子这一块是主要的区分点.
首先我们需要衡量why P rather than Q问题的一个度量, 故对于离散的情况, 本文选择的时候经典的交叉熵损失函数: (J(P, Q; heta)).
这里(P)的位置应该是网络判断的概率向量, 而(Q)则可以看成是在(Q)类对应的位置为1的one-hot向量.
这个其实和(targeted)对抗样本的思路是一样的, 唯一的区别可能就是CAM求的是(J)关于最后一层卷积层的梯度, 而不是直接作用于图片本身.
以Grad-CAM为例:
[L_{Grad-CAM}^c = mathrm{ReLU}(sum_{k=1}^K alpha_k^c A_l^k),
]
[alpha_k^c = GP(frac{partial J(P,Q; heta)}{partial A_l^k})=frac{1}{HW}sum_i sum_j frac{partial J(P,Q; heta)}{partial [A_l^k]_{ij}}.
]
一个有趣的应用
作者最近发了一篇关于COVID-19 CT scans的热点图的文章是上面的一个应用.
定义:
- (mathcal{C}_{P,Q}) 为回答why P or Q的热点图, 关注所有的利用判别的特征;
- (mathcal{C}_{ar{P},ar{Q}}) 为回答why neither P nor Q的热点图, 所有其它的特征;
- (mathcal{C}_{P,ar{Q}}) 为回答why neither P nor Q的热点图, 所有用于判别(P)的特征(包括(P, Q)共有的);
- (mathcal{G}_P)是通过Grad-CAM得到的热点图.
通过
[C_P ackslash B_P = mathcal{G}_P - [mathcal{C}_{P, Q} - mathcal{C}_{ar{P}, ar{Q}} - mathcal{C}_{P, ar{P}}]
]
即作者认为这样就能得到只用于判别(P)的部分, 示意图如下:
注: 文中的(mathcal{L}(y, [1, 1]))之类实在不能理解, 难不成是多标签分类?