一、CNNs网络架构-基础网络架构

这篇具有很好参考价值的文章主要介绍了一、CNNs网络架构-基础网络架构。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

1.LeNet

2.AlexNet

2.1 激活函数:ReLU

2.2  随机失活:Droupout

2.3 数据扩充:Data augmentation

2.4 局部响应归一化:LRN

2.5 多GPU训练

2.6 论文

3.ZFNet

3.1 网络架构 

3.2 反卷积

3.3 卷积可视化

3.4 ZFNet改进点

3.5 其他发现

3.6 论文

4.LeNet、AlexNet、ZfNet对比

5.参考文章


1.LeNet

LeNet5诞生于1998年,是最早的卷积神经网络之一, 由Yann LeCun完成,被认为是CNN的雏形。在那时候,没有GPU帮助训练模型,甚至CPU的速度也很慢,因此,神经网络模型处理图像时的大量参数并不能通过计算机得到很好的计算,LeNet5通过巧妙的设计,利用卷积、参数共享、池化等操作提取特征,避免了大量的计算成本,最后再使用全连接神经网络进行分类识别,从此卷积成为图像处理的之中可行方式。

Le Net - 5架构为例,卷积神经网络架构由输入层、卷积层、池化层、FC层和输出层4部分组成。

一、CNNs网络架构-基础网络架构

其中,卷积层和池化层负责对原始图像进行特征提取,全连接层负责对卷积池化提取到的特征进行学习,进一步根据这些特征来判断该输入图片属于哪一个类别。

论文:《Gradient-Based Learning Applied to Document Recognition》

https://citeseerx.ist.psu.edu/document?repid=rep1&type=pdf&doi=4cccb7c5b2d59bc0b86914340c81b26dd4835140

贡献:第一个CNNs架构;

缺陷:性能和效率较低;

2.AlexNet

2012-ILSVRC冠军,CNNs的一个重大转折点,在此之前,深度学习已经沉寂了将近20年。

AlexNet是第一个深度卷积神经网络架构,通过加深深度和应用众多参数优化策略来增强卷积神经网络的学习能力,在论文中,主要有以下几点贡献:

1)使用了非线性激活函数:ReLU;

2)引入了随机失活:Droupout;

3)使用了数据扩充:Data augmentation;

4)多GPU实现,LRN归一化层的使用;

如下图所示,为AlexNet网络结构:

一、CNNs网络架构-基础网络架构

2.1 激活函数:ReLU

传统的神经网络普遍使用Sigmoid或者tanh等非线性函数作为激活函数,然而它们容易出现梯度弥散或梯度饱和的情况。

在Sigmoid激活函数中,当输入值非常大或非常小的时候,会使值域范围的变化非常小,relu不存在这个缺陷,它在第一象限近似函数:y=x,不会出现值域变化小的问题。relu函数直到现在也是学术界和工业界公认的最好用的激活函数之一,在各个不同领域不同模型下的使用非常之多。如下表所示各类激活函数的表达式:

一、CNNs网络架构-基础网络架构

2.2  随机失活:Droupout

引入Dropout主要是为了防止网络在训练过程中出现的过拟合现象,主要原因包括两个方面:1.数据集太小;2.模型过于复杂,过拟合的本质原因就是数据集与模型在复杂度上不匹配。

在神经网络中Dropout是通过降低模型复杂度来防止过拟合现象的。对于某一层的神经元,通过一定的概率将某些神经元的计算结果乘0,这个神经元就不参与前向和后向传播,就如同在网络中被删除了一样,同时保持输入层与输出层神经元的个数不变,然后按照神经网络的学习方法进行参数更新。在下一次迭代中,又重新随机删除一些神经元(置为0),直至训练结束。

一、CNNs网络架构-基础网络架构

Droupout原理可参考以下博文:

深度学习中Dropout原理解析_Microstrong0305的博客-CSDN博客

2.3 数据扩充:Data augmentation

神经网络需要数据驱动,增加数据量不仅可以防止过拟合现象,也可以使网络结构进一步增大、加深。因此,当训练数据有限时,便可以使用一些变换方法将已有的训练数据进行扩充,例如随机裁剪、平移变化、改变颜色、图像反转等。

2.4 局部响应归一化:LRN

Local Response Normalization(LRN)技术主要是深度学习训练时的一种提高准确度的技术方法。LRN一般是在激活、池化后进行的一种处理方法。LRN归一化技术首次在AlexNet模型中提出这个概念。通过实验确实证明它可以提高模型的泛化能力,但是提升的很少,以至于后面不再使用,甚至有人觉得它是一个“伪命题”,因而它饱受争议。现在基本上已经被Batch Normalization代替。

2.5 多GPU训练

由于当时的GPU性能及运算量有限,限制了在其上训练的网络的最大规模。因此作者将模型拆成两部分,分别在两个GPU上进行训练,训练过程中会通过交换feature maps进行两个硬件中子网络的信息交流,大大加快了AlexNet的训练速度。

2.6 论文

论文:《Imagenet classification with deep convolutional neural networks》

https://proceedings.neurips.cc/paper/2012/file/c399862d3b9d6b76c8436e924a68c45b-Paper.pdf

贡献:引入了ReLU、Dropout、overlap、Data augmentation、LRN、多GPU计算;

缺陷:卷积核尺寸较大;

3.ZFNet

Zeiler和Fergus提出了一种反卷积神经网络,并在2013年 ILSVRC 图像分类竞赛获得冠军。ZFNet可以看作是在 AlexNet 基础上提出的大型卷积网络。论文中通过可视化的技术解释了为什么卷积神经网络可以在图像分类上表现的如此出色,以及研究了如何优化卷积神经网络。

3.1 网络架构 

如下图所示为ZFNet结构示意图,将一幅(具有3个颜色平面)图像的224 × 224裁剪结果作为输入。这与96个不同的第1层滤波器(红色)进行卷积,每个滤波器大小为7 × 7,在x和y方向上的步长均为2。得到的特征图如下:( i )通过一个修正的线性函数(未显示),( ii )池化的( max在3x3区域内,使用步幅2)和( iii )跨特征图归一化的对比度得到96个不同的55 × 55元素特征图。类似的操作在第2、3、4、5层重复。最后两层全连接,将来自顶层卷积层的特征以向量形式( 6 · 6 · 256 = 9216维)作为输入。最后一层是C - way softmax函数,C为类的个数。所有的滤波器和特征图都是方形的。 

一、CNNs网络架构-基础网络架构

 从上图可以看出,ZFNet改变了 AlexNet 的第一层,即将卷积核的尺寸大小 11x11 变成 7x7,并且将步长 4 变成了 2。

 3.2 反卷积

如下图所示,描绘了内部运行机制,其中左半部分显示反卷积层,右半部分显示卷积层。

一、CNNs网络架构-基础网络架构

反卷积层从下一层重建一个近似版本的卷积特征。对于网络性能的量化可视化,反卷积采用反卷积和去池化操作。值得注意的是,去池化在理论上是无法实现的。作者通过变量开关转换记录每个池化区域中最大值的位置来近似实现去池化。这样的反向映射将卷积层的输出投影回视觉可感知的图像模式,从而在神经元层面解释每一层学习到的内部特征。

3.3 卷积可视化

 作者将卷积核的计算结果(feature maps)映射回原始的像素空间(映射的方法为反卷积,反池化)并进行可视化。并根据可视化结果得出以下结论:

1)CNN输出的特征图有明显的层级区分

2)越靠近输入端,提取的特征所蕴含的语义信息比较少,例如颜色特征,边缘特征,角点特征等等;

3)越靠近输出端,提取的特征所蕴含的语义信息越丰富,例如狗脸,鸟腿等,都属于目标级别的特征。

3.4 ZFNet改进点

ZFNet通过对AelxNet可视化发现,由于第一层的卷积核尺寸过大导致某些特征图失效(失效指的是一些值太大或太小的情况,容易引起网络的数值不稳定性,进而导致梯度消失或爆炸。图中的体现是(a)中的黑白像素块)。

此外,由于第一层的步长过大,导致第二层卷积结果出现棋盘状的伪影(例如(b)中第二小图和倒数第三小图)。因此ZFNet做了对应的改进。即将第一层 11X11步长为4的卷积操作变成 7X7步长为2的卷积。

3.5 其他发现

通过对卷积结果的可视化,论文中还指出了以下几点:

1.网络中对不同特征的学习速度:

low-level的特征(颜色,纹理等)在网络训练的训练前期就可以学习到, 即更容易收敛;high-level的语义特征在网络训练的后期才会逐渐学到。(高级的语义特征,要在低级特征的基础上学习提取才能得到。)

2. 图片平移,缩放,旋转对CNN的影响:

卷积拥有良好的平移不变性、缩放不变性,但不具有良好的旋转不变性。卷积本身计算方法带来的平移不变性和缩放不变性也是脆弱的,大部分也是从数据集中学习到的。因此,深度学习是一种基于数据驱动的算法。

3.遮挡对卷积模型的影响:

模型确实可以理解图片,找到语义信息最丰富,对识别最关键的特征;而不是仅仅依靠一些颜色,纹理特征去做识别。并且CNN在处理图像的时候是关注局部的高级语义特征,而不是根据图像的全部信息来处理。随着网络层数的深入,遮挡的影响结果也明显减低,这说明深层的网络提取的是语义信息,而不是low-level的空间特征。因此对随机遮挡可以不敏感。

4. ZFNet的调参实验:

ZFNet对AelxNet进行了针对调参的消融实验,发现减少全连接层的参数反而可以提升一点准确率,一定程度证明了全连接层的参数还是太冗余了,即使有dropout。

3.6 论文

论文:《Visualizing and Understanding Convolutional Networks

https://arxiv.org/pdf/1311.2901

贡献:架构可视化;

缺陷:可视化处理会额外消耗性能;

4.LeNet、AlexNet、ZfNet对比

一、CNNs网络架构-基础网络架构

5.参考文章

1.深度学习之图像分类基础:卷积神经网络 - 魔法学院小学弟

2.经典CNN之:LeNet介绍_Sheldon_King的博客-CSDN博客

3. 深度学习之图像分类(二):AlexNet - 魔法学院小学弟

4. 深度学习之图像分类(三):ZFNet - 魔法学院小学弟

5. ZFNet 详细解读_Crayon小鱼干的博客-CSDN博客 

6.论文: A review of convolutional neural network architectures and their optimizations | SpringerLink文章来源地址https://www.toymoban.com/news/detail-458146.html

到了这里,关于一、CNNs网络架构-基础网络架构的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • CNNs:ZFNet之基于AlexNet特征可视化实验分析

    上一篇我们介绍了如何利用 Deconvnet 网络进行特征可视化操作,本篇我们将基于 Deconvnet 对文献中的相关实验进行分析,并验证一些结论。除此之外,我们还将针对实验现象对对 AlexNet 网络进行微调( ZFNet ),并对网络进行简单介绍。然后基于 ZFNet 进行实验分析。 实验条件:

    2024年02月07日
    浏览(37)
  • 三、CNNs网络架构-跨层连接思想的网络架构

     《A review of convolutional neural network architectures and their optimizations》论文指出随着网络架构的深入,梯度消失、爆炸或退化问题变得越来越严重。跨层连接的思想是解决现有问题的有效方案,允许网络在非相邻层之间传递信息。因此,在文中主要介绍了以下跨层连接思想的网络

    2024年02月06日
    浏览(42)
  • [深度学习入门]什么是神经网络?[神经网络的架构、工作、激活函数]

      在大多数资料中,神经网络都被描述成某种 正向传播的矩阵乘法 。而本篇博文 通过将神经网络描述为某种计算单元 ,以一种更加简单易懂的方式介绍神经网络的功能及应用。   广义上讲,神经网络就是要 在输入数据中找寻某种规律 ,就像这个经典的例子: 手写数

    2024年02月17日
    浏览(51)
  • 神经网络基础-神经网络补充概念-20-激活函数

    激活函数是神经网络中的一个重要组成部分,它引入了非线性性质,使得神经网络可以学习和表示更复杂的函数关系。激活函数对于将输入信号转换为输出信号起到了关键作用,它在神经元的计算过程中引入了非线性变换。 Sigmoid函数: Sigmoid 函数将输入映射到一个 0 到 1 的

    2024年02月12日
    浏览(47)
  • 神经网络基础-神经网络补充概念-52-正则化网络的激活函数

    正则化是一种用于减少过拟合(overfitting)的技术,可以在神经网络的各个层次中应用,包括激活函数。激活函数的正则化主要目的是减少神经网络的复杂度,防止网络在训练集上过度学习,从而提高泛化能力。 L2 正则化(权重衰减):在网络的损失函数中引入 L2 正则化项,

    2024年02月12日
    浏览(36)
  • MATLAB算法实战应用案例精讲-【图像处理】图像分类模型-LeNet&AlexNet&VGG

    目录 LeNet  模型介绍 模型结构 模型实现 模型特点 模型指标  Ale

    2024年02月13日
    浏览(57)
  • 一文速学-让神经网络不再神秘,一天速学神经网络基础-激活函数(二)

    思索了很久到底要不要出深度学习内容,毕竟在数学建模专栏里边的机器学习内容还有一大半算法没有更新,很多坑都没有填满,而且现在深度学习的文章和学习课程都十分的多,我考虑了很久决定还是得出神经网络系列文章,不然如果以后数学建模竞赛或者是其他更优化模

    2024年02月11日
    浏览(38)
  • 深度学习应用篇-计算机视觉-图像分类[2]:LeNet、AlexNet、VGG、GoogleNet、DarkNet模型结构、实现、模型特点详细介绍

    LeNet是最早的卷积神经网络之一 [1] ,其被提出用于识别手写数字和机器印刷字符。1998年,Yann LeCun第一次将LeNet卷积神经网络应用到图像分类上,在手写数字识别任务中取得了巨大成功。算法中阐述了图像中像素特征之间的相关性能够由参数共享的卷积操作所提取,同时使用

    2024年02月08日
    浏览(49)
  • 神经网络:激活函数

    在计算机视觉中,激活函数是神经网络中的一种非线性函数,用于引入非线性变换和非线性特性到网络中。激活函数的作用、原理和意义如下: 1. 引入非线性变换: 神经网络的线性组合层(如卷积层和全连接层)只能表示线性关系,而计算机视觉任务通常涉及到复杂的非线

    2024年02月11日
    浏览(38)
  • 神经网络 02(激活函数)

    在神经元中引入了激活函数,它的 本质是向神经网络中引入非线性因素的 ,通过激活函数, 神经网络就可以拟合各种曲线 。 如果不用激活函数,每一层输出都是上层输入的线性函数,无论神经网络有多少层,输出 都是输入的线性组合 ; 引入非线性函数作为激活函数,那输

    2024年02月07日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包