深度学习可视化模型

文章目录

    • CAM( https://arxiv.org/abs/1512.04150)
      • 算法原理
    • Grad-CAM(梯度加权类激活映射)
      • 算法原理
    • Grad-CAM++
    • ScoreCAM
    • LayerCAM

目前深度学习网络的可视化可以分为:

  • 可视化卷积核。
  • 可视化特征图。
  • 可视化激活热力图,也就是不同位置像素点对得出结果的影响程度。
    在这里插入图片描述

网络的可视化——热力图

在这里插入图片描述

CAM( https://arxiv.org/abs/1512.04150)

奠定了深度学习网络可解释性的基石。

算法原理

如下图所示:下图上面是关于一个分类网络的一个训练过程,即输入一个原始图像,经过全卷积神经网络的训练,得到最后一个卷积层的卷积结果,这里为一个512通道14*14的卷积结果,经过全局平均池化GAP,对每一个通道求一个平均数(即得到512个平均数),这些平均数作为线性分类的权重进行加权求和,得到每一个类别的logit,经过softmax得到一个后验置信度,从而得到该特征中属于每一个类别的概率。视频讲解的时候,是假设有1000个类别。

其类激活热力图的计算是用平均数所对应的权重乘所对应的卷积层,描述了一种每一个卷积层对最后分类结果的重要程度,最后累加得到最后的结果为某一个类别所对应的热力图。

算法的缺点是必须要用GAP层替代全连接层进行重新训练,其相关改进为Grad-CAM。

在这里插入图片描述

  • 在GAM的算法中,其卷积网络使用的都是全卷积,并没有进行池化,这是因为池化有一个重要的特点就是平移不变性(无论特征在图片什么位置都可以识别到),因此会丢失图像的位置信息,因此在CAM热力图中,不使用带池化的卷积神经网络。
  • 全局平均池化:取代全连接层,减少参数量,防止过拟合。而且每个的GPA平均值间接代表了卷积层最后一层输出的每个channel,即每一个通道变成一个平均值。
  • 缺点:①必须得有GPA层,否则得修改模型结构后重新训练;②只能分析最后一层卷积层输出,无法分析中间层;③仅限于图像分类任务。

machine learning ——> machine teaching

参考视频:点这里

Grad-CAM(梯度加权类激活映射)

Grad-CAM是一种深度学习的技术,用于了解输入图像的哪一些区域对于网络对特定类别的预测的重要性。Grad-CAM在保留深度模型架构的情况下提供了可解释性。

算法原理

在Grad-CAM中,正常的使用网络进行训练,假设预测的分类结果logit为 y c y^c yc 则利用logit求梯度,如 ∂ y c ∂ A i j k \frac{\partial y^c}{\partial A^k_{ij}} Aijkyc。对梯度的结果做GAP得到各自的权重,然后对权重与卷积神经网络最后一层做加权求和,通过Relu得到热力图。
在这里插入图片描述
Grad-CAM可以进行扩展:
其中Guied Grad-CAM=Guided Backprop(GBP)+Grad CAM,实现高分辨率+低分辨率,可以对特征区域进行像素的描绘。实现一个既有高分辨率、又具有类别判别性的可解释算法。
在这里插入图片描述
优点:

  1. 无需GAP层,无需修改模型结构,无需重新训练。
  2. 可以分析任意中间层。
  3. 数学上是原生CAM的推广。
  4. 细粒度图像分类、Machine Teaching。

Grad-CAM++

针对Grad-CAM图像中有多个同类别的区域只能画出一个区域问题以及不同位置的梯度值,GAP平均之后的影响是相同的问题。

在这里插入图片描述

使用二阶和三阶偏导数得到每一个位置的权重,每一个位置的权重不同,则不同位置对最后的权重w的影响也就不同。

在这里插入图片描述

ScoreCAM

针对Grad-CAM梯度饱和、梯度消失、梯度噪声;权重大的channel不一定对类别预测分数贡献大;只考虑从后往前的方向传播梯度,没有考虑到前向预测的影响的问题。

使用两个神经网络:对于一张原图,首先输入到第一个神经网络Phase 1 中,通过上采样得到多个原图大小的特征图(高分辨率);把这些特征图与原图做乘法得到对应特诊图的区域,把这些区域输入到CNN网络中,得到每一个特征区域的权重,把这些权重与前面高分辨率的特征图做线性组合,就可以得到高分辨的整个类别区域。

在这里插入图片描述

LayerCAM

针对深层生成的粗粒度热力图与浅层生成的细粒度热力图都不够精确的问题。

参考视频:点这里

pytorch-grad-cam:可以实现对分类、swim transformer、Faster-RCNN、YOLO5、语义分割的可视化等。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/541178.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【JAVASE】带你了解String类的常用方法和常见操作

✅作者简介:大家好,我是橘橙黄又青,一个想要与大家共同进步的男人😉😉 🍎个人主页: 再无B~U~G-CSDN博客 目标: 1. 认识 String 类 2. 了解 String 类的基…

Flutter中间镂空的二维码扫描控件

1、UI效果图&#xff1a; 2、中间镂空UI&#xff1a; class CenterTransparentMask extends CustomClipper<Path> {final double? width;CenterTransparentMask({this.width});overridePath getClip(Size size) {final path Path()..addRect(Rect.fromLTWH(0, 0, size…

Go语言中如何正确使用 errgroup

不管是哪种编程语言,重新发明轮子都不是一个好主意。代码库重新实现如何启动多个goroutine并汇总错误也很常见。但是Go生态系统中的一个包旨在支持这种常见的用例。让我们来看看这个包并了解为什么它应该成为Go开发人员工具集的一部分。 golang.org/x是一个为标准库提供扩展的…

树上启发式合并(dsu on tree)学习

声明&#xff1a;本文部分内容摘自OI Wiki网站。详情可自行查看学习。 洛谷 P9233 题目实际上是蓝桥杯 2023 年 A 组省赛的一道题。题干大致的意思是&#xff0c;给定一个含有 n n n 个结点&#xff0c;并且以 1 1 1 为根的一棵树&#xff0c;每个节点 i i i 都有一个颜色 …

Spring框架第一篇(Spring概述与IOC思想)

文章目录 一、Spring概述二、Spring家族三、Spring Framework四、IOC思想五、IOC容器在Spring中的实现 一、Spring概述 Spring 是最受欢迎的企业级 Java 应用程序开发框架&#xff0c;数以百万的来自世界各地的开发人员使用 Spring 框架来创建性能好、易于测试、可重用的代码。…

Harbor私有镜像仓库

Docker私有仓库Harbor ​ 前面学习了Docker及Dockerfile构建镜像&#xff0c;那么构建的镜像放在哪里才能被Docker容器快速获取到呢&#xff1f;我们知道&#xff0c;可以把镜像放入Docker Hub镜像仓库&#xff0c;但是Docker Hub是国外网站&#xff0c;一方面镜像放在Docker …

童年女神大盘点:谁是第一个让你心动的动漫女神?

每当提起我们的童年记忆&#xff0c;总有一抹亮丽的色彩来自于那些国产动漫中的女性角色&#xff0c;她们以其独特的魅力、鲜明的性格和卓越的才智&#xff0c;深深地烙印在了我们的心底&#xff0c;成为了一代人的集体回忆。今天&#xff0c;让我们一同回首&#xff0c;盘点那…

napi系列学习进阶篇——NAPI异步调用

简介 OpenHarmony Napi 标准系统异步接口实现支持Callback方式和Promise方式。标准系统异步接口实现规范要求&#xff0c;若引擎开启Promise特性支持&#xff0c;则异步方法必须同时支持Callback方式和Promise方式。使用哪种方式由应用开发者决定&#xff0c;通过是否传递Call…

全新4.0版本圈子社交论坛系统 ,可打包小程序,于TP6+uni-app 全开源 可打包小程序app uniapp前端+全开源+独立版

简述 首先 圈子系统的核心是基于共同的兴趣或爱好将用户聚集在一起&#xff0c;这种设计使得用户能够迅速找到与自己有共同话题和兴趣的人。 其次 圈子系统提供了丰富的社交功能&#xff0c;如发帖、建圈子、发活动等&#xff0c;并且支持小程序授权登录、H5和APP等多种形式…

R语言记录过程

如何使用这个函数as.peakData 函数构造过程 出现问题是缺少函数的问题 up不告诉我&#xff0c;这里是代表c,h,o的值&#xff0c;你从里面获取把值&#xff0c;设置成c,h,o就可以了 现在开始测试参数 第一次 startRow : 开始查找数据的第一行。不管startRow的值是多少&#xff…

openstack-镜像服务 3

Glance镜像服务 创建glacnce数据库 创建glance用户并创建服务实体及api端点 安装glance软件包 修改配置文件 同步到数据库 设置开机自启并查看日志目录 使用测试镜像验证服务

10分钟带你学会配置DNS服务正反向解析

正向解析 服务端IP客户端IP网址192.168.160.134192.168.160.135www.openlab.com 一、首先做准备工作&#xff1a; 关闭安全软件&#xff0c;关闭防火墙&#xff0c;下载bind软件 [rootserver ~]# setenforce 0 [rootserver ~]# systemctl stop firewalld [rootserver ~]# y…

LeetCode题练习与总结:最小路径和--64

一、题目描述 给定一个包含非负整数的 m x n 网格 grid &#xff0c;请找出一条从左上角到右下角的路径&#xff0c;使得路径上的数字总和为最小。 说明&#xff1a;每次只能向下或者向右移动一步。 示例 1&#xff1a; 输入&#xff1a;grid [[1,3,1],[1,5,1],[4,2,1]] 输出…

超级详细的JDBC和数据库连接池讲解

文章目录 JDBC简介概念本质好处 JDBC快速入门JDBC中API详解DriverManager驱动管理类作用注册驱动获取连接 Connection数据库连接对象作用获取执行SQL的对象事务管理 Statement作用执行SQL语句 ResultSet原理使用步骤 PreparedStatementSQL注入获取对象操作步骤 原理好处 JDBC工…

项目管理-项目问题及需求解决要点

综上所述&#xff1a;在项目管理过程中&#xff0c;项目问题和需求逐渐增多&#xff0c;要不断的适应项目的种种&#xff0c;要想到如果没有问题要解决了&#xff0c;你的价值体现在哪里&#xff1f;要这样想&#xff0c;风险也是机会&#xff0c;所以问题等等也是自己的机会&a…

CopyTranslator下载地址及安装教程

CopyTranslator是一款免费且开源的机器翻译工具&#xff0c;旨在提供快速、便捷的翻译服务。它采用了先进的神经网络机器翻译技术&#xff0c;能够提供准确、流畅的翻译结果。 CopyTranslator的特点和功能如下&#xff1a; 多语言翻译&#xff1a;支持多种常见的语言对&#…

Unity让地图素材遮挡人物

点击编辑/项目设置/图形&#xff0c;透明度排序模式设置自定义轴&#xff0c;透明度排序轴Y设置为1其他为0。 此时人物和地图素材的图层排序相等&#xff0c;当人物的高度大于地图素材时&#xff0c;人物则被遮挡。

【零基础学数据结构】双向链表

1.双向链表的概念 1.1头节点 1.2带头双向循环链表 注意&#xff1a; 哨兵位创建后&#xff0c;首尾连接自己 1.3双链表的初始化 // 双向链表的初始化 void ListInit(ListNode** pphead) {// 给双链表创建一个哨兵位*pphead ListBuyNode(-1); } 2.双向链表的打印 // 双向…

Qlik在数据隐私计划中利用人工智能和分析

在技术快速变革的时代&#xff0c;政府正在努力追赶技术发展和我们日常生活中产生的个人身份信息&#xff08;“PII”&#xff09;数量不断增加的步伐。规范 PII 使用的隐私法不断加强&#xff08;Gartner估计&#xff0c;虽然到 2020 年&#xff0c;全面的隐私法将覆盖全球 10…

2024年广东省网络系统管理样题第1套网络搭建部分

2024年广东省职业院校技能大赛样题1 信息安全管理与评估 网络系统管理 网络搭建与应用 云计算 软件测试 移动应用开发 任务书&#xff0c;赛题&#xff0c;解析等资料&#xff0c;知识点培训服务 添加博主wx&#xff1a;liuliu5488233 网络系统管理赛项 模块A&#xff1a;网络…