ZFNet论文详解

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数据集集上不是特别好,但是仅差一点我们可以通过采用多物体损失函数用来改进模型!

恭喜!

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

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

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

相关文章

基于CNN卷积神经网络的金融数据预测matlab仿真,对比BP,RBF,LSTM

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 4.1 反向传播网络(BP,多层感知器MLP) 4.2 径向基函数网络(RBF) 4.3 卷积神经网络(CNN) 4.4 长短期记忆网…

成都青年AI人才崭露头角,知了汇智科技助力孵化营大放异彩

5月18日-19日,为期两天的成都国际商贸城青年(大学生)AI应用孵化营活动在热烈的氛围中圆满落幕。本次活动由成都国际商贸城、成都成商数字科技有限公司、成都知了汇智科技有限公司及成都电商职教集团联合举办,旨在为青年&#xff0…

深入浅出递归算法

文章目录 递归思想递归的题目1.汉诺塔问题问题分析代码展示 2.合并两个有序链表问题分析代码展示 3.反转链表问题分析代码展示 4.两两交换 链表中的节点问题分析代码展示 总结 递归思想 递归就是将一个很大的问题拆分成子问题,然后再将子问题继续拆分,拆…

力扣226. 翻转二叉树(DFS的两种思路)

Problem: 226. 翻转二叉树 文章目录 题目描述思路复杂度Code 题目描述 思路 涉及二叉树的递归解法时往往需要考虑两种思路: 1.在递归遍历时执行题目需要的具体要求; 2.将一个大问题分解为多个小子问题 具体到本体: 思路1:遍历 先…

前端请求超时截断,axios timeout设置未生效情况记录

问题描述 前端请求超时截断,axios timeout设置未生效情况记录 timeout设置方式: 表现(前端超过5min报错500,直接访问接口超过5min能够正常响应): 问题原因 上面的配置设置时间为1000min,明显…

多项式重构的平滑和法线估计-------PCL

多项式重构的平滑和法线估计 /// <summary> /// 多项式重构的平滑和法线估计 /// </summary> /// <param name"cloud"></param> /// <returns>输出一个包含平滑后的点云数据以及相应法线信息的数据结构</returns> pcl::PointCl…

ROCm上情感分析:使用循环神经网络

15.2. 情感分析&#xff1a;使用循环神经网络 — 动手学深度学习 2.0.0 documentation (d2l.ai) 代码 import torch from torch import nn from d2l import torch as d2lbatch_size 64 train_iter, test_iter, vocab d2l.load_data_imdb(batch_size)class BiRNN(nn.Module):…

sqlserver的查询(三)

目录 10. group by(分组) 11. having(对分组后的信息过滤) 可能从这里开始&#xff0c;执行顺序越来越显得重要了&#xff01;&#xff01;&#xff01; 10. group by(分组) 这个查询相比前面会有一些困难&#xff1b; 格式&#xff1a;group by 字段的集合&#xff1b; 功…

GD32F103RCT6/GD32F303RCT6-UCOSIII底层移植(4)消息队列实验

本文章基于兆易创新GD32 MCU所提供的2.2.4版本库函数开发 后续项目主要在下面该专栏中发布&#xff1a; 手把手教你嵌入式国产化_不及你的温柔的博客-CSDN博客 感兴趣的点个关注收藏一下吧! 电机驱动开发可以跳转&#xff1a; 手把手教你嵌入式国产化-实战项目-无刷电机驱动&am…

Java | Leetcode Java题解之第109题有序链表转换二叉搜索树

题目&#xff1a; 题解&#xff1a; class Solution {ListNode globalHead;public TreeNode sortedListToBST(ListNode head) {globalHead head;int length getLength(head);return buildTree(0, length - 1);}public int getLength(ListNode head) {int ret 0;while (head…

kimi :系统框架 实力学习

学海无涯&#xff0c;你&#xff0c;准备好了吗&#xff1f; 学习一个新的嵌入式系统架构&#xff0c;你"只"需要 - 1 - 手册/速查函数&#xff08;对于比较大的架构&#xff0c;F12往往返回多个结果&#xff0c;增加混乱&#xff09;&#xff1b; 2 - 源代码和VS&am…

20.有序性与内存屏障

文章目录 有序性与内存屏障1.重排序1.1.编译器重排序1.2.CPU重排序1.2.1.指令级重排序1.2.2.内存系统重排序1.3.As-if-Serial规则 2.内存屏障2.1.硬件层面的内存屏障2.1.2.写屏障2.1.3.读屏障2.1.4.全屏障 2.2.硬件层的内存屏障作用2.3.案例 有序性与内存屏障 有序性 与 可见性…

混合组网VS传统网络:智能硬件混合组网优劣势浅要解析

智能硬件混合组网是一种利用多种通信技术相结合的方法&#xff0c;以实现更灵活、更可靠的网络连接。通过蓝牙、Wi-Fi、LoRa、4G相互之间的不同通讯方式&#xff0c;根据应用场景的不同以及现场实际环境&#xff0c;优选最佳物联网混合组网方案&#xff0c;以达到部署最便捷性价…

云曦2024年春季学期期中考复现

目录 Web Web_SINGIN 简简单单的文件上传 好玩的PHP 渗透的本质 简简单单的sql re baby_re easy xor Crypto easy_rsa Rsa2 Crypto_Singin Pwn pwn_Sing Misc easy_singin Xjpg 流量分析1 流量分析3 流量分析2 Web Web_SINGIN 1.使用右键检查&#xff0c…

IMU内参标定(理论)

1、内参标定标定什么&#xff1f; 生产零偏、标度因数误差、安装误差 2、现象是什么&#xff1f; 零偏现象&#xff1a;即使没有任何运动或旋转&#xff0c;IMU传感器仍然会输出一个非零的信号。零偏是一个恒定的误差&#xff0c;导致测量值始终偏离实际值。对于加速度计&am…

DolphinDB 携手九鞅科技,助力固收投研效能飞跃

随着金融市场开放的广度与深度不断拓宽&#xff0c;金融产品呈现出多样化的发展态势&#xff0c;其中债券投资组合凭借其低风险性、高流动性与稳健的收益表现&#xff0c;逐渐成为投资理财领域备受瞩目的焦点。投资经理不仅需要了解哪些债券值得投资&#xff0c;更要对债券投资…

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

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

朋友正确交往方式,以及保留有效沟通,才是对朋友的尊重!

人生就像一列火车&#xff0c;从生命之初驶向生命的终点&#xff0c;路途上有很多站点&#xff0c;每一个站点都会遇到不同的人&#xff0c;结交各式各样的朋友&#xff0c;中间有人下车&#xff0c;有人上车&#xff0c;有人与你走着走着就散了&#xff0c;有人偶有相见却已是…

Qt 科目一考试系统(有源码)

项目源码和资源&#xff1a;科目一考试系统: qt实现科目一考试系统 一.项目概述 该项目是一个基于Qt框架开发的在线考试系统&#xff0c;主要实现了考试题目的随机抽取、考试时间限制、成绩统计等功能。用户可以通过界面操作进行考试&#xff0c;并查看自己的考试成绩。 二.技…