1.轻量化模型

目前的一些主要的轻量化网络及特点如下:

SqueezeNet:提出Fire Module设计,主要思想是先通过1x1卷积压缩通道数(Squeeze),再通过并行使用1x1卷积和3x3卷积来抽取特征(Expand),通过延迟下采样阶段来保证精度。综合来说,SqueezeNet旨在减少参数量来加速。

通过减少MAdds来加速的轻量模型:

MobileNet V1:提出深度可分离卷积;

MobileNet V2:提出反转残差线性瓶颈块;

2.MobileNet家族

(1)MobileNet-v1中深度可分离卷积的理解:

将传统卷积分解为空间滤波和特征生成两个步骤,空间滤波对应较轻的3x3 depthwise conv layer,特征生成对应较重的1x1 pointwise conv layer.

(2)MobileNet-v2中反转残差线性瓶颈块的理解:

扩张(1x1 conv) -> 抽取特征(3x3 depthwise)-> 压缩(1x1 conv)

当且仅当输入输出具有相同的通道数时,才进行残余连接

在最后“压缩”完以后,没有接ReLU激活,作者认为这样会引起较大的信息损失

该结构在输入和输出处保持紧凑的表示,同时在内部扩展到更高维的特征空间,以增加非线性每通道变换的表现力。

(3)MnasNet理解:

在MobileNet-v2的基础上构建,融入SENet的思想

与SE-ResBlock相比,不同点在于SE-ResBlock的SE layer加在最后一个1x1卷积后,而MnasNet的SE layer加在depthwise卷积之后,也就是在通道数最多的feature map上做Attention。

(4)MobileNet-v3的理解:

MobileNet-v3集现有轻量模型思想于一体,主要包括:swish非线性激活Squeeze and Excitation思想为了减轻计算swish中传统sigmoid的代价,提出了hard sigmoid

2.MobileNet-v3提出的改进

(1)互补搜索技术

platform-aware NAS:计算和参数量受限的前提下搜索网络的各个模块,所以称之为模块级的搜索(Block-wise Search)

NetAdapt:用于对各个模块确定之后网络层的微调。对于全局的网络结构搜索,研究人员使用了与Mnasnet中相同的,基于RNN的控制器和分级的搜索空间,并针对特定的硬件平台进行精度-延时平衡优化,在目标延时(~80ms)范围内进行搜索。随后利用NetAdapt方法来对每一层按照序列的方式进行调优。在尽量优化模型延时的同时保持精度,减小扩充层和每一层中Blockneck的大小

(2)改进网络结构

[MobileNet]V3个人总结_神经网络

MobileNetV2模型中提出反转残差结构,使用1*1卷积来构建最后层,以便于拓展到高维的特征空间,虽然对于提取丰富特征进行预测十分重要,但却引入了二外的计算开销与延时。为了在保留高维特征的前提下减小延时,将平均池化前的层移除并用1*1卷积来计算特征图。特征生成层被移除后,先前用于瓶颈映射的层也不再需要了,这将为减少10ms的开销,在提速15%的同时减小了30m的操作数。

(3)h-swish激活函数

[MobileNet]V3个人总结_深度学习_02

[MobileNet]V3个人总结_深度学习_03

h-swish非线性在保持精度的情况下带了了很多优势,首先ReLU6在众多软硬件框架中都可以实现,量化时避免了数值精度的损失,运行快。这一非线性改变将模型的延时增加了15%。但它带来的网络效应对于精度和延时具有正向促进,剩下的开销可以通过融合非线性与先前层来消除。

3.网络结构

large结构

[MobileNet]V3个人总结_深度学习_04

small结构

[MobileNet]V3个人总结_MobileNet_05