模型部署到移动端_谷歌开源 MobileNetV3:新思路 AutoML 改进计算机视觉模型移动端...
雷锋网 AI 开发者按:谷歌从 17 年发布 MobileNets 以来,每隔一年即对该架构进行了调整和优化。现在,开发者们对 MobileNetV3 在一次进行了改进,并将 AutoML 和其他新颖的思想融入到该移动端的深度学习框架中。谷歌发布了相关文章对升级后的 MobileNetV3 进行了讲解,雷锋网 AI 开发者将其整理编译如下。
深度学习融入到移动端的最新创意
将深度学习融合到移动端正成为人工智能领域最活跃的研究领域之一。而设计能够在移动端运行时有效执行的深度学习模型,则需要对神经网络中的许多架构范例进行更进一步的思考。
移动端的深度学习模型需要平衡复杂神经网络结构的精度和移动运行时的性能约束。在移动端深度学习领域中,计算机视觉仍然是最具挑战性的领域之一。
在 2017 年,谷歌推出了基于 TensorFlow 的计算机视觉系列模型 MobileNets。而最新的 MobileNets 架构正是于几天前发布,其中包含了一些改进移动端计算机视觉模型的有趣想法。
MobileNetV3 是该模型结构的第三个版本,它能够为许多主流的移动应用程序提供图像分析的功能。该体系结构还被集成到流行的框架中,例如:TensorFlow Lite。
MobileNet 需要尽可能维持其中发展较快的计算机视觉和深度学习领域与移动环境局限性之间平衡。因此,谷歌一直在定期对 MobileNets 架构进行更新,其中也加入了一些有关于深度学习领域中最新颖的想法。
MobileNetV3 论文地址:
https://arxiv.org/abs/1905.02244
来自 MobileNetV1 的启发
MobileNets 的第一个版本于 2017 年春季发布,其核心思想是引入一系列基于 TensorFlow 的计算机视觉模型,在最大限度地提高精度的同时,平衡设备上或嵌入式应用程序的有限资源。从概念上讲,MobileNetV1 正试图实现两个基本目标,以构建移动第一计算机视觉模型:
较小的模型 参数数量更少
较小复杂度 运算中乘法和加法更少
遵循这些原则,MobileNetV1 是一个小型、低延迟、低功耗的参数化模型,可以满足各种用例的资源约束。它们可以用于实现:分类、检测、嵌入和分割等功能。
MobileNetV1 的核心架构则基于一个流线型架构,该架构使用深度可分离卷积网络来构建了轻量级深度神经网络。就神经网络结构而言,深度可分离卷积将卷积核分成两个单独的卷积核,这两个卷积核依次进行两个卷积,即先是深度卷积,然后进行逐点卷积,如下图所示。
在 MobileNetV1 中,深度卷积网络的每个输入信道都应用了单个滤波器。然后,逐点卷积应用 1 x1 卷积网络来合并深度卷积的输出。这种标准卷积方法既能滤波,又能一步将输入合并成一组新的输出。在这之中,深度可分离卷积将其分为两层,一层用于滤波,另一层则用于合并。
第一代 MobileNetV1 的实现作为了 TensorFlow Slim 图像分类库的一部分;而随着新的移动应用程序使用全新的模式进行构建,就诞生出了新的想法以改进整体架构。
升级后的二代 MobileNetV2
第二个版本的 MobileNet 架构于 2018 年初发布。MobileNetV2 则基于 MobileNetV1 的一些思想,并结合新的思想来优化了诸如:分类、目标检测和语义分割等任务的体系结构。从架构的角度来看,MobileNetV2 为架构增添了两个新模块:
引入了层与层之间的线性瓶颈
瓶颈之间的快捷连接。(基本结构如下所示)
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 作为搜索空间的一部分,最终得到了更稳定的架构。
MobileNetV3 中还有一个有趣的优化,则是重新设计了体系结构中一些运行成本较高的层。第二代 MobileNetV2 中的一些层是模型准确性的基础,但也引入了潜在变量。通过合并一些基本的优化功能,MobileNetV3 能够在不牺牲准确性的情况下,删除 MobileNetV2 体系结构中三个运行成本较高的层。
因此,MobileNetV3 相比以前的架构有了显著的改进。例如,在目标检测任务中,MobileNetV3 的操作延迟在减少 25% 的同时,维持和以前版本相同的精度。在分类任务中,也能看到类似的改进,如下图所示:
目前,可以看到 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
模型部署到移动端_谷歌开源 MobileNetV3:新思路 AutoML 改进计算机视觉模型移动端...相关推荐
- 谷歌开源 MobileNetV3:新思路 AutoML 改进计算机视觉模型移动端
谷歌从 17 年发布 MobileNets 以来,每隔一年即对该架构进行了调整和优化.现在,开发者们对 MobileNetV3 在一次进行了改进,并将 AutoML 和其他新颖的思想融入到该移动端的深 ...
- 怎么把python模型部署到线上_如何将机器学习模型成功部署到.Net环境中
[IT168 技术]Python和R语言是在数据工程师间最流行的编程语言,但是,它并不能适用于应用程序构建的所有部分.这也就是你为什么有时需要找到一种方法,将Python或R编写的机器学习模型部署到基 ...
- java实现镜像系统_谷歌开源Java镜像构建工具Jib
容器的出现让Java开发人员比以往任何时候都更接近"编写一次,到处运行"的工作流程,但要对Java应用程序进行容器化并非易事:你必须编写Dockerfile,以root身份运行Do ...
- 径向基神经网络_谷歌开源Neural Tangents:5行代码打造无限宽神经网络模型,帮助“打开ML黑匣子”...
鱼羊 假装发自 凹非寺 量子位 报道 | 公众号 QbitAI 只要网络足够宽,深度学习动态就能大大简化,并且更易于理解. 最近的许多研究结果表明,无限宽度的DNN会收敛成一类更为简单的模型,称为高斯 ...
- 机器学习实现计算不规则图形面积_谷歌开源 TensorFlow Graphics:专为 3D 图像打造的深度学习利器...
Github 项目链接:https://github.com/tensorflow/graphics 最近几年以来,能够插入神经网络架构中的新型可区分图层在数量上有所增加.从空间转换器到可变图形渲染器 ...
- Model Search:炼丹师最强危机,谷歌开源最强AutoML工具!
作者:杰少,公众号:炼丹笔记 Model Search 简介 神经网络(NN)的成功通常取决于它对各种任务的泛化能力.然而,设计一个泛化性较好的神经网络是非常具有挑战性的,因为研究界对神经网络如何泛化 ...
- office移动端_阿里云 Teambition 网盘产品快讯:移动端正式版即将上线,体验将大幅提升...
据悉,阿里云 Teambition 网盘团队近期再次公布了产品进展,其中特别提到移动端即将在 11 月 20 日正式上线. 对于最近风特别大的阿里云 Teambition 网盘,你体验上了吗? 据了解 ...
- arm 大端还是小端_用C/C++带您了解计算机中大端小端之谜
首先这些是什么? 小字节序和大字节序是存储多字节数据类型(int,float等)的两种方式.在小字节序机器中,多字节数据类型的二进制表示形式的最后一个字节首先存储.另一方面,在大字节序机器中,多字节数 ...
- 玩客云pc端_玩客云电脑客户端-玩客云pc端下载 v1.4.5.112官方版--pc6下载站
玩客云pc端是一款功能全面的云盘共享工具,拥有畅快下载.随存随取.文件管理.远程操控.多媒体娱乐等多种实用功能,是一款专为年轻人而设计的私人云盘,为您提供高品质数字娱乐生活.. 相关软件软件大小版本说 ...
最新文章
- 自动化测试框架cucumber_BDD测试框架之Cucumber使用入门
- SQL实战篇:SQL解决近X天的问题
- 前端高效开发必备的 js 库梳理
- java注解 sql_mybatis中注解映射SQL示例代码
- C语言线性表之双向循环链表
- 一道简单的多维数组取值问题
- 2017中国“互联网+”数字经济指数 | 腾讯研究院
- 中文核心期刊与科技核心期刊区别?
- 大唐杯 5G协议与信令 任务六、任务七(24:30-35:00)
- python调用百度地图,通过经纬度定位
- 关于es6 async函数中reject状态的promise处理
- 移动硬盘位置不可用无法访问函数不正确修复方法?
- 腾讯、百度、讯飞 语音识别
- 《拆掉思维里的墙》—— 读后总结
- Python常见面试题汇总(根据面试总结)
- mysql 5.7 windows 安装步骤
- Linux 命令量测试
- Mockito verify Junit5集成 Mockito
- linux 家目录没有ssh文件夹,ssh – 如何远程列出已配置用户主目录中的目录
- android.view.InflateException: Binary XML file line #10: Error inflating class com.android.xiong.han
热门文章
- 你必须知道的Docker数据卷
- 【微服务学习】Polly:熔断降级组件
- 如何优雅的利用Windows服务来部署ASP.NET Core程序
- .NET Core使用微软AI认知服务识别文字语言
- ASP.NET Core WebApi使用Swagger生成api说明文档看这篇就够了
- HoloLens开发手记-凝视 Gaze
- 【ArcGIS Pro微课1000例】0007:ArcGIS Pro 2.5质量检查:拓扑创建与编辑案例教程
- C语言试题十一之计算并输出下列多项式值:sn=(1-1/2)+(1/3-1/4)+…+(1/(2n-1)1/2n).
- linux c之#include <unistd.h> 总结
- 【C语言简单说】三:变量总结ASCII码扩展(5)