卷积神经网络实例讲解,卷积神经网络的改进
本文主要介绍卷积神经网络的经典模型及其改进点的总结。有需要的朋友可以借鉴一下,希望能有所帮助。祝大家进步很大,早日升职加薪。
00-1010经典神经网络的改进点:经典神经网络1、VGG162、ResNet503、关联v34、Xception5、MobileNet的结构概述
目录
改进了命名点VGG161。用了很多3*3的卷积级数,用小卷积代替大卷积。该操作使其比单个卷积层具有更少的参数和更多的非线性变换。2.探索卷积神经网络的深度与其性能的关系,成功构建了16层网络(以及VGG19的19层网络)。ResNet501。使用残差网络,可以解决由于网络的深入导致学习效率变低,准确率无法有效提高的问题。2.采用瓶颈设计结构。在3x3网络结构之前,维数减少了1x1卷积,在3x3网络结构之后,维数增加了1x1卷积。与直接使用33网络卷积相比,卷积效果更好,参数更少。InceptionV31和Inception系列的一般改进是使用不同大小的卷积核,这样就有不同大小的感受野。最后通过拼接实现不同尺度特征的融合。2.用17卷积和71卷积代替77卷积,这样大约只需要(1771)/(77)=28.6%的计算开销;使用13卷积和31卷积代替33卷积,从而仅可以使用大约(13 31)/(33)=67%的计算开销。例外1。采用残差网络,可以解决由于网络的深入导致学习效率变低,准确率无法有效提高的问题。2.使用SeparableConv2D层和深度可分离卷积减少参数数量。MobileNet1是一种轻量级深度神经网络,专为某些设备而设计。2.采用深度方向可分离的卷积结构。33卷积核的厚度只有一层,然后在输入张量上逐层滑动,所以一个卷积核对应一个输出通道。卷积完成后,通过1x1卷积调整厚度,以减少参数。
经典神经网络的改进点
经典神经网络的结构汇总
1.原始图片大小被调整为(224,224,3)。
2.conv1两次[3,3]卷积网络,输出的特征层为64,输出为(224,224,64),然后最大池为2X2,输出网为(112,112,64)。
3.conv2两次[3,3]卷积网络,输出特征层为128,输出网为(112,112,128),然后2X2最大池,输出网为(56,56,128)。
4.conv3立方[3,3]卷积网络,输出特征层为256,输出网为(56,56,256),然后2X2最大池,输出网为(28,28,256)。
5.conv3立方[3,3]卷积网络,输出特征层为256,输出网为(28,28,512),然后2X2最大池,输出网为(14,14,512)。
6.conv3立方[3,3]卷积网络,输出特征层为256,输出网为(14,14,512),然后最大池为2X2,输出网为(7,7,512)。
7.用卷积法模拟全连接层,效果是一样的。输出网络是(1,1,4096)。一共两次。
8.用卷积法模拟全连接层,效果是一样的。输出净额为(1,1,1000)。
最后的输出是每个类的预测。
具体实现代码可以在我的博文神经网络学习———MDA中找到。
sh;VGG16模型的复现及其详解(包含如何预测)
2、ResNet50
ResNet50最大的特点是使用了残差网络。
残差网络的特点是将靠前若干层的某一层数据输出直接跳过多层引入到后面数据层的输入部分。
意味着后面的特征层的内容会有一部分由其前面的某一层线性贡献。
其结构如下:
ResNet50有两个基本的块,分别名为Conv Block和Identity Block,其中Conv Block输入和输出的维度是不一样的,所以不能连续串联,它的作用是改变网络的维度;
Identity Block输入维度和输出维度相同,可以串联,用于加深网络的。
Conv Block的结构如下:
Identity Block的结构如下:
这两个都是残差网络结构。
总的网络结构如下:
具体实现代码可以看我的博文神经网络学习——ResNet50模型的复现详解
3、InceptionV3
Inception系列的网络的特点是采用不同大小的卷积核,使得存在不同大小的感受野,最后实现拼接达到不同尺度特征的融合。
对于InceptionV3而言,其网络中存在着如下的结构。
这个结构使用不同大小的卷积核对输入进行卷积(这个结构主要在代码中的block1使用)。
还存在着这样的结构,利用1x7的卷积和7x1的卷积代替7x7的卷积,这样可以只使用约(1x7 + 7x1) / (7x7) = 28.6%的计算开销;
利用1x3的卷积和3x1的卷积代替3x3的卷积,这样可以只使用约(1x3 + 3x1) / (3x3) = 67%的计算开销。
下图利用1x7的卷积和7x1的卷积代替7x7的卷积(这个结构主要在代码中的block2使用)。
下图利用1x3的卷积和3x1的卷积代替3x3的卷积(这个结构主要在代码中的block3使用)。
具体实现代码可以看我的博文神经网络学习——InceptionV3模型的复现详解
4、Xception
Xception是谷歌公司继Inception后,提出的InceptionV3的一种改进模型,其改进的主要内容为采用depthwise separable convolution来替换原来Inception v3中的多尺寸卷积核特征响应操作。
在讲Xception模型之前,首先要讲一下什么是depthwise separable convolution(深度可分离卷积块)。
深度可分离卷积块由两个部分组成,分别是深度可分离卷积和1x1普通卷积,深度可分离卷积的卷积核大小一般是3x3的,便于理解的话我们可以把它当作是特征提取,1x1的普通卷积可以完成通道数的调整。
下图为深度可分离卷积块的结构示意图:
深度可分离卷积块的目的是使用更少的参数来代替普通的3x3卷积。
我们可以进行一下普通卷积和深度可分离卷积块的对比:
假设有一个3×3大小的卷积层,其输入通道为16、输出通道为32。具体为,32个3×3大小的卷积核会遍历16个通道中的每个数据,最后可得到所需的32个输出通道,所需参数为16×32×3×3=4608个。
应用深度可分离卷积,用16个3×3大小的卷积核分别遍历16通道的数据,得到了16个特征图谱。在融合操作之前,接着用32个1×1大小的卷积核遍历这16个特征图谱,所需参数为16×3×3+16×32×1×1=656个。
可以看出来depthwise separable convolution可以减少模型的参数。
通俗地理解深度可分离卷积结构块,就是3x3的卷积核厚度只有一层,然后在输入张量上一层一层地滑动,每一次卷积完生成一个输出通道,当卷积完成后,再利用1x1的卷积调整厚度。
Xception使用的深度可分离卷积块SeparableConv2D也就是先深度可分离卷积再进行1x1卷积。
对于Xception模型而言,其一共可以分为3个flow,分别是Entry flow、Middle flow、Exit flow;
分为14个block,其中Entry flow中有4个、Middle flow中有8个、Exit flow中有2个。
具体结构如下:
其内部主要结构就是残差卷积网络搭配SeparableConv2D层实现一个个block,在Xception模型中,常见的两个block的结构如下。
这个主要在Entry flow和Exit flow中:
这个主要在Middle flow中:
具体实现代码可以看我的博文神经网络学习——Xception模型的复现详解
5、MobileNet
MobileNet模型是Google针对手机等嵌入式设备提出的一种轻量级的深层神经网络,其使用的核心思想便是depthwise separable convolution。
对于一个卷积点而言:
假设有一个3×3大小的卷积层,其输入通道为16、输出通道为32。
具体为,32个3×3大小的卷积核会遍历16个通道中的每个数据,最后可得到所需的32个输出通道,所需参数为16×32×3×3=4608个。
应用深度可分离卷积,用16个3×3大小的卷积核分别遍历16通道的数据,得到了16个特征图谱。在融合操作之前,接着用32个1×1大小的卷积核遍历这16个特征图谱,所需参数为16×3×3+16×32×1×1=656个。
可以看出来depthwise separable convolution可以减少模型的参数。
如下这张图就是depthwise separable convolution的结构
在建立模型的时候,可以使用Keras中的DepthwiseConv2D层实现深度可分离卷积,然后再利用1x1卷积调整channels数。
通俗地理解就是3x3的卷积核厚度只有一层,然后在输入张量上一层一层地滑动,每一次卷积完生成一个输出通道,当卷积完成后,在利用1x1的卷积调整厚度。
如下就是MobileNet的结构,其中Conv dw就是分层卷积,在其之后都会接一个1x1的卷积进行通道处理,
具体实现代码可以看我的博文神经网络学习——MobileNet模型的复现详解
以上就是卷积神经网络经典模型及其改进点学习汇总的详细内容,更多关于卷积神经网络模型改进的资料请关注盛行IT软件开发工作室其它相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。