经典卷积神经网络

总论

在计算机的cv领域,我们需要掌握的就是常见的经典卷积神经网络的cnn架构,这些架构在nLp ,图像分类,分割,目标检测等领域都举有重要作用。本文只对模型原理和架构进行简单的了解,过程及证明可参考该
从2012年的AlexNet和和 Dropout到2014年的VGG席卷全球再到后面的ResNet奠定了该领域的霸主地位,网络模型越来越深,拟合效果越来越好。但同时网络参数计算量也急速增加不利于技术的广,于是一些轻量级的框架不断出现,例如后面的比如MobileNet系列,ShuffleNet系列,以及ResNext、DenseNet、EfficenceNet等模型,他们都互相吸取彼此的优点,不但降低了参数量或者计算量,同时分类精度更高,因而受到了更多的关注。接下来我们就对CNN的各种网络结构以及他们的优缺点进行一次详细的解读!

一:AlexNet(2012–用AlexNet和Dropout处理ImageNet数据集)

  1. 相关论文
    ImageNet Classification with Deep Convolutional Neural Networks [1]:原文
    Improving neural networks by preventing co-adaptation of feature detectors[2]:原文
    One weird trick for parallelizing convolutional neural networks [14]:原文

  2. 代码实现
    Pytorch版:源代码
    TF版:源代码

  3. 结构图
    在这里插入图片描述

  4. 综述
    一般认为是AlexNet开启了近年来深度学习和强化学习的大浪潮,而AlexNet实际上是基于Yann LeCun早年提出的LeNet模型提出来的。AlexNet基于GPU的强大性能并结合其他优越的算法从而活得了非常大的提升,远远超过了之前所有的对imageNet 进行数据划分的方法。它也证明了神经网络的有效性。AlexNet也成为了第一个使用Dropout的算法之一,至此,Dropout也成为了提高检测深度学习模型泛化能力的重要组件。
    AlexNet架构是由卷积层,非线性RELU,和最大池化层串成的一些列模块。现在已经成为了标准的计算机视觉网络结构。其特点如下:
    (1):增加了relu非线性激活函数,增强了模型的非线性表达能力(数据的表征能力),成为以后卷积层的标配。
    (2):使用了DrioOut算法来防止过拟合。以后成为FC层的标配。
    (3):通过数据增强来防止过拟合
    (4):引入了标准化层:通过放大那些对分类贡献较大的神经元,抑制那些对分类贡献较小的神经元。通过局部归一手段来达到作用。

二: VGGNet(2014–大卷积和池化换成小卷积和池化带来的精度提升)

  1. 代码实现:TF版本
  2. 结构图在这里插入图片描述
  3. 综述
    vgg模型是2014年ILSVRC大赛的第二名(第一是GoolgLeNet),但是vgg模型在多个迁移学习任务中表现要优于GoolgLeNet,而且从图像中提取特征,VGG算法是首选。但是这个模型的缺点是参数有140M之多,需要更大的储存空间。但是这个模型很具有研究价值。其特点如下:
    (1):更小的卷积核。用3*3的卷积核代替了5 * 5 和7 * 7卷积核,扩大通道数(极少用1 * 1)
    (2):更小的池化核。将AlexNet的3 * 3卷积核改为2 * 2的池化核,缩小特征图的宽和高。
    (3):层数更深,特征图更宽。基于前面两点,小卷积核致力于拓宽通道(网络更深),小池化核致力于降低特征图的宽和高(网络更宽),使得模型在更深更宽的同时,参数的计算量增速放缓。
    (4):全连接转卷积。网络测试阶段将训练阶段的三个全连接层转化为三个卷积,测试时重用 训练时的参数,使得测试得到的全卷积网络因为没有全连接层的限制,因而可以接收任意宽度和高度的输入。

GoolgLeNet(2014–首次使用inception结构:网络设计既考虑宽度又考虑深度)

  1. 参考原文:Going deeper with convolutions原文
  2. 代码实现:转载
  3. 结构图(完整):改数据
    在这里插入图片描述
    该结构在鄙人前面文章中讲过,此处不再详述
  4. 综述:该模型的详细情况在前面文章鄙人已经做了详细的描述,此处不再赘述,只需要了解该结构(inception)的特点
    (1):在每个卷积和池化前面采用了1 * 1 卷积,只要是为了减少维度(降低feature-map的厚度),还用于修正线性(relu)
    (2):网络最后使用平滑技术(average pooling)来代替全连接层.
    后面的Inception v2/v3都是基于v1的这种方法在扩展,主要目标有:
    1、参数量降低,计算量减少。
    2、网络变深,网络非线性表达能力更强

残差网络(ResNet–2015)

  1. 相关论文:
    Deep Residual Learning for Image Recognition [13]:原文
  2. 代码实现:
    pytorch版本:原文
    TF版本:原文
  3. 网络结构在这里插入图片描述
  4. 综述
    在AlexNet之上,研究者们又基于cnn的网络性能提出了更好的架构,例如VGG,GloogLeNet等,但是Resnet却是这一系列突破中最重要的所在。ResNet之所以特别,是因为他的深度,论文中提到其深度为1000层。尽管在基准任务上比101和152层的略差些,但仍然表现出色。因为梯度消失问题,训练这样一个深度的网络其实是非常具有挑战的,序列模型也有同样的问题。在此之前,很少有研究者认为训练如此深的网络还能有这么稳定的结果。已知有网络degradation(梯度消失)的情况下,不求加深度能提高准确性,能不能至少让深度网络实现和浅层网络一样的性能,即让深度网络后面的层至少实现恒等映射的作用,根据这个想法,作者提出了residual模块来帮助网络实现恒等映射。
    在这里插入图片描述
    在这里插入图片描述
    上图可见该网络结构的特点显而易见:
    (1):核心单元模块化,可以简单堆叠
    (2):shortcut方式解决梯度消失问题
    (3):average-pooling 替代fc层
    (4):加入BN层加快网络训练速度和收敛稳定性
    (5):加大网络深度,提高模型的特征提取能力。

MobieNet(2017–谷歌提出的专注于移动端和嵌入式设备的轻量级cnn架构)

  1. 代码实现:TF版本:转载
  2. 综述:最大的创新是深度可分解卷积–深度卷积和节点卷积,即对每个通道先进行各自卷积,然后再相加
    在这里插入图片描述
    详细的mobilenet原理过程可见cnn模型之mobilenet,非常详细,慢慢阅读。

shuffeNet

组卷积
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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值