MobileNet V1(谷歌轻量化网络)

MobileNetV1主要创新点
1.深度可分离卷积(Depthwise separable convolutions)

标准卷积(CNN)的作用是对所有输入通道用相同的卷积核得到不同通道特征,将不同通道特征组合起来使得输出特征包含每个输入的特征。因此,我们可以将标准卷积分为以下两个步骤:

1) 深度卷积(Depthwise convolution)

深度卷积对每一个输入通道应用一个单独的卷积核(与标准卷积不同,标准卷积对每一个输入通道应用同一个卷积核)得到特征图,此时,每张特征图仅与一个输入通道和其对应卷积核相关,各个通道之间特征图不关联。

2.)点卷积(Pointwise concolution)

    点卷积(1x1卷积)将深度卷积的输出特征图进行线性组合后再输出,使得最后的输出特征都包含每个输入特征,即将深度卷积输出的不关联的特征图关联起来。
MobileNet V1(谷歌轻量化网络)_第1张图片


 下图为标准卷积与深度可分离卷积对应的计算量

MobileNet V1(谷歌轻量化网络)_第2张图片

D_{F} 为输入Feature Map的宽度和高度(我们假设输入特征图与使用的卷积核均为正方形),

M为输入通道数(也可理解为输入Feature Map深度),N为输出通道数,D_{K}​为卷积核大小。


 计算模块

 参数数量(params):关系到模型大小,单位通常为M,通常参数用 float32 表示,所以模型大小是参数数量的 4 倍。

FLOPS:注意全大写,是floating point operations per second的缩写,意指每秒浮点运算次数,理解为计算速度。是一个衡量硬件性能的指标。

FLOPs:注意s小写,是floating point operations的缩写(s表复数),意指浮点运算数,理解为计算量。可以用来衡量算法/模型的复杂度。这关系到算法速度,大模型的单位通常为 G,小模型单位通常为 M。

注意在深度学习中,我们用的是FLOPs,也就是说计算量,即用来衡量算法/模型的复杂度。
 

不同神经网络层的参数数量和计算量估计方法:

Conv2d标准卷积层:
Input: H ∗ W ∗ N 
Output:H ∗ W ∗ M
Filters: K ∗ K 
==>
Params: K ∗ K ∗ M ∗ N
FLOPs: H ∗ W ∗ K ∗ K ∗ M ∗ N 

 FC全连接层:
Input: N 
Output: M 
==>
Params: M ∗ N 
FLOPs: M ∗ N

Depthwise conv2d深度卷积:
Input: H ∗ W ∗ M 
Output: H ∗ W ∗ M
Filters: K ∗ K
==>
Params: K ∗ K ∗ M 
FLOPs: H ∗ W ∗ K ∗ K ∗ M 

Pointwise conv2d点卷积:
将标准卷积层中卷积核大小换成1x1即可得到
Params: M ∗ N 
FLOPs: H ∗ W ∗ M ∗ N 

MobileNet V1(谷歌轻量化网络)_第3张图片


 MobileNet V1 网络结构

1)核心层(深度可分离卷积层)

MobileNet V1(谷歌轻量化网络)_第4张图片

 2)整体网络结构

整个MobileNetV1网络除了平均池化层和softmax输出层外,共28层。
第1层为完整卷积,接下来26层为核心层结构(深度可分离卷积层),最后是平均池化层,全连接层加softmax层输出。
除全连接层不使用激活函数,而使用softmax进行分类之外,其他所有层都使用BatchNorm和ReLU。
MobileNet V1(谷歌轻量化网络)_第5张图片

其中,s2为采用stride=2进行下采样操作。


宽度因子和分辨率因子
MobileNetV1还使用宽度因子和分辨率因子进一步减小模型参数数量和计算量,当然,在一定程度上会降低模型精确度。

1)宽度因子Width Multiplier(α):
α ∈ ( 0 , 1 ]作用于通道数量上,通常取1, 0.75, 0.5和0.25

                                 
由上式可得,模型计算量和参数量大约降低a^{2}

2)分辨率因子Resolution Multiplier(ρ)
ρ ∈ ( 0 , 1 ] 作用于输入图像上,通常取为224,192,160和128(常隐式表示),作用后模型大小,参数量不变,计算量降低为\rho ^{2}   
                                  


创新点
1. MobileNetV1提出了深度可分离卷积的概念,替代了标准卷积操作,大大减少了参数数量和计算量;
2. 提出两个超参数宽度因子和分辨率因子,可根据现实情况需求,调整输入输出通道数量和输入图像尺寸,可自由权衡精度与参数数量,计算量;
3. 使用BN加快模型收敛速度,提高模型精度和泛化能力。
 


论文地址:https://arxiv.org/abs/1704.04861

引用:从MobileNet看轻量级神经网络的发展_模型 (sohu.com) 

          (23条消息) 轻量级神经网络:MobileNetV1论文学习及理解_Jackkii Chen的博客-CSDN博客

你可能感兴趣的:(经典神经网络结构,神经网络)