轻量级网络--MobileNet论文解读

转载来源:https://blog.csdn.net/u011974639/article/details/79199306
MobileNetV1

MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications

原文地址:MobileNetV1

代码:

  • TensorFlow官方
  • github-Tensorflow
  • github-Caffe

Abstract

MobileNets是为移动和嵌入式设备提出的高效模型。MobileNets基于流线型架构(streamlined),使用深度可分离卷积(depthwise separable convolutions,即Xception变体结构)来构建轻量级深度神经网络

论文介绍了两个简单的全局超参数,可有效的在延迟和准确率之间做折中。这些超参数允许我们依据约束条件选择合适大小的模型。论文测试在多个参数量下做了广泛的实验,并在ImageNet分类任务上与其他先进模型做了对比,显示了强大的性能。论文验证了模型在其他领域(对象检测,人脸识别,大规模地理定位等)使用的有效性。


Introduction

深度卷积神经网络将多个计算机视觉任务性能提升到了一个新高度,总体的趋势是为了达到更高的准确性构建了更深更复杂的网络,但是这些网络在尺度和速度上不一定满足移动设备要求。MobileNet描述了一个高效的网络架构,允许通过两个超参数直接构建非常小、低延迟、易满足嵌入式设备要求的模型。

轻量级网络--MobileNet论文解读_第1张图片


Related Work

现阶段,在建立小型高效的神经网络工作中,通常可分为两类工作:

  • **压缩预训练模型。**获得小型网络的一个办法是减小、分解或压缩预训练网络,例如量化压缩(product quantization)、哈希(hashing )、剪枝(pruning)、矢量编码( vector quantization)和霍夫曼编码(Huffman coding)等;此外还有各种分解因子(various factorizations )用来加速预训练网络;还有一种训练小型网络的方法叫蒸馏(distillation ),使用大型网络指导小型网络,这是对论文的方法做了一个补充,后续有介绍补充。

  • 直接训练小型模型。 例如Flattened networks利用完全的因式分解的卷积网络构建模型,显示出完全分解网络的潜力;Factorized Networks引入了类似的分解卷积以及拓扑连接的使用;Xception network显示了如何扩展深度可分离卷积到Inception V3 networks;Squeezenet 使用一个bottleneck用于构建小型网络。

本文提出的MobileNet网络架构,允许模型开发人员专门选择与其资源限制(延迟、大小)匹配的小型模型,MobileNets主要注重于优化延迟同时考虑小型网络,从深度可分离卷积的角度重新构建模型。


Architecture

Depthwise Separable Convolution

MobileNet是基于深度可分离卷积的。通俗的来说,深度可分离卷积干的活是:把标准卷积分解成深度卷积(depthwise convolution)逐点卷积(pointwise convolution)。这么做的好处是可以大幅度降低参数量和计算量。分解过程示意图如下:

轻量级网络--MobileNet论文解读_第2张图片

输入的特征映射 F F F FF F FFF4×4×1×3+1×1×3×5,即参数量减少了 4 × 4 × 1 × 3 + 1 × 1 × 3 × 54 × 4 × 3 × 5 = 2180 即 ( 15 + 1 4×4×1×3+1×1×3×54×4×3×5=2180即(15+1 4×4×1×3+1×1×3×54×4×3×5=2180(15+1

你可能感兴趣的:(mobilenet)