purgle 2018-04-04
来源:research.googleblog.com
作者:Mark Sandler and Andrew Howard
编译:文强
【新智元导读】谷歌今天发布MobileNet重大更新,推出MobileNetV2,在结构上使用depthwise可分离卷积为基础,在层与层之间增加了线性的bottleneck,并且bottleneck之间也增加了残差连接,因此速度更快,精度更高,更适合设备上处理。
去年我们推出了MobileNetV1,这是一系列专为移动设备设计的通用计算机视觉神经网络,支持分类、检测等功能。在个人移动设备上运行深度网络的能力可改善用户体验,随时随地访问,并为安全性、隐私和能耗提供额外优势。随着新应用的出现,用户可以与真实世界进行实时交互,因此对更高效的神经网络也提出了需求。
今天,我们很高兴地宣布推出支持下一代移动视觉应用的MobileNetV2。相比MobileNetV1,MobileNetV2有了一些重大改进,推进了分类、对象检测和语义分割等移动视觉识别技术的最好性能。MobileNetV2作为TensorFlow-Slim图像分类库的一部分发布,你也可以在下载Jupyter笔记本,或者直接在Colaboratory环境中探索MobileNetV2。
MobileNetV2也并入谷歌最新发布的TensorFlow Hub当中作为TF-Hub上的模块使用,预训练好的checkpoints可以在Github上找到。
MobileNetV2基于MobileNetV1的思想,使用在深度上可分离的卷积(depthwise separable convolution)作为构建模块。不过,V2引入了两种新的架构特性:1)在层与层之间的线性的bottleneck,以及2)bottleneck之间的shortcut链路。基本结构如下所示。
MobileNetV2的设计直觉是,bottleneck对模型的中间输入和输出进行编码,而内部的层则封装了模型从低级概念(比如像素)转换为更高级的描述(比如图像类别)的能力。最后,与传统的残差连接一样,shortcut可以让训练速度更快,准确性更高。
更多技术细节参见论文“MobileNet V2:Inverted Residuals and Linear Bottlenecks”。
总体而言,MobileNetV2模型在精度相同的情况下,整体速度都更高。特别是,V2使用的操作次数减少了2倍,参数减少了30%,在Google Pixel手机上的速度比MobileNetV1模型快30%至40%,同时实现了更高的准确性。
MobileNetV2作为物体检测和分割的特征提取器是非常有效的。例如,当与SSDLite[2]配对进行检测时,新模型在取得相同精度的情况下,要比MobileNetV1快大约35%。我们已经在Tensorflow Object Detection API下开源了这一模型[4]。
为了实现设备上语义分割(on-device semantic segmentation),我们使用MobileNetV2作为语义分割模型DeepLabv3简化版的特征提取器[3]。在语义分割基准PASCAL VOC 2012中,这一模型获得了与使用MobileNetV1作为特征提取器相似的性能,但参数要少5.3倍,MIultiply-Adds操作次数减少了5.2倍。
MobileNetV2提供了一个非常高效的面向移动的模型,可以用作许多视觉识别任务的基础。希望通过与更广泛的学术和开源社区分享这一技术,我们能够帮助推动研究和应用程序的开发。
致谢
感谢核心贡献者朱梦龙, Andrey Zhmoginov 和Liang-Chieh Chen。特别感谢Bo Chen, Dmitry Kalenichenko, Skirmantas Kligys, Mathew Tang, Weijun Wang, Benoit Jacob, George Papandreou, Zhichao Lu, Vivek Rathod, Jonathan Huang, Yukun Zhu,以及Hartwig Adam。
摘要
在本文中,我们描述了一种新的移动架构MobileNetV2,改善了移动模型在很多任务和基准中的state of the art,并且在很多不同尺寸的移动模型上做到了这一点。我们描述了将这些移动模型应用在我们称之为SSDLite的新框架中进行对象检测的有效方法。此外,我们还演示了如何通过我们称为Mobile DeepLabv3的简化形式DeepLabv3来构建移动语义分割模型。
MobileNetV2架构基于反向残差结构,其中残差块的输入和输出是薄的瓶颈层,与传统残差模型相反——传统残差模型在输入中使用扩展表示(expanded representations),而MobileNetV2使用轻量级深度卷积过滤中间扩展层中的特征。此外,我们发现为了维持表示的能力(representational power),去除很窄的层中的非线性非常重要。我们证明这可以提高性能,并提供得出这一设计的直觉。最后,我们的方法能将输入/输出域与转换的表达性分开,为进一步分析提供了便利的框架。我们衡量了新模型在ImageNet分类,COCO物体检测,VOC图像分割方面的性能。我们评估了精度和MAdd操作次数之间的trade-off,以及参数的数量。
论文专门对比了几种移动视觉模型的架构:NasNet是谷歌使用神经网络自动搜索得到的,ShuffleNet则是去年孙剑团队提出的,基于分组逐点卷积和通道重排操作,优于谷歌MobileNet
了解更多:
MobileNetV2论文:https://arxiv.org/pdf/1801.04381.pdf
MobileNet Github:https://github.com/tensorflow/models/tree/master/research/slim/nets/mobilenet
谷歌博客:https://research.googleblog.com/2018/04/mobilenetv2-next-generation-of-on.html
ShuffleNet介绍:孙剑团队提出移动端神经网络ShuffleNet,优于谷歌MobileNet
【加入社群】
新智元 AI 技术 + 产业社群招募中,欢迎对 AI 技术 + 产业落地感兴趣的同学,加小助手微信号: aiera2015_1 入群;通过审核后我们将邀请进群,加入社群后务必修改群备注(姓名 - 公司 - 职位;专业群审核较严,敬请谅解)。