基于反卷积的特征图的可视化

深度学习研究理解5:Visualizing and Understanding Convolutional Networks Visualizing and understandingConvolutional Networks 本文是Matthew D.Zeiler 和Rob Fergus于(纽约大学)13年撰写的论文,主要通过Deconvnet(反卷积)来可视化卷积网络,来理解卷积网络,并调整卷积网络;本文通过Deconvnet技术,可视化Alex-net,并指出了Alex-net的一些不足,最后修改网络结构,使得 阅读详情

使用反卷积(Deconvnet)可视化CNN卷积层,查看各层学到的内容

通过deconv将CNN中conv得到的feature map还原到像素空间,以观察特定的feature map对哪些pattern的图片敏感,这里的deconv其实不是conv的可逆运算,只是conv的transpose,所以tensorflow里一般取名叫transpose_conv。

一、相关理论

本篇博文主要讲解2014年ECCV上的一篇经典文献:《Visualizing and Understanding Convolutional Networks》,可以说是CNN领域可视化理解的开山之作,这篇文献告诉我们CNN的每一层到底学习到了什么特征,然后作者通过可视化进行调整网络,提高了精度。最近两年深层的卷积神经网络,进展非常惊人,在计算机视觉方面,识别精度不断的突破,CVPR上的关于CNN的文献一大堆。然而很多学者都不明白,为什么通过某种调参、改动网络结构等,精度会提高。可能某一天,我们搞CNN某个项目任务的时候,你调整了某个参数,结果精度飙升,但如果别人问你,为什么这样调参精度会飙升呢,你所设计的CNN到底学习到了什么牛逼的特征?

这篇文献的目的,就是要通过特征可视化,告诉我们如何通过可视化的角度,查看你的精度确实提高了,你设计CNN学习到的特征确实比较牛逼。这篇文献是经典必读文献,才发表了一年多,引用次数就已经达到了好几百,学习这篇文献,对于我们今后深入理解CNN,具有非常重要的意义。总之这篇文章,牛逼哄哄。其实玩过caffe的digits的朋友应该知道,在digits上也可以可视化每一层卷积,池化操作之后的特征图片。这点caffe比较好,适合懒人操作。

二、利用反卷积实现特征可视化

为了解释卷积神经网络为什么work,我们就需要解释CNN的每一层学习到了什么东西。为了理解网络中间的每一层,提取到特征,paper通过反卷积的方法,进行可视化。反卷积网络可以看成是卷积网络的逆过程。反卷积网络在文献《Adaptive deconvolutional networks for mid and high level feature learning》中被提出,是用于无监督学习的。然而本文的反卷积过程并不具备学习的能力,仅仅是用于可视化一个已经训练好的卷积网络模型,没有学习训练的过程。

反卷积可视化以各层得到的特征图作为输入,进行反卷积,得到反卷积结果,用以验证显示各层提取到的特征图。举个例子:假如你想要查看Alexnet 的conv5提取到了什么东西,我们就用conv5的特征图后面接一个反卷积网络,然后通过:反池化、反激活、反卷积,这样的一个过程,把本来一张1313大小的特征图(conv5大小为1313),放大回去,最后得到一张与原始输入图片一样大小的图片(227*227)。

1、反池化过程

我们知道,池化是不可逆的过程,然而我们可以通过记录池化过程中,最大激活值得坐标位置。然后在反池化的时候,只把池化过程中最大激活值所在的位置坐标的值激活,其它的值置为0,当然这个过程只是一种近似,因为我们在池化的过程中,除了最大值所在的位置,其它的值也是不为0的。刚好最近几天看到文献:《Stacked What-Where Auto-encoders》,里面有个反卷积示意图画的比较好,所有就截下图,用这篇文献的示意图进行讲解:
在这里插入图片描述
以上面的图片为例,上面的图片中左边表示pooling过程,右边表示unpooling过程。假设我们pooling块的大小是33,采用max pooling后,我们可以得到一个输出神经元其激活值为9,pooling是一个下采样的过程,本来是33大小,经过pooling后,就变成了11大小的图片了。而upooling刚好与pooling过程相反,它是一个上采样的过程,是pooling的一个反向运算,当我们由一个神经元要扩展到33个神经元的时候,我们需要借助于pooling过程中,记录下最大值所在的位置坐标(0,1),然后在unpooling过程的时候,就把(0,1)这个像素点的位置填上去,其它的神经元激活值全部为0。再来一个例子:
在这里插入图片描述
在max pooling的时候,我们不仅要得到最大值,同时还要记录下最大值得坐标(-1,-1),然后再unpooling的时候,就直接把(-1-1)这个点的值填上去,其它的激活值全部为0。

2、反激活

我们在Alexnet中,relu函数是用于保证每层输出的激活值都是正数,因此对于反向过程,我们同样需要保证每层的特征图为正值,也就是说这个反激活过程和激活过程没有什么差别,都是直接采用relu函数。

3、反卷积

对于反卷积过程,采用卷积过程转置后的滤波器(参数一样,只不过把参数矩阵水平和垂直方向翻转了一下),反卷积实际上应该叫卷积转置。
最后可视化网络结构如下:
在这里插入图片描述网络的整个过程,从右边开始:输入图片-》卷积-》Relu-》最大池化-》得到结果特征图-》反池化-》Relu-》反卷积。到了这边,可以说我们的算法已经学习完毕了,其它部分是文献要解释理解CNN部分,可学可不学。

总的来说算法主要有两个关键点:1、反池化 2、反卷积,这两个源码的实现方法,需要好好理解。

三、理解可视化

特征可视化:一旦我们的网络训练完毕了,我们就可以进行可视化,查看学习到了什么东西。但是要怎么看?怎么理解,又是一回事了。我们利用上面的反卷积网络,对每一层的特征图进行查看。

1、特征可视化结果:
在这里插入图片描述
在这里插入图片描述总的来说,通过CNN学习后,我们学习到的特征,是具有辨别性的特征,比如要我们区分人脸和狗头,那么通过CNN学习后,背景部位的激活度基本很少,我们通过可视化就可以看到我们提取到的特征忽视了背景,而是把关键的信息给提取出来了。从layer 1、layer 2学习到的特征基本上是颜色、边缘等低层特征;layer 3则开始稍微变得复杂,学习到的是纹理特征,比如上面的一些网格纹理;layer 4学习到的则是比较有区别性的特征,比如狗头;layer 5学习到的则是完整的,具有辨别性关键特征。

2、特征学习的过程。
作者给我们显示了,在网络训练过程中,每一层学习到的特征是怎么变化的,上面每一整张图片是网络的某一层特征图,然后每一行有8个小图片,分别表示网络epochs次数为:1、2、5、10、20、30、40、64的特征图:
在这里插入图片描述
结果:(1)仔细看每一层,在迭代的过程中的变化,出现了sudden jumps;(2)从层与层之间做比较,我们可以看到,低层在训练的过程中基本没啥变化,比较容易收敛,高层的特征学习则变化很大。这解释了低层网络的从训练开始,基本上没有太大的变化,因为梯度弥散嘛。(3)从高层网络conv5的变化过程,我们可以看到,刚开始几次的迭代,基本变化不是很大,但是到了40~50的迭代的时候,变化很大,因此我们以后在训练网络的时候,不要着急看结果,看结果需要保证网络收敛。

3、图像变换。从文献中的图片5可视化结果,我们可以看到对于一张经过缩放、平移等操作的图片来说:对网络的第一层影响比较大,到了后面几层,基本上这些变换提取到的特征没什么比较大的变化。

个人总结:我个人感觉学习这篇文献的算法,不在于可视化,而在于学习反卷积网络,如果懂得了反卷积网络,那么在以后的文献中,你会经常遇到这个算法。大部分CNN结构中,如果网络的输出是一整张图片的话,那么就需要使用到反卷积网络,比如图片语义分割、图片去模糊、可视化、图片无监督学习、图片深度估计,像这种网络的输出是一整张图片的任务,很多都有相关的文献,而且都是利用了反卷积网络,取得了牛逼哄哄的结果。所以我觉得我学习这篇文献,更大的意义在于学习反卷积网络。

参考文献:

1、《Visualizing and Understanding Convolutional Networks》
推荐这篇文章比较详细的进行了中文翻译:http://www.360doc.com/content/15/0611/23/20625683_477507431.shtml

2、《Adaptive deconvolutional networks for mid and high level feature learning》
3、《Stacked What-Where Auto-encoders》

图像处理特征可视化方法总结(特征图、卷积核、类可视化CAM)(附代码) 图像处理特征可视化方法总结(特征图、卷积核、类可视化CAM 阅读详情

相关推荐

扒开CNN“黑箱”:探索特征图、反卷积与Class Activation Map可视化技术

本文系统介绍了卷积神经网络(CNN)的可视化技术,包括特征图可视化、反卷积可视化和类激活映射(CAM)三种主要方法。通过Keras和PyTorch实现示例,详细阐述了这些技术的原理和应用价值:特征图可视化可直观展示不同卷积层提取的特征层次;反卷积技术能将抽象特征还原为图像空间;CAM则能生成热力图揭示模型决策依据。这些方法有效解决了CNN"黑箱"问题,为模型优化、可解释性研究提供了重要工具。文章还探讨了可视化技术在图像分类和目标检测任务中的实际应用案例,并展望了未来与可解释AI、知识图谱

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 145

卷积可视化 (超详细,多图警告!)

卷积可视化 (超详细,多图警告!)

PLANTTHESON的博客 2万+

LMX2594寄存器配置zip实战:从SPI移植到频率修改的完整指南

锁相环(PLL)频率合成器是雷达、通信与信号源中的核心模块,而寄存器配置直接决定其输出频率、锁定速度与相位噪声。LMX2594/2595作为宽频锁相芯片,内部拥有上百个控制寄存器,写入顺序与时序依赖极为严格,稍有不慎便会导致失锁或输出异常。工程实践中,善用已验证的寄存器配置包,可以大幅缩短开发周期。SPI作为最常用的配置接口,其时钟极性、帧格式及读写时序都必须与芯片要求严格匹配。将寄存器表移植到STM32等单片机时,需要关注初始化的顺序、回读校验以及按目标频率修改VCO分频、输出功率和电荷泵电流等关键参数。

weixin_34126557的博客 348

深度学习中的卷积与反卷积

深度学习中的卷积与反卷积卷积与反卷积操作在图像分类、图像分割、图像生成、边缘检测等领域都有很重要的作用。为了讲明白这两种操作,特别是反卷积操作,本文将依照 * 神经网络中的编码器——解码器——卷积——反卷积* 的思路来一步步介绍。编码器神经网络本质上就是一个线性变换,通过将输入的多维向量与权重矩阵相乘,得到一个新的多维向量。当输入向量的维度高于输出向量的维度时,神经网络就相当于一个编码器,例如下图

庞琳卓的博客 4万+

零基础教程:用Python给试卷照片自动切题(有道OCR+PIL完整流程)

本文为零基础用户提供了一套完整的Python自动化切题方案。通过调用有道OCR API识别试卷照片中的题目坐标,并利用PIL库进行精准裁剪,将杂乱的试卷图片自动分割为独立的题目图像。教程详细涵盖了环境搭建、图像预处理、API调用、坐标解析与批量处理全流程,帮助教育工作者和技术爱好者高效处理大量试卷,实现工作流程自动化。

grpc6streamer的博客 1174

相机图像质量研究(15)常见问题总结:光学结构对成像的影响--暗角

老式相机的暗角往往比较明显,周围一圈能够明显感觉到亮度下降的很多,当然有些电源模仿手持相机的摄影效果,也能看到周围明显的亮度下降。一、

xiaoshixiu的专栏 1123

卷积层和反卷积层输出特征图大小计算

需要注意的是,反卷积的填充指的是输出特征图的填充,而不是输入特征图的填充。在反卷积中,输出特征图的填充会增加输出特征图的大小。总的来说,计算输出特征图大小的公式考虑了输入特征图的尺寸、卷积核的大小、填充的大小、步长和输出填充的大小等参数。当我们有一个输入特征图大小为 26x26 ,反卷积核大小为 3x3 ,步长为 1 ,输出填充为 0 的情况下,计算反卷积层的输出特征图大小。当我们有一个输入特征图大小为 28x28 ,卷积核大小为 3x3 ,步长为 1 ,填充为 0 的情况下,计算卷积层的输出特征图大小。

SimpleLearning 4112

opencv实践项目-图片拼接之缝合线算法

opencv 图片缝合线算法

wyw0000的博客 2624

反卷积算法在图像处理领域的突破性成果

1.背景介绍 在过去的几十年里,图像处理技术在计算机视觉、医学影像、卫星影像等领域取得了显著的进展。图像处理的主要目标是从原始图像中提取有意义的信息,以便进行有效的分析和理解。图像处理的主要技术包括图像压缩、图像恢复、图像增强、图像分割、图像识别等。 然而,传统的图像处理技术存在一些局限性。传统的图像处理算法通常是基于像素级别的操作,这种方法在处理复杂的图像结构和高级图像特征方面存在一定的局限...

AI天才研究院 658

一文解释电路中常用电子元器件应用和选型01

电容和二极管是电路中最常用的两个电子元器件,种类和系列众多,这里简单总结一下应用场景和选型方式 电容(Capacitor) 电容的种类(20种以上)和应用非常广泛,但是我经常遇到的无非就是下面这几种: 应用 1.隔直流。 2.旁路(去耦) 3.耦合 4.滤波 5.温度补偿 6.计时 7.调谐 8.整流 9.储能 种类 1. 陶瓷电容 2. 云母电容 3. 铝电解电容 4. 钽

weixin_43904073的博客 2237

3D高斯泼溅实战:如何用自采数据集训练出高质量3D模型(附COLMAP避坑指南)

本文详细介绍了使用自采数据集训练高质量3D高斯泼溅模型的完整实战流程。从数据采集规范、COLMAP稀疏重建的深度配置与避坑指南,到数据格式转换及3DGS训练调优策略,提供了针对自采数据的关键参数调整与问题排查方案,帮助读者高效构建专属3D场景。

g9h0i1的博客 977

卷积神经网络特征图可视化及其意义

卷积神经网络特征图可视化方法及其意义

weixin_43080939的博客 3614

3台虚拟机部署Doris详细文档(含校验步骤)

摘要:本文详细介绍了Apache Doris在3台虚拟机上的集群部署方案。采用1主FE+1从FE+1观察者FE+3BE的混合部署模式,确保元数据高可用性。硬件配置建议测试环境4核16GB内存,生产环境8核64GB内存。部署步骤包括系统环境配置(关闭防火墙、内核参数优化)、FE/BE节点配置启动、集群初始化验证等。重点配置了IP白名单(172.30.0.115)和数据目录(/data/doris)。通过MySQL客户端和WebUI可监控集群状态,实现千万级数据的实时分析能力,后续可通过增加BE节点线性扩展。

weixin_41026747的博客 933

反卷积神经网络 —— 卷积网络的可视化过程

原文地址:地址1,本文在此基础上进行了整理和划重点 本文文献:Zeiler, Matthew D.; Fergus, Rob,"Visualizing and Understanding Convolutional Networks".  In: Proc. European Conference on Computer Vision (ECCV), pp. 1-14, 2014. Zurich...

梦Dancing的博客 7848

Vibe Coding 工具实战案例全解:Cursor、Claude Code、Codex 真实项目 30 分钟到 4 小时快速构建指南(2026 年最新)

2026年VibeCoding工具实战案例精选:1)使用Cursor在30分钟内构建现代TodoList应用(Next.js+TS+Tailwind);2)通过ClaudeCode纯终端2小时开发3D飞行射击游戏(Three.js+R3F);3)利用OpenAICodex多Agent并行4小时完成SaaS全栈开发(Next.js+Supabase+Stripe)。案例均来自真实项目,覆盖从入门到生产级开发,重点展示:自然语言Prompt技巧、迭代反馈方法、工具特性对比(Cursor可视化最佳/Claude推

hy行者勇哥的博客 3173

AI应用质量工程实践:从评估到监控的完整体系构建

在软件工程领域,质量保障体系是确保产品稳定可靠的核心机制,涉及度量指标、保障流程和工具链的完整闭环。随着生成式AI应用的快速发展,如何将传统软件工程中的质量门禁思想引入AI领域,成为工程实践的关键挑战。其核心原理在于构建可量化、可监控、可改进的质量评估框架,通过自动化测试、持续监控和反馈优化来管理AI输出的不确定性。这一技术价值在于将AI应用从原型阶段推向产品化,确保输出的一致性、安全性和可靠性。在实际应用场景中,开发者需要从功能性、非功能性、一致性和合规性四个维度构建评估体系,并借助LLM-as-a-Ju

weixin_28728279的博客 294

反卷积的作用

经常在别人的网络结构看到反卷积的存在,我们知道卷积池化的作用是提取高维特征,但是反卷积的作用只能说出类似于利用学习的方法把图像细节还原,类似超分的作用,那到底是什么作用呢? 这里整理网上有用的参考: 反卷积又称转置卷积: 信息来源:知乎 来还原feature map的尺寸大小,用于还原之前一系列卷积操作之后特征图分辨率变小的问题 CNN可视化 fcn中达到pixel classification...

Asber的博客 7160

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

使用反卷积(Deconvnet)可视化CNN卷积层,查看各层学到的内容

通过deconv将CNN中conv得到的feature map还原到像素空间,以观察特定的feature map对哪些pattern的图片敏感,这里的deconv其实不是conv的可逆运算,只是conv的transpose,所以tensorflow里一般取名叫transpose_conv。 一、相关理论 本篇博文主要讲解2014年ECCV上的一篇经典文献:《Visualizing and Un...

刀刀鱼 1万+

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

opencode 完整上手指南:三个真实场景跑通 10 分钟配置

opencode 是一个运行在终端里的开源 AI 编码助手:它能读你整个代码库、动手改文件、自己执行测试,而你要做的只是把目标说清楚。本文用一天里的三个真实任务——接手陌生项目、修复失败测试、审查改动——带你走完 10 分钟配置流程,并顺手讲清几个真正提效的使用习惯。 ## 一天三个真实任务:先看清 opencode 能干什么 **上午,接手一个陌生项目。** 打开终端,输入"帮我梳理这个仓库

gitblog_00076的博客 457

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

卷积层特征的可视化

前言与背景: 很多论文都提到可视化卷积层的特征图,如这篇SCI二区的IEEE论文,最早提出可视化卷积层工作的好像是2014年的一篇顶会。 这篇论文有一部分的工作就是可视化卷积层的输出,它选择了可视化第一层卷积层和最后一层池化层,认为这样有助于理解与解释卷积神经网络。一般观点都认为卷积神经网络是先提取低层次特征(例如点、线),再提前高层次的抽象特征。 实现方法: 我用的深度学习框架是Te...

Amigo_1997的博客 4312

几种深度学习可视化方法(针对层级化特征表示)的辨析

几种深度学习层级化特征学习可视化图的辨析

scar_tom的博客 2514

CNN可视化论文阅读

论文链接:https://arxiv.org/abs/1311.2901 这篇文章采用反卷积的思想实现CNN特征可视化,首先介绍一下什么是反卷积网络。 反卷积 我们都知道CNN主要是由卷积层和下采样(pooling)层来构建网络结构,一层一层,通过对上一层的输出进行卷积或者pool从而得到维度小一点的feature maps。 而反卷积网络则是一个让特征图像学着映射到原图像的方法,经典的反...

小熊猫的博客 1945

卷积可视化

图像卷积操作的应用没有严格的数学推导,即没有数学推导表明每一层究竟表示什么。 为了了解卷积神经网络中每一层与原有图像的对应关系, 文章Visualizing and Understanding Convolutional Networks通过反向卷积的方式实现了该过程。 文章中说反卷积,只是说卷积后的层c1利用卷积核的转置,得到上一层h1的结果。 那具体如何操作的呢?得到的h1与真实的

mykeylock的博客 719

【Datawhale可解释性机器学习笔记】ZFNET

ZFNET

JeffDing 305

转置卷积Deconvolution/Transposed Convolution

来源 转置卷积也成为分数步卷积、反卷积; 当需要进行上采样是,可以使用转置卷积,与插值方法相比(Resize,如双线性插值直接缩放,类似于图像缩放),他具有可学习的参数; 转置卷积通常用在两个方面: CNN可视化,通过反卷积将卷积得到的feature map还原到像素空间,来观察feature map对哪些pattern相应最大,即可视化哪些特征是卷积操作提取出来的; FCN全卷积网络,由于要对...

weixin_44783002的博客 470

卷积与反卷积(转置卷积)

Transposed Convolution, Fractionally Strided Convolution or Deconvolution 原文:https://buptldy.github.io/2016/10/29/2016-10-29-deconv/ 反卷积(Deconvolution)的概念第一次出现是Zeiler在2010年发表的论文Deconvolutional network...

h_l_dou的博客 856
上一篇: 图结构与图算法综述
下一篇: 换行写入txt文件
like_study_cat
博客等级 码龄7年 44粉丝 136原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值