Google提出移动端新SOTA模型MixNets:用混合深度卷积核提升精度
作者 | Google
译者 | 刘畅
编辑 | Jane
出品 | AI科技大本营(ID:rgznai100)
【导语】目前,深度卷积(Depthwise convolution)在追求高性能的卷积网络中的应用变得越来越流行,但很多研究忽略了其内核大小的影响。在本文中,作者系统地研究了不同内核大小的影响,并发现将多种内核大小的优势结合在一起可以带来更高的准确性和性能。基于此观察,作者提出了一种新的混合深度卷积(Mixed Depthwise Convolution, MDConv),它自然地在单个卷积中混合了多个内核大小。作为普通深度卷积的一种简单替代,本文的MDConv提升了现有MobileNet在ImageNet图像分类和COCO目标检测方面的准确性和性能。
通过将 MDConv 集成到AutoML搜索空间中,作者进一步开发了一个名为 MixNets 的系列模型,其性能明显优于以前的模型,包括MobileNetV2(ImageNet top-1精度提升为+4.2%),ShuffleNetV2](+3.5%),MnasNet( +1.3%),ProxylessNAS(+ 2.2%)和FBNet(+ 2.0%)。特别是MixNet-L模型在传统的移动端设备条件(<600M FLOPS)下达到了最新的SOTA结果,ImageNet top-1精度为78.9%。
论文地址:
https://arxiv.org/pdf/1907.09595v3.pdf
代码地址:
https://github.com/tensorflow/tpu/tree/master/models/official/mnasnet/mixnet.
引言
卷积神经网络(ConvNets)已广泛用于图像分类,检测,分割和许多其他应用。在卷积网络ConvNets设计上的最新趋势是提高准确性和性能。遵循这种趋势,深度卷积在目前的卷积网络中变得越来越流行,例如MobileNet,ShuffleNet,NASNet,AmoebaNet,MnasNet和EfficientNet。与常规卷积不同,深度卷积内核分别应用于每个单独的通道,因此将计算成本降低了C倍,其中C是通道数。在使用深度卷积内核设计卷积网络时,一个重要但经常被忽略的因素是卷积核大小。尽管常规做法是简单地使用3x3内核,但是最近的研究结果表明,较大的卷积核尺寸(例如5x5卷积核和7x7卷积核)可以提高模型的准确性和效率。
在本文中,作者重新回顾了一个基本问题:更大的卷积核是否总是可以获得更高的精度?自从在AlexNet中首次观察到提升以来,众所周知,每个卷积核都负责捕获局部图像模式,该模式可能是早期阶段的边缘或者后期阶段的目标。大卷积核倾向于以更多的参数和计算为代价来捕获具有更多细节的高分辨率模式,但它们总是会提高准确性吗?
为了回答这个问题,本文系统地研究了基于MobileNets的卷积核大小的影响。图1显示了结果。如预期的那样,更大的卷积核大小会使用更多参数显著增加模型大小;当卷积核大小从3x3上升到7x7时,模型精度也跟着提升,但是当卷积核尺寸大于9x9时,模型精度会迅速下降,这表明较大的卷积核尺寸可能会损害精度和性能。实际上,这种观察结果与卷积网络的第一种直觉相吻合:在极端情况下,卷积核大小等于输入分辨率,卷积网络变成了完全连接的网络,众所周知这是非常差的设计方式。这项研究提出了单个卷积核大小的局限性:我们既需要大卷积核来捕获高分辨率模式,又需要小卷积核来捕获低分辨率模式,以提高模型的准确性和性能。
基于此观察,本文提出了一种混合深度卷积(MDConv),它在单个卷积运算中混合了不同的卷积核大小,因此它可以轻松捕获具有各种分辨率的不同模式。图2显示了MDConv的结构,该结构将通道划分为多个组,并对每个通道组应用不同的卷积核大小。作者展示了MDConv是普通深度卷积的一种替代,但它可以显著提高MobileNets在ImageNet图像分类和COCO目标检测上的准确性和性能。
为了进一步证明本文MDConv的有效性,我们利用神经架构搜索开发了名为MixNets的新模型系列。实验结果表明,我们的MixNet模型大大优于所有以前的移动端卷积网络,例如ShuffleNets,MnasNet,FBNet和ProxylessNAS。特别是,本文的中型模型MixNet-M在ImageNet数据集上 top-1达到了77.0%精度,同时使用的参数比ResNet-152少12倍,FLOPS数少31倍。
方法
MDConv的主要思想是在一个深度卷积运算中混合多个具有不同大小的卷积核,以便可以轻松地从输入图像中捕获不同类型的模式。在本节中,作者将讨论MDConv的特征图(feature map)和MDConv的设计选择。
3.1 MixConv特征图
其中k是卷积核大小,m是通道数乘子系数,公式2表示的是将卷积分组,公式3是最终的输出向量。
图3显示了实现MixConv的tensorflow代码,在某些平台上面,MixConv可以作为单个操作实现,并使用组卷积进行优化。尽管如此,如图所示,MixConv可以看作是普通深度卷积的简单替代。
3.2MixConv设计选择
MixConv是一种灵活的卷积运算,具有多种设计选择。
组大小g:它确定了单个输入张量使用多少种不同类型的卷积核大小。
每组的卷积核大小:从理论上讲,每个组可以具有任意的卷积核大小。但是,如果两个组具有相同的卷积核大小,则将这两个组合并为一个组是等效的,因此本文限制每个组具有不同的卷积核大小。
每组的通道数大小:在本文中,作者主要考虑两种通道数划分方法:(1)等分划分:每个组将具有相同数量的滤波器(2)指数划分:第i个组将占总通道数的2^-i。
扩张卷积:对于大卷积核需要更多的参数和计算,一种替代方法是使用扩张卷积,它可以在不增加额外参数的情况下,增加感受野。但是扩张卷积的精度通常不如大卷积核。
3.3在移动端网络上评估MixConv性能
ImageNet分类性能对比:
COCO检测性能对比:
实验
为了进一步证明MDConv的有效性,作者利用神经结构搜索开发了基于MDConv的新模型家族,即MixNets。
4.1网络结构搜索
本文的神经架构搜索设置与MnasNet, FBNet和ProxylessNAS相似,后者采用MobileNetV2作为baseline网络结构,去搜索最佳的卷积核大小,扩展比,通道大小和其他选择。本文与其不同的是采用了MDConv作为了搜索选项。更具体点,本文有五个不同组大小(Group size)的MDConv候选.
为了简化搜索过程,作者没有在搜索空间中包含指数通道分区(exponential channel partition)或扩张卷积(dilated convolutions),将它们集成到以后的工作中也属于无关痛痒。
与最近的神经架构搜索方法类似,本文直接在ImageNet训练集上进行搜索,然后从搜索结构中选择了一些在ImageNet验证集和迁移学习数据集上性能最高的模型,。
4.2在ImageNet数据集上MixNet的性能
表2显示了MixNets在ImageNet数据集上的性能。在这里,本文从神经架构搜索中获得MixNet-S和M,并使用深度系数1.3放大MixNet-M获得了MixNet-L。所有模型都使用与MnasNet相同的设置进行训练。
总的来说,本文的MixNets明显优于最新的移动端卷积神经网络:与最新手工设计的模型相比,在相同FLOPS数的约束下,本文的MixNets的top-1准确性比MobileNetV2提高了4.2%,比ShuffleNetV2提高了3.5%。与最新的自动化模型相比,在类似的FLOPS约束下,我们的MixNets的准确度明显高于MnasNet(+1.3%),FBNets(+2.0%),ProxylessNAS(+ 2.2%)。特别是,在经典的移动端FLOPS(<600M)设置下,本文的MixNet-L达到了78.9%的top-1精度。与普遍使用的ResNets相比,本文的MixNet-M达到了相同的77%top-1精度,同时使用的参数比ResNet-152少12倍,FLOPS少31倍。
图7可视化了ImageNet的性能,作者观察到,与以前的手工移动卷积网络相比,神经架构搜索的最新进展显著改善了模型性能。但是,通过引入一种新的高效MDConv,本文可以基于相同的神经架构搜索技术进一步提高模型的准确性和性能。
4.3 网络架构
为了理解为什么本文的MixNet能获得更高的准确性和性能,图8展示了表2中的MixNet-S和MixNet-M网络架构。通常,它们都使用各种MDConv,并且整个网络中的卷积核大小不同:在早期阶段为了节省计算成本,小卷积核更常见,而在后期阶段为了获得更高的精度,大卷积核更为常见。作者还观察到,更大的MixNet-M倾向于使用更大的卷积核和更多的层,以追求更高的精度,但需要更多的参数和FLOPS。与采用大卷积核的普通深度卷积会严重降低精度不同,本文的MixNets可以利用9x9和11x11等超大核从输入图像中获得高分辨率的模式,而不会损害模型的准确性和效率。
总结
在本文中,作者重新审视了卷积核大小对深度卷积的影响,并确定传统的深度卷积会受到单个卷积核大小的限制。为了解决这个问题,作者提出了MDConv,它在单个操作中混合了多个卷积核以利用不同的卷积核大小。作者展示了MDConv是对普通深度卷积的一种简单替代,还提高了MobileNets在图像分类和目标检测任务上的准确性和性能。基于本文提出的MDConv卷积,作者使用神经结构搜索技术进一步开发了一个新的MixNet模型系列。实验结果表明,在ImageNet分类和四个广泛使用的迁移学习数据集上,本文的MixNet比所有最新的移动端卷积网络都有明显更高的准确性和性能。
(*本文为AI科技大本营编译文章,转载请微信联系 1092722531)
◆
精彩公开课
◆
推荐阅读
讯飞轮值总裁胡郁:大数据是人工智能产业落地的必要保障| BDTC 2019
专访ClickHouse创始人:数据库竞争依旧火热,技术整合势在必行
商汤联手华科:提出文字检测模型GNNets,新颖模块可解决几何分布难题
20行代码发一篇NeurIPS:梯度共享已经不安全了
图灵奖得主Bengio:深度学习不会被取代,我想让AI会推理、计划和想象
4大主流CPU处理器技术架构,不知道就out了!
阿里云上万个 Kubernetes 集群大规模管理实践
公司倒闭,39 岁重新找工作,薪资不到 8000,太残酷!
HTML + CSS 为何得不到编程界的认可?
你点的每个“在看”,我都认真当成了AI
相关文章:

桌面窗口的一些发现
最近因业务需要,玩了一下全屏问题。后来,对windows xp sp2的桌面窗口产生了兴趣。写了段代码,玩了一下。同时结合网上的一些知识,发现了以下一些现象。(转载请指明出处) 首先窗口名有#32769、Progman、Shel…

三说输入法[转]
如果我愿意,我会不停地说下去,直到烦死你们,谁让我用的输入法快呢。 我说了几句搜狗或股沟输入法的坏话,引来一些人的争论,大大在我预料之中,这年头,当你想说一些知名度较高的人或物的坏话时&am…

回忆之城市搜索
直接看效果点这里 HTML <!DOCTYPE html> <html> <head lang"zh-CN"><meta charset"utf-8"><title> 城市搜索 </title><link rel"stylesheet" href"ui-departure.css"> </head> <b…

ATL::CStringA和std::string之间转换的一些误区
对于刚做windows下VC的开发同学,类型转换应该是一个令其很苦恼的问题。我刚写工作的时候,也为这类问题不停的在网上搜索转换方法。最近工作中遇到一个“神奇”的bug(一般“神奇”的问题往往是低级错误导致的),最后跟踪…

Windows XP鲜为人知的70招
一、Windows XP优化恢复Windows经典界面很多人安装了Windows XP后的第一感觉就是Windows变得漂亮极了。只是可惜美丽的代价要耗掉我们本就不富裕的内存和显存。要想恢复到和经典Windows类似的界面和使用习惯,请在桌面上单击鼠标右键,选择“属性”命令即可…
Github开源趋势榜Top 1:英伟达升级发布二代StyleGAN,效果更完美
整理 | Jane出品 | AI科技大本营(ID:rgznai100)2018 年底,英伟达借鉴风格迁移的思路,提出当时最先进的无条件生成模型—— StyleGAN ,吸引了大家广泛关注。随后,代码开源,一位 Uber …

百度地图 ip查询 service
官方文档:http://developer.baidu.com/map/wiki/index.php?titlewebapi/ip-api 请求 一个例子: http://api.map.baidu.com/location/ip?ak3GFi2F04wXaVuwmGu8fN49kL1234567890&ip180.161.128.181 返回 {"address": "CN|\u6cb3\u535…

python3编写简易统计服务器
打点这个功能总是美其名曰“帮助提升用户体验”,其实说白了就是记录用户做了哪些操作。目前国内很多通用软件都做了相关功能,像360、QQ等这样的以用户体验出众的软件,其打点的面自然也很广很细。当然这种“侵犯”用户隐私的事情在业内各个公司…
作价20亿美元!英特尔收购以色列AI芯片公司Habana Labs
出品 | AI科技大本营(ID:rgznai1000)12月16日,英特尔宣布以约 20 亿美元收购以色列公司Habana Labs,这成为英特尔在以色列仅次于 Mobileye(153 亿美元) 的第二大收购案。Habana Labs 成立于 2016 年&#x…

这就是奇客文化?简直太有才了!
这就是奇客文化?简直太有才了……

java中的char类型
2019独角兽企业重金招聘Python工程师标准>>> 一:char的初始化 char是Java中的保留字,与别的语言不同的是,char在Java中是16位的,因为Java用的是Unicode。不过8位的ASCII码包含在Unicode中,是从0~127的。 Ja…

[原创] 如何追踪每一笔记录的来龙去脉:一个完整的Audit Logging解决方案—Part I...
一、提出问题 在开发一个企业级 应用的时候,尤其在一个涉及到敏感数据的应用,比如财务系统、物流系统,我们往往有这样的需求:对于数据库中每一笔数据的添加、修改和删除,都需要有一个明确的日志,以便我们可…

进程间通信:同步双工管道
因为工作需要,需要设计出一个双工的IPC。(转载请指明出处)在一番比较后,我发现管道是比较符合我们的需求的。但是我们需求要求管道的对方是可信任的,而在vista以下系统是没有GetNamedPipeClientProcessId、GetNamedPip…
就因为一个笔记本,运营和产品吵得不可开交......
上班最讨厌的一件事情,莫过于开会,因为每次开会感觉就要吵架,这个今天开会又吵架了,吵架竟然是因为产品小姐姐的笔记本。产品小姐姐用了一本可擦笔记本记录会议内容,运营小姐姐竟然说这个本子有什么用,不就…

Ka的递归编程练习 Part4|Hanoi汉诺塔,双色汉诺塔的也有
1 #include <stdio.h>2 void hanoi(int s,char a,char b,char c) //a是出发盘,b是中途盘,c是结束盘 3 {4 if(s0) return;5 hanoi(s-1,a,c,b); //把最底下的从a借助c移动到b6 printf("%d from %c move to %c\n",s,a,c);7 …

一种精确从文本中提取URL的思路及实现
在今年三四月份,我接受了一个需求:从文本中提取URL。这样的需求,可能算是非常小众的需求了。大概只有QQ、飞信、阿里旺旺等之类的即时通讯软件存在这样的需求。在研究这个之前,我测试了这些软件这块功能,发现它们这块的…
解读 | 2019年10篇计算机视觉精选论文(上)
作者 | 神经小兮来源 | HyperAI超神经(ID:HyperAI)2019 年转眼已经接近尾声,我们看到,这一年计算机视觉(CV)领域又诞生了大量出色的论文,提出了许多新颖的架构和方法,进一步提高了视…

不错的工具:Reflector for .NET
下载地址: http://www.aisto.com/roeder/dotnet/ 注意:下载时要输一些注册信息,输入用户名时,中间要加一个空格。

Possible MySQL server UUID duplication for server
在mysql enterprise monitor监控过程中出现这样的event事件,Topic: Possible MySQL server UUID duplication for server 事件,从该提示的描述来看貌似是存在重复的uuid,而实际上主从关系并不存在重复的uuid。主从关…

使用VC实现一个“智能”自增减线程池
工作中接手了一款产品的改造。因为该产品可能使用很多线程,所以产品中使用了线程池。(转载请指明来自BreakSoftware的CSDN博客) 线程池的一个优点是降低线程创建和销毁的频率;缺点是可能在比较闲的时候还存在一定数量的空闲线程。…

国内外财务软件科目结构的比较
科目结构是整个会计核算的基础。国内外财务软件都是任意定义科目的分段及科目编码长度,一般都能支持六段到九段。但科目结构在不同的国家有不同的规范,因而在不同的财务软件中也就有不同的控制。在科目分类上,国内外有明显的区别。国外财务软…
朋友圈装死,微博蹦迪,Python教你如何掌握女神情绪变化 | CSDN博文精选
作者 | A字头来源 | 数据札记倌很多人都是在朋友圈装死,微博上蹦迪。微信朋友圈已经不是一个可以随意发表心情的地方了,微博才是!所以你不要傻傻盯着女神的朋友圈发呆啦!本文教你如何用Python自动通知女神微博情绪变化,…

java异常笔记
Throwable是所有Java程序中错误处理的父类,有两种资类:Error和Exception。Error:表示由JVM所侦测到的无法预期的错误,由于这是属于JVM层次的严重错误,导致JVM无法继续执行,因此,这是不可捕捉到的…
2019最新进展 | Transformer在深度推荐系统中的应用
作者 | Alex-zhai来源 | 深度传送门(ID:deep_deliver)【导读】最近基于Transformer的一些NLP模型很火(比如BERT,GPT-2等),因此将Transformer模型引入到推荐算法中是近期的一个潮流。Transformer比起传统的L…

自己架设windows升级服务器
大部分对计算机比较熟悉的朋友都知道,通常安装好Windows 操作系统后要做的第一件事就是上Windows Update网站去给Windows 安装补丁程序,否则各种漏洞对系统就是一个很大的威胁。不过遗憾的是很多人还没有这样的意识,疏忽了给系统打补丁。这也…

内嵌IE网页窗口中消除IE默认脚本设置影响的方法
随着人们对客户端软件界面要求的不断提高,软件开发商面临着一个问题:如何快速廉价开发出各种丰富效果的UI界面。设计出一套丰富控件的界面库是不容易的,且产品经理丰富的想法和UED对效果的追求,往往会使程序员疲于编写这些“效果控件”。目前市面上使用的很多界面库是基于X…

win7 64位操作系统中 Oracle 11g 安装教程(图解)
1.下载Oracle 11g R2 for Windows版本,下载地址如下 官方网站: http://download.oracle.com/otn/nt/oracle11g/112010/win32_11gR2_database_1of2.zip http://download.oracle.com/otn/nt/oracle11g/112010/win32_11gR2_database_2of2.zip 2.解压两…

使用APIHOOK实现进程隐藏
今天翻出一些今年前写的代码。其中一个是09年,我帮一个读研的同学写的一个“无公害恶意”程序。大致要求就是要实现自启动和自我隐藏。我使用的都是些简单的技术,只是实现自我隐藏稍微让我花费了点时间写算法。其实这个算法也很简单,就是大学…
程序员创业前要做哪些准备?
作者 | hsm_computer出品 | CSDN博客在互联网时代,不少干IT的人白手起家,在短短的几年里通过努力干出了一番事业,有房有车有公司,在人前也很光鲜。这就吸引了更多的程序员想要通过自主创业来实现财务自由。殊不知,创业…

Flex编码过程
Flex编码过程当我们开发一个Flex程序,我们重复其他类型网络程序的过程,例如HTML,JSP,ASP和CFML。创建一个有用的Flex程序是很容易的:打开我们最喜欢的文本编辑器,例如Flex Builder,输入XML标签,编译成为SWF…