目录
6.2016 GBD-Net、ResNeXt、DenseNet
7.2017 SENet/ResidualAttentionNet/Xception/MobileNet/ShuffleNet
7.2 Residual Attention Network 注意力残差
8.2018 MobileNetV2,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个全连接层
网络结构:
特点:
网络结构方面:引入非线性单元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的概念,在前馈过程中将每一层与其他的层都链接起来。对于每一层网络来说,前面所有网络的特征图都被作为输入,同时其特征图也都被其他网络层作为输入所利用。
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个路径:网络结构加深、卷积功能加强、从分类到检测、新增功能模块。
参考:
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