mobilenet 解析


论文地址

1.简介

MobileNets 基于流线型架构,使用深度可分离卷积来构建轻量级深度神经网络,用于移动和嵌入式视觉应用。该网络引入了两个简单的全局超参数——宽度乘数和分辨率乘数,可以有效地在延迟和准确性之间进行权衡。这些超参数允许模型构建者根据问题的限制条件为其应用程序选择合适大小的模型。
在这里插入图片描述

图1.mobilenet 作为 backbone 可以用于各种视觉任务。

2.mobilenet 结构

2.1.深度可分离卷积

MobileNet 模型基于深度可分离卷积,这是一种分解卷积形式,将标准卷积分解为深度卷积和称为点卷积的 1 × 1 卷积。
在这里插入图片描述

图2.(a) 中的标准卷积滤波器被两层替换:(b) 中的深度卷积和 © 中的点卷积以构建深度可分离滤波器。

(1)标准卷积层

对于标准卷积层,输入特征图 F 大小为 D F × D F × M D_F × D_F × M DF×DF×M ,输出特征图 G 大小为 D G × D G × N D_G × D_G × N DG×DG×N 。其中 D F D_F DF 是正方形输入特征图的空间宽度和高度,M 是输入通道数(输入深度), D G D_G DG 是正方形输出特征图的空间宽度和高度,N 是输出通道数(输出深度)。

标准卷积层的卷积核大小为 D K × D K × M × N D_K × D_K × M × N DK×DK×M×N ,其中 D K D_K DK 是假定为卷积核的空间维度,M 是输入通道数,N 是前面定义的输出通道数。

(2)深度可分离卷积

深度可分离卷积由两层组成:深度卷积和点卷积。mobilenet 使用深度卷积为每个输入通道(输入深度)应用一个过滤器。点卷积是一个简单的 1 × 1 卷积,用于创建深度层输出的线性组合。 MobileNet 对两个层都使用了 batchnormReLU

对于深度可分离卷积,输入特征图 F 大小为 D F × D F × M D_F × D_F × M DF×DF×M ,先用大小为 D K × D K × M D_K × D_K × M DK×DK×M 的深度卷积核 K ^ \hat{K} K^ 进行卷积生成特征图 G ^ \hat{G} G^ 。相对于标准卷积,深度卷积非常有效。然而,它只过滤输入通道,并没有组合它们来创建新特征。因此,需要一个额外的层,通过 1 × 1 卷积计算深度卷积输出的线性组合,以生成这些新特征。

特征图 G ^ \hat{G} G^ 再经过大小为 M × 1 × 1 × N M × 1 × 1 × N M×1×1×N 的点卷积,得到大小为 D G × D G × N D_G × D_G × N DG×DG×N 的输出特征图 G

(3)两者对比

假设输入为 M 个通道的特征图,卷积核大小为 D K × D K D_K × D_K DK×DK,输出通道为N,那么标准卷积核为 M × D K × D K × N M × D_K × D_K × N M×DK×DK×N

例如,输入特征图 为 m x n x 16,想输出 32 通道,那么卷积核应为16 x 3 x 3 x 32 。可以将其分解为深度卷积,深度卷积 16 x 3 x 3 得到的是 16 通道的特征图谱,再用点卷积 16 x 1 x 1 x 32 得到最终输出特征图。

如果用标准卷积,计算量为:m x n x 16 x 3 x 3 x 32 = m x n x 4608 。用深度可分解卷积之后的计算量为 m x n x 16 x 3 x 3 + m x n x 16 x 1 x 1 x 32 = m x n x 656

通过将卷积表示为过滤和组合的两步过程,可以减少以下计算:

D K ⋅ D K ⋅ M ⋅ D F ⋅ D F + M ⋅ N ⋅ D F ⋅ D F D K ⋅ D K ⋅ M ⋅ N ⋅ D F ⋅ D F = 1 N + 1 D K 2 \frac{D_K·D_K·M·D_F·D_F+M·N·D_F·D_F}{D_K·D_K·M·N·D_F·D_F}=\frac{1}{N}+\frac{1}{D^2_{K}} DKDKMNDFDFDKDKMDFDF+MNDFDF=N1+DK21

2.2.网络结构

网络结构中所有层后面都要有 batchnormrelu 处理(最后的全连接层除外),将标准卷积改为深度可分离卷积后,结构如图 3 所示。
在这里插入图片描述

图 3.左:具有 batchnormReLU 的标准卷积层。右:具有 DepthwisePointwise 层的 Depthwise Separable 卷积,然后是 batchnormReLU

mobilenet 结构定义如图 4 所示,共有 28 层,在深度卷积和第一层中使用跨步卷积进行下采样,最终的平均池化在全连接层之前将空间分辨率降低到 1,fc 输入到 softmax 进行分类。

深度卷积和点卷积都各自算作 1 层。

在这里插入图片描述

图 4.mobilenet 结构。

2.3.宽度乘数

宽度乘数 α 的作用是在每一层均匀地薄化网络,减少输入输出的通道数,以构造更轻量的模型。

对于给定的层和宽度乘数 α ,输入通道数 M 变成 αM ,输出通道数 N 变成 αN

具有宽度乘数 α 的深度可分离卷积的计算成本为:

D K ⋅ D K ⋅ α M ⋅ D F ⋅ D F + α M ⋅ α N ⋅ D F ⋅ D F D_K·D_K·\alpha M·D_F·D_F+\alpha M·\alpha N·D_F·D_F\quad\quad\quad DKDKαMDFDF+αMαNDFDF

α ∈ (0,1] 典型设置为 1, 0.75, 0.5 和 0.25。α = 1 是基准 MobileNetα < 1 是缩减的 MobileNet

2.4.分辨率乘数

分辨率乘数 ρ 用于减小输入输出的特征图大小,通过设置输入分辨率隐式地设置。

具有宽度乘数 α 和分辨率乘数 ρ 的深度可分离卷积的计算成本为
D K ⋅ D K ⋅ α M ⋅ ρ D F ⋅ ρ D F + α M ⋅ α N ⋅ ρ D F ⋅ ρ D F D_K·D_K·\alpha M·ρD_F·ρD_F+\alpha M·\alpha N·ρD_F·ρD_F\quad\quad DKDKαMρDFρDF+αMαNρDFρDF

ρ ∈ (0,1] 通常是隐式设置的,通过设置网络的输入分辨率为 224、192、160 或 128。ρ = 1 是基准 MobileNetρ < 1 是减少计算 MobileNet

猜你喜欢

转载自blog.csdn.net/ManiacLook/article/details/123230896