《MobileNets v1: Efficient Convolutional Neural Networks for Mobile Vision Applications》论文笔记

1. 概述

导读:这篇文章为移动和嵌入式设备应用提供了一个搞笑的网络模型MobileNets。该网络是使用depthwise分离卷积构建轻量级的神经网络。期间引入了两个全局超参数使得可以在网络时效与精度之间折中选择,这些参数可以使得开发者可以根据任务的实际需求选择网络的大小。文章提出的新模型在ImageNet数据集也上表现除了强大的性能,同样也可以将该模型运用到其它的场景下比如,目标检测。

现有的CNN网络为了获得更高的性能往往会将网络做得很深并且复杂,这必然会带来网络计算量大耗时。对于这个问题之前的解决办法是修剪预训练模型或是直接设计一个小型的网络结构。这篇文章给出的MobileNets采用的是depthwise分离卷积可以获得较少的网络运行时间与更小的网络。

2. 网络设计

2.1 Depthwise Separable Convolution

这里提出的新卷积是由两部分组成的:

  • 1)depthwise卷积,它是使用一个filter在每个输入的channel上进行卷积运算;
  • 2)pointwise卷积,使用卷积核为1x1的卷积去组合depthwise生成的特征,起到特征组合的作用;

下图2是这两种卷积的原理示意图:
在这里插入图片描述
对于特征图输入这里将其设为 D F ∗ D F ∗ M D_F*D_F*M DFDFM,其中 M M M代表输入的channel数目, D F D_F DF代表输入特征图的分辨率,按照标准卷积之后得到的特征图为 D F ∗ D F ∗ N D_F*D_F*N DFDFN,也就是说卷积之后特征图的分辨率未发生变化,只是通道数由 M M M变为了 N N N,这里卷积的卷积核大小为 D K ∗ D K D_K*D_K DKDK。那么这里对于标准的卷积其计算量可以表示为(这里的 D F D_F DF代表的是输出的特征图分辨率,下面的也是含义,为毛不用不同的字母呀?这里还是尊重原文吧):
c o s t = D F ∗ D F ∗ M ∗ N ∗ D K ∗ D K cost=D_F*D_F*M*N*D_K*D_K cost=DFDFMNDKDK
那么经过文章提出的新方法卷积,其计算量的分析如下,对于depthwise卷积,其计算量可以描述为(其中的1含义是逐输入channel卷积的):
c o s t 1 = D F ∗ D F ∗ M ∗ D K ∗ D K ∗ 1 cost1=D_F*D_F*M*D_K*D_K*1 cost1=DFDFMDKDK1
对于pointwise卷积,其输入的特征是的维度是 M ∗ D F ∗ D F M*D_F*D_F MDFDF,之后便是使用标准的卷积去融合这些特征,那么pointwise卷积的计算量可以描述为:
c o s t 2 = D F ∗ D F ∗ M ∗ N ∗ 1 ∗ 1 cost2=D_F*D_F*M*N*1*1 cost2=DFDFMN11
那么将其总共的计算量与原始标准卷积的计算量进行对比:
r a t i o = c o s t 1 + c o s t 2 c o s t = D F ∗ D F ∗ M ∗ D K ∗ D K ∗ 1 + D F ∗ D F ∗ M ∗ N ∗ 1 ∗ 1 D F ∗ D F ∗ M ∗ N ∗ D K ∗ D K = 1 N + 1 D K 2 ratio=\frac{cost1+cost2}{cost}=\frac{D_F*D_F*M*D_K*D_K*1+D_F*D_F*M*N*1*1}{D_F*D_F*M*N*D_K*D_K}=\frac{1}{N}+\frac{1}{D_K^2} ratio=costcost1+cost2=DFDFMNDKDKDFDFMDKDK1+DFDFMN11=N1+DK21

2.2 Network Structure

下表是MobileNets的网络结构图,其中包含了28层。
在这里插入图片描述
下图是文章提出的卷积模块与传统卷积模块的对比:
在这里插入图片描述
运算量与参数量分析:
在这里插入图片描述
从上表中可以看到网络中的很大一部分参数和计算都是来自于1x1的卷积。

2.3 Width Multiplier: Thinner Models

为了能够进一步压缩网络,文章引入了参数 α ∈ ( 0 , 1 ] \alpha \in(0,1] α(0,1]来进一步压缩网络的计算量,该参数是用来对输入通道 M M M与输出通道 N N N进行缩放,从而得到 α M , α N \alpha M,\alpha N αM,αN,其计算量表示为:
c o s t = D F ∗ D F ∗ α M ∗ D K ∗ D K ∗ 1 + D F ∗ D F ∗ α M ∗ α N ∗ 1 ∗ 1 cost=D_F*D_F*\alpha M*D_K*D_K*1+D_F*D_F*\alpha M*\alpha N*1*1 cost=DFDFαMDKDK1+DFDFαMαN11

2.4 Resolution Multiplier: Reduced Representation

为了减少网络的计算量这里引入了分辨率因子 ρ ∈ ( 0 , 1 ] \rho \in(0,1] ρ(0,1],用以减少特征图的分辨率,因而卷积的计算量表示为:
c o s t = ρ D F ∗ ρ D F ∗ α M ∗ D K ∗ D K ∗ 1 + ρ D F ∗ ρ D F ∗ α M ∗ α N ∗ 1 ∗ 1 cost=\rho D_F*\rho D_F*\alpha M*D_K*D_K*1+\rho D_F*\rho D_F*\alpha M*\alpha N*1*1 cost=ρDFρDFαMDKDK1+ρDFρDFαMαN11
在这里插入图片描述

3. 实验结果

文章的网络在ImageNet数据集下与其它网络的性能对比:
在这里插入图片描述
与普通卷积网络的性能对比,在精度损失不大的情况下计算量与参数量都有了成倍的下降:
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值