> Prabhushankar M., Kwon G., Temel D. and AlRegib G. Contrastive explanation in neural networks. In 2020 IEEE International Conference on Image Process (ICIP), 2020.

> Prabhushankar M., AlRegib G. Extracting causal visual features for limited label classification. In 2020 IEEE International Conference on Image Process (ICIP), 2021.

本文和对比学习和因果推断没有关系, 只是试图解释why P rather than Q 的问题.

本文可以归属于CAM.

主要内容

比如我们的网络\(f\)可以用于区分篦鹭(spoonbill)和火烈鸟(flamingo).

现在有一张篦鹭的图片, 网络会给出一个概率, 一般的CAM的方法通过这个概率来判断哪个区域是被关注的.

更进一步地, 我们关心为什么这张图片中地是篦鹭而不是火烈鸟.

一般的CAM方法没法解答这个问题, 本文就给出了一个解释, 答案如上图. 即脖子这一块是主要的区分点.

首先我们需要衡量why P rather than Q问题的一个度量, 故对于离散的情况, 本文选择的时候经典的交叉熵损失函数: \(J(P, Q;\theta)\).

这里\(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;\theta)}{\partial A_l^k})=\frac{1}{HW}\sum_i \sum_j \frac{\partial J(P,Q;\theta)}{\partial [A_l^k]_{ij}}.
\]

一个有趣的应用

作者最近发了一篇关于COVID-19 CT scans的热点图的文章是上面的一个应用.

定义:

  1. \(\mathcal{C}_{P,Q}\) 为回答why P or Q的热点图, 关注所有的利用判别的特征;
  2. \(\mathcal{C}_{\bar{P},\bar{Q}}\) 为回答why neither P nor Q的热点图, 所有其它的特征;
  3. \(\mathcal{C}_{P,\bar{Q}}\) 为回答why neither P nor Q的热点图, 所有用于判别\(P\)的特征(包括\(P, Q\)共有的);
  4. \(\mathcal{G}_P\)是通过Grad-CAM得到的热点图.

通过

\[C_P \backslash B_P = \mathcal{G}_P - [\mathcal{C}_{P, Q} - \mathcal{C}_{\bar{P}, \bar{Q}} - \mathcal{C}_{P, \bar{P}}]
\]

即作者认为这样就能得到只用于判别\(P\)的部分, 示意图如下:

注: 文中的\(\mathcal{L}(y, [1, 1])\)之类实在不能理解, 难不成是多标签分类?

contrastive CAM的更多相关文章

  1. Noise Contrastive Estimation

    Notes from Notes on Noise Contrastive Estimation and Negative Sampling one sample: \[x_i \to [y_i^0, ...

  2. 读书笔记-《Training Products of Experts by Minimizing Contrastive Divergence》

    Training Products of Experts by Minimizing Contrastive Divergence(以下简称 PoE)是 DBN 和深度学习理论的 肇始之篇,最近在爬梳 ...

  3. 了解多层交换中的CEF FIB CAM TCAM

    来源:http://blog.51cto.com/redant/314151 多层交换是指交换机使用硬件来交换和路由数据包,通过硬件来支持4-7层的交换.交换机执行硬件交换,第3层引擎(路由处理器)须 ...

  4. CAM(Content Addressable Memory)介绍

    CAM是一种特殊的存储器.所谓CAM,即内容寻址存储器.CAM存储器在其每个存储单元都包含了一个内嵌的比较逻辑,写入CAM的数据会和其内部存储的每一个数据进行比较,并返回与端口数据相同的所有内部数据的 ...

  5. grad-cam 、cam 和热力图,基于keras的实现

    http://bindog.github.io/blog/2018/02/10/model-explanation/ http://www.sohu.com/a/216216094_473283 ht ...

  6. Notes on Noise Contrastive Estimation and Negative Sampling

    Notes on Noise Contrastive Estimation and Negative Sampling ## 生成负样本 在常见的关系抽取应用中,我们经常需要生成负样本来训练一个好的系 ...

  7. CAM 查看里先选哪些层才能方便查看

    CAM 检查 Gerber 时选 Layer 时有先后次序,才以看清楚是否有冲突. 比如检查 TOP 层时顺序应该是 MT ST L1 BOT 层检查顺序 MB SB L2/L4

  8. TCAM CAM 说明 原理 结构 Verilog 硬件实现

    TCAM 三态内容地址查找存储器,CAM内容地址查找存储器.区别在于TCAM多了一级掩码功能,也就是说可以指定某几位是dont care.匹配的时候0,1都行的意思. 广泛应用于数据流处理领域,本文简 ...

  9. 深度学习方法:受限玻尔兹曼机RBM(四)对比散度contrastive divergence,CD

    欢迎转载,转载请注明:本文出自Bin的专栏blog.csdn.net/xbinworld. 技术交流QQ群:433250724,欢迎对算法.技术.应用感兴趣的同学加入 上篇讲到,如果用Gibbs Sa ...

随机推荐

  1. MapReduce03 框架原理InputFormat数据输入

    目录 1 InputFormat数据输入 1.1 切片与MapTask并行度决定机制 问题引出 MapTask并行度决定机制 Job提交流程源码 切片源码 1.2 FileInputFormat切片机 ...

  2. Fllin(七)【Flink CDC实践】

    目录 FlinkCDC 1.简介 2.依赖 3.flink stream api 4.flink sql 5.自定义反序列化器 6.打包测试 FlinkCDC 1.简介 CDC是Change Data ...

  3. clickhouse输入输出格式 TSKV CSV

    TSKVTSKV格式不适合有大量小列的输出.TSKV的效率并不比JSONEachRow差.TSKV数据查询和数据导入.不需要保证列的顺序. 支持忽略某些值,这些列使用默认值,例如0和空白行.复杂类型的 ...

  4. Java_zip_多源文件压缩到指定目录下

    依赖: <!-- https://mvnrepository.com/artifact/org.apache.commons/commons-compress --> <depend ...

  5. 【Linux】【Shell】【Basic】字符串操作

    1. 字符串切片:             ${var:offset:number}                 取字符串的子串:                 取字符趾的最右侧的几个字符:${ ...

  6. pop和push等使用方法,every和some、join

    push  在最前面添加一个元素 pop  移除最后一个元素 shift  移除第一个元素 unshift  放入一个元素,且排在最前 arr.splice(2,2)//移除从指定下标 slice(2 ...

  7. vue-cli4结合element-ui异常解决(前端小白,文摘取自网络)

    1:将vue-cli4版本退回到vue-cli3 2:使用element-plus 替换 element-ui 传送门 => https://element-plus.gitee.io/#/zh ...

  8. <转>网络爬虫原理

    网络爬虫是捜索引擎抓取系统的重要组成部分.爬虫的主要目的是将互联网上的网页下载到本地形成一个或联网内容的镜像备份.这篇博客主要对爬虫以及抓取系统进行一个简单的概述. 一.网络爬虫的基本结构及工作流程 ...

  9. Three.js 实现3D全景侦探小游戏🕵️

    背景 你是嘿嘿嘿侦探社实习侦探️,接到上级指派任务,到甄开心小镇调查市民甄不戳宝石失窃案,根据线人流浪汉老石‍提供的线索,小偷就躲在小镇,快把他找出来,帮甄不戳寻回失窃的宝石吧! 本文使用 Three ...

  10. Table.RenameColumns重命名…Rename…(Power Query 之 M 语言)

    数据源: "姓名""基数"等列 目标: 修改"姓名"列标题为"员工姓名" 操作过程: [转换]>[重命名]> ...