移动和嵌入式设备视觉应用的高效卷积神经网络模型:MobileNets
论文地址:arxiv.org/abs/1704.04…
摘要
本文针对移动和嵌入式视觉设备提出一类被称作MobileNets的高效模型。MobileNets是一个使用深度可分解卷积(depthwise separable convolutions)来构建轻量级深度神经网络的精简结构(streamlined architecture,流线型结构 or 精简结构,倾向于后者)。本文引入了两个 简单的全局超参来有效权衡延迟(latency)和准确度(accuracy)。这些超参允许模型构建者根据具体问题的限制为他们的应用选择规模合适的模型。在资源和准确度的权衡条件下进行广泛的实验,与ImageNet分类任务的其它主流模型相比较,本文的模型显示出很好的性能。然后 ,本文在一系列的应用和用例下验证了其有效性,包括:目标检测、细粒度分类、人脸属性提取和 大规模地理定位。
1.引言
自从AlexNet在ILSVRC2012利用深度卷积神经网络赢得ImageNet挑战赛以来,卷积神经网络(CNN)在计算机视觉领域被广泛使用。这方面的应用主流趋势是采用更深、更复杂的网络实现更高的精度。但是,考虑到模型大小和速度。精度的提升并不一定使网络更加高效。在很多实际的应用场景,如机器人、自动驾驶和 增强现实,这些识别任务需要在计算资源限制的平台实时地运行。
本文提出了一个高效的网络结构和一组两个超参,用以构建较小的、低延迟模型,从而能比较好的满足移动和 嵌入式视觉应用的设计要求。
2.背景介绍
在最近的文献中,关于建立小型高效的神经网络的研究日益增加。一般说来,这些方法可以归为两类,压缩预训练模型和直接训练小网络模型。本文提出了一类允许模型开发人员选择与其应用程序的资源限制(延迟,大小)相匹配的小型网络架构。MobileNets主要侧重于优化延迟,但也能够产生小型网络。很多关于小型网络的论文只关注大小,却不考虑速度问题。
记录:需要注意的是目前在应用于移动和嵌入式设备的深度学习 网络研究主要有两个方向:
1)直接设计较小且高效的网络,并训练。本文属于这方面,另外比较经典的如GoogleNet提出Inception思想,采用小卷积。Network in Network 改进传统CNN,使用1x1卷积,提出MLP CONV层Deep Fried Convents采用Adaptive Fast-food transform重新 参数化全连接层的向量矩阵。SqueezeNet设计目标主要是为了简化CNN的模型参数数量,主要采用了替换卷积核3x3为1x1,使用了deep compression技术对网络进行了压缩 。Flattened networks针对快速前馈执行设计的扁平神经网络。
2)对预训练模型进行压缩小、分解或者压缩。采用hashing trick进行压缩;采用huffman编码;用大网络来教小网络;训练低精度乘法器;采用二进制输入二进制权值等等。
3.MobileNet 架构
首先描述了使用深度可分解滤波(depth wise separable filters)建立的MobileNets核心层;然后介绍了MobileNet的网络结构,并且总结了两个模型收缩超参:宽度乘法器和分辨率乘法器(width multiplier和resolution multiplier)。
3.1.深度可分解卷积(Depthwise Separable Convolution)
MobileNet模型机遇深度可分解卷积,其可以将标准卷积分解成 一个深度卷积和一个1x1的点卷积。
3.2. 网络结构和训练
3.3.宽度乘法器(Width Multiplier)
3.4. 分辨率乘法器(Resolution Multiplier)
此部分待更新
4.实验
本节首先调查了深度卷积( depthwise convolution)的影响,以及通过减小网络宽度 而不是减少层数来选择压缩的 模型。然后基于两个超参:宽度乘法器和分辨率乘法器(width multiplier和resolution multiplier)进行网络收缩,并把其和现阶段主流的模型进行比较。研究结果表明MobileNet可以应用于许多不同的任务。
4.1模型选择
首先比较了深度可分解卷积的MobileNet和全卷积的模型,如表4所示 ,使用深度可分解 卷积和全卷积相比,在ImageNet的精确度只下降了1%,但是Mult-Adds和参数大大节省。
表5显示,在计算和参数数量相似时,更浅的模型比更小的模型精度低3%。
4.2.模型超参收缩
表6显示宽度乘法器(width multiplier)超参α减小时,模型准确率随模型的变小而下降。
表7 显示分辨率乘法器(resolution multiplier)超参ρ 减小时,模型准确率随模型的分辨率变小而降低。
表8中将MobileNet和GoogleNet、VGG16进行了比较。
表9比较了两个超参的变化
4.3.细粒度识别任务
本文在Stanford Dogs数据集上训练了MobileNet以应对细粒度识别任务。本文扩展了指定对比方法[19]并且收集了一个更大且包含更多噪声的数据集超过了指定方法[18]的规模。采用了网络噪声数据去预训练细粒度分类狗的 识别模型,然后在Stanford Dogs训练集上进行微调。结果如表10。MobileNet能够在极大的较少计算和尺寸的情况下获得接近于[18]的结果。
4.4.大规模地理定位
PlaNet的任务是用于确定在一张照片在哪个地理位置进行拍摄的分类问题。该方法将地球划分进一个个网格单元集合到目标类别,用数百万计的有地理位置标记的图片训练卷积 神经网络。PlaNet已经能够成功对各种各样的照片进行地理位置标记,并且处理相同任务性能超过了Im2GPS。
在相同的数据上采用MobileNet架构重新训练PlaNet,其结果如表11所示,MobileNet版本和PlaNet相比,规模小了 很多,性能只降低了很少,据此来说,其仍然超过了Im2GPS
4.5.人脸属性提取
MobileNet的另一个应用场景是压缩具有未知且复杂训练程序的大型系统。在人脸属性分类任务中,我们证明了MobileNet和distillation间的协同关系,一种针对深度网络的知识迁移技术。我们试图去简化一个具有7500万参数和16亿Mult-Adds大型人脸属性分类器。该分类器在一个类似于YFCC100M的多属性数据集上进行训练。
采用MobileNet架构去提取一个人脸属性分类器。distillation是通过训练分类器模型一个更大的模型输出,而不是采用人工标注,因而能够从大型(无限大潜在可能)未标注数据集训练。结合distillation的可扩展性和MobileNet的简洁参数化,终端系统不仅不要求正则化,而去反而表现出更好的性能。如表12。
4.6.目标检测
MobileNet也能够作为一个高效的基网络被部署到现代目标检测系统。基于最近2016 COCO挑战赛的获胜者的工作,我们应对目标检测任务在COCO数据集上训练了MobileNet,并进行了比较。表13列出了在Faster RCNN和SDD框架下,MobileNet、VGG以及Inception V2的比较。实验中,SSD以300的输入分辨率于分别是300和600输入分辨率的 Faster RCNN进行比较,在两个框架下,Mobile Net性能不低于其它两个网络结果,且计算复杂性和模型都相对更小。
记录:此处感觉采用VOT Challenge 的数据集能够更有效客观的进行目标检测的结果评测,不知道为什么采用了COCO。
4.7.Face Embeddings
FaceNet是目前state-of-art的人脸识别模型,它基于triplet loss建立face Embedding。为了建立移动FaceNet模型,我们采用distillation通过最小化FaceNet和MobileNet在训练数据上的平方差(squared differences )来训练。表15可以看到非常小的MobileNet模型结果。
5.总结
本文提出了一个基于深度可分解卷积(depthwise separable convolutions)的新模型架构MobileNets。分析了 决定高效模型的重要设计思路。然后,本文讲解了如何使用宽度乘法器(width multiplier)和分辨率乘法器(resolution multiplier),通过权衡较为可靠的精确度来减小尺寸大小和延迟时间,来构建更小更快的MobileNets。将不同的MobileNets和主流的模型进行比较,展现了 MobileNets在大小、速度和精确度这些特性都具有明显优势。最后,我们通过一系列任务的应用,验证了MobileNets的广泛适用性。下一步,本文的计划是在TensorFlow发布他们的模型。
记录:MobileNet应该是目前在设计小网络方向性能比较比较比较好的论文,论文中并看不出其具体的fps的数据,也是论文的缺憾,不过预计应该会有不错的性能。其也是深度学习网络应用到嵌入式和移动设备的一个比较好的参照。