MobileNetV1+V2+V3

整体详细分析mobilenet:

1、轻量级神经网络“巡礼”(二)—— MobileNet,从V1到V3

文章地址:轻量级神经网络“巡礼”(二)—— MobileNet,从V1到V3
(按照V1,V2,V3的顺序对创新点进行解析)
(1)V1的创新点:
1,用深度可分离卷积(深度卷积+点卷积)代替标准卷积来显著降低参数量(小于原来的1/8)的同时小幅度降低精度。
2,使用RELU6激活函数来代替RELU,在低精度计算下具有更强的鲁棒性。
(2)V2的创新点:
1,将深度可分离卷积block由(深度卷积+点卷积)变为(点卷积(升维)+深度卷积+点卷积(降维)),使得深度卷积在高维操作能得到更好的效果。
2,将每个卷积块的最后一个RELU6换成线性激活函数(最后一个点卷积后是低维空间,使用RELU容易造成信息丢失,故改用linear bottleneck,block的前两个RELU是在高维空间操作故不需要更改)
PS:V1的卷积block只有一种结构,V2有stride=1和stride=2两种结构,其中有且只能在stride=1的block将input和output相加,形成残差结构。总体称为拥有线性瓶颈的倒残差结构。
(3)V3的创新点:
1,延续了V1的深度可分离卷积+V2的拥有线性瓶颈的倒残差结构。
2,网络的架构基于NAS实现的MnasNet(效果比MobileNetV2好)(不懂)
3, 引入基于squeeze and excitation结构的轻量级注意力模型(SE)(不懂)
4,使用了一种新的激活函数h-swish(x),既保留了swish函数在深层网络中显著提高精度的优点,用RELU6替换swish中的sigmoid还能降低成本
5,网络结构搜索中,结合两种技术:资源受限的NAS(platform-aware NAS)与NetAdapt(不懂)
6,修改了MobileNetV2网络端部最后阶段)使用1×1卷积构建最后层可拓展到更高维的特征空间,再将倒数第二个1×1卷积放在平均池化层之后,既减少计算量又保持了高维特征(不懂)
(4)MobileNet为什么这么快?
网络的耗时杀手是卷积层,大尺寸卷积核进行卷积操作访问内存非常不规律,通常增加im2col操作先按照内存访问规则对数据进行排列,再对生成的特征矩阵进行乘法运算得以提高卷积速度。但是MobileNet使用大量1×1卷积在避免了im2col对数据重排列的时间和空间的同时还能规律的访问内存。

2、从MobileNet看轻量级神经网络的发展

文章地址: 从MobileNet看轻量级神经网络的发展
(先介绍MobileNet各个版本整体结构,接着对其中的亮点进行解析,再和其他网络进行性能和参数的对比,最后介绍与其他网络的结合)
MobileNetV1+V2+V3
1,深度可分离卷积(上文有)
2,宽度因子α:调整特征图通道数(M=Mα,N=Nα)的大小,从而调整计算量
3,分辨率因子β:调整每层卷积的输入数据的尺寸(Df=Df*β)
4,规范化:批规范化:对输入值规范化,克服网络层数加深导致的模型难以训练;ps:参数规范化(使模型参数稀疏化(拥有大量0),防止过拟合)
5,线性瓶颈结构(仅V2,V3使用,纺锤形):1×1卷积+3×3深度卷积+1×1卷积+Linear激活函数(当stride=1时使用残差结构,s=2不使用残差结构)。在第一个逐点卷积处添加倍数系数T,修改该层的输出通道数由M改为MT。即在3×3深度卷积的输入输出通道数都为MT,1×1卷积输出指定通道数N。
6,反向残差结构:(维度升降方式(T>1)和resnet(T<1)相反,故为反向残差);解决网络深度增加而使梯度消失的问题,使深层网络的浅层网络也可以训练,增加特征表达能力。
7,5×5深度卷积(仅V3):在使用NAS的前提下,使用5×5的效果比3×3好。
8,SE模块:改善网络模型的表达能力,让网络模型进行较准,使得有效的权重更大,用在线性瓶颈结构得最后,由SE+1×1卷积代替1×1卷积;SE=squeeze+excitation,squeeze即将W×H×C的图片压缩至1×1×C(GlobalAvgPool),excitation由两个全连接层组成,先×0.25降维再升维恢复;最后进行scale,将SE模块的输出通道的权重值和原特征图各通道的权重值的二维矩阵相乘输出。此模块会增大计算量并且提升精度。
9,NAS神经网络结构搜索:给定一个称为搜索空间的候选神经网络(上述提过的亮点皆可作为其中原子的结构)的集合(解的空间),用某种策略搜索出最优网络结构,并用某些指标来评估其性能。(细节不懂)
PS:Top1准确率:指识别出概率最高的类别准确率

上一篇:java 金额精度计算工具类


下一篇:动手学深度学习v2-09-03-图像分类数据集