CNN模型发展史:从LeNet,AlexNet,GoogleNet,VGG到ResNet,SENet,Xception,MobileNet,ShuffleNet 您所在的位置:网站首页 vgg和resnet CNN模型发展史:从LeNet,AlexNet,GoogleNet,VGG到ResNet,SENet,Xception,MobileNet,ShuffleNet

CNN模型发展史:从LeNet,AlexNet,GoogleNet,VGG到ResNet,SENet,Xception,MobileNet,ShuffleNet

2023-08-27 18:55| 来源: 网络整理| 查看: 265

目录

一、CNN发展历程

1.1998  LeNet:开山之作

2.2012 Alexnet:王者归来

3.2013 ZF-Net

4.2014 GoogleNet,VGG

4.1 GoogleNet

4.2 VGG

5.2015 ResNet:里程碑式创新

6.2016 GBD-Net、ResNeXt、DenseNet

6.1 GBD-Net

6.2 ResNeXt

6.3 DenseNet

7.2017 SENet/ResidualAttentionNet/Xception/MobileNet/ShuffleNet

7.1 SENet 

7.2 Residual Attention Network 注意力残差

7.3 Xception

7.4 MobileNet

7.5 ShuffleNet

8.2018 MobileNetV2,ShuffleNetV2

8.1 MobileNetV2

8.2 ShuffleNetV2

二、模型进化

一、CNN发展历程

 

1.1998 LeNet:最早用于数字识别的CNN

2.2012 AlexNet:      ILSVRC竞赛2012年第一名

3.2013 ZFNet:         ILSVRC竞赛2013年第一名

4.2014  GoogleNet:ILSVRC竞赛2014年第一名               VGG:         ILSVRC竞赛2014年第二名

5.2015 ResNet:      ILSVRC竞赛2015年第一名

6.2016 GBD-Net:   ILSVRC竞赛2016年第一名

           ResNeXt,DenseNet

7.2017 SENet:       ILSVRC竞赛2017年第一名

            Residual Attention Net,Xception,MobileNet,ShuffleNet

8.2018:XceptionV2,MobileNetV2

 

1.1998  LeNet:开山之作

论文:http://yann.lecun.com/exdb/publis/pdf/lecun-01a.pdf

LeNet-5网络结构:5层:2*(卷积层+降采样层)+2个全连接层+1个高斯连接层

但之后被SVM的风头盖过。随着ReLu和DropOut的提出,以及GPU和大数据的发展机遇,CNN开始有质的突破和进展。

 

以下将介绍ILSVRC竞赛2012年开始的几大模型。

 

2.2012 Alexnet:王者归来

AlexNet:      ILSVRC竞赛2012年第一名

网络层数:8层:5个卷积层(+池化层)+3个全连接层

网络结构:

CNN é£ä¹å¤çç½ç»æä»ä¹åºå«åï¼çè¿éäºè§£ CNN çåå±åç¨

特点:

网络结构方面:引入非线性单元ReLu、多GPU、局部相应归一化层、Overlapping Pooling

减轻过拟合:数据增强的方式-1)平移/翻转/对称、2)改变RGB通道的强度

                     Dropout、Learning Rate减小

 

3.2013 ZF-Net

ZF-Net:      ILSVRC竞赛2013年第一名

虽然是竞赛第一名,但没有重大突破,所以不做介绍。

 

4.2014 GoogleNet,VGG

GoogleNet:      ILSVRC竞赛2014年第一名

VGG         :      ILSVRC竞赛2014年第二名

4.1 GoogleNet

Google Inception Net是一个大家族,包括:Inception V1-V4。

2014年9月的《Going deeper with convolutions》提出的Inception V1. 2015年2月的《Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift》提出的Inception V2 2015年12月的《Rethinking the Inception Architecture for Computer Vision》提出的Inception V3 2016年2月的《Inception-v4, Inception-ResNet and the Impact of Residual Connections on Learning》提出的Inception V4

 

InceptionV4的提出,是在ResNet之后。是Google对ResNet的挑战。

Inception-ResNetV1,Inception-ResNetV2这两个结构用来和InceptionV3和InceptionV4进行性能对比。

1)Inception V1

GoogLeNet的核心思想是:将全连接,甚至卷积中的局部连接,全部替换为稀疏连接。

又由于计算机计算稀疏矩阵的低效,因此提出将:稀疏矩阵聚类为密集的子矩阵

2)Inception V2

Inception v2加入了BN(Batch Normalization)层,并且使用2个3*3替代1个5*5卷积。

(1)加入了BN层,减少了InternalCovariate Shift(内部neuron的数据分布发生变化),使每一层的输出都规范化到一个N(0, 1)的高斯,从而增加了模型的鲁棒性,可以以更大的学习速率训练,收敛更快,初始化操作更加随意,同时作为一种正则化技术,可以减少dropout层的使用。

(2)用2个连续的3*3 conv替代inception模块中的5*5,从而实现网络深度的增加,网络整体深度增加了9层,缺点就是增加了25%的weights和30%的计算消耗。

3)InceptionV3

Inception v3主要在v2的基础上,提出了卷积分解(Factorization)

(1) 将7*7分解成两个一维的卷积(1*7,7*1),3*3也是一样(1*3,3*1),这样的好处,既可以加速计算(多余的计算能力可以用来加深网络),又可以将1个conv拆成2个conv,使得网络深度进一步增加,增加了网络的非线性,更加精细设计了35*35/17*17/8*8的模块。

(2)增加网络宽度,网络输入从224*224变为了299*299。

 

4)InceptionV4

Inception v4主要利用残差连接(Residual Connection)来改进v3结构,将Inception模块和ResidualConnection结合,使得训练加速收敛更快,精度更高。代表:Inception-ResNet-v1,Inception-ResNet-v2。

resnet中的残差结构如下,使用原始层和经过2个卷基层的feature map做Eltwise。

Inception-ResNet的改进就是使用上文的Inception module来替换resnet shortcut中的conv+1*1 conv。

 

4.2 VGG

VGG:图像识别略差于GoogLeNet,但在很多图像转化学习问题(比如object detection)上效果奇好。

VGGNet与AlexNet很相似,都是卷积池化-卷积池化-...-全连接的套路,不同的是kernel大小,卷积stride,网络深度。

 

5.2015 ResNet:里程碑式创新

ResNet:      ILSVRC竞赛2015年第一名

ResNet残差网络,后来2017年出了升级版ResNeXt:https://arxiv.org/pdf/1611.05431.pdf

随着网络的加深,出现了训练集准确率下降的现象,我们可以确定这不是由于Overfit过拟合造成的(过拟合的情况训练集应该准确率很高);所以作者针对这个问题提出了一种全新的网络,叫深度残差网络,它允许网络尽可能的加深。

两种残差的结构:

 

ResNet与其他模型对比精度:

 

如下列出AlexNet、VGG、GoogleNet、ResNet模型对比。

 

6.2016 GBD-Net、ResNeXt、DenseNet

GBD-Net:      ILSVRC竞赛2016年第一名

6.1 GBD-Net

虽然是竞赛第一名,但没有重大突破,所以不做介绍。

 

6.2 ResNeXt

resnet的升级版:ResNeXt,the next dimension的意思,因为文中提出了另外一种维度cardinality,和channel和space的维度不同,cardinality维度主要表示ResNeXt中module的个数,最终结论

(1)增大Cardinality比增大模型的width或者depth效果更好

(2)与 ResNet 相比,ResNeXt 参数更少,效果更好,结构更加简单,更方便设计

其中,左图为ResNet的一个module,右图为ResNeXt的一个module,是一种split-transform-merge的思想

ResNeXt > WideResNet > ResNet

6.3 DenseNet

Gao Huang, Zhuang Liu, Kilian Q. Weinberger 和Laurens van der Maaten于2016年提出了密集卷积神经网络DenseCNN的概念,在前馈过程中将每一层与其他的层都链接起来。对于每一层网络来说,前面所有网络的特征图都被作为输入,同时其特征图也都被其他网络层作为输入所利用。

 

640?wx_fmt=png

5层的致密网络,每一层将所有层都视为自己的输入。

DenseCNN具有很多的有点,包括缓解梯度消失的问题,强化特征传播和特征的复用,并减少了参数的数目。DenseNet相较于ResNet所需的内存和计算资源更少,并达到更好的性能。

 

7.2017 SENet/ResidualAttentionNet/Xception/MobileNet/ShuffleNet

SENet:      ILSVRC竞赛2017年第一名

7.1 SENet 

2016年底发的论文,用在了2017年ILSVRC大赛上,获得第一名。

SqueezeNet有着跟AlexNet一样的精度,但是参数却比Alex少了接近50倍并且参数只需要占用很小的内存空间。这里的设计就没有SegNet或者GoogleNet那样的设计架构惊艳了,但SqueezeNet却是能够保证同样的精度下使用更少的参数。

论文:SqueezeNet: AlexNet-level accuracy with 50x fewer parameters and < 0.5MB model size

 

7.2 Residual Attention Network 注意力残差

作者使用Residual Block、Inception Module,模型搭建思路参考了ResNet的残差学习方式,包括Bottom-up Top-down的Attention学习机制和以前的图像分割方法类似,没有提出什么新的东西,就是将老方法进行糅合。

(1)提出了一种可堆叠的网络结构。与ResNet中的Residual Block类似,本文所提出的网络结构也是通过一个Residual Attention Module的结构进行堆叠,可使网络模型能够很容易的达到很深的层次。 (2)提出了一种基于Attention的残差学习方式。与ResNet也一样,本文做提出的模型也是通过一种残差的方式,使得非常深的模型能够容易的优化和学习,并且具有非常好的性能。 (3)Bottom-up Top-down的前向Attention机制。其他利用Attention的网络,往往需要在原有网络的基础上新增一个分支来提Attention,并进行单独的训练,而本文提出的模型能够就在一个前向过程中就提取模型的Attention,使得模型训练更加简单。

 

7.3 Xception

在Inception V3的基础上提出了Xception(Extreme Inception),基本思想就是通道分离式卷积(depthwise separable convolution operation)。

(1)参数量微量减少:

(2)精度提高:

先说,卷积的操作,主要进行2种变换,

(1)spatial dimensions,空间变换

(2)channel dimension,通道变换

而Xception就是在这2个变换上做文章。Xception与Inception V3的区别如下:

(1)卷积操作顺序的区别

Inception V3是先做1*1的卷积,再做3*3的卷积,这样就先将通道进行了合并,即通道卷积,然后再进行空间卷积,而Xception则正好相反,先进行空间的3*3卷积,再进行通道的1*1卷积。

(2)RELU的有无

这个区别是最不一样的,Inception V3在每个module中都有RELU操作,而Xception在每个module中是没有RELU操作的。  

7.4 MobileNet

MobileNets其实就是Exception思想的应用。区别就是Exception文章重点在提高精度,而MobileNets重点在压缩模型,同时保证精度。

depthwiseseparable convolutions的思想就是,分解一个标准的卷积为一个depthwise convolutions和一个pointwise convolution。简单理解就是矩阵的因式分解。

传统卷积和深度分离卷积的区别如下,

 

7.5 ShuffleNet

在mobileNet的基础上主要做了1点改进:

mobileNet只做了3*3卷积的deepwiseconvolution,而1*1的卷积还是传统的卷积方式,还存在大量冗余,ShuffleNet则在此基础上,将1*1卷积做了shuffle和group操作,实现了channel shuffle 和pointwise group convolution操作,最终使得速度和精度都比mobileNet有提升。  

8.2018 MobileNetV2,ShuffleNetV2 8.1 MobileNetV2

MobileNet v1,MobileNet v2 有2点区别:

(1)v2版本在进入3*3卷积之前,先进行了1*1pointwise conv升维,并且经过RELU。

(2)1*1卷积出去后,没有进行RELU操作

mobilenetv2都优于v1:

 

8.2 ShuffleNetV2

论文指出单纯的乘加运算FLOPs并不能完全表示模型的运算速度,访存开销memory access cost(MAC)也应该考虑进去。并基于这,设计出了轻量化网络ShuffleNet V2。

提出了4个改进的原则:

(1)单个模块的输入输出通道相同,可以最小化访存开销(MAC)

(2)过量使用组卷积group convolution ,会增加MAC

(3)网络的分支越多,并行度越差

(4)Element-wise 操作的时间是不可忽略的

分类任务精度:

ShuffleNet v2 ≥MobileNet v2 > ShuffeNet v1 > Xception

检测任务精度:

ShuffleNet v2 > Xception ≥ ShuffleNet v1 ≥ MobileNet v2

 

二、模型进化

模型进化的4个路径:网络结构加深、卷积功能加强、从分类到检测、新增功能模块。

 

参考:

https://chtseng.wordpress.com/2017/11/20/ilsvrc-%E6%AD%B7%E5%B1%86%E7%9A%84%E6%B7%B1%E5%BA%A6%E5%AD%B8%E7%BF%92%E6%A8%A1%E5%9E%8B/

http://www.image-net.org/challenges/LSVRC/

http://www.sohu.com/a/205268417_717210

LeNet:https://cuijiahua.com/blog/2018/01/dl_3.html

             https://blog.csdn.net/q5390498/article/details/53768925

LeNet-VGG:http://www.sohu.com/a/205268417_717210

GoogleNet:https://blog.csdn.net/qq_14845119/article/details/73648100

https://blog.csdn.net/dqcfkyqdxym3f8rb0/article/details/79314648

https://blog.csdn.net/q6324266/article/details/72511961

Residual Attention:https://blog.csdn.net/wspba/article/details/73727469



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有