0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

卷积神经网络的发展及各模型的优缺点

新机器视觉 来源:新机器视觉 2023-01-29 15:15 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

前言

在CV领域,我们需要熟练掌握最基本的知识就是各种卷积神经网络CNN的模型架构,不管我们在图像分类或者分割,目标检测,NLP等,我们都会用到基本的CNN网络架构。

CNN从最初的2012年AlexNet横空出世到2014年VGG席卷世界以及2015年ResNet奠定了该领域的霸主地位,网络模型变得越变越深,而且也得到证明,越深的网络拟合效果越好,但网络相应的参数量计算量都极速增加,不利于技术的推广和应用。

因此,一些轻量级的网络结构也慢慢随之出现,比如MobileNet系列,ShuffleNet系列,以及ResNext、DenseNet、EfficenceNet等模型,他们都互相吸取彼此的优点,不但降低了参数量或者计算量,同时分类精度更高,因而受到了更多的关注。接下来我们就对CNN的各种网络结构以及他们的优缺点进行一次详细的解读!

AlexNet(2012)

fed675f6-9903-11ed-bfe3-dac502259ad0.png

1、增加了relu非线性激活函数,增强了模型的非线性表达能力。成为以后卷积层的标配。

2、dropout层防止过拟合,成为以后fc层的标配。

3、通过数据增强,来减少过拟合。

4、引入标准化层(Local Response Normalization):通过放大那些对分类贡献较大的神经元,抑制那些对分类贡献较小的神经元,通过局部归一的手段,来达到作用。

VGG(2014)

fedd38c8-9903-11ed-bfe3-dac502259ad0.png

论文的主要创新点在于:

1、用3x3小卷积核代替了5x5或者7x7的卷积核 2、基于ALexnet加深了网络深度,证明了更深的网络,能更好的提取特征。

GoogleNet(2014)

fee6791a-9903-11ed-bfe3-dac502259ad0.png

在设计网络结构时,不仅仅考虑网络的深度,也会考虑网络的宽度,并将这种结构定义为Inception结构。

feef7b46-9903-11ed-bfe3-dac502259ad0.png

1、引入1x1卷积的主要目的是为了减少维度,还用于修正线性激活(ReLU)

2、网络最后采用了average pooling(平均池化)来代替全连接层

后面的Inception v2/v3都是基于v1的这种方法在扩展,主要目标有:

1、参数量降低,计算量减少。

2、网络变深,网络非线性表达能力更强

ResNet(2015)

问题:

1、增加深度带来的首个问题就是梯度爆炸/消散的问题,这是由于随着层数的增多,在网络中反向传播的梯度会随着连乘变得不稳定,变得特别大或者特别小。这其中经常出现的是梯度消散的问题。

2、为了克服梯度消散也想出了许多的解决办法,如使用BatchNorm,将激活函数换为ReLu,使用Xaiver初始化等,可以说梯度消散已经得到了很好的解决

fef80afe-9903-11ed-bfe3-dac502259ad0.png

已知有网络degradation的情况下,不求加深度能提高准确性,能不能至少让深度网络实现和浅层网络一样的性能,即让深度网络后面的层至少实现恒等映射的作用,根据这个想法,作者提出了residual模块来帮助网络实现恒等映射。

ff011b12-9903-11ed-bfe3-dac502259ad0.png

ResNet的设计特点:

1、核心单元模块化,可进行简单堆叠。 2、Shortcut方式解决网络梯度消失问题。 3、Average Pooling层代替fc层。 4、引入BN层加快网络训练速度和收敛时的稳定性。 5、加大网络深度,提高模型的特征抽取能力。

MobileNet v1

谷歌在2017年提出专注于移动端或者嵌入式设备中的轻量级CNN网络:MobileNet。最大的创新点是深度可分离卷积。

通过将标准卷积分解为深度卷积核逐点卷积,能够显著的降低参数量和计算量。引入Relu6激活函数。

ff0beaba-9903-11ed-bfe3-dac502259ad0.png

参数量计算量的计算:

ff15a23a-9903-11ed-bfe3-dac502259ad0.png

网络结构如下:

ff20e8c0-9903-11ed-bfe3-dac502259ad0.png

MobileNet v2

改进点主要有以下几个方面:

1、引入残差结构,先升维再降维,增强梯度的传播,显著减少推理期间所需的内存占用

Inverted Residuals:

残差模块:输入首先经过1x1的卷积进行压缩,然后使用3x3的卷积进行特征提取,最后在用1x1的卷积把通道数变换回去。整个过程是“压缩-卷积-扩张”。这样做的目的是减少3x3模块的计算量,提高残差模块的计算效率。

ff2e1018-9903-11ed-bfe3-dac502259ad0.png

倒残差模块:输入首先经过1x1的卷积进行通道扩张,然后使用3x3的depthwise卷积,最后使用1x1的pointwise卷积将通道数压缩回去。整个过程是“扩张-卷积-压缩”。

对低维度做ReLU运算,很容易造成信息的丢失。而在高维度进行ReLU运算的话,信息的丢失则会很少。

ff384ccc-9903-11ed-bfe3-dac502259ad0.png

Linear Bottleneck:

这个模块是为了解决一开始提出的那个低维-高维-低维的问题,即将最后一层的ReLU6替换成线性激活函数,而其他层的激活函数依然是ReLU6。

MobileNet v3

V3结合了V1的深度可分离卷积,V2的Inverted Residuals 和 Linear Bottleneck,以及加入SE模块、利用NAS(神经结构的搜索)来搜索网络参数。

ff3f3d34-9903-11ed-bfe3-dac502259ad0.png

互补搜索技术 —— NAS & NetAdapt

h-swish激活函数

out = F.relu6(x + 3., self.inplace) / 6. return out * x

改进一:下图是MobileNet-v2的整理模型架构,可以看到,网络的最后部分首先通过1x1卷积映射到高维,然后通过GAP收集特征,最后使用1x1卷积划分到K类。所以其中起抽取特征作用的是在7x7分辨率上做1x1卷积的那一层。

而V3是先进行池化然后再进行1x1卷积提取特征,V2是先1X1卷积提取特征再池化。

ff4b71c6-9903-11ed-bfe3-dac502259ad0.png

ShuffleNet

组卷积

Group convolution是将输入层的不同特征图进行分组,然后采用不同的卷积核再对各个组进行卷积,这样会降低卷积的计算量。

因为一般的卷积都是在所有的输入特征图上做卷积,可以说是全通道卷积,这是一种通道密集连接方式(channel dense connection),而group convolution相比则是一种通道稀疏连接方式(channel sparse connection)。

depthwise convolution,这是一种比较特殊的group convolution,此时分组数恰好等于通道数,意味着每个组只有一个特征图。

分组卷积的会带来一个矛盾就是特征通信。group convolution层另一个问题是不同组之间的特征图需要通信。所以MobileNet等网络采用密集的1x1 pointwise convolution,因为要保证group convolution之后不同组的特征图之间的信息交流。

为达到特征通信目的,我们不采用dense pointwise convolution,考虑其他的思路:channel shuffle

ff5788b2-9903-11ed-bfe3-dac502259ad0.png

ShuffleNet的核心是采用了两种操作:pointwise group convolution和channel shuffle,这在保持精度的同时大大降低了模型的计算量。其基本单元则是在一个残差单元的基础上改进而成。

ff5f7b80-9903-11ed-bfe3-dac502259ad0.png

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • cnn
    cnn
    +关注

    关注

    3

    文章

    355

    浏览量

    23246
  • 卷积神经网络

    关注

    4

    文章

    371

    浏览量

    12714
  • resnet
    +关注

    关注

    0

    文章

    14

    浏览量

    3375

原文标题:卷积神经网络的发展及各模型的优缺点

文章出处:【微信号:vision263com,微信公众号:新机器视觉】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    自动驾驶中常提的卷积神经网络是个啥?

    在自动驾驶领域,经常会听到卷积神经网络技术。卷积神经网络,简称为CNN,是一种专门用来处理网格状数据(比如图像)的深度学习模型。CNN在图像
    的头像 发表于 11-19 18:15 1828次阅读
    自动驾驶中常提的<b class='flag-5'>卷积</b><b class='flag-5'>神经网络</b>是个啥?

    CNN卷积神经网络设计原理及在MCU200T上仿真测试

    CNN算法简介 我们硬件加速器的模型为Lenet-5的变型,网络粗略分共有7层,细分共有13层。包括卷积,最大池化层,激活层,扁平层,全连接层。下面是各层作用介绍: 卷积层:提取
    发表于 10-29 07:49

    NMSIS神经网络库使用介绍

    :   神经网络卷积函数   神经网络激活函数   全连接层函数   神经网络池化函数   Softmax 函数   神经网络支持功能
    发表于 10-29 06:08

    构建CNN网络模型并优化的一般化建议

    整个模型非常巨大。所以要想实现轻量级的CNN神经网络模型,首先应该避免尝试单层神经网络。 2)减少卷积核的大小:CNN
    发表于 10-28 08:02

    在Ubuntu20.04系统中训练神经网络模型的一些经验

    模型。 我们使用MNIST数据集,训练一个卷积神经网络(CNN)模型,用于手写数字识别。一旦模型被训练并保存,就可以用于对新图像进行推理和预
    发表于 10-22 07:03

    CICC2033神经网络部署相关操作

    读取。接下来需要使用扩展指令,完成神经网络的部署,此处仅对第一层卷积+池化的部署进行说明,其余层与之类似。 1.使用 Custom_Dtrans 指令,将权重数据、输入数据导入硬件加速器内。对于权重
    发表于 10-20 08:00

    神经网络的并行计算与加速技术

    随着人工智能技术的飞速发展神经网络在众多领域展现出了巨大的潜力和广泛的应用前景。然而,神经网络模型的复杂度和规模也在不断增加,这使得传统的串行计算方式面临着巨大的挑战,如计算速度慢、
    的头像 发表于 09-17 13:31 882次阅读
    <b class='flag-5'>神经网络</b>的并行计算与加速技术

    基于神经网络的数字预失真模型解决方案

    在基于神经网络的数字预失真(DPD)模型中,使用不同的激活函数对整个系统性能和能效有何影响?
    的头像 发表于 08-29 14:01 3055次阅读

    卷积神经网络如何监测皮带堵料情况 #人工智能

    卷积神经网络
    jf_60804796
    发布于 :2025年07月01日 17:08:42

    BP神经网络卷积神经网络的比较

    BP神经网络卷积神经网络在多个方面存在显著差异,以下是对两者的比较: 一、结构特点 BP神经网络 : BP神经网络是一种多层的前馈
    的头像 发表于 02-12 15:53 1301次阅读

    如何优化BP神经网络的学习率

    优化BP神经网络的学习率是提高模型训练效率和性能的关键步骤。以下是一些优化BP神经网络学习率的方法: 一、理解学习率的重要性 学习率决定了模型参数在每次迭代时更新的幅度。过大的学习率可
    的头像 发表于 02-12 15:51 1419次阅读

    BP神经网络优缺点分析

    BP神经网络(Back Propagation Neural Network)作为一种常用的机器学习模型,具有显著的优点,同时也存在一些不容忽视的缺点。以下是对BP神经网络
    的头像 发表于 02-12 15:36 1563次阅读

    BP神经网络与深度学习的关系

    ),是一种多层前馈神经网络,它通过反向传播算法进行训练。BP神经网络由输入层、一个或多个隐藏层和输出层组成,通过逐层递减的方式调整网络权重,目的是最小化网络的输出误差。 二、深度学习的
    的头像 发表于 02-12 15:15 1338次阅读

    如何训练BP神经网络模型

    BP(Back Propagation)神经网络是一种经典的人工神经网络模型,其训练过程主要分为两个阶段:前向传播和反向传播。以下是训练BP神经网络
    的头像 发表于 02-12 15:10 1461次阅读

    人工神经网络的原理和多种神经网络架构方法

    在上一篇文章中,我们介绍了传统机器学习的基础知识和多种算法。在本文中,我们会介绍人工神经网络的原理和多种神经网络架构方法,供各位老师选择。 01 人工神经网络   人工神经网络
    的头像 发表于 01-09 10:24 2236次阅读
    人工<b class='flag-5'>神经网络</b>的原理和多种<b class='flag-5'>神经网络</b>架构方法