MobileNets(v1): Efficient Convolutional Neural Networks for Mobile Vision Applications(2017)论文综述

  1. 为什么要做这个研究(理论走向和目前缺陷) ?
    大模型计算量太大,参数量太大,不适合在移动设备上使用,于是想着既减少模型参数量,又减小计算量。
  2. 他们怎么做这个研究 (方法,尤其是与之前不同之处) ?
    提出一种新的卷积:深度可分离卷积。为了更方便压缩模型,提出两个超参数:宽度乘法器和分辨率惩罚器,其中宽度乘法器是为减小整个模型所有层的输入输出通道数之用,分辨率乘法器是为缩小输入图片分辨率之用。
  3. 发现了什么(总结结果,补充和理论的关系)?
    深度可分离卷积可大大减小模型计算量和参数量,而且可保证模型准确率不怎么下降。

摘要:mobileNet是轻量级的深度神经网络。构建mobileNet需要引入两个用来权衡网络延迟(时间)和准确率的超参数,这两个超参数可以使得模型构建时能够选择一个适当大小的模型,以适应所要解决的问题。

1引言
自从AlexNet出来之后,在计算机视觉领域大家都倾向于构构建一个更深更复杂的网络。但是,更深更复杂的网络意味着占用的显存或者计算资源极大,不适合于计算资源有限的移动设备。
于是,引出mobileNet.

2 之前的工作
MobileNet主要关注于降低时延,即提高速度,而很多其他网络却去关注模型的大小,随着存储的发展越大,速度的重要性要远远大于模型所占的存储空间。
两大类常用的压缩模型的方法:
1) 卷积分解,瓶颈层,深度可分离卷积,结构化变换网络?深度油炸卷积网络?
2) 收缩、分解或压缩预训练网络,蒸馏(distillation),低比特网络(low bit network)。压缩包括:点积取整(product quantization)?哈希,修剪,向量取整?以及赫夫曼编码。

3 mobileNet 网络架构
核心就是深度可分离卷积核,以及两个模型修剪的超参数:宽度乘法器和分辨率乘法器。

3.1深度可分离卷积
深度可分离卷积就是把标准的卷积分解为深度卷积(depthwise convolution)和点卷积(pointwise convolution)。
标准的卷积即使一步就把输入用一层卷积层生成输出,深度可分离卷积则用了两层,一层用来滤波(filter),一层用来混合(combine)。
深度卷积就是对输入的每个通道都单独做一次卷积的卷积。
点卷积就是卷积核大小为1*1的卷积。

这样分解的好处就是减小了计算量和模型Size。

深度可分离卷积相对于普通卷积在计算上非常高效,但是它只是在输入的每一个通道上单独算卷积,并没有每个通道上的计算的卷积值组合起来(即相加),于是,需要有一个点卷积来做相加操作。
深度可分离卷积与普通卷积在计算量上的对比:
在这里插入图片描述
由这个公式可见:卷积核大,输出的通道数越多,深度可分离卷积相对于传统卷积越节省计算量。
相对于其他卷积分解的方法如inception v2/3/4,. Flattened卷积,减少更多的计算量。
在这里插入图片描述

3.2 网络结构与训练方法
每个深度卷积或者点卷积后面都跟了一个BN和ReLU激活,(除了最后一个全连接层后面没跟BN和ReLU,而是跟了一个softmax分类。)
下图对比了深度可分离卷积和普通卷积。
如果将深度卷积核点卷积记作单独的层,则mobilenet共有28层。
仅仅让让网络有更少的加/乘操作是不够的,更重要的是让网络能够更高效的执行这些操作。
例如非结构化稀疏矩阵并不一定会比密集矩阵计算的更快,除非够稀才行。
mobilenet中的计算主要集中在点卷积,而点卷积可以被高度优化的矩阵相乘(GEMM)函数执行。通常情况下,GEMM在执行前需要将输入在内存中进行一次重新排序(reorder),即im2col,在caffe中已经整合了这种重新排序操作。但是11卷积不需要重新排序,可以直接利用GEMM函数实现。
Mobile的计算时间有95%都是花在1
1卷积之上,而且1*1卷积占据了整个网络参数量的75%,其他的参数主要在全连接层中。
训练MobileNet时不需要很多正则化以及数据增强,因为小模型不太容易出现过拟合。
也不用像在inception训练时使用标签平滑或者通过限制小crop的尺寸来限制失真图片的数量。也不需要在深度卷积上应用权重衰减(L2正则化),因为深度卷积本身参数就很少了。
在这里插入图片描述

3.3 宽度乘法器:更瘦的模型
虽然mobileNet已经很快很小了,但是对于很多移动设备还是吃不消。于是引入一个参数alpha以在每一层都同比例地变“瘦”模型。
比如如果alpha是0.5,那么就代表在原来模型的上的每一层的输入输出通道数都变为原来的1/2。
计算量计算公式:
在这里插入图片描述
可以大约认为参数量变为原模型的alpha*alpha倍。
这个参数通常用来从头训练一个更小的模型。

3.4分辨率乘法器:缩减表征(Reduced Representation)
第二个超参数是ρ,这个ρ作用于输入图片,减小器分辨率,进而会使得每个卷积层的输出成比例缩小,实际上我们一般的网络也会隐式的使用这个参数,即对图片进行resize。
经过alpha和ρ两个超参数的作用,网络的计算量变为:
在这里插入图片描述
可大约认为计算量变为原来的alphaalphaρ*ρ倍。

4实验
主要研究了mobileNet相对于传统卷积的效果,使得网络更瘦(通过超参数alpha减小输入输出通道数)及使得网络更短(去除mobilenet的某些层)的效果,以及怎样对两个超参数进行权衡。

4.1 模型选择
表4:与普通模型对比,mobileNet模型用的还是表一中的结构,普通模型时mobileNet转成的。
在这里插入图片描述
表5:取alpha=0.75与表一中的模型去掉5层输出为14 × 14 × 512的卷积层。

4.2 模型缩小超参数
表6展示了随着alpha的减小,模型的准确率下降变化。
表7展示了随着输入图片分辨率ρ的减小,模型的准确率下降变化。
在这里插入图片描述
上图4展示了计算量和准确率的权衡,计算量选取的16个点依据是:α ∈ {1, 0.75, 0.5, 0.25},输入分辨率在{224, 192, 160, 128}之间,二者组合的。
模型参数量与准确率之间的关系,参数量选取的16个点依据是:α ∈ {1, 0.75, 0.5, 0.25},输入分辨率在{224, 192, 160, 128}之间,二者组合。
在这里插入图片描述
表8表9比较了与其他模型的准确率、参数量、计算量。
在这里插入图片描述
4.3细粒度识别
在Stanford Dogs dataset测试
在这里插入图片描述
4.4大规模地理定位
在这里插入图片描述
4.5 人脸属性
在这里插入图片描述
4.6目标检测
在这里插入图片描述

4.7 人脸嵌入(Face Embeddings)
在这里插入图片描述
5 结论
提出深度可分离卷积,设置两个超参数来缩减模型。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值