ResNet ----> EfficientNet

ResNet: ResBlock是构成ResNet的基础模块,它在深度学习的发展中扮演了极为重要的角色。许多之后的研究和文章都将ResBlock的研究动机归于“解决梯度消失”这一问题。Res18,Res34,Res50,Res101,Res152;,网络之间的不同主要在于中间卷积部分的block参数和个数存在差异. resnet18和其他res系列网络的差异主要在于layer1~layer4。

resnet50属于轻量型网络吗 resnet50和resnet18优缺点_深度学习


resnet50属于轻量型网络吗 resnet50和resnet18优缺点_深度学习_02

Inception: 大部分流行 CNN 仅仅是把卷积层堆叠得越来越多,使网络越来越深,以此希望能够得到更好的性能。Inception 改变了这一点。它使用大量 trick 来提升性能,包括速度和准确率两方面。每个版本都是前一个版本的迭代进化。

Inception v1:该设计允许增加网络的深度和宽度,同时保持计算预算不变。

解决的问题:特征点区域大小位置都不同,难以选择合适的卷积核。

深层网络容易过拟合。

消耗计算资源-无脑堆叠。

v1的做法:一个层级上配置不同尺寸的滤波器,默认1x1,3x3,5x5,max pooling,为了降低算力,在 3x3 和 5x5 卷积层之前添加额外的 1x1 卷积层,来限制输入信道的数量。尽管添加额外的卷积操作似乎是反直觉的,但是 1x1 卷积比 5x5 卷积要廉价很多,而且输入信道数量减少也有利于降低算力成本。不过一定要注意,1x1 卷积是在最大池化层之后,而不是之前。但是由于同样是深层网络,同样还是会遇到梯度消失的问题。9 个线性堆叠的 Inception 模块。额外添加两个辅助分类器,用作softmax函数操作。

resnet50属于轻量型网络吗 resnet50和resnet18优缺点_ci_03


v2/v3:在v1中用到了瓶颈层,就是1X1那一层,减少特征的表征性瓶颈。直观上来说,当卷积不会大幅度改变输入维度时,神经网络可能会执行地更好。过多地减少维度可能会造成信息的损失。

解决方法:5X5换成两个3X3,覆盖范围不变,计算量减少。其次还可以分为一些不对称的卷积核,比如1X3和3X1可以有效降低计算成本。但是像这样一层层的叠加会造成上面说到的信息损失问题,所以要让网络变宽。

v2的问题:辅助分类器(就是那个softmax)直到训练过程快结束时才有较多贡献,那时准确率接近饱和。所以辅助分类器的功能是正则化,尤其是它们具备 BatchNorm 或 Dropout 操作时。

解决方案:辅助分类器改为BatchNorm。GoogLeNet在网络的两个不同的地方设置了辅助分类器。将浅层的那个辅助分类器移走对于网络最后的结果没有任何负面作用,即是无用的。结合前面提到的,GoogLeNet提出的辅助分类器能够帮助低层特征训练的假设是错误的。实际上,辅助分类器就是一个正则化方法。如果辅助分类器采用BN或者引入dropout,网络的主分类器能够取得更好的结果,证明了辅助分类器就是一个正则化方法。

resnet50属于轻量型网络吗 resnet50和resnet18优缺点_正则化_04


v4/Resnet v1/v2:基于v3加入残差模块可以提高性能。Inception-ResNet将Inception和ResNet结合进一步肯定了残差连接的效果。一方面是残差网络更好的拟合分类函数以获得更高的分类精度,另一方面是残差网络解决网络在层数加深时优化训练上的难题。

MobileNet:精减CNN网络。解决的问题:目前大致有两类方法,一种是得到原生CNN网络的训练权重后,在真正进行模型部署时进行模型结构(Pruning)或权重参数(Compression)精减以使得我们能够以一种现实能接受的方式进行模型推理;另外一种则是直接训练出一种计算复杂度更低、训练参数更少的网络以满足实际生产环境部署的需求(MobileNet)。
做法:将一般的卷积过程分为了depthwise convolution(逐深度卷积)和pointwise convolution(逐点卷积),在损失一点精度的情况下,计算量大幅下降,速度更快,模型更小。深度可分离卷积并不是 3 x 3 DW 卷积直接连接了 1 x 1 的 PW 卷积而是通过 BN 和 ReLU 层后才连接上 PW 卷积。BN 层作用是对输入层进行归一化,这样可以大大提升模型泛化能力,
优势:整个网络参数比Inception小2.5倍,但是准确率比Inception高

MnasNet:将速度信息明确纳入搜索算法的主要奖励函数中.(FLOPS)。算法目的:寻求高准确,低延迟的算法。
方法:将CNN分为一个个独立的块,(独立搜索空间)允许不同的层使用不同的操作和连接。
对第 i 个 Block,由以下参数决定:

卷积类型(Convolutional ops ConvOp): regular conv (conv), depthwise conv (dconv), and mobile inverted bottleneck conv with various expansion ratios

卷积内核 Convolutional kernel size KernelSize: 3x3, 5x5.

跳跃层连接方式 Skip operations SkipOp: max or average pooling, identity residual skip, or no skip path.

输出滤波器尺寸 Output filter size Fi

每个 block 卷积层个数 Number of layers per block Ni.

ConvOp, KernelSize, SkipOp, Fi 决定每一卷积层架构,而 Ni 决定每一个 block 重复卷积层的次数。

帕雷托最优(called Pareto optimal)是经济学的一个概念,是指资源分配的一种理想状态。给定固有的一群人和可分配的资源,如果从一种分配状态到另一种状态的变化中,在没有使任何人境况变坏的前提下,使得至少一个人变得更好,这就是帕雷托改善。帕雷托最优的状态就是不可能再有更多的帕雷托改善的状态。

resnet50属于轻量型网络吗 resnet50和resnet18优缺点_正则化_05


神经网络结构搜索(NAS):搜索策略:强化学习基本思想-强化学习把架构的生成看成一个有自我思想的结构可以自己选择架构 的过程,通过在测试集上测试网络性能来获取奖励值 ( reward ),从而指导架构的生成。这里的算法都是用RNN控制器。RNN 控制器可以预测出以这些主题为基础的一般卷积单元,然后,多个单元按顺序堆叠。控制器的循环神经网络生成描述子网络结构的串,从而确定子网络的结构。EfficientNet:加宽网络、加深网络和增大分辨率。原因:单独优化一个维度Acc在80左右就很难提升了。做法:找到三个维度的最优scaling。网络结构作者主要借鉴了 MnasNet,采取了同时优化精度(ACC)以及计算量(FLOPS)的方法。

resnet50属于轻量型网络吗 resnet50和resnet18优缺点_深度学习_06


resnet50属于轻量型网络吗 resnet50和resnet18优缺点_resnet50属于轻量型网络吗_07

#FLOPS:是floating point operations per second的缩写,意指每秒浮点运算次数,理解为计算速度。

https://zhuanlan.zhihu.com/p/161639679 https://www.jiqizhixin.com/articles/2018-05-30-7 https://zhuanlan.zhihu.com/p/52802896
https://zhuanlan.zhihu.com/p/47851434
https://zhuanlan.zhihu.com/p/347049194