CNN模型发展史:从LeNet,AlexNet,GoogleNet,VGG到ResNet,SENet,Xception,MobileNet,ShuffleNet | 您所在的位置:网站首页 › vgg和resnet › CNN模型发展史:从LeNet,AlexNet,GoogleNet,VGG到ResNet,SENet,Xception,MobileNet,ShuffleNet |
目录 一、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年开始的几大模型。 AlexNet: ILSVRC竞赛2012年第一名 网络层数:8层:5个卷积层(+池化层)+3个全连接层 网络结构: 特点: 网络结构方面:引入非线性单元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 GoogleNetGoogle 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 DenseNetGao Huang, Zhuang Liu, Kilian Q. Weinberger 和Laurens van der Maaten于2016年提出了密集卷积神经网络DenseCNN的概念,在前馈过程中将每一层与其他的层都链接起来。对于每一层网络来说,前面所有网络的特征图都被作为输入,同时其特征图也都被其他网络层作为输入所利用。
5层的致密网络,每一层将所有层都视为自己的输入。 DenseCNN具有很多的有点,包括缓解梯度消失的问题,强化特征传播和特征的复用,并减少了参数的数目。DenseNet相较于ResNet所需的内存和计算资源更少,并达到更好的性能。 7.2017 SENet/ResidualAttentionNet/Xception/MobileNet/ShuffleNet SENet: ILSVRC竞赛2017年第一名 7.1 SENet2016年底发的论文,用在了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 MobileNetMobileNets其实就是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 MobileNetV2MobileNet 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 实验室设备网 版权所有 |