模型部署到移动端_谷歌开源 MobileNetV3:新思路 AutoML 改进计算机视觉模型移动端...

雷锋网 AI 开发者按:谷歌从 17 年发布 MobileNets 以来,每隔一年即对该架构进行了调整和优化。现在,开发者们对 MobileNetV3 在一次进行了改进,并将 AutoML 和其他新颖的思想融入到该移动端的深度学习框架中。谷歌发布了相关文章对升级后的 MobileNetV3 进行了讲解,雷锋网 AI 开发者将其整理编译如下。

9e58a0e40835db21cf0224525dc782c2.png

深度学习融入到移动端的最新创意

将深度学习融合到移动端正成为人工智能领域最活跃的研究领域之一。而设计能够在移动端运行时有效执行的深度学习模型,则需要对神经网络中的许多架构范例进行更进一步的思考。

移动端的深度学习模型需要平衡复杂神经网络结构的精度和移动运行时的性能约束。在移动端深度学习领域中,计算机视觉仍然是最具挑战性的领域之一。

在 2017 年,谷歌推出了基于 TensorFlow 的计算机视觉系列模型 MobileNets。而最新的 MobileNets 架构正是于几天前发布,其中包含了一些改进移动端计算机视觉模型的有趣想法。

7cb5420f66b0147b507928bff8ecbc7f.png

MobileNetV3 是该模型结构的第三个版本,它能够为许多主流的移动应用程序提供图像分析的功能。该体系结构还被集成到流行的框架中,例如:TensorFlow Lite。

MobileNet 需要尽可能维持其中发展较快的计算机视觉和深度学习领域与移动环境局限性之间平衡。因此,谷歌一直在定期对 MobileNets 架构进行更新,其中也加入了一些有关于深度学习领域中最新颖的想法。

MobileNetV3 论文地址:

https://arxiv.org/abs/1905.02244

来自 MobileNetV1 的启发

MobileNets 的第一个版本于 2017 年春季发布,其核心思想是引入一系列基于 TensorFlow 的计算机视觉模型,在最大限度地提高精度的同时,平衡设备上或嵌入式应用程序的有限资源。从概念上讲,MobileNetV1 正试图实现两个基本目标,以构建移动第一计算机视觉模型:

  • 较小的模型 参数数量更少

  • 较小复杂度 运算中乘法和加法更少

遵循这些原则,MobileNetV1 是一个小型、低延迟、低功耗的参数化模型,可以满足各种用例的资源约束。它们可以用于实现:分类、检测、嵌入和分割等功能。

3e6857a261e82163447f785e725083a6.png

MobileNetV1 的核心架构则基于一个流线型架构,该架构使用深度可分离卷积网络来构建了轻量级深度神经网络。就神经网络结构而言,深度可分离卷积将卷积核分成两个单独的卷积核,这两个卷积核依次进行两个卷积,即先是深度卷积,然后进行逐点卷积,如下图所示。

7d73263472492754e1f21b91a7009902.png

在 MobileNetV1 中,深度卷积网络的每个输入信道都应用了单个滤波器。然后,逐点卷积应用 1 x1 卷积网络来合并深度卷积的输出。这种标准卷积方法既能滤波,又能一步将输入合并成一组新的输出。在这之中,深度可分离卷积将其分为两层,一层用于滤波,另一层则用于合并。

第一代 MobileNetV1 的实现作为了 TensorFlow Slim 图像分类库的一部分;而随着新的移动应用程序使用全新的模式进行构建,就诞生出了新的想法以改进整体架构。

升级后的二代 MobileNetV2

第二个版本的 MobileNet 架构于 2018 年初发布。MobileNetV2 则基于 MobileNetV1 的一些思想,并结合新的思想来优化了诸如:分类、目标检测和语义分割等任务的体系结构。从架构的角度来看,MobileNetV2 为架构增添了两个新模块:

  • 引入了层与层之间的线性瓶颈

  • 瓶颈之间的快捷连接。(基本结构如下所示)

b31475db470cd35cdfb36031de6cb05e.png

MobileNetV2 之中的核心思想是,瓶颈对模型的中间输入和输出进行编码,而内层则用于封装模型从较低级别概念(如:像素等)转换到较高级别描述符(如:图像类别等)的能力。最后,与传统的剩余连接一样,快捷方式能够实现更快地训练速度和更高的准确性。

加入 AutoML 的 MobileNetsV3

MobileNets 架构的最新改进在今年发表的一篇研究论文中(https://arxiv.org/abs/1905.02244)进行了总结,其主要贡献是使用 AutoML 为给定的问题找到最佳的神经网络架构;这与之前版本架构的人工设计形成了鲜明对比。

具体来说,MobileNetV3 利用了两种 AutoML 技术,即:

  • MnasNet(一种自动移动神经体系结构搜索(MNAS)方法,https://ai.google/research/pubs/pub47217/)

  • NetAdapt(适用于移动应用程序的平台感知型算法,https://arxiv.org/pdf/1804.03230.pdf)

MobileNetV3 首先使用 MnasNet 进行粗略结构的搜索,然后使用强化学习从一组离散的选择中选择最优配置。之后,MobileNetV3 再使用 NetAdapt 对体系结构进行微调,这体现了 NetAdapt 的补充功能,它能够以较小的降幅对未充分利用的激活通道进行调整。

除此之外,MobileNetV3 的另一个新颖想法是在核心架构中加入一种名为「Squeeze-and-Excitation」的神经网络(简称 SE-Net,也是 ImageNet 2017 图像分类冠军)。该神经网络的核心思想是通过显式地建模网络卷积特征通道之间的相互依赖关系,来提高网络所产生表示的质量。具体而言,就是通过学习来自动获取到每个特征通道的重要程度,然后依照这一结果去提升有用的特征并抑制对当前任务用处不大的特征。

为此,开发者们提出了一种允许网络进行特征重新校准的机制。通过该机制,网络可以学习使用全局信息来选择性地强调信息性特征,并抑制不太有用的特征。

而在 MobileNetV3 的例子中,该架构扩展了 MobileNetV2,将 SE-Net 作为搜索空间的一部分,最终得到了更稳定的架构。

52a0e30a4a9b9c3d7b83fd6acb74a985.png

MobileNetV3 中还有一个有趣的优化,则是重新设计了体系结构中一些运行成本较高的层。第二代 MobileNetV2 中的一些层是模型准确性的基础,但也引入了潜在变量。通过合并一些基本的优化功能,MobileNetV3 能够在不牺牲准确性的情况下,删除 MobileNetV2 体系结构中三个运行成本较高的层。

62536e5ee2fd7d29d36fdb61d0375a72.png8991819a90485287b92721a1ea9917c4.png

因此,MobileNetV3 相比以前的架构有了显著的改进。例如,在目标检测任务中,MobileNetV3 的操作延迟在减少 25% 的同时,维持和以前版本相同的精度。在分类任务中,也能看到类似的改进,如下图所示:

f8454b6228eb45267fa4389669bd86d6.png

目前,可以看到 MobileNets 仍然是移动计算机视觉中最先进的体系结构之一。而在这过程中,AutoML 在 MobileNetV3 中的融合也为我们打开了一扇通向更多充满创意的的架构大门,这些架构可能也是我们曾经从未想过的。

GitHub 中提供了 MobileNets 的最新版本,Tensorflow 目标检测 API 中则包含了 MobileNetV3 的具体实现,相关地址如下。

MobileNets 最新版本 GitHub 地址:

https://github.com/tensorflow/models/tree/master/research/slim/nets/mobilenet

MobileNetV3 的具体实现:

https://github.com/tensorflow/models/tree/master/research/object_detection

雷锋网 AI 开发者

雷锋网年度评选——寻找19大行业的最佳AI落地实践

创立于2017年的「AI最佳掘金案例年度榜单」,是业内首个人工智能商业案例评选活动。雷锋网从商用维度出发,寻找人工智能在各个行业的最佳落地实践。

第三届评选已正式启动,关注微信公众号“雷锋网”,回复关键词“榜单”参与报名。详情可咨询微信号:xqxq_xq

b68abe82307086446074719533a094db.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/297940.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

c++中stringstream_文史哲与艺术中的数学_智慧树章节答案

文史哲与艺术中的数学_智慧树章节答案更多相关问题His mother told me that he ______ read quite well at the age of five. A) should B) would C)在三角形ABC中,a,b,c分别是角A,B,C的对边,且满足m(2b&am…

将.net framework 4 部署在docker中的全过程(支持4.0 到 4.8,3.5应该也可以)

前言:docker自从诞生之初,就是运行在linux系统中,后来windows上也可以运行docker了,但是微软是通过自身的hyper-v技术,在你的windows系统中虚拟出来了一个小的linux虚拟主机,在它上面跑了个docker环境让你用…

有图有真相!这世界上,竟有人跟你长得一模一样!

全世界只有3.14 % 的人关注了爆炸吧知识你相信这个世界上有和你长得一模一样的人吗?我本来不信的看到这个摄影师的作品后真!香!冥冥之中,在平行宇宙在地球的另一端真的有另外一个你和你长得一模一样在生活,在呼吸老牌人…

两条线段的夹角 cesium_《原本》命题1.10 一条线段可以被分成两条相等的线段

命题1.10一条线段可以被分成两条相等的线段设:AB为一条直线。求作:平分为两条相等的线段。作等边三角形ABC(命题1.1)命题1.1已知一条线段可作一个等边三角形。作∠ACB的角平分线CD(命题1.9)命题1.9一个角可以切分成两个相等的角。那么:D 点就…

Minimal API Todo Sample

Minimal API Todo SampleIntro.NET 6 Preview 4 开始引入了 Minimal API 到如今的 RC1,Minimal API 也完善了许多并且修复了很多BUG,之前也写过文章介绍,可以参考:ASP.NET Core 6 Minimal API ,不过只是写了一个 Hello World, 最早…

WPF基础到企业应用系列7——深入剖析依赖属性(三)

八. 只读依赖属性 我们以前在对简单属性的封装中,经常会对那些希望暴露给外界只读操作的字段封装成只读属性,同样在WPF中也提供了只读属性的概念,如一些 WPF控件的依赖属性是只读的,它们经常用于报告控件的状态和信息,…

Web的结构组件

位于Web浏览器与Web服务器之间还有一些用于帮助他们进行事物处理的应用程序,如下所示。 代理 代理位于客户端和服务器之间,接受所有客户端的HTTP请求,并将这些请求转发给服务器。 缓存 Web缓存或代理缓存是一种特殊HTTP代理服务器&#xff0c…

从没想过从上帝视角看地球,竟美得如此震撼!

全世界只有3.14 % 的人关注了爆炸吧知识“ 当你从另一个角度俯瞰地球,你就能发现不一样的世界 。。。试想你现在飘起来了飘得越来越高,地球在你眼里慢慢变小现在,你看见的是此生从未见过的景色——《极简宇宙史》当想象力带我走向未知脑海…

双目三维重建_【光电视界】简单介绍双目视觉三维重构

今日光电有人说,20世纪是电的世纪,21世纪是光的世纪;知光解电,再小的个体都可以被赋能。欢迎来到今日光电!----与智者为伍 为创新赋能----1、三维重构1.1、三维重构到底是什么?首先要了解立体匹配算法&…

mendelay为什么安装不了_你为什么消防验收过不了?消防管道安装错误图集

来源:水电工论坛如有侵权,请联系删除消防管道安装如果一次没做好,验收不通过的话重新返工将对工程进度造成很大的影响,所以在施工时一定要注意以下的错误一定不能出现。2个沟槽卡箍间管段未设置支架立管角钢支架安装时应平面朝上管…

.NET 6 中的HTTP 3支持

dotnet团队官方博客发布了一篇HTTP3的文章:HTTP/3 support in .NET 6:https://devblogs.microsoft.com/dotnet/http-3-support-in-dotnet-6/。文章介绍了.NET 6 将预览支持HTTP3,.NET 7正式支持HTTP3,原因主要是HTTP/3 的 RFC 尚未…

Lock与synchronized 的区别

2019独角兽企业重金招聘Python工程师标准>>> 多次思考过这个问题,都没有形成理论,今天有时间了,我把他总结出来,希望对大家有所帮助 1、ReentrantLock 拥有Synchronized相同的并发性和内存语义,此外还多了 …

linux 内核 三天吐血,编译安装——吐血经验,内附脚本

程序包编译安装:源码包:name-VERSION-release.src.rpmrpm由源码包安装后,使用rpmbuild命令制作成二进制格式的rpm包,而后再安装源代码–> 预处理–> 编译(gcc)–> 汇编–> 链接–> 执行源代码组织格式:…

mac编辑器coda使用小贴条

前言:最近用mac开发环境了,自然一天到晚用coda,可总是有不顺的地方,搜到这篇文章感觉像看到了知音人,实在是解决了我不少疑难问题啊。外文针对的coda版本较低,我总结的针对版本是version1.7.3 coda快捷键操…

我在 GitHub 上发现了一款骚气满满的字体!

全世界只有3.14 % 的人关注了爆炸吧知识转自:量子位,作者:栗体这个字体叫 Leon Sans,表面看去平平无奇。但事实上,它并不是普通的字体,体内蕴藏着魔力。Leon Sans 最特别的地方在于,字体是由代码…

PHP 接收 UDP包_php只能做网站?基于swoole+websocket开发双向通信应用

前言众所周知,PHP用于开发基于HTTP协议的网站应用非常便捷。而HTTP协议是一种单向的通信协议,只能接收客户端的请求,然后响应请求,不能主动向客户端推送信息。因此,一些实时性要求比较高的应用,如实时聊天、…

WPF 实现火炬效果

WPF开发者QQ群: 340500857 | 微信群 -> 进入公众号主页 加入组织欢迎转发、分享、点赞、在看,谢谢~。 01—效果预览02—代码如下一、FireControl.cs 代码如下using System; using System.Collections.Generic; using System.Linq; using System.Tex…

08 comet反向ajax

一&#xff1a;HTTP协议与技久链接分块传输---->反向ajax 反向ajax又叫comet, server push,服务器推技术. 应用范围: 网页聊天服务器,, 新浪微博在线聊天,google mail 网页聊天,都有用到. 原理: 一般而言, HTTP协议的特点, 连接<->断开. 具体什么时间断开? 服务器响应…

男朋友出的性格测试题

1 一家人出去玩了三天&#xff0c;把猫忘在家里了&#xff01;2 嗷呜3 竟然毫无违和感4 叫你一声造句鬼才不过分吧5 秋天原来是这样来的嘛~6 当代嗑cp网友现状5 现在的年轻人都哪里学来的这么多招数内容自沙雕男友的日常你点的每个赞&#xff0c;我都认真当成了喜欢

linux连接建立的时间,用timedatectl在Linux中检查当前时区及更改时区(创建符号链接来更改时区)...

本文介绍如何在Linux操作系统中设置或更改时区的方法&#xff0c;可以使用timedatectl&#xff0c;包括通过创建符号链接来更改时区。前言时区是具有相同标准时间的地理区域&#xff0c;通常&#xff0c;时区是在操作系统的安装过程中设置的&#xff0c;但以后可以轻松更改。对…