ZFNet论文详解

news2024/11/22 8:59:10

ZFNet

CNN卷积网络的发展史

1. LetNet5(1998)
2. AlexNet(2012)
3. ZFNet(2013)
4. VGGNet(2014)
5. GoogLeNet(2014)
6. ResNet(2015)
7. DenseNet(2017)
8. EfficientNet(2019)
9. Vision Transformers(2020)
10. 自适应卷积网络(2021)

上面列出了发展到现在CNN的一些经典的网络模型,我将持续不断更新学习上述神经网络的笔记。共勉!

ZFnet是2013年ImageNet挑战赛冠军的模型,该模型由微软研究院的Alex Krizhevsky和Ilya Sutskever设计。

原论文地址Visualizing and Understanding Convolutional Networks

Abstract(概念)

大型卷积网络模型最近展示了令人印象深刻的经典在ImageNet实验台上的操作性能(Krizhevsky et al., 2012)。然而卷积神经网路在当时就像一个黑箱子,我们并不知道它为什么能够工作以及它为什么能表现的那么好。在本文中,我们解决了这两个问题:

  • 我们介绍了一种新颖的可视化技术这让我们能够可视化模型的中间特征层以及分类器的操作。这种可视化技术可以用来解释为什么Krizhevsky等人在ImageNet上分类的模型为什么效果那么好。
  • 我们还会通过对比来探究模型敏感度,相关性。我们展示我们的ImageNet模型很好地推广到其他数据集:当对Softmax分类器进行了再训练,结果令人信服比目前最先进的结果要好Caltech-101和Caltech-256数据集。

本篇文章有点长,但是会对我们理解卷积神经网络有很大的帮助。并且为我们改进网络提供了很好的思路。 相关视频推荐ZFNet深度学习图像分类算法(反卷积可视化可解释性分析)

1. Introduction(介绍)

这部分介绍了以下3个因素会减小模型损失:

  1. 大规模结构化数据
  2. 更强的GPU,TPU等
  3. 更好的模型正则化策略,dropout(每个batch随机掐死一部分神经元,阻止它的前向和反向传播,这样可以放置过拟合。破除了神经网路中的联合适应性,模型集成,数据增强的效果)
  1. 尽管当时的模型已经这么强了,但是我们对它的内部操作以及内部行为都一无所知,我们也不知道从什么角度提示它的性能,这对于一个科学家来讲是远远不够的。 如果我们对它的内部没有清晰的了解,对它的操作没有认识,我们对它的所有改进都变成了试错碰运气。 那么我们怎么才能创造出一个好的网络模型呢?

  2. 这篇论文中我们介绍了一种可视化技术,它能够揭示每一个神经网路中的feature map(特征图)对哪些特征感兴趣。并且展示了在训练中不同层的特征演化过程把它作为一个诊断模型潜在问题的方法。使用的可视化方法叫做deconvnet(反卷积)。并且进行了局部遮挡敏感性分析,局部遮挡相关性分析用于探究分类器是对图像中哪部分是重点关注的。

  3. ZFNet是通过对ALexNet进行改进而得到的,并且我们发现在IamgeNet上进行训练的模型能够泛化迁移到其他数据集上只需重新训练最后的softmax分类器就可以。

1.1 Related Work(相关工作)

可视化卷积神经网路可以让我们对网路的性能有直观的认识,但是当时大多数只停留在第一层,因为第一层卷积核比较好可视化,低层的feature map可解释性强,高层的feature map可解释性弱完全看不出来是什么,为此Erhan等人在2009提出了梯度上升用于可视化,但是此方法需要谨慎的初始化,并且对每一层的不变性没有任何帮助。(不变性:网络能从不同的图中提取到相同的特征和信息)。为此Le等人延申了(Berkes&Wiskott)的思想提出用海森矩阵数值解来获取最优的响应,就可以来研究神经网路的不变性了。但是对于神经网路高层很难用一个二阶近似值表明的。Donahue等人在2013年提出了一个方法,它是从原图中找到一些小图可以使其在高层神经网路中有一个强的激活但是我们的方法(deconvnet)是不一样的,我们的方法提供了一个无参数并且能够探究网络不变性的方法,能够表明每一个中间层的feature map对哪种特征模式感兴趣,是从高层向底层投影揭示特定的feature map关注的是哪些信息,哪些模式。

2. Approach(方法)

该方法是在AlexNet上进行修改得到的。在下面我们会具体介绍那些地方改动了。
在这里插入图片描述

神经网路前向传播:输入图像-卷积-Relu激活-池化-归一化-全连接-Softmax。
deconvnet: 反池化-Relu激活-反卷积。

下面我们将介绍这三个概念:

2.1 Unpooling(反池化)

我们都知道最大池化进行的是下采样操作,将大图变为小图但是这样子做不可避免的会丢失相关区域的信息。这里我们引入switch操作用于记住最大值的位置,在我们进行反池化的时候只需将值回溯到原位置就能完成反池化操作,这样子我们就能保留主要的特征,如下图所示。

在这里插入图片描述

反池化将小图转为大图,从图中我们可以看到很多信息已经丢失了,但是它任然能够保留提取特征的主要矛盾。

2.2 反激活

使用Relu

目的:保证所有中间的激活为正数。

2.3 反卷积

使用原始正向卷积核的转置

注意:虽然池化时会丢失一部分信息,但重构得到的图和原图还是有一定相似性的。 亮暗轮廓体现出特定feature map反映的特征。

3. Training Deatils

这里我们就不介绍了,这部分论文中就是介绍了训练的细节。

4. Convnet Visualization(可视化)

在这里插入图片描述

如上图所示,左上图是第一层卷积核的feature map下方的这些是能使上面9个卷积核激活最大的数据集中原图中9张小图。第一层并不需要deconvnet,只需要将feature map和卷积核可视化出来就行。上图左边的第一个是一个右向下的斜杠,刚好在下图中第一个也是。左上图中第3行第2列的提取的是绿色的特征,刚好原图中也是绿色能够使其激活最大。根据可视化结果我们可以发现第一层网络提取的是边缘,颜色等特征

在这里插入图片描述

接下来的就可以使用deconvnet进行可视化了。如上图所示左图是第二层的feature map通过deconvnet重构回原始像素空间再经过可视化得到的图像。右图是原图中能使卷积核激活最大的9张小图。通过结果我们可以发现第二层提取到了图片的形状。例如右下角卷积核提到的是直角特征,也有黄色特征(4行3列)出现了更高级的特征。接下里我们看一下第三层卷积核提取的特征。

在这里插入图片描述

通过左边灰色图是第三层卷积核的feature map通过deconvnet后可视化的图像,右图是原图中能使该层卷积核激活最大的图像。通过结果我们发现提取的特征已经有人脸,毛绒,轮胎,语言等语义特征了。并且原图不再是长得一样的图片,而是不同的(例如人脸3行3列,是原图中9张不同的人脸),这说明高层网络提取到的特征具有不变性
在这里插入图片描述

通过结果我们可以发现第4层,第5层卷积核提取到的特征是狗脸,鸟脚,鸟眼睛,自行车轮胎,绿色背景(第5层中第1行2列)等特征。

总结: 从上述结果我们可以发现:

  1. 低层网络提取到边框,颜色等空间特征(spatial)而高层网络则提取到人脸,眼睛,绿色背景等语义(semantic)特征
  2. 越高层的网络提取到的特征越具有不变性(不同图像中提取到相同部分)

在这里插入图片描述

  1. 低层网络收敛越快,高层网络收敛越慢。每一行表示一个feature map,每一列表示训练过程中不同的轮次。从原图中找到能使第2层卷积核激活最大的一张图,将它喂入网络中得到feature map再经过deconvnet重构回原始像素空间再经过可视化就得到这个灰图。 如果图片中出现突变(例如Layer3中的脸从4行5列到4行6脸,脸不一样了),原始的图像发生了改变。Layer2中我们发现很早的轮次就出现了特征(收敛),高层中只有到后面的几个轮次才出现特征(收敛)。

接下来我们探究原图进行平移,旋转,缩放等操作对网络的底层和高层造成的影响,小的改变对底层网络有巨大的影响,对高层影响较小是准线性的。最后的结果对平移,缩放并不敏感,但是当旋转到一定角度时,网络会很敏感。

在这里插入图片描述

从上图中我们可以发现,第一层只要平移,缩放,旋转一点点就会有很大的改变而第7层平移,缩放变化不大,但是场景这一特征在旋转到一定角度时会规律性出现峰值。由此我们可以得出结论:卷积神经网路具有良好的平移和缩放不变性并不具有良好的旋转不变性

4.1 Architecture Selection(模型改进)

通过可视化我们可以对AlexNet网络进行改进,通过可视化第一层和第二层我们发现第一层中有一些卷积核是特别高或特别低的高频或低频信息,这些卷积核称为无效卷积核。第二层因为步长特别大,会出现一些混淆的人工特征(网格)这些也是无效的。为了纠正这些我们将1111改为了77并且将步长由4改为了2.新体系保持了良好的特性,卷积核都变的有效同样feature map也是有效的。并且分类的性能也优于AlexNet。

在这里插入图片描述

从上图中我们可以发现对训练中第一层卷积核进行可视化,卷积核过大会出现高亮信息,并且存在很多失效的filter和混乱网络。但是通过
(1) 减小卷积核,可以使失效的卷积核减少,
(2) 减小步长:可以减掉混乱网络。

4.2 Occlusion Sensitivity(局部遮挡敏感性分析)

在图像分类中我们会有一个问题,模型到底是对图像的局部区域呢还是对图像整体进行识别呢?下面的图就展示了这个问题,我们用一个灰色挡板对图像不同补位进行遮挡,观察中间层和结果。我们发现网络是对图像某些关键区域感兴趣,遮挡住这些部位正确结果就会显著的降低。

在这里插入图片描述

(b)图:灰色滑块在不同位置遮挡,把每一个位置的第5层的激活最大的feature map值叠加求和在一起。这个feature map提取的是毛茸茸这个特征,如果我们把毛茸茸相关区域特征遮挡,结果就会降低。第二个feature map提取的是文字,如果我们将文字信息遮挡,结果也会降低。
©图:黑框中是原图输入网络Layer5激活最大的feature map经过反卷积后可视化的图像。其他3张是数据集中能使该卷积核激活最大的图对应的feature map反卷积后的图像。
(d)图:遮挡不同部位网络识别出正确类别的概率。
(e)图:遮挡不同部位网络识别出的类别。例如在第一幅图中遮挡住狗脸,网络会识别它为网球(Tennis ball)。

4.3 Correspondence Analysis(局部相关性分析)

深度学习模型没有显式定义图像中各部分的相关性。而是隐式的定义。(比如检测人脸,人脸里面的眼睛特征,嘴巴特征和不同人的眼睛特征之间是否有关系呢?实际上是相关的,但是深度学习并没有显式的定义而是隐式的定义。)为了验证这个观点我们进行了局部相关性分析,如下图所示:

在这里插入图片描述

为了验证神经网路存在隐式相关,我们将采用5张不同狗的图片,进行右眼遮挡,左眼遮挡,鼻子遮挡以及随机遮挡操作,用 ϵ i l = x i l − x ~ i l \epsilon^{l}_{i} = x^{l}_i - \tilde{x}^{l}_{i} ϵil=xilx~il 来表示某一张图片遮挡一个部位后在某一层网络上特征向量(feature vector)与原图之间特征向量的差值。 $ \epsilon^{l}_{i}$ 体现了遮挡一个部位后对该层网络feature vector的影响(遮挡右眼对第5层网络feature vector的影响)。然后将5张图片遮挡右眼后的 ϵ i l \epsilon^{l}_{i} ϵil,两两之间经过符号函数处理后求出海明距离然后相加就得到 Δ l = ∑ i , j = 1 , i ≠ j 5 H ( s i g n ( ϵ i l ) , s i g n ( ϵ i l ) ) \Delta_l = \sum^{5}_{i,j=1,i \neq j}\Eta(sign(\epsilon^{l}_{i}),sign(\epsilon^{l}_{i})) Δl=i,j=1,i=j5H(sign(ϵil),sign(ϵil)). Δ l \Delta_l Δl 越小证明不同图之间 ϵ i l \epsilon^{l}_{i} ϵil是越小的,说明遮右眼对不同图片造成的影响是一样的。说明了哪怕是5张不同的狗狗但是遮右眼对它们造成的影响是一样的,说明遮右眼是隐式定义在网络中的。
通过表格我们可以知道,遮右眼第5层的 Δ l \Delta_l Δl是很小的,只要是遮同一个部位 Δ l \Delta_l Δl都是比较小的,随即遮 Δ l \Delta_l Δl较大,但是随着网络深度的增加随即遮 Δ l \Delta_l Δl会减小。这说明随着网络深度的增加,网络会越加关注图片的语义信息(sematical),狗这个类别而不是空间信息(spatial)狗眼睛,鼻子等。

5. Experiments(实验)

5.1 ImageNet 2012

在这里插入图片描述

我们采用ImageNet数据集用于训练,上图是我们的模型结果与AlexNet模型结果的比较,将第一层的卷积核由1111改为77 步长改为2,增加3,4,5层卷积核的个数为512,1024,512,然后将(a)(b)进行集成得到最终的模型。我们发现结果会特别好!

接下里我们分析去掉网络中不同层对模型产生的影响:
只去掉全连接层只会对模型产生一点点的影响,这就很惊讶了因为全连接层包含了所有的参数但是这也说明了全连接层的臃肿复杂。
去掉两个中间的卷积层对网络影响也不大。但是两个都去掉,那么结果就变得非常的差了。这表明网络的整体深度对网络是比较重要的。我们也可以改变全连接层神经元个数,但是效果不大,改变卷积核个数,增加卷积核个数和全连接神经元个数容易造成过拟合

在这里插入图片描述

下面是结果:

在这里插入图片描述

通过分析结果我们可以知道,增加6,7层的神经元个数为8192,第3,4,5层卷积核个数为512,1024,512在训练集上表现出最好的效果,这明显是出现了过拟合,而最优的网络结构是增加3,4,5层的卷积核个数为512,1024,512。这样的网络模型在验证集和测试集上都取得了最好的结果。

5.2 Feature Generalization(特征泛化)

上述的实验表明了卷积神经网络在ImageNet数据集上的表现是非常不错的,有着非常先进的水平。各种复杂的不变性是能够被神经网络学习到的。现在我们来探索一下在ImageNet数据集上学习到的特征能否泛化迁移到其他数据集上Caltech-101,Caltech-256,PASCAL。怎么做呢?我们只需要保留网络的1-7层(预训练好的特征提取器),然后修改softmax的输出层,将输出层由1000改为101,256等只训练softmax层,这样我们只需要用很少的样本就能完成训练并达到良好的分类效果。使用softmax分类和SVM的计算复杂度其实是一样的。

在这里插入图片描述

在这里插入图片描述

从结果发现预训练模型的准确率打败了之前最佳的模型,但是如果只保留模型结果,随机初始化模型权重结果是非常不好的。这证明迁移学习的有效性

在ImageNet上提取到的特征,用于其他新的数据集上进行训练模型。

在这里插入图片描述

每个类别用多少张图片进行训练能得到非常好的分类效果,这个领域叫做one-short learning。我们发现当我们使用迁移学习的时候,每个新的类别只需要几张图片就能达到非常好的效果。如上图所示:当使用迁移学习的时候只要6张图片就能达到之前模型最好的效果而使用和之前一样多的照片是能达到更好的效果!

在这里插入图片描述

但是我们将模型泛化迁移到PASCAL VOC数据集上的时候,模型在一些类别上的准确率并没有超过(B)模型,因为PASCAL VOC数据集的图片中物体很多并不是ImageNet中单一的图片更为复杂,所以我们发现迁移学习可以将在复杂数据集上提取到的特征迁移到比他简单的数据集上时可以达到非常好的分类效果!

5.3 Feature Analysis(特征分析)

不同层特征对分类的有效性分析

在这里插入图片描述

从上表中我们可以发现随着网络深度的增加提取到的特征越有用!高层网络更关注图片的语义信息(人脸,鸟脚等)而底层网络只关注到空间信息(边缘,颜色)。

6. Disscussion(讨论)

我们探索了用于图像分类大型卷积网络模型,提出了deconvnet(反卷积)可视化中间层的特征以此来表明这些特征远不是随机的、不可解释的模式。相反,它们显示出许多直观的理想属性,如组合性、增加的不变性和随着我们逐层上升的不变性。如何用可视化方法改进模型,进行了局部遮挡敏感性分析,局部遮挡相关性分析,特征泛化分析,特征分析。在局部遮挡敏感性分析中模型对图片区域感兴趣而不是一整个图片。在Caltech数据集上泛化很好,但是在PASCAL VOC数据集集上不是特别好,但是仅差一点我们可以通过采用多物体损失函数用来改进模型!

恭喜!

一半烟火以谋生,一半诗意以谋爱!

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

系统架构师-考试-基础题-错题集锦2

108.总线-全双工、半双工: 109.软件配置管理-产品配置: 产品配置:指一个产品在其生命周期各个阶段所产生的各种形式和各种版本的文档、计算机程序、部件及数据的集合。 注意:选项中的需求规格说明、设计说明等均可归属于文档。 …

数组-求和为k的连续子数组

一、题目描述 二、题目思路 这里注意:题目要求时间、空间复杂度都为O(n),所以不能直接通过双层循环来暴力解(时间复杂度为O(n)),可以使用Map实现。 1. 遍历数组计算sum(i),Map记录sum值第一次出现的位置&…

DPDK实践之(1)dpdk基础使用

DPDK实践之(1)dpdk基础使用 Author: Once Day Date: 2024年5月19日 一位热衷于Linux学习和开发的菜鸟,试图谱写一场冒险之旅,也许终点只是一场白日梦… 漫漫长路,有人对你微笑过嘛… 全系列文档可参考专栏:Linux基础知识_Once…

C++:关联容器及综合运用:

关联容器和顺序容器有着根本的不同:关联容器中的元素是按关键字来保存和访问的,而顺序容器中的元素是按它们在容器中的位置来顺序保存和访问的。关联容器因此相比与顺序容器支持高效的关键字查找和访问。 其底层数据结构:顺序关联容器 ->红黑树,插入…

Matlab-遗传算法

文章目录 遗传算法一、介绍二、遗传算法的思想1.试用范围2.案例2.1 算法思路2.2 代码实现 遗传算法 一、介绍 遗传算法是一个启发式算法,主要可以用于优化问题,下边将进行举例来进行初步了解。 举例: 从做菜说起,首先你是一个大厨&#xff…

Ubuntu22.04本地部署qwen模型、jupyterlab开发环境、LoRA微调全流程

前言 这段时间在自己的Win11系统上部署了chatGLM以及Qwen模型,进行对话、推理以及工具调用都没有问题,但是在尝试进行微调的时候发现好像并不能成功,因此花费了很大的力气,又分别在ubuntu桌面版、windows子系统WSL2 Ubuntu上部署…

leetcode-55 跳跃游戏

leetcode Problem: 55. 跳跃游戏 思路 假设我们是一个小人,从第一个下标开始,每次经过一个位置,我们就可以根据当前位置的数值nums[i]和位置下标i计算出该位置所能到达的后续位置的最大值rnums[i]i。而这个r之前的区域一定都是可以经过的。…

Point-to-Voxel Knowledge Distillation for LiDAR Semantic Segmentation论文阅读

1. 代码地址 GitHub - cardwing/Codes-for-PVKD: Point-to-Voxel Knowledge Distillation for LiDAR Semantic Segmentation (CVPR 2022) 2. 动机 本篇文章旨在将点云语义分割的复杂模型中的知识蒸馏到较轻量级的模型中。具体的实现方式为将原有的3D backbone网络的每一层进…

恶劣天候激光雷达点云模拟方法论文整理

恶劣天候点云模拟方法论文整理 模拟雨天点云:【AAAI2024】模拟雪天点云:【CVPR 2022 oral】模拟雾天点云:【ICCV2021】模拟点云恶劣天候的散射现象:【Arxiv 2021】模拟积水地面的水花飞溅点云:【RAL2022】 模拟雨天点云…

蓝桥杯Web开发【大赛大纲】15届

一、 组别 Web应用开发分为:大学组和职业院校组。 每位选手只能申请参加其中一个组别的竞赛。各个组别单独评奖。 研究生和本科生只能报大学组。 其它高职高专院校可自行选择报任意组别。 二. 竞赛赛程 省赛时长:4小时。 决赛时长:4小…

纹理映射技术在AI去衣中的艺术与科技融合

引言: 在数字图像处理的世界里,AI去衣技术正逐步揭开其神秘的面纱。这门技术结合了深度学习的智能算法与图形学的先进手段,以实现对图像中衣物的智能识别与处理。在这一过程中,纹理映射技术发挥着至关重要的作用。本篇博客将深入探…

【GESP试卷】2024年03月Scratch四级试卷

2024年GESP03月认证Scratch四级试卷 分数:100 题数:27 一、单选题(共15题,每题2分,共30分) 010203040506070809101112131415CDBBACBCDCDADBA 1、小杨的父母最近刚刚给他买了一块华为手表,他说手表上跑的是鸿蒙&…

【综合类型第 39 篇】《我的创作纪念日》成为创作者的第2048天

这是【综合类型第 39 篇】,如果觉得有用的话,欢迎关注专栏。 前言 无意间看了一眼CSDN的私信,提示我 Allen Su ,不知不觉今天已经是你成为创作者的 第2048天 啦,为了纪念这一天,我们为您准备了一份专属小…

vue3 响应式基础(怎么改变界面值)

在开发中,我们需要在改变一个数据的同时,去改变页面的变化,那这个时候响应式声明用起来就比较方便 之前做安卓开发的时候,要改变页面,首先拿到页面的一个控件,再对控件进行赋值或者其他的操作来改变界面 1、…

孢子捕捉分析仪的工作原理

TH-BZ1孢子捕捉分析仪是一种专门用于捕捉和分析空气中飘浮的病原菌孢子的设备。它利用现代传感技术、图像识别技术和网络通信技术,通过设置在田间的设备,连续不断地抽吸周围空气,吸附空气中漂浮的病原菌孢子到特制的载玻带上。然后&#xff0…

基于Kafka的日志采集

目录 前言 架构图 资源列表 基础环境 关闭防护墙 关闭内核安全机制 修改主机名 添加hosts映射 一、部署elasticsearch 修改limit限制 部署elasticsearch 修改配置文件 启动 二、部署filebeat 部署filebeat 添加配置文件 启动 三、部署kibana 部署kibana 修…

Vitis HLS 学习笔记--抽象并行编程模型-不良示例

目录 1. 简介 2. 基础 kernel 2.1 pass kernel 2.2 double_pass kernel 2.3 add_kernel 2.4 split kernel 3. 三种bypass 3.1 input_bypass 3.2 middle_bypass 3.3 output_bypass 4. 总结 1. 简介 本文展示三个在数据流水线中常见的问题: 输入参数绕过…

DAMA:数据治理 CDGA/CDGP 认证考试备考经验分享

一、关于DAMA中国和CDGA/CDGP考试 国际数据管理协会(DAMA国际)是一个全球性的专业组织,由数据管理和相关的专业人士组成,非营利性机构,厂商中立。协会自1980年成立以来,一直致力于数据管理和数字化的研究、…

计算机毕业设计hadoop+spark微博舆情大数据分析 微博爬虫可视化 微博数据分析 微博采集分析平台 机器学习(大屏+LSTM情感分析+爬虫)

电商数据建模 一、分析背景与目的 1.1 背景介绍 电商平台数据分析是最为典型的一个数据分析赛道,且电商数据分析有着比较成熟的数据分析模型,比如:人货场模型。此文中我将通过分析国内最大的电商平台——淘宝的用户行为,来巩固数…

WebRTC | 网络传输协议 RTP 和 RTCP

WebRTC | 网络传输协议 RTP 和 RTCP WebRTC | 网络传输协议 RTP 和 RTCP如何选择 TCP 与 UDPRTP概述工作机制报文结构RTP 的使用RTP 拓展头RTP 中的填充数据翻译器和混合器同步控制报文大小wireshark 抓取 RTP 报文 RTCP概述工作机制分组类型报文结构WebRTC 的反馈报文RTPFBPSF…