MobileNet 简单翻译&理解

MobileNet V1 简单翻译&理解

有问题请尽情指出,欢迎讨论交流!
原文地址:https://arxiv.org/abs/1704.04861



摘要

我们为移动设备打造了一套轻量级网络叫做“MobileNets”,以便让它们也可以处理图像任务。MobileNets的设计基于流线型结构(streamlined architecture),这种结构使用同深独立卷积(depthwise separable convolutions)来建立轻量化深度网络。我们给出两套超参来平衡速度和精度,模型的使用者可以根据具体任务选择不同的模型大小。针对计算资源和精度的平衡性,我们在ImageNet分类任务上做了扩展实验,并与其他模型进行对比,获得优异结果。接下来我们通过一系列的应用和使用场景如目标检测、细粒度分类、人脸属性和大规模地理定位等来阐释了MobileNet的有效性。

1.简介

AlexNet斩获ILSVRC 2012头奖之后,卷积神经网络在视觉领域开始变得无处不在。主流工作开始设计更深更复杂的网络结果以取得更高的精度,但这些新增的东西在效率上并没有优势,也即牺牲了过多的推理速度和尺寸(计算资源)。现实中很多任务如机器人、自动驾驶和AR,往往是在移动设备上进行,计算资源并不充分且对推理速度的要求较高(大型网络对这些任务并不是很适用)。
针对移动端任务,本文给出两套超参来平衡速度和精度,模型的使用者可以根据具体任务选择不同的模型大小。第二章回顾了前者在构建小型模型上的工作,第三章介绍了MobileNet的结构和两套超参数(width multiplier and resolution multiplier to define smaller and more efficient MobileNets暂时不会翻),第四章展示了实验和应用实例,第五章是总结。
在这里插入图片描述

Figure1:Mobilenets可以作为一个backbone在多个任务中使用

2.前人工作

最近发表的文章中,小模型建立的热度逐渐上升。这些工作基本可以分为两类:将与训练的大模型压缩、直接训练一个小模型。本文提出的模型可以让开发者根据需求,自由选择模型大小。本文主要关注对推理速度的优化,此前很多工作只是关注模型大小,而不太关注速度。
MobileNets主要由“同深独立卷积”构成,“同深独立卷积”最开始由[L. Sifre. Rigid-motion scattering for image classification.PhD thesis, Ph. D. thesis, 2014.]这篇文章提出,然后被用于Inception模型的前几层以减少计算量。展平网络使用分解卷积搭建网络,并展示了卷积分解的巨大潜力。此外,分解网络在分解卷积之外还提出一种卷积分解的方式–拓扑连接(我不理解,暂时)。后来,Xception网络解释了怎样使用同深独立卷积来搭建Inception V3网络。另一个小网络Squeezenet使用了瓶颈结构来设计网络。其他减少计算量的方法有:结构改造(V. Sindhwani, T. Sainath, and S. Kumar. Structured transforms for small-footprint deep learning. In Advances in Neural Information Processing Systems, pages 3088–3096,2015.)和“深度油炸卷积网络”(Z. Yang, M. Moczulski, M. Denil, N. de Freitas, A. Smola, L. Song, and Z. Wang. Deep fried convnets. In Proceedings of the IEEE International Conference on Computer Vision,pages 1476–1483, 2015.)。
一个用以获得小模型的很不同的方法就是“缩减”,分解或者压缩一个预训练的模型。基于乘积量化(product quantization)、哈希、裁剪、向量量化和霍夫曼编码的这些方法在现有文献中已有提到。此外用于提升预训练网络速度的不同的分解方式也被提出。还有一种训练小模型的方式,就是知识蒸馏,它使用一个大的教师网络去指导一个小型学生网络的训练。它对我们的工作是一个补充,我们在第四章提到它了。另一个方法就是低比特网络。

3.MobileNet 结构

3.1 同深独立卷积

MobileNet使用同深独立卷积来分解一个传统卷积,它将一个传统卷积分解为一个同深卷积核一个1x1卷积(叫做逐点卷积)。同深卷积对每个输入通道只使用一个单独的filter,随后用逐点卷积将同深卷积的输出结合起来(融合)。传统卷积把filter(在特征图的一个深度上进行特征提取,如角点检测、纹理检测这些)和融合放在一步里面做。同深独立卷积将这个步骤拆成两步,一层卷积用来filter,一层卷积用来融合。此举在模型大小和计算量上都有大大的优化。

如图2,传统卷积的参数量是Dk×Dk×M×N,同深卷积的参数量是Dk×Dk×M,逐点卷积的参数量是M×N,传统卷积提取和融合的两步可以切成同深卷积和逐点卷积两步做,这样可以减少计算量。

同深独立卷积由两部分组成:同深卷积和逐点卷积。同深卷积对每个输入通道使用一个独立的filter;逐点卷积是使用一个1x1的卷积核将张量在深度方向上线性结合。MobileNets同时使用BN核ReLU进行非线性处理。

(一堆公式,请见原文)

MobileNets使用3x3同深独立卷积,相比传统卷积节省了8-9倍计算量,但是精确度只减少了一点点,具体对比见第四章。
在这里插入图片描述
Figure2:(a)传统卷积 (b)(c)同深卷积和逐点卷积

3.2 网络结构和训练

稀疏矩阵运算的时间效率往往优势不明显,但我们的1x1卷积仍然是一个相当稠密的运算,且运算的大头都在1x1卷积上,因此在时间上是有优势的。
(训练细节略)
在这里插入图片描述
Figure3:传统卷积和同深独立卷积的结构对比
在这里插入图片描述
Table1、2:本文提出的MobileNet结构和参数量的分配

3.3 宽度乘数(Width Multiplier):更瘦的模型

相对基本的MobileNet,很多场景/任务需要更小的模型,为此我们提出宽度乘数α。这个乘数的作用是在每层都将网络缩减,对于给定的层深度和α,输入深度M变成αM,同理输出深度变为αN。α的设置常为1、0.75、0.5、0.25。

3.4 分辨率乘数:缩减的表示

第二个控制计算量的办法就是设置分辨率乘数ρ,ρ会同时乘在宽和高上。
在这里插入图片描述
Table3:两个乘数对参数量的影响,列上的操作是累加的(不是独立实验)

4.实验

(略)

5.总结

1.提出了同深独立卷积(顺便提出了MobileNet)
2.提出了宽度、分辨率乘数用来调节MobileNet大小
3.实验

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值