可视化理解卷积神经网络

Unpooling上池化/上采样(nn.MaxUnpool2d) (Nearest Neighbor Unpooling & Bed of Nails Unpooling)(upsampling) Unpooling作为一种上采样的方法,与pooling看起来像是相反的操作,我们有三种方法,第一种是Nearest Neighbor,就是把相同的数据复制4个达到扩大四倍的效果,第二种是”Bed of Nails”,把数据防止在对应位置的左上角,然后其余的地方补0,如下图所示。 第三种方法是Max Unpooling,对于一部分网络模型来讲,上采样和下采样的结构往往是对称的,我们可以在下采样做Max Pooling的时候记录下来最大值所在的位置,当做上采样的时候把最大值还原到其对应的位置,然后... 阅读详情

可视化理解卷积神经网络

原文地址:http://blog.youkuaiyun.com/hjimce/article/details/50544370

作者:hjimce

一、相关理论

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

这篇文献的目的,就是要通过特征可视化,告诉我们如何通过可视化的角度,查看你的精度确实提高了,你设计CNN学习到的特征确实比较牛逼。这篇文献是经典必读文献,才发表了一年多,引用次数就已经达到了好几百,学习这篇文献,对于我们今后深入理解CNN,具有非常重要的意义。总之这篇文章,牛逼哄哄。

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

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

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

1、反池化过程

我们知道,池化是不可逆的过程,然而我们可以通过记录池化过程中,最大激活值得坐标位置。然后在反池化的时候,只把池化过程中最大激活值所在的位置坐标的值激活,其它的值置为0,当然这个过程只是一种近似,因为我们在池化的过程中,除了最大值所在的位置,其它的值也是不为0的。刚好最近几天看到文献:《Stacked What-Where Auto-encoders》,里面有个反卷积示意图画的比较好,所有就截下图,用这篇文献的示意图进行讲解:


以上面的图片为例,上面的图片中左边表示pooling过程,右边表示unpooling过程。假设我们pooling块的大小是3*3,采用max pooling后,我们可以得到一个输出神经元其激活值为9,pooling是一个下采样的过程,本来是3*3大小,经过pooling后,就变成了1*1大小的图片了。而upooling刚好与pooling过程相反,它是一个上采样的过程,是pooling的一个反向运算,当我们由一个神经元要扩展到3*3个神经元的时候,我们需要借助于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》

2、《Adaptive deconvolutional networks for mid and high level feature learning》

3、《Stacked What-Where Auto-encoders》

**********************作者:hjimce   时间:2016.1.10  联系QQ:1393852684   原创文章,转载请保留原文地址、作者等信息**************

CNN可视化技术总结(一)--特征图可视化 导言: 在CV很多方向所谓改进模型,改进网络,都是在按照人的主观思想在改进,常常在说CNN的本质是提取特征,但并不知道它提取了什么特征,哪些区域对于识别真正起作用,也不知道网络是根据什么得出了分类结果。 如在上次解读的一篇论文《Feature Pyramid Transformer》(简称FPT)中,作者提出背景信息对于识别目标有重要作用,因为电脑肯定是在桌上,而不是水里,大街上,背景中的键盘鼠标的存在也能辅助区分电脑与电视机,因此作者提出要使用特征金字塔融合背景信息。从人的主观判... 阅读详情

相关推荐

DL之CNN可视化:卷积神经网络理解的简介(相关论文/CNN各层级结构输出特征信息可视化)、代码实现理解

​ DL之CNN可视化:卷积神经网络理解的简介(相关论文/CNN各层级结构输出特征信息可视化)、代码实现理解 目录 卷积神经网络理解的简介 CNN可视化代码实战理解 卷积神经网络理解的简介 1、CNN各层卷积所干的事(各个层级结构的结果可视化) (1)、卷积操作、ReLU操作、池化操作可视化 红色,绿色 (2)、ConV1、ConV2、ConV3等层卷积后的结果 (3)、转置卷积可视化 2、人脸识别任务案例:线段→人脸五官→人脸轮廓

头部AI社区如有邀博主AI主题演讲请私信—心比天高,仗剑走天涯,保持热爱,奔赴向梦想!低调,专注,谦虚,自律,反思,成长,还算比较正能量的博主,公益免费传播…内心特别想在AI界做出一些可以推进历史进程影响力的技术(兴趣使然,有点小情怀,也有点使命感呀 1万+

CNN概念之上采样,反卷积,Unpooling概念解释

前言 本文译自quora上对《What is the difference between Deconvolution, Upsampling, Unpooling, and Convolutional Sparse Coding?》的回答。个人觉得这位老哥的回答很简洁干练。所以转到这里。 Upsampling(上采样) 在FCN、U-net等网络结构中,我们见识到了上采样这个东西。...

g11d111的博客 2万+

使用可视化方法理解卷积神经网络(CNN)的指南

Introduction “How did your neural network produce this result?” This question has sent many data scientists into a tizzy. It’s easy to explain how a simple neural network works, but what happens when ...

weixin_41697507的博客 2516

深度篇—— CNN 卷积神经网络(二) 细说 池化(pooling) 与 反池化(unpooling)

返回主目录 返回 CNN 卷积神经网络目录 上一章:深度篇—— CNN 卷积神经网络(一)细说 cnn 卷积神经网络 下一章:深度篇—— CNN 卷积神经网络(三)关于 ROI pooling 和 ROI Align与 插值 本小节,细说 池化 与 反池化,下一小节细说 关于 ROI 与 插值 二. 池化层 (pooling layer) 1. 池化...

天下所弃,不过其纪。世间事,在人,在志。 3032

解锁CNN:通过可视化理解卷积神经网络的工作原理

本文深入剖析了卷积神经网络(CNN)的工作原理及其在计算机视觉领域的应用。首先介绍了CNN的基础概念,包括局部连接、权值共享和池化等核心特性,以及卷积层、激活层和池化层的协同工作机制。重点阐述了CNN的可视化方法,如特征图可视化、卷积核可视化和Grad-CAM类激活可视化,这些技术有助于理解CNN的内部特征提取机制和决策过程。通过PyTorch实现了简单的CNN模型构建、训练和测试流程,并在CIFAR-10等数据集上进行了图像分类实验。最后展望了CNN在医学诊断、工业检测等领域的应用前景,指出随着算法优化和

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

PaddleOCR 3.x 最新版使用教程(2025)——从安装到实战身份证识别,一步到位!

本文针对PaddleOCR 3.x大版本更新带来的参数变化和兼容性问题,提供从环境配置到实际应用的全流程解决方案。

qq_58607032的博客 9788

深度学习(二十七)可视化理解卷积神经网络

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

hjimce的专栏 7万+

408计算机复试专业课问答汇总

408计算机复试专业课问答汇总

weixin_45930223的博客 3699

可视化理解卷积神经网络(CNN)

需要注意的是,在使用 Visualizing and Understanding Convolutional Networks的时候,对网络模型是有要求的,要求网络将模型包含名为features的组合层,这部分是代码中写死的,所以在pytorch的内置模型中,vgg、alexnet、densenet、squeezenet是可以直接使用的,inception(googlenet)和resnet没有名为features的组合层,如果要使用的话是需要对代码进行修改的。有好心人已经给我们准备好了。

sikh_0529的博客 1万+

STM32 SYSTICK定时器及延时函数详解

STM32 SYSTICK及延时函数详解 SysTick定时器 SysTick定时器被捆绑在NVIC中,用于产生SYSTICK异常(异常号:15)。在以前,大多操作系统需要一个硬件定时器来产生操作系统需要的滴答中断,作为整个系统的时基。例如,为多个任务许以不同数目的时间片,确保没有一个任务能霸占系统;或者把每个定时器周期的某个时间范围赐予特定的任务等,还有操作系统提供的各种定时功能,都与这个滴答定时器有关。因此,需要一个定时器来产生周期性的中断,而且最好还让用户程序不能随意访问它的寄存器,以维持操作系统“心

w1050321758的博客 2367

YonSuite如何新增用户并分配角色角色授权图文教程

用友YonSuite产品基础教学

ct341688的博客 619

如何快速理解卷积神经网络?CNN Explainer可视化工具让AI学习变得简单直观

CNN Explainer是一个交互式可视化系统,专为帮助非专业人士学习卷积神经网络(CNNs)而设计。通过直观的动态交互和可视化展示,即使没有深厚的机器学习背景,也能轻松理解CNN的工作原理和核心算法。 ## 什么是CNN Explainer? CNN Explainer是一个基于浏览器的开源工具,它通过动态可视化技术,将复杂的卷积神经网络运算过程转化为直观的图像和动画。该项目由Georgi

gitblog_00134的博客 1187

库卡机器人负载设置和自动负载测算

1.1在专家或者以上的权限下—“投入运行”——“工具/基座标管理”—“工具/工件”—添加1.2根据当前的工具所在的tool选择指定工具号;若是没有建立tool需要先建立建立方法看1.3负载数据的填写质量:抓手自重+产品重量总和(需要小于额定负载值)X、Y、Z :总质量的重心位置(基于法兰盘中心的位置计算,如下图的X_FLANGE、Y_FLANGE、Z_FLANGE)【此数据可以根据仿真或者CAD数据得出】A、B、C:是总质量绕着法兰盘中心所安装的角度位置 【此数据可以根据仿真或者CAD数据得出】

weixin_43462131的博客 3115

【深度学习】深入理解卷积神经网络(CNN):从代码实现到可视化(附程序和数据集)

本文将通过一系列 Python 代码,详细介绍如何构建一个简单的卷积神经网络,并展示如何通过可视化技术来理解卷积核的作用。我们将从代码实现、训练过程、梯度检查到卷积核的可视化,逐步深入探讨 CNN 的工作原理。本文通过一系列代码展示了如何从零开始构建一个简单的卷积神经网络,并展示了如何通过可视化技术来理解卷积核的作用。训练完成后,我们可以绘制训练和测试的准确率曲线,观察模型的学习效果。中,我们展示了如何将卷积核应用于图像,生成卷积后的特征图。:用于可视化卷积核的权重,展示学习前后的卷积核变化。

weixin_74773078的博客 2805

网课、网页视频倍速播放简单脚本

一个简单的网页视频倍速脚本

huazn612的博客 1万+

【matlab】基于 Simulink 的空调恒温控制系统仿真建模

本文介绍了基于Simulink的空调恒温控制系统仿真建模方法。系统采用PID控制算法,通过传感器测量温度、控制器计算信号、执行器调节功率来实现恒温控制。文章详细阐述了Simulink模型搭建步骤,包括PID控制器、房间热力学特性模拟等模块的实现,并提供了测试流程和多种实际部署场景。该方法可有效验证控制算法性能,优化系统设计,适用于家用、商用、工业及汽车空调系统。未来可结合智能算法和节能优化技术进一步提升系统性能。

走向CTO的路上... 920

可视化理解CNN

可视化理解卷积神经网络一、相关理论本篇博文主要讲解2014年ECCV上的一篇经典文献:《Visualizing and Understanding Convolutional Networks》,可以说是CNN领域可视化理解的开山之作,这篇文献告诉我们CNN的每一层到底学习到了什么特征,然后作者通过可视化进行调整网络,提高了精度。最近两年深层的卷积神经网络,进展非常惊人,在计算机视觉方面,识别精度...

WeisongZhao 1425

ESP32设备驱动-AS5600磁性旋转位置传感器

AS5600 是一款可编程的 12 位高分辨率非接触式磁性旋转位置传感器。 AS5600可以作为磁性电位器或磁性编码器使用,具有出色的可靠性和耐用性。 与传统电位器/编码器相比,AS5600具有显着优势:高精度、非接触式、旋转角度无限制。 所有这些优点使其适用于非接触式角度测量应用,例如机器人手臂、云台、电机闭环控制、机床轴定位。

视觉与物联智能 2552

CNN-Explainer: 深入理解卷积神经网络的可视化工具

CNN-Explainer: 深入理解卷积神经网络的可视化工具 项目地址:https://gitcode.com/gh_mirrors/cn/cnn-explainer 项目简介 是一个开源项目,旨在帮助开发者和机器学习爱好者更好地理解和解释卷积神经网络(Convolutional Neural Networks, CNN)的工作原理。通过交互式的可视化界面,用户可以探索CNN如何从输入图像中学习...

gitblog_00048的博客 1111

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

PyTorch可视化理解卷积神经网络

摘要:神经网络工具像一个黑匣子,无法知道它的中间是如何处理的。本文使用图片加代码的形式讲解CNN网络,并对每层的输出进行可视化,便于初学者理解,可以动手实践下哦! 如今,机器已经能够在理解、识别图像中的特征和对象等领域实现99%级别的准确率。生活中,我们每天都会运用到这一点,比如,智能手机拍照的时候能够识别脸部、在类似于谷歌搜图中搜索...

weixin_34221332的博客 1722

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

12、理解与可视化卷积神经网络

目录 12.1 可视化卷积神经网络学习到的东西 12.1.1可视化激活和第一层权重 12.1.2 找到对神经元有最大激活的图像 12.1.3用 t-SNE 嵌入代码 12.1.4遮挡部分图像 12.1.5可视化数据梯度及其他文献 12.1.6基于CNN代码重构原始图像 12.1.7保存了多少空间信息? 12.1.8根据图像属性绘制性能 12.2 玩弄ConvNet...

青星人工智能研究中心 2744

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

CNN的理解以及可视化

这里写自定义目录标题CNN的可视化理解第一个卷积层的可视化最后一层的可视化中间层的可视化擦除激活图显著图Saliency Map CNN的可视化理解 第一个卷积层的可视化 可视化第一层的卷积核: 可以看到卷积核中更多的是一些图像的边缘信息(轮廓信息),因此,第一层的卷积核可以提取一些图像的轮廓信息。 为什么要可视化卷积核: 目的就是我们想要研究每一层卷积层到底提取的是图像的什么信息。 通过可视化卷积核我们发现,卷积核是一些图像轮廓信息,所以我们可以知道,哦~原来卷积神经网络第一层提取了一些图像的轮廓信息。

weixin_42756682的博客 845

可视化理解卷积神经网络-ECCV 2014

可视化理解卷积神经网络 原文地址:http://blog.youkuaiyun.com/hjimce/article/details/50544370 作者:hjimce 一、相关理论 本篇博文主要讲解2014年ECCV上的一篇经典文献:《Visualizing and Understanding Convolutional Networks》,可以说是CNN领域可视化理解

carlyaocan的专栏 370

mlp神经网络_PyTorch可视化理解卷积神经网络

摘要: 神经网络工具像一个黑匣子,无法知道它的中间是如何处理的。本文使用图片加代码的形式讲解CNN网络,并对每层的输出进行可视化,便于初学者理解,可以动手实践下哦!如今,机器已经能够在理解、识别图像中的特征和对象等领域实现99%级别的准确率。生活中,我们每天都会运用到这一点,比如,智能手机拍照的时候能够识别脸部、在类似于谷歌搜图中搜索特定照片、从条形码扫描文本或扫描书籍等。造就机器能够获得在这些视...

weixin_39591916的博客 993

论文分享|打开CNN黑箱:可视化与理解卷积神经网络

本文深度解析了Matthew Zeiler和Rob Fergus于2013年发表的里程碑式论文《Visualizing and Understanding Convolutional Networks》。该研究首次系统性地提出了一种可视化卷积神经网络(CNN)内部工作机制的方法,通过“反卷积网络”(DeconvNet)技术将高层特征激活反向映射到输入像素空间,使我们能够直观地观察和理解每一层网络所学习的特征表示。这不仅解决了深度学习长期存在的“黑箱”问题,还直接指导了网络架构的改进——作者通过可视化诊断出A

AladdinEdu,你的AI学习实践工作坊。让想法落地,让研究加速。助力高校AI人才成长,点亮创新未来。 881
上一篇: 准确率,召回率,F1 值、ROC,AUC、mse,mape评价指标
下一篇: 数据集
class_brick
博客等级 码龄12年 223粉丝 76原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值