CNN可视化工具 CAM的理解

一、Eigen-CAM 理解分析

Eigen-CAM来自论文《Eigen-CAM: Class Activation Map using Principal Components》,Eigen-CAM的流程如下图:

将特征从特征空间拉出来后,库如 yolov8s-cls,拉出是512x7x7的特征层,然后将改feature reshape X 为 49x512,49是空间特征,512是通道特征,然后将49x512通过奇异值分解后:
X=UΣVT X = U \Sigma V^T X=UΣVT
U∈R49×49,Σ∈R49×512,V∈R512×512 U \in \mathbb{R}^{49 \times 49} , \Sigma \in \mathbb{R}^{49 \times 512} , V \in \mathbb{R}^{512 \times 512}U∈R49×49,Σ∈R49×512,V∈R512×512

U(左奇异向量):U∈R49×49U \in \mathbb{R}^{49 \times 49}U∈R49×49 中的每一列 是ui∈R49u_i \in \mathbb{R}^{49}ui∈R49 表示一种空间组合方式

V(右奇异向量):V∈R512×512V \in \mathbb{R}^{512 \times 512}V∈R512×512 中的每一列 是ui∈R512u_i \in \mathbb{R}^{512}ui∈R512 表示一种通道组合方式

X=∑i=149σiuiviT X=\sum_{i=1}^{49} \sigma_i u_i v_i^T X=i=1∑49σiuiviT
uiu_iui 是 49 x 1, viTv_i^TviT 是 1 x 512, 相乘正好是 49 x 512大小,即第i 个奇异值表示,通道方向 viv_ivi 和 空间模式 uiu_iui,共同构成的这个结构模式的强度。

再说回 Eigen-CAM,是将 原始特征层 49x512 投影到 v0v_0v0这个向量上,得到一个49x1的向量,我觉得可以这样理解:
u0u_0u0 和 v0v_0v0 两个组合起来,在加上 奇异值,构成了绝大部分的 原始特征(最佳的rank-1近似),也就是,特征空间按照v0v_0v0这种方式进行分布的时候,对应的空间特征的分布响应也很大,因此,直接将原始特征投影到 v0v_0v0,得到想要的空间分布情况。

二、Eigen-CAM 实验分析

对yolov8n和yolov8m目标检测器进行eigen-cam的分析,使用的权重为预训练权重yolov8n.pt和yolov8m.pt

从21层到第4层,对各层的输出,进行Eigen-CAM可视化,左边是yolov8m,右边是yolov8n

分析:

1、首先,有一点需要明确,Eigen-CAM不能用来解读决策,因为Eigen-CAM在分析的时候,不依赖类别和loss,Eigen-CAM展示的是当前特征的第一主成分,偏向大面积区域,高频纹理,强变化区域,这些特征都让特征的方差变化很大,所以Eigen-CAM展示的是最大方法的方差,不是目标语义,或者注意力图,所以在一些任务中,经常比目标更亮,不同层直接也没有可比性,比较适合分析特征,不适合解释决策。

2、不论是yolov8m ,还是yolob8n,输入640x640,每层的感受野相同

Stage 层域 感受野
1 4~5 35 px
2 6~8 75~110 px
3 9~12 200~350 px
4 13~16 500~900 px
5 17~21 1000~1500 px

3、以yolov8m为主要,4,5层感受野比较小,因此是草地,6,7,8,增大感受野后,可以看到狗头了,第9层是SPPF,第10层是上采样,所以,第9层和第10层,可视化结果是一样的,第11层,是将第6层的结果和第10层的输出concat出来。

4、会发现yolov8m学习到的狗头的特征,整体比yolv8n学习的狗头特征明显高亮,且高亮点很多,yolov8n学习的狗头特征,特点是稀疏、高亮点弱,不密集;yolov8m学习的狗头特征,高亮点很密集

相关推荐
杨杨杨大侠21 分钟前
AI 怎么知道自己改对了?从 Astra 修千问说到 Harness²
人工智能·agent
tellmewhoisi25 分钟前
深度学习39:RNN基础介绍,api参数解惑和代码api
人工智能·rnn·深度学习
金融Tech趋势派39 分钟前
企业微信客户管理工具哪个好?按企业规模、行业与合规要求的三层判断标准
人工智能·企业微信
组工部管理能手李哥41 分钟前
一次政务知识库体验:AI回答之外,我更在意那行引用来源
大数据·人工智能·大模型·政务
硅谷秋水1 小时前
AgenticRoboRL:将“编程智能体”后训练引入智能体化机器人领域
人工智能·机器学习·语言模型·机器人
武天旭1 小时前
AI安全--AI大模型的毒性偏见与安全对齐实践
人工智能·python·深度学习
wordbaby1 小时前
构建高效的智能体(Building Effective Agents)— Anthropic 官方全文精译与图解
人工智能
xsd202411181 小时前
AI 短剧怎么做?
人工智能
m0_715674432 小时前
政务泛监测体系能力排行:AI 重塑监测边界,治理的颗粒度革命
大数据·网络·人工智能·安全·网络安全·政务
羲云网络2 小时前
AI API 门户上线不难,难的是让用户完成第一次调用
人工智能·产品运营·api·开发者·acedatacloud