深度学习500问——Chapter04:经典网络解读(1)

文章目录

4.1 LeNet-5

4.1.1 模型介绍

4.1.2 模型结构

4.1.3 模型特性

4.2 AlexNet

4.2.1 模型介绍

4.2.2 模型结构

4.2.3 模型特性

4.3 ZFNet

4.3.1 模型介绍

4.3.2 模型结构

4.3.3 模型特性

4.4 Network in Network

4.4.1 模型介绍

4.4.2 模型结构

4.4.3 模型特性


4.1 LeNet-5

4.1.1 模型介绍

LeNet-5是由LeCun 提出的一种用于识别手写数字和机器印刷字符的卷积神经网络(Convolutional Nerual Network,CNN)[1],其命名来源于作者LeCun的名字,5则是其研究成果的代号,在LeNet-5之前还有LeNet-4和LeNet-1鲜为人知。LeNet-5阐述了图像中像素特征之间的相关性能够由参数共享的卷积操作所提取,同时使用卷积、下采样(池化)和非线性映射这样的组合结构,是当前流行的大多数深度图像识别网络的基础。

4.1.2 模型结构

图4.1 LeNet-5结构图

如图4.1所示,LeNet-5一共包含7层(输入层不作为网络结构),分别由2个卷积层、2个下采样层和3个连接层组成,网络的参数配置如表4.1所示,其中下采样层和全连接层的核尺寸分别代表采样范围核连接矩阵的尺寸(如卷积核尺寸中的)5\times5\times1/1,6表示核大小为5\times5\times1、步长为1且核个数为6的卷积核。

表4.1 LeNet-5网络参数配置

网络层输入尺寸核尺寸输出尺寸可训练参数量
卷积层C_132\times 32\times 15\times 5\times 1/1,628\times 28\times 6(5\times 5\times 1+ 1)\times 6
下采样层S_228\times 28\times 62\times 2/214\times 14\times 6(1+ 1)\times 6^*
卷积层C_314\times 14\times 65\times 5\times 6/1,1610\times 10\times 161516^*
下采样层S_410\times 10\times 162\times 2/25\times 5\times 16(1+ 1)\times 16
卷积层C_5^*5\times 5\times 165\times 5\times 16/1,1201\times 1\times 120(5\times 5\times 16+1)\times 120
全连接层F_61\times 1\times 120120\times 841\times 1\times 84(120+ 1)\times 84
输出层1\times 1\times 8484\times 101\times 1\times 10(84+1)\times 10
  • 在LeNet中,下采样操作核池化操作类似,但是在得到采样结果后会乘以一个系数和加上一个偏置项,所以下采样的参数个数是(1+1)\times6而不是零。
  • C_3卷积层可训练参数并未直接连接S_2中的所有特征图(Feature Map),而是采用如图4.2所示的采样特征特征方式进行连接(稀疏连接),生成的16个通道特征图中分别按照相邻3个特征图、相邻4个特征图、非相邻4个特征图和全部6个特征图进行映射,得到的参数个数计算公式为:6\times(25\times3+1)+6\times(25\times4+1)+3\times(25\times4+1)+1\times(25\times6+1)=1516,在原论文中解释了使用这种采样方式原因包含两点:限制了连接数不至于过大(当年的计算能力比较弱);强制限定不同特征图的组合可以使映射得到的特征图学习到不同的特征模式。

图4.2 S_2C_3之间的特征图稀疏连接

C_5卷积层在图4.1中显示为全连接层,原论文中解释这里实际采用的是卷积操作,只是刚好在5\times5卷积后尺寸被压缩为1\times1,输出结果看起来和全连接很相似。

4.1.3 模型特性

  • 卷积网络使用一个3层的序列组合:卷积、下采样(池化)、非线性映射(LeNet-5是最重要的特性,奠定了目前深层卷积网络的基础)
  • 使用卷积提取空间特征
  • 使用映射的空间均值进行下采样
  • 使用 tanh 或 sigmoid 进行非线性映射
  • 多层神经网络(MLP)作为最终端的分类器
  • 层间的稀疏连接矩阵以避免巨大的计算开销

4.2 AlexNet

4.2.1 模型介绍

AlexNet是由Alex Krizhevsky提出的首个应用于图像分类的深层卷积神经网络,该网络在2012年ILSVRC(ImageNet Large Scale Visual Recognition Competition)图像分类竞赛中以15.3%的top-5测试错误率赢得第一名[2]。AlexNet使用GPU代替CPU进行运算,使得在可接受的时间范围内模型结构能够更加复杂,它的出现证明了深层神经网络在复杂模型下的有效性,使CNN在计算机视觉中流行开来,直接或间接地引发了深度学习的热潮。

4.2.2 模型结构

图4.3 AlexNet网络结构图

如图4.3所示,除去下采样(池化层)和局部响应规范化操作(Local Responsible Normalization,LRN),AlexNet一共包含8层,前5层由卷积层组成,而剩下的3层为全连接层。网络结构分为上下两层,分别对应两个GPU的操作过程,除了中间某些层(C_3卷积层和F_{6-8}全连接层会有GPU间的交互),其他层两个GPU分别计算结果。最后一层全连接层的输出作为 softmax的输入,得到1000个图像分类标签对应的概率值。除去GPU并行结构的设计,AlexNet网络结构与LeNet十分相似,其网络参数配置如表4.2所示。

网络层输入尺寸核尺寸输出尺寸可训练参数量
卷积层C_1224\times 224\times 311\times 11\times 3/4,48(\times 2_{GPU})55\times 55\times 48(\times 2_{GPU})(11\times 11\times 3+1)\times 48\times 2
下采样层S_{max}^*55\times 55\times 48(\times 2_{GPU})3\times 3/2(\times 2_{GPU})27\times 27\times 48(\times 2_{GPU})0
卷积层C_227\times 27\times 48(\times 2_{GPU})5\times 5\times 48/1,128(\times 2_{GPU})27\times 27\times 128(\times 2_{GPU})(5\times 5\times 48+1)\times 128\times 2
下采样层S_{max}27\times 27\times 128(\times 2_{GPU})3\times 3/2(\times 2_{GPU})13\times 13\times 128(\times 2_{GPU})0
卷积层C_313\times 13\times 128(\times 2_{GPU})3\times 3\times 256/1,192(\times 2_{GPU})13\times 13\times 192(\times 2_{GPU})(3\times 3\times 256+1)\times 192\times 2
卷积层C_413\times 13\times 192(\times 2_{GPU})3\times 3\times 192/1,192(\times 2_{GPU})13\times 13\times 192(\times 2_{GPU})(3\times 3\times 192+1)\times 192\times 2
卷积层C_513\times 13\times 192(\times 2_{GPU})3\times 3\times 192/1,128(\times 2_{GPU})13\times 13\times 128(\times 2_{GPU})(3\times 3\times 192+1)\times 128\times 2
下采样层S_{max}13\times 13\times 128(\times 2_{GPU})3\times 3/2(\times 2_{GPU})6\times 6\times 128(\times 2_{GPU})0
全连接层F_66\times 6\times 128(\times 2_{GPU})9216\times 2048(\times 2_{GPU})1\times 1\times 2048(\times 2_{GPU})(9216+1)\times 2048\times 2
全连接层F_71\times 1\times 2048(\times 2_{GPU})4096\times 2048(\times 2_{GPU})1\times 1\times 2048(\times 2_{GPU})(4096+1)\times 2048\times 2
全连接层F_81\times 1\times 2048(\times 2_{GPU})4096\times 10001\times 1\times 1000(4096+1)\times 1000\times 2

卷积层C_1输入为224\times 224\times 3的图片数据,分别在两个GPU中经过核为11\times 11\times 3、步长(stride)为4的卷积后,分别得到两条独立的55\times55\times48的输出数据。

下采样层S_{max}实际上是嵌套在卷积中的最大池化操作,但是为了区分没有采用最大池化的卷积层单独列出来。在C_{1-2}卷积层中的池化操作之后(ReLU激活操作之前),还有一个LRN操作,用作对相邻特征点的归一化处理。

卷积层C_3的输入与其他卷积层不同,13\times13\times192\times2_{GPU}表示汇聚了上一层网络在两个GPU上的输出结果作为输入,所有在进行卷积操作时通道上的卷积核维度为384。

全连接层F_{6-8}中输入数据尺寸也和C_3类似,都是融合了两个GPU流向的输出结果作为输入。

4.2.3 模型特性

  • 所有卷积层都使用ReLU作为非线性映射函数,使模型收敛速度更快。
  • 在多个GPU上进行模型的训练,不但可以提高模型的训练速度,还能提升数据的使用规模。
  • 使用LRN对局部的特征进行归一化,结果作为ReLU激活函数的输入能有效降低错误率。
  • 重叠最大池化(overlapping max pooling),即池化范围z与步长s存在关系z>s(如S_{max}中核尺度为3\times3/2),避免平均池化(average pooling)的平均效应。
  • 使用随机丢弃技术(dropout)选择性地忽略训练中的单个神经元,避免模型的过拟合。

4.3 ZFNet

4.3.1 模型介绍

ZFNet是由Matthew D.Xeiler和Rob Fergus在AlexNet基础上提出的大型卷积网络,在2013年ILSVRC图像分类竞赛中以11.19%的错误率获得冠军(实际上原ZFNet所在的队伍并不是真正的冠军,原ZFNet以13.51%错误率排在第8,真正的冠军是Clarifai这个队伍,而Clarifai这个队伍所对应的一家初创公式的CEO又是Zeiler,而且Clarifai对ZFNet的改动比较小,所以通常认为是ZFNet获得了冠军)[3-4]。ZFNet实际上是微调(fine-tuning)了的AlexNet,并通过反卷积(Deconvolution)的方式可视化各层的输出特征图,进一步解释了卷积操作在大型网络中效果显著的原因。

4.3.2 模型结构

图4.4 ZFNet网络结构图(原始结构图与AlexNet风格结构图)

如图4.4所示,ZFNet与AlexNet类似,都是由8层网络组成的卷积神经网络,其中包含5层卷积层和3层全连接层。两个网络结构最大的不同在于,ZFNet第一层卷积采用了7\times7\times3/2的卷积核替代了AlexNet中第一层卷积核11\times11\times3/4的卷积核。图4.5中ZFNet相比于AlexNet在第一层输出的特征图中包含更多中间频率的信息,而AlexNet第一层输出的特征图大多是低频或高频的信息,对中间频率特征的缺失导致后续网络层次如图4.5(c)能够学习到的特征不够细致,而导致这个问题的根本原因在于AlexNet在第一层中采用的卷积核和步长过大。

​ 图4.5 (a)ZFNet第一层输出的特征图(b)AlexNet第一层输出的特征图(c)AlexNet第二层输出的特征图(d)ZFNet第二层输出的特征图

表4.3 ZFNet网络参数配置

卷积层C_1与AlexNet中的C_1有所不同,采用7\times7\times3/2的卷积核代替11\times11\times3/4,使第一层卷积输出的结果可以包含更多的中频率特征,对后续网络层中多样化的特征组合提供更多选择,有利于捕捉更细致的特征。

卷积层C_2采用了步长2的卷积核,区别于AlexNet中C_2的卷积核步长,所以输出的维度有所差异。

4.3.3 模型特性

​ ZFNet与AlexNet在结构上几乎相同,此部分虽属于模型特性,但准确地说应该是ZFNet原论文中可视化技术的贡献。

  • 可视化技术揭露了激发模型中每层单独的特征图。
  • 可视化技术允许观察在训练阶段特征的演变过程且诊断出模型的潜在问题。
  • 可视化技术用到了多层解卷积网络,即由特征激活返回到输入像素空间。
  • 可视化技术进行了分类器输出的敏感性分析,即通过阻止部分输入图像来揭示那部分对于分类是重要的。
  • 可视化技术提供了一个非参数的不变性来展示来自训练集的哪一块激活哪个特征图,不仅需要裁剪输入图片,而且自上而下的投影来揭露来自每块的结构激活一个特征图。
  • 可视化技术依赖于解卷积操作,即卷积操作的逆过程,将特征映射到像素上。

4.4 Network in Network

4.4.1 模型介绍

Network in Network(NIN)是由Min Lin等人提出,在CIFAR-10和CIFAR-100分类任务中达到当时的最好水平,因其网络结构是由三个多层感知机堆叠而成被称为NIN[5]。NIN以一种全新的角度审视了卷积神经网络中的卷积核设计,通过引入子网络结构代替纯卷积中的线性映射部分,这种形式的网络结构激发了更复杂的卷积神经网络的结构设计,其中下一节中介绍的GoogleLeNet的Inception结构就是来源于这个思想。

4.4.2 模型结构

图4.6 NIN网络结构图

NIN由三层的多层感知卷积层(MLPConv Layer)构成,每一层多层感知卷积层内部由若干的局部全连接层和非线性激活函数组成,代替了传统卷积层中采用的线性卷积核。在网络推理(inference)时,这个多层感知器会对输入特征图的局部特征进行滑窗计算,并且每个滑窗的局部特征图对应的乘积的权重是共享的,这两点是和传统卷积操作完全一致的,最大的不同在于多层感知器对局部特征进行了非线性的映射,而传统卷积的方式是线性的。NIN的网络参数配置表4.4所示(原论文并未给出网络参数,表中参数为编者结合网络结构图和CIFAR-100数据集以3\times3卷积为例给出)。

表4.4 NIN网络参数配置(结合原论文NIN结构和CIFAR-100数据给出)

网络层输入尺寸核尺寸输出尺寸参数个数
局部全连接层L_{11}^*32\times 32\times 3(3\times 3)\times 16/130\times 30\times 16(3\times 3\times 3+1)\times 16
全连接层L_{12}^*30\times 30\times 1616\times 1630\times 30\times 16(16+1)\times 16
局部全连接层L_{21}30\times 30\times 16(3\times 3)\times 64/128\times 28\times 64(3\times 3\times 16+1)\times 64
全连接层L_{22}28\times 28\times 6464\times 6428\times 28\times 64(16+1)\times 64
局部全连接层L_{31}28\times 28\times 64(3\times 3)\times100/126\times 26\times 100(3\times 3\times 64+1)\times 100
全连接层L_{32}26\times 26\times 100100\times 10026\times 26\times 100(100+1)\times 100
全局平均采样GAP^*26\times 26\times 10026\times 26\times 100/11\times 1\times 1000

局部全连接层L_{11}实际上是对原始输入图像进行划窗式的全连接操作,因此划窗得到的输出特征尺寸为30\times30\frac{32-3_k+1}{1_{stride}}=30) 全连接层L_{12}是紧跟L_{11}后的全连接操作,输入的特征是划窗后经过激活的局部响应特征,因此仅需连接L_{11}L_{12}的节点即可,而每个局部全连接层和紧接的全连接层构成代替卷积操作的多层感知卷积层(MLPConv)。 全局平均采样层或全局平均池化层GAP(Global Average Pooling)将L_{32}输出的每一个特征图进行全局的平均池化操作,直接得到最后的类别数,可以有效地减少参数量。

4.4.3 模型特性

  • 使用多层感知机结构来代替传统卷积的滤波操作,不但有效减少卷积核数过多而导致的参数量暴涨问题,还能通过引入非线性的映射来提高模型对特征的抽象能力。
  • 使用全局平均池化来代替最后一个全连接层,能够有效地减少参数量(没有可训练的参数),同时池化用到了整个特征图的信息,对空间信息的转换更加鲁棒,最后得到的输出结果可直接作为对应类别的置信度。

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

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

相关文章

VBA_MF系列技术资料1-405

MF系列VBA技术资料1-405 为了让广大学员在VBA编程中有切实可行的思路及有效的提高自己的编程技巧,我参考大量的资料,并结合自己的经验总结了这份MF系列VBA技术综合资料,而且开放源码(MF04除外),其中MF01-0…

【云呐】固定资产管理系统都有哪些内容

固定资产管理是企业经营过程中一项非常重要的任务。它涉及到公司的核心资产,包括土地、建筑物、设备、车辆等。为了有效地管理这些资产,许多企业选择使用固定资产管理系统。那么,固定资产管理系统的内容是什么呢?本文将为您进行全…

美国对苹果提起反垄断诉讼;周鸿祎:不转向 AI 手机的厂商会成下一个「诺基亚」丨 RTE 开发者日报 Vol.170

开发者朋友们大家好: 这里是 「RTE 开发者日报」 ,每天和大家一起看新闻、聊八卦。 我们的社区编辑团队会整理分享 RTE (Real Time Engagement) 领域内「有话题的新闻」、「有态度的观点」、「有意思的数据」、「有思考的文章」…

QML无边框窗口(可拖动)

一、实现原理 在 QML 中实现无边框且可以拖动的窗口,要比 Qt 和 PyQt 简单的多。只要隐藏掉窗体、去掉标题栏,然后用一个和原窗体相同大小的 Rectangle 作为新窗体。 最后在新窗体上再加一个小一些的 Rectangle 作为标题栏,在标题栏中放一个 …

Modbus串口通信

Modbus ASCII与RTU? 发送报文的方式不一样 ASCII:将数据转换成1 6进制ASCII码再发送 RTU:直接发送原始报文当然也是进制 Modbus-与RS485有何区别? Modbus是通信协议 RS485电气接口规范 Modbus软件 RS485硬件 比如高速公路与汽车的关系,TCP/IP与网线…

FreeCad-0.19源码For Windows编译分享

前言 最近花了不少时间来研究这个FreeCad开源代码的编译,一是查看GitHub上的安装介绍,二是查看各位道友们踩坑安装的心路历程,由于比较信息零碎,也是跟着踩了不少的坑。。。为了帮助后人快速编译通过,节省时间决定先梳…

发展的挺快的Rust

C 可能在将来会逐步的退出历史舞台 Rust 在linux 上出现的频次越来越多了 新的语言和重构带来了更方便快捷的体验 好玩的命令集合 https://github.com/ibraheemdev/modern-unix.git 这速度,这花活儿

每个云渲染平台都说自己24小时客服,真的是这样吗?

我们平时经常看到很多云渲染平台说自己是7x24小时客服,随时找客服都能找到,真的是这样吗?其实不是的,很多云渲染平台根本没有24小时人工客服,哪他们的人工客服什么时候有呢?我们一起来看看。 1、 炫云 炫云…

分享购:社交电商新模式,购物省钱又赚钱的创新之道

分享购模式如今在网络世界中引起了广泛的讨论和关注,其独特的盈利方式更是吸引了大批用户的目光。那么,分享购究竟是什么呢? 分享购的核心亮点在于它巧妙地融合了各大主流电商平台,如淘宝、京东、拼多多等。用户在购物时无需改变原…

AcWing 3224. 画图 (BFS,Flood Fill,坐标变换)

用 ASCII 字符来画图是一件有趣的事情,并形成了一门被称为 ASCII Art 的艺术。 例如,下图是用 ASCII 字符画出来的 CSPRO 字样。 ..____.____..____..____...___.../.___/.___||.._.\|.._.\./._.\.|.|...\___.\|.|_).|.|_).|.|.|.||.|___.___).|..__/|.…

Spring之@Qualifier注解

场景重现 当我们注入的依赖存在多个候选者,我们得使用一些方法来筛选出唯一候选者,否则就会抛出异常 demo演示 创建接口Car,以及两个实现其接口的bean public interface Car { }Component public class RedCar implements Car { }Component public class WhiteCar implemen…

【python】python葡萄酒数据集—分类建模与分析(源码+数据集)【独一无二】

👉博__主👈:米码收割机 👉技__能👈:C/Python语言 👉公众号👈:测试开发自动化【获取源码商业合作】 👉荣__誉👈:阿里云博客专家博主、5…

Git原理及使用

1、Git初识 Git是一种版本控制器: 对于同一份文件,做多次改动,Git会记录每一次改动前后的文件。 通俗的讲就是⼀个可以记录⼯程的每⼀次改动和版本迭代的⼀个管理系统,同时也⽅便多⼈协同作业。 注意: Git其实只能跟踪⽂本⽂件的改动,⽐如TXT⽂件,⽹⻚,所有的程序代码…

matlab实现机器学习svm

一、目的和要求 1.编程实现SVM训练函数和预测函数; 2.绘制线性和非线性边界; 3.编写线性核函数 二、算法 1.线性svm: 分离超平面:wxb0,对于线性可分的数据集来说,这样的超平面有无穷多个(…

汽车ECU的虚拟化技术(五) -- 对MCU虚拟化实现难点的思考

目录 1.概述 2.虚拟化软件的难点 2.1 虚拟化中的中断处理 2.2 虚拟ECU的通信 3.小结 1.概述 在上面文章里汽车ECU的虚拟化技术(四) -- 对MCU虚拟化实现难点的思考-CSDN博客,解了OEM面临新的电子电气架构下的集成难点,引入了hypervisor以及VM调度机制…

VMD + CEEMDAN 二次分解,CNN-Transformer预测模型

往期精彩内容: 时序预测:LSTM、ARIMA、Holt-Winters、SARIMA模型的分析与比较-CSDN博客 风速预测(一)数据集介绍和预处理-CSDN博客 风速预测(二)基于Pytorch的EMD-LSTM模型-CSDN博客 风速预测&#xff…

研华工控机610L学习笔记1:基本了解与认识

今日开始学习一些工控机的基本知识: 目录 目录 1、工控机介绍: 2、研华610L说明书参数了解: 3、基本结构了解: 前面板: 后窗: 4.RS232串口: ​编辑 5、工控机分类: 6、工控上…

深度学习pytorch——激活函数损失函数(持续更新)

论生物神经元与神经网络中的神经元联系——为什么使用激活函数? 我们将生物体中的神经元与神经网络中的神经元共同分析。从下图可以看出神经网络中的神经元与生物体中的神经元有很多相似之处,由于只有刺激达到一定的程度人体才可以感受到刺激&#xff0c…

一、SpringBoot基础搭建

本教程主要给初学SpringBoot的开发者,通过idea搭建单体服务提供手把手教学例程,主要目的在于理解环境的搭建,以及maven模块之间的整合与调用 源码:jun/learn-springboot 以商城项目为搭建例子,首先计划建1个父模块&…

微服务高级篇(三):分布式缓存+Redis集群

文章目录 一、单点Redis的问题及解决方案二、Redis持久化2.1 单机安装Redis2.2 RDB持久化2.3 AOF持久化2.4 RDB和AOF对比 三、Redis主从3.1 搭建Redis主从架构3.1.1 集群结构3.1.2 准备实例和配置3.1.3 启动3.1.4 开启主从关系3.1.5 测试 3.2 数据同步3.2.1 全量同步【建立连接…