深度学习可视化模型-程序员宅基地

技术标签: 深度强化学习  深度学习  人工智能  

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

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

网络的可视化——热力图

在这里插入图片描述

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、语义分割的可视化等。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/CodePlayMe/article/details/137627103

智能推荐

uniapp视频播放器(h5+app)

这是关于一篇在uniapp使用video视频播放器,支持自定义播放器样式,支持手势操作,选集、倍数和清晰度切换,支持SRT字幕格式。

uCosii从任务的建立到运行_ucosii用户任务中都有参数初始化,先执行哪个-程序员宅基地

文章浏览阅读823次。μC/OS-Ⅱ从任务的建立到运行提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、任务建立到运行整体流程二、分步功能实现1.μC/OS-Ⅱ初始化2.读入数据总结前言最近在学习ucosii实时操作系统,记录下学习过程,以待日后查阅.tips:本文所用ucosii版本为V2.86,硬件平台为STM32.一、任务建立到运行整体流程μC/OS-Ⅱ任务从建立到运行的整体流程如下所述:1. μC/OS-Ⅱ初始化: OSInit();2. 创建任务: Create_T_ucosii用户任务中都有参数初始化,先执行哪个

【燃料电池】燃料电池并网以最大额定功率运行研究(Simulink实现)_如何实现燃料电池大规模并网-程序员宅基地

文章浏览阅读260次。控制和电流谐振控制方法,增强了系统的稳定性,提高了供电质量。部分文献针对风力发电、太阳电池并网系统的小干扰稳定性进行研究,对燃料电池发电系统稳定性分析具有一定指导意义。文献[6,7]则分别建立太阳电池和风力发电系统的小信号模型,利用特征值分析法对系统的小干扰稳定性进行分析。文献[8]在光伏发电系统控制器参数进行全局优化以提高系统稳定性,但只考虑特征值作为单一优化目标,没有考虑阻尼比对系统稳定的影响,影响了控制参数的优化效果。在该模型中,燃料电池连接到电网,并由基于功率的控制器控制。行百里者,半于九十。_如何实现燃料电池大规模并网

AGI要闻:斯坦福李飞飞首次创业,瞄准“空间智能”;OpenAI下周发布搜索产品挑战谷歌;新的开源 AI 眼镜来了|钛媒体AGI | 最新快讯

她的专业领域是计算机视觉和认知神经科学。对于这家新的初创公司介绍,一位消息人士提到,上个月,李飞飞在温哥华 TED 大会上演讲中表示,最前沿的 AI 研究涉及一种算法,这种算法可以合理地推断出图像和文字在三维环境中的样子,并根据这些预测采取行动,这种算法使用的概念叫做“空间智能”。让机器狗在瑜伽球上保持平衡是很有挑战的任务,在没有大语言模型之前需要人去调整参数,但现在像 GPT-4 这样的大语言模型,因为本身就具备了丰富的物理知识,所以大语言模型可以代替人类去调整参数,并根据反馈的结果进行推理和参数调整。

Pytorch加载本地自己整理好的cifar10或cifar100数据集,并进行训练_cifar100 pytorch-程序员宅基地

文章浏览阅读6.7k次,点赞11次,收藏49次。Pytorch加载本地自己整理好的cifar10数据集,并进行训练这里写自定义目录标题1.下载数据集2.解压3.复制移动4.修改tv.datasets.CIFAR10源码使用pytorch在线下载cifar10数据集时,经常报错,而且很慢,倘若下载cifar100,那等待时间可想而知了。为了不浪费时间等待,可以将数据集先下载到本地,在自行加载,下面介绍一种修改源码简单的方法。1.下载数据集(随意下载,官网地址:http://www.cs.toronto.edu/~kriz/cifar-10-pytho_cifar100 pytorch

大象机器人开源六轴协作机械臂myCobot 320 手机摄影技术!

这些问题标志着我后续研究的重点方向,需要我继续深入学习AVFoundation框架的使用,特别是其控制摄像头的具体方法,并探索如何将这些控制整合到机械臂的运动调整中,以确保最终拍摄出的视频质量符合预期。尽管目前市场上有许多稳定设备如平衡环架(gimbal)来辅助拍摄,以求达到稳定和多角度的拍摄效果,但在此篇文章中,我将探索一种独特的解决方案:通过将手机安装在机械臂的末端来进行拍摄,以实现那些传统方法难以捕捉的特殊视角。随着人工智能技术的不断进步和普及,AI与机器人的结合无疑将成为未来技术发展的重要趋势。

随便推点

逆向_base64_rc4_----笔记_mdawmdawmdawmdawmdawmdawmdawmdawmdawmdawmdawmdawmd-程序员宅基地

文章浏览阅读1k次。新人…学校比赛,没什么经验,上去见见世面某公司的月赛题 资源就不放了,只是当笔记Ida打开 有点小陷阱 巧妙的堆栈运用导致载入ida分析不了 得不到函数的边界比较幸运win32的程序od打开走一遍流程感受下00AD12E7 . 52 push edx00AD12E8 . 68 C821AD00 push 5ba358a4.00AD21C8 ..._mdawmdawmdawmdawmdawmdawmdawmdawmdawmdawmdawmdawmdawmdawmdawmdawmdawmdawmdaw

致 Tapdata 开源贡献者:聊聊 2022 年的进展和新一年的共建计划-程序员宅基地

文章浏览阅读781次。在内、外部开发者的合力之下,过去一年 Tapdata 新增数据源近20个,实现了60+数据源的接入能力。一个人可以走得很快,一群人可以走得更远,2023年期待与您共创更受欢迎的开源项目。_tapdata

python列表添加元素的三种方法定义集合数据对象_python 学习第三天 可迭代对象(列表,字典,元组和集合)...-程序员宅基地

文章浏览阅读642次。列表,字典,元组和集合列表 list列表是由一系列特定元素组成的,元素和元素之间没有任何关联关系,但他们之间有先后顺序关系列表是一种容器列表是序列的一种列表是可以被改变的序列Python中的序列类型简介(sequence)字符串(str) 列表(list) 元组(tuple) 字节串(bytes) 字节数组(bytearray)创建空列表的字面值L = [ ] # L绑定空列表创建非空列表: L ..._python 集合 对象元素

第十五周 项目 1 - 验证算法_insertht(hashtable ha[], int& n, int m, int p, key-程序员宅基地

文章浏览阅读316次。/* *Copyright (c) 2016,烟台大学计算机学院 *All right reserved. *文件名称:test.cpp *作者:杨天瑞 *完成日期:2016年12月16日 *版本号:v1.7.5 * * 问题描述:验证算法。 * 程_insertht(hashtable ha[], int& n, int m, int p, keytype k)

react-native之项目结构分析_react native课程的项目分析-程序员宅基地

文章浏览阅读6k次,点赞5次,收藏10次。前言庖丁为文惠君解牛,手之所触,肩之所倚,足之所履,膝之所踦,砉然响然,奏刀騞然,莫不中音。合于桑林之舞,乃中经首之会。熟悉项目的结构,是开发的基本也是技术提升的一个重要途径,现总结下自己对react-native项目结构的分析与理解。正文项目结构init 的一个项目结构如图:tests:测试文件夹,执行命令 “npm test”会调用此文件夹,在文件夹中需要引入待测试文件。android:An_react native课程的项目分析

uniapp开发公众号,微信开发者工具进行本地调试_uniapp使用微信开发者工具 利用公众号调试的方法-程序员宅基地

文章浏览阅读584次。uniapp开发公众号,微信开发者工具进行本地调试_uniapp使用微信开发者工具 利用公众号调试的方法

推荐文章

热门文章

相关标签