卷积神经网络经典模型及其改进点学习汇总

作者:Bubbliiiing 时间:2023-07-22 22:15:19 

经典神经网络的改进点

名称改进点
VGG161、使用非常多的3*3卷积串联,利用小卷积代替大卷积,该操作使得其拥有更少的参数量,同时会比单独一个卷积层拥有更多的非线性变换。2、探索了卷积神经网络的深度与其性能之间的关系,成功构建16层网络(还有VGG19的19层网络)。
ResNet501、使用残差网络,其可以解决由于网络深度加深而产生的学习效率变低与准确率无法有效提升的问题。2、采用bottleneck design结构,在3x3网络结构前利用1x1卷积降维,在3x3网络结构后,利用1x1卷积升维,相比直接使用3x3网络卷积效果更好,参数更少。
InceptionV31、Inception系列通用的改进点是使用不同大小的卷积核,使得存在不同大小的感受野,最后实现拼接达到不同尺度特征的融合。2、利用1x7的卷积和7x1的卷积代替7x7的卷积,这样可以只使用约(1x7 + 7x1) / (7x7) = 28.6%的计算开销;利用1x3的卷积和3x1的卷积代替3x3的卷积,这样可以只使用约(1x3 + 3x1) / (3x3) = 67%的计算开销。
Xception1、开始采用残差网络,其可以解决由于网络深度加深而产生的学习效率变低与准确率无法有效提升的问题。2、采用SeparableConv2D层,利用深度可分离卷积减少参数量。
MobileNet1、是一种轻量级的深层神经网络,为一定设备设计。 2、采用depthwise separable convolution结构,3x3卷积核厚度只有一层,然后在输入张量上一层一层地滑动,所以一个卷积核就对应了一个输出通道,当卷积完成后,在利用1x1的卷积调整厚度,实现参数减少。

经典神经网络的结构汇总

1、VGG16

卷积神经网络经典模型及其改进点学习汇总

1、一张原始图片被resize到(224,224,3)。

2、conv1两次[3,3]卷积网络,输出的特征层为64,输出为(224,224,64),再2X2最大池化,输出net为(112,112,64)。

3、conv2两次[3,3]卷积网络,输出的特征层为128,输出net为(112,112,128),再2X2最大池化,输出net为(56,56,128)。

4、conv3三次[3,3]卷积网络,输出的特征层为256,输出net为(56,56,256),再2X2最大池化,输出net为(28,28,256)。

5、conv3三次[3,3]卷积网络,输出的特征层为256,输出net为(28,28,512),再2X2最大池化,输出net为(14,14,512)。

6、conv3三次[3,3]卷积网络,输出的特征层为256,输出net为(14,14,512),再2X2最大池化,输出net为(7,7,512)。

7、利用卷积的方式模拟全连接层,效果等同,输出net为(1,1,4096)。共进行两次。

8、利用卷积的方式模拟全连接层,效果等同,输出net为(1,1,1000)。

最后输出的就是每个类的预测。

具体实现代码可以看我的博文神经网络学习——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模型的复现详解

来源:https://blog.csdn.net/weixin_44791964/article/details/102824592

标签:卷积神经,神经网络,经典模型,改进点
0
投稿

猜你喜欢

  • Python3.4学习笔记之类型判断,异常处理,终止程序操作小结

    2022-06-03 10:45:54
  • MySQL 密码设置

    2024-01-28 11:53:59
  • SQL Server数据在不同数据库中的应用

    2008-12-24 15:34:00
  • 解决Python发送Http请求时,中文乱码的问题

    2021-02-02 05:11:39
  • PHP中常用的数组操作方法笔记整理

    2023-06-06 15:17:12
  • Navicat连接mysql报错2003(10060)的解决方法

    2024-01-25 06:08:14
  • 基于tensorflow权重文件的解读

    2023-11-04 02:05:35
  • mysql8.0.0 winx64.zip解压版安装配置教程

    2024-01-12 23:38:27
  • windows 10下安装搭建django1.10.3和Apache2.4的方法

    2022-01-01 01:07:51
  • 详解Python中的Dict(下篇)

    2021-11-10 17:16:14
  • python应用之如何使用Python发送通知到微信

    2022-03-04 01:59:55
  • 微信公众号支付之坑:调用支付jsapi缺少参数 timeStamp等错误解决方法

    2024-05-11 09:16:42
  • 如何使用python写截屏小工具

    2021-04-04 23:51:14
  • sql字符串函数大全和使用方法示例

    2024-01-26 22:17:48
  • Python格式化日期时间操作示例

    2022-04-23 23:07:19
  • 简单好用的PHP分页类

    2023-11-22 09:32:39
  • Python之requests的使用(二)

    2021-10-30 16:44:51
  • Python自动化测试笔试面试题精选

    2021-05-17 03:32:59
  • vue项目依赖升级报错处理方式

    2024-05-10 14:20:52
  • Oracle SecureFile的功能第1/4页

    2009-06-19 18:07:00
  • asp之家 网络编程 m.aspxhome.com