MobileNet-V1

MobileNet-V1

Author:Andrew G. Howard et al.

MobileNetV1出自谷歌,主要技术是采用深度可分离卷积(Depthwise Separable Convolution)减低模型的大小以及复杂度,主要目标是用于手机或嵌入式视觉平台的。更小的模型其参数量更少,复杂度更低的模型意味着其乘法和加法运算量越少。
【图 1】

在 MobileNets 落地到智能手机上,我们可以应用它做很多事情,例如目标检测、图片分类、人脸检测、坐标定位等等。因此这是一篇定位于轻量化模型的尝试。在这篇论文中提到了两个重要的超参:宽度乘子 α \alpha α 和 分辨率乘子 ρ \rho ρ,核心内容就是在精度与延迟之间进行权衡,目前已经推出 MobileNet-V2、V3 等新的进展。

1、深度可分离卷积

熟悉 Xception 网络架构的对这个肯定很熟悉,MobileNet V1 与 Xception 的提出实际在同时期,在 Xception 论文中,作者提到 “Within Google, Andrew Howard [6] has introduced efficient mobile models called MobileNets using depthwise separable convolutions”。深度可分离卷积实际分为两个步骤:depthwise 卷积和 pointwise 卷积,如下图所示。
【图 2】

  • depthwise 卷积:是指分离通道,每个通道单独进行卷积,例如输入层的通道数为 M M M,输入的特征空间维度是 D F ⋅ D F D_{F} \cdot D_{F} DFDF,卷积核的大小是 D k D_k Dk ,则这个过程中,计算量为 D K ⋅ D K ⋅ M ⋅ D F ⋅ D F D_{K} \cdot D_{K} \cdot M \cdot D_{F} \cdot D_{F} DKDKMDFDF
  • pointwise 卷积:是利用 1 × 1 1 \times 1 1×1 的卷积核应用于所有通道上,假设输出的通道数为 N N N,则这个阶段的计算量为: M ⋅ N ⋅ D F ⋅ D F M \cdot N \cdot D_{F} \cdot D_{F} MNDFDF

如此一来,两个阶段的总计算量为: D K ⋅ D K ⋅ M ⋅ D F ⋅ D F + M ⋅ N ⋅ D F ⋅ D F D_{K} \cdot D_{K} \cdot M \cdot D_{F} \cdot D_{F}+M \cdot N \cdot D_{F} \cdot D_{F} DKDKMDFDF+MNDFDF;而利用常规卷积实现上述过程,其计算量为: D K ⋅ D K ⋅ M ⋅ N ⋅ D F ⋅ D F D_{K} \cdot D_{K} \cdot M \cdot N \cdot D_{F} \cdot D_{F} DKDKMNDFDF,则二者之比:

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 \begin{aligned} & \frac{D_{K} \cdot D_{K} \cdot M \cdot D_{F} \cdot D_{F}+M \cdot N \cdot D_{F} \cdot D_{F}}{D_{K} \cdot D_{K} \cdot M \cdot N \cdot D_{F} \cdot D_{F}} \\=& \frac{1}{N}+\frac{1}{D_{K}^{2}} \end{aligned} =DKDKMNDFDFDKDKMDFDF+MNDFDFN1+DK21

D K × D K D_K \times D_K DK×DK 3 × 3 3 \times 3 3×3 时,计算量大约会下降 8 到 9 倍,而这个过程中,精度只有很小程度的下降。

2、MobileNet V1 模型架构

整个模型的网络架构如下所示:共 28 层。
【图 3】

除了最后的全连接层,中间的可分离卷积层中都会引入 BN 以及 ReLU 激活,具体形式如图 4 所示,其中左侧为标准的卷积架构,有图为可分离卷积的架构形式。对于标准卷积和深度可分离卷积在 ImageNet 上的对比,可查看图 5,可以看到相对识别率仅仅下降了 1%,但是计算量以及参数量却下降了 8.5 和 7 倍。
【图 4】 【图 5】

3、宽度乘子 α \alpha α 和分辨率乘子 ρ \rho ρ

宽度乘子 α \alpha α 被用来控制层的输出宽度,即通道数,即原来通道数为 M M M,则现在为 α M \alpha M αM。则深度可分离卷积的计算度变为:

D K ⋅ D K ⋅ α M ⋅ D F ⋅ D F + α M ⋅ α N ⋅ D F ⋅ D F D_{K} \cdot D_{K} \cdot \alpha M \cdot D_{F} \cdot D_{F}+\alpha M \cdot \alpha N \cdot D_{F} \cdot D_{F} DKDKαMDFDF+αMαNDFDF

这里的 α \alpha α 一般介于 0~1 之间,典型的数值为 1, 0.75, 0.5, 0.25 等。这样新的模型较原模型宽度上会缩小,形象化为“瘦身过程”,如果 α \alpha α 大于 1,则宽度会增宽,相当于模型扩大,如 efficientnet 实验过程。当 α = 1 \alpha=1 α=1 ,相当于什么也没做,这是显而易见的,在这个过程中,模型的计算量和参数量大约以 α 2 \alpha ^2 α2 的速度下降,图 6 给出了不同的 α \alpha α 的实验结果以及各个模型的计算量和参数量对比,精度在 α \alpha α 从 1 到 0.5 的过程中下降的较为平滑,到 0.25 的时候,精度损失就很大了。

分辨率乘子 ρ \rho ρ 是用于控制图像空间维度(分辨率)的缩放,在宽度乘子的基础上进一步引入分辨率乘子后,其计算量为:

D K ⋅ D K ⋅ α M ⋅ ρ D F ⋅ ρ D F + α M ⋅ α N ⋅ ρ D F ⋅ ρ D F D_{K} \cdot D_{K} \cdot \alpha M \cdot \rho D_{F} \cdot \rho D_{F}+\alpha M \cdot \alpha N \cdot \rho D_{F} \cdot \rho D_{F} DKDKαMρDFρDF+αMαNρDFρDF

同宽度乘子 α \alpha α 一样,其值介于 0~1 之间用于分辨率缩小,缩放后的分辨率通常为 224,192,160 或 128 等。 ρ \rho ρ 的引入没有改变参数量的多少,但计算量会下降,当 α \alpha α 固定为 1,图 7 展示了不同的分辨率因子下识别率以及计算量的变化。从 224 到 128 精度下降的都很平滑。
【图 6】 【图 7】

4、对比同时期的一些重量级模型

当我们使用 1.0 的 MobileNet-224 时,其精度可媲美 GoogleNet 和 VGG,但是参数量以及计算量却有天壤之别;同样,对于 0.5 的 MobileNet-160 精度比 AlexNet、Squeezenet 都要高,同时参数量和计算量也远远低于它们。如图 8、9 所示。
【图 8】 【图 9】

个人见解:

目前在 CV 领域的发展,已经呈现出转为轻量化发展的趋势,在 NLP 领域,从 Transformer 时代的诞生到 Bert 时代的兴起,超大模型的发展,各大数据集的屠榜工作如火如荼,但近期也呈现出暂缓的趋势,同时在轻量化的方向上有了很大的发展。因此未来借助 TPU、GPU 等超级加速硬件实现的超级模型的时代早晚会终结,反而轻量化,其他基础网络构件的探索研究会成为主流方向。事实证明,好的模型结构用少量的参数及输入优化就可以达到重量级模型的效果,同样也体现了超大模型的参数效率低。但好的模型在综合衡量精度、参数量、计算量等因素的同时,也需要考虑模型的可读性及通用性,而这两点,NAS 的模型架构是高度耦合且不可解读的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值