几种常见卷积神经网络结构

几种常见卷积神经网络结构卷积神经网络图像特征的提取与分类一直是计算机视觉领域的一个基础而重要的研究方向。卷积神经网络(ConvolutionalNeuralNetwork,CNN)提供了一种端到端的学习模型,模型中的参数可以通过传统的梯度下降方法进行训练,经过训练的卷积神经网络能够学习到图像中的特征,并且完成对图像特征的提取和分类。作为神经网络领域的一个重要研究分支,卷积神经网络的特点在于其每一层的特征都由上一层的局部区域通过共享权值的卷积核激励得到。这一特点使得卷积神经网络相比于其他神经网络方法更适合应用于图像特征的.

大家好,又见面了,我是你们的朋友全栈君。

卷积神经网络

图像特征的提取与分类一直是计算机视觉领域的一个基础而重要的研究方向。卷积神经网络( Convolutional Neural Network,CNN) 提供了一种端到端的学习模型,模型中的参数可以通过传统的梯度下降方法进行训练,经过训练的卷积神经网络能够学习到图像中的特征,并且完成对图像特征的提取和分类。作为神经网络领域的一个重要研究分支,卷积神经网络的特点在于其每一层的特征都由上一层的局部区域通过共享权值的卷积核激励得到。这一特点使得卷积神经网络相比于其他神经网络方法更适合应用于图像特征的学习与表达。

早期的卷积神经网络结构相对简单,如经典的Le Net-5 模型,主要应用在手写字符别、图像分类等一些相对单一的计算机视觉应用领域中。随着研究的不断深入,卷积神经网络的结构不断优化,其应用领域也逐渐得到延伸。例如,卷积神经网络与深信度网络( Deep Belief Network,DBN)相结合产生的卷积深信度网 络( Convolutional Deep Belief Network,CDBN)作为一种非监督的生成模型,在人脸特征提取得到广泛应用;Alex Net在海量图像分类领域取得了突破性的成果;基于区域特征提取的 R-CNN( Regions with CNN)在目标检测领域取得了成 功;全卷积网络( Fully Convolutional Network,FCN)]实现了端到端的图像语义分割,并且在准确率上大幅超越了传统的语义分割算法。近年来,卷积神经网络的结构研究仍然有着很高的热度,一些具有优秀性能的网络结构不断被提出。

  • 卷积神经网络的基本结构

CNN的基本结构由输入层、卷积层(convolutional layer)、 池 化 层 (pooling layer)、全连接层及输出层构成。卷积层和池化层一般会取若干个,采用卷积层和池化层交替连接,即一个卷积层连接一个池化层,池化层后再连接一个卷积层,依此类推。由于卷积层中输出特征面的每个神经元与其输入进行局部连接 并通过对应的连接权值与局部输入进行加权求和再加上偏置值,得到该神经元输入值,该过程类似于卷积过程,CNN也由此而得名。

在卷积神经网络中,输入图像通过多个卷积层和池化层进行特征提取,逐步由低层特征变为高层特征;高层特征再经过全连接层和输出层进行特征分类,产生一维向量,表示当前输入图像的类别。因此,根据每层的功能,卷积神经网络可以划分为两个部分: 由输入层、卷积层和池化层构成特征提取器,以及由全连接层和输出层构成分类器,结构如下图1所示。

几种常见卷积神经网络结构

  • 卷积神经网络的工作原理

卷积神经网络的工作原理可以分为网络模型定义、网络训练以及网络的预测三个部分:

1) 网络模型定义

网络模型的定义需要根据具体应用的数据量以及数据本身的特点,设计网络深度、网络每一层的功能,以及设定网络中的超参数,如: λ、η 等。针对卷积神经网络的模型设计有不少的研究,比如模型深度方面、卷积的步长方面、激励函数方面等。此外,针对网络中的超参数选择,也存在一些有效的经验总结。但是,目前针对网络模型理论分析和量化研究相对还比较匮乏。

2) 网络训练

卷积神经网络可以通过残差的反向传播对网络中的参数进行训练。但是,网络训练中的过拟合以及梯度的消逝与爆炸等问题极大影响了训练的收敛性能。针对网络训练的问题,研究者们提出了一些改善方法。例如:可以使用高斯分布的随机初始化网络参数;利用经过预训练的网络参数进行初始化;对卷积神经网络不同层的参数进行相互独立同分布的初始化。根据近期的研究趋势,卷积神经网络的模型规模正在迅速增大,而更加复杂的网络模型也对相应的训练策略提出了更高的要求。

3) 网络的推断预测

卷积神经网络的预测过程就是通过对输入数据进行前向传导,在各个层次上输出特征图,最后利用全连接网络输出基于输入数据的条件概率分布的过程。近期的研究表明,经过前向传导的卷积神经网络高层特征具有很强的判别能力和泛化性能。这一研究成果对于扩展卷积神经网络的应用领域具有重要的意义。

  • 卷积神经网络的模型结构

Lecun 等提出的 Le Net-5 模型采用了交替连接的卷积层和下采样层对输入图像进行前向传导,并且最终通过全连接层输出概率分布。这种结构是当前普遍采用的卷积神经网络结构的原型。Le Net-5 虽然在手写字符识别领域取得了成功,但是其存在的缺点也比较明显,包括:

  1. 难以寻找到合适的大型训练集对网络进行训练以适应更为复杂的应用需求。
  2. 过拟合题使得 Le Net-5 的泛化能力较弱。
  3. 网络的训练开销非常大,硬件性能支持的不足使得网络结构的研究非常困难。 以上三大制约卷积神经网络发展的重要因素在近期的研究中取得了突破性的进展是卷积神经网络成为一个新的研究热点的重要原因。并且,近期针对卷积神经网络的深度和结构优化方面的研究进一步提升了网络的数据拟合能力。针对 Le Net-5 的缺陷,Krizhevsky 等提出了Alex Net。Alex Net 有5层卷积网络,如下图2所示。网络有约65万个神经元以及6 000万个可训练参数,从网络规模上大大超越了Le Net-5。另外,Alex Net选择了大型图像分类数据库 Image Net作为训练数据集。Image Net 提供了1 000个类别共 120 万张图片进行训练,图片的数量和类别都大幅度超越了以往的数据集。在去过拟合方面,Alex Net 引了dropout,一定程度上减轻了网络过拟合问题。在硬件支持方面,Alex Net 使用了GPU进行训练,相比传统的CPU 运算,GPU 使网络的训练速度提高了十倍以上。Alex Net在 Image Net 的 2012 图像分类竞赛中夺得冠军,并且相比于第二名的方法在准确度上 取得了高出11% 的巨大优势。Alex Net 的成功使得卷积神经网络的研究再次引起了学术界的关注。

几种常见卷积神经网络结构

图2  Alex Net 结构

Simonyan 等在Alex Net 的基础上,针对卷积神经网络的深度进行了研究提出了VGG 网络。VGG 由3×3的卷积核构建而成,通过对比不同深度的网络在图像应用中的性能。Simonyan等证明了网络深度的提升有助于提高图像分类的准确度。然而,这种深度的增加并非没有限制,在恰当的网络深度基础上继续增加网络的层数,会带来训练差增大的网络退化问题。因此,VGG 的最佳网络深度被设定在了16~19 层,结构如下图3所示。

几种常见卷积神经网络结构

 

图3  VGG结构

针对深度络的退化问题,He 等分析认为如果网络中增加的每一个层次都能够得到优化的训练,那么误差是不应该会在网络深度加大的情况下提高的。因此,网络退化问题说明了深度网络中并不是每一个层次都得到了完善的训练。He 等提出了一种 Res Net 网络结构。Res Net 通过Short connections将低层的特征图 x 直接映射到高层的网络中,如下图4所示。假设原本网络的非线性映射为F( x),那么通过 short connection连接之后的映射关系就变为了 F( x) + x。He 等提出这一方法的依据是 F( x) + x 的优化相比 F(x)会更加容易。因为,从极端角度考虑如果x已经 是 一 个 优 化 的 映 射,那 么 short connection之间的网络映射经过训练后就会更趋近于0。这就意味着数据的前向传导可以在一定程度上通short connection 跳过一些没有经过完善训练的层次,从而提高网络的性能。实验证明,Res Net 虽然使用了和 VGG 同样大小的卷积核,但是网络退化问题的解决使其可以构建成为一个152层的网络,并且Res Net 相比VGG 有更低训练误差和更高的测试准确度。

几种常见卷积神经网络结构

图4  残差块结构

虽然 Res Net 在一定程度上解决了深层网络退化的问题,但是关于深层网络的研究仍然存在一些疑问:

  1. 如何判断深度网络中哪些层次未能得到完善的训练。
  2. 是什么原因导致深度网络中部分层次训练的不完善。
  3. 如何处理深层网络中训练不完善的层次。

在卷积神经网络深度的研究以外,Szegedy 等更关注通过优化网络结构从而降低网络的复杂程度。他们提出了一种卷积神经网络的基本模块称为Inception。如图5所示,Inception 模块由1 × 1,3 × 3,5 × 5 的卷积核组成。小尺度卷积核的使用主要有两大优点: 1) 限制了整个网络中的训练参数数量,降低了网络的复杂度;2) 不同大小的卷积核在多尺度上针对同一图像或者特征图进行了特征提取。实验表明,使用 Inception 模块构建的GoogLe Net的训练参数数量只有Alex Net 的 1 /12,但是在 Image Net 上的图像分类准度却高出 Alex Net 大约 10% 。

几种常见卷积神经网络结构

图5  Inception 模块

卷积神经网络结构方面的研究是一个开放的问题,基于当前的研究状况,目前的研究主要形成了两大趋势:

  1. 增加卷积神经网络的深度。
  2. 优化卷积神经网络的结构,降低网络的复杂度。

在卷积神经网络的深度研究方面,主要依赖于进一步分析深层次网络存在的潜在隐患( 如:网络退化) ,以解决深层网络的训练问题( 如: VGG、Res Net) 。而在优化网络结构方面,目前的研究趋势是进一步加强对于当前网络结构的理解和分析,以更简洁高效的网络结构取代当前的结构,进一步地降低网络复杂度并且提升网络的性能( 如:GoogLe Net、完全卷积网络) 。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/148780.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • Java中高级工程师面试题及答案,Java面试题及答案汇总(二

    Java中高级工程师面试题及答案,Java面试题及答案汇总(二需要注意Jdk1.8中对HashMap的实现做了优化,当链表中的节点数据超过八个之后,该链表会转为红黑树来提高查询效率,从原来的O(n)到O(logn)24.说一下HashSet的实现原理?HashSet底层由HashMap实现HashSet的值存放于HashMap的key上HashMap的value统一为PRESENT25.ArrayList和LinkedList的区别是什么?最明显的区别是ArrrayList底层的数据结构是数组,支持随机访问,而Linke

  • 进制转换python实验五_python进制转换:十进制转二进制的用法「建议收藏」

    进制转换python实验五_python进制转换:十进制转二进制的用法「建议收藏」我们在学习python时候肯定会碰到关于进制转换,其实这是非常简单的,这个就像小学学习数学乘法口诀意义,只要记住转换口诀即可轻松应用,一起来看下具体的操作内容吧~一、python进制转换dec(十进制)—>bin(二进制)dec(十进制)—>oct(八进制)dec(十进制)—>hex(十六进制)二、十进制我们所熟知的十进制,其实是从0开始,数到9之后,就跳到10,…

  • EasyBoot使用方法

    EasyBoot使用方法1修改背景图片直接替换掉EasyBoot\disk1\ezboot目录下面的BACK.BMP文件即可。但是限于DOS功能限制,只能使用640×480像素,256位色的BMP图片。2鼠标

  • asp文件运行方式_asp文件的扩展名

    asp文件运行方式_asp文件的扩展名免费的jsp空间太难申请了,好不容易申请到asp空间,却发现下载不了apk文件,

    2022年10月30日
  • IntentService原理

    IntentService的Demo程序IntentService常被用于处理异步任务,使用的步骤是,先继承IntentService,再在handleIntent方法里写业务逻辑。handleIntent是在子线程执行的,所以不必担心ANR之类的问题,可以执行IO操作,下载等操作,且当执行完后会自动销毁,很方便。先写一个简单的Demo。CountService.java:publicc…

  • C#下使用XmlDocument详解

    C#下使用XmlDocument详解XML在开发中作为文件存储格式、数据交换的协议用的非常普遍,各个编程语言有都支持。W3C也制定了XMLDOM的标准。在这里主要介绍下.Net中的XmlDocument,包括xml读取和写入等功能。一、Xml的加载读取1、数据等准备Xml测试数据:-读取的数据,我们定义了一个实体类LocationCamera,用来保存Xml解析后的数据:public

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号