关于 CAM 系列
CAM
CAM 里面,在经过 softmax 之前的某类别得分为如下公式
可以看到 $\sum_{x,y}f_k(x,y)$ 是第 k 个通道经过 GAP 之后的值,变形后得到右边的式子,这里将 CAM 的 map 用如下式子表示
也就是说,该类别的 CAM 直接反映了该处的激活值对分类得分的重要性
但是 CAM 关注的区域只是最具 discriminative 性质的区域,分类狗的时候可能在 CAM 上只激活狗的头部。并且 CAM 不能很好的适用于所有网络,因为它要求将全连接层换成 GAP,这样就得重新训练模型,因此后来的 Grad-CAM 尝试解决这个问题
Grad-CAM
如果不用 GAP 的话怎么得到某个类别对应的在 feature map 上的权重呢,Grad-CAM 提出求导数的思想,通过链式法则用 softmax 之前的 score 对最后一层 feature map 求偏导得到每一层的权重,公式如下
Z 是 feature map 上的所有像素点个数,这其实做的是跟 GAP 相似的事情,所以最后得到的 Grad-CAM map 用如下公式表示
用 ReLU 只保留对最终的 score 有正贡献的神经元,并且和 CAM 相似,对这个公式在 spatial 上进行累加得到的就是最终分类的得分 $S_c$
论文中有严格的数学推理证明 CAM 的权重和 Grad-CAM 的权重其实是一样的,可以去看看
FEATURED TAGS
GitHub
git
markdown
say something
单片机
ROM
中断
linux
shell
ssh
MatLab
Regular Expression
C Programming
cpp
python
algorithm
security
Reverse Engineering
writeup
ctf
machine learning
reading notes
deep learning
JavaScript
OpenCV
Machine Vision
php
troubleshoot
sql
nginx
base64
Forensics
router
web
XSS
docker
curl
computer network
LaTeX
iptables
sqlmap
sql injection
object detection
paper
pytorch
matplotlib
blog
socket
torchscript
job
Linux
weakly supervised