谷歌出品EfficientNet:比现有卷积网络小84倍,比GPipe快6.1倍
【导读】谷歌AI研究部门华人科学家再发论文《EfficientNet:重新思考CNN模型缩放》,模型缩放的传统做法是任意增加CNN的深度和宽度,或使用更大的输入图像分辨率进行训练,而使用EfficientNet使用一组固定额缩放系数统一缩放每个维度,超越了当先最先进图像识别网络的准确率,效率提高了10倍,而且更小。
目前提高CNN精度的方法,主要是通过任意增加CNN深度或宽度,或使用更大的输入图像分辨率进行训练和评估。
以固定的资源成本开发,然后按比例放大,以便在获得更多资源时实现更好的准确性。例如ResNet可以通过增加层数从ResNet-18扩展到ResNet-200。
再比如开源大规模神经网络模型高效训练库GPipe,通过将基线CNN扩展四倍来实现84.3% ImageNet top-1精度。
这种方法的优势在于确实可以提高精度,但劣势也很明显。这个时候往往需要进行繁琐的微调。一点点的摸黑去试、还经常的徒劳无功。这绝对不是一件能够让人身心愉快的事情,对于谷歌科学家们也一样。
这就是为什么,谷歌人工智能研究部门的科学家们正在研究一种新的“更结构化”的方式,来“扩展”卷积神经网络。他们给这个新的网络命名为:EfficientNet(效率网络)。
代码已开源,论文刚刚上线arXiv,并将在6月11日,作为poster亮相ICML 2019。
比现有卷积网络小84倍,比GPipe快6.1倍
为了理解扩展网络的效果,谷歌的科学家系统地研究了缩放模型不同维度的影响。模型缩放并确定仔细平衡网络深度后,发现只要对网络的深度、宽度和分辨率进行合理地平衡,就能带来更好的性能。基于这一观察,科学家提出了一种新的缩放方法,使用简单但高效的复合系数均匀地缩放深度、宽度和分辨率的所有尺寸。
据悉,EfficientNet-B7在ImageNet上实现了最先进精度的84.4% Top 1/97.1% Top 5,同时比最好的现有ConvNet小84倍,推理速度快6.1倍;在CIFAR-100(91.7%),Flower(98.8%)和其他3个迁移学习数据集上,也能很好地传输和实现最先进的精度。参数减少一个数量级,效率却提高了10倍(更小,更快)。
与流行的ResNet-50相比,另一款EfficientNet-B4使用了类似的FLOPS,同时将ResNet-50的最高精度从76.3%提高到82.6%。
这么优秀的成绩是如何做到的
这种复合缩放方法的第一步是执行网格搜索,在固定资源约束下找到基线网络的不同缩放维度之间的关系(例如,2倍FLOPS),这样做的目的是为了找出每个维度的适当缩放系数。然后应用这些系数,将基线网络扩展到所需的目标模型大小或算力预算。
与传统的缩放方法相比,这种复合缩放方法可以持续提高扩展模型的准确性和效率,和传统方法对比结果:MobileNet(+ 1.4% imagenet精度),ResNet(+ 0.7%)。
新模型缩放的有效性,很大程度上也依赖基线网络。
为了进一步提高性能,研究团队还通过使用AutoML MNAS框架执行神经架构搜索来开发新的基线网络,该框架优化了准确性和效率(FLOPS)。
由此产生的架构使用移动倒置瓶颈卷积(MBConv),类似于MobileNetV2和MnasNet,但由于FLOP预算增加而略大。然后,通过扩展基线网络以获得一系列模型,被称为EfficientNets。
不仅局限于ImageNet
EfficientNets在ImageNet上的良好表现,让谷歌的科学家希望将其应用于更广泛的网络中,造福更多的人。
在8个广泛使用的迁移学习数据集上测试之后,EfficientNet在其中的5个网络实现了最先进的精度。例如,在参数减少21倍的情况下,实现了CIFAR-100(91.7%)和Flowers(98.8%)。
看到这样的结果,谷歌科学家预计EfficientNet可能成为未来计算机视觉任务的新基础,因此将EfficientNet开源。
华人做出了重要贡献
论文的两位作者,都和中国有关。
第一作者是谷歌的高级软件工程师Mingming Tan,北大博士,在康奈尔大学获得博士后学位。
第二作者Quoc V. Le现在是谷歌的一名软件工程师,在斯坦福获得博士学位,师从著名的人工智能领袖吴恩达。
他在越南农村长大,会英语、普通话、吴语和广东话。小时候家里连电都没有。但他住的地方附近有一个图书馆。Le在图书馆里,如饥似渴的阅读那些伟大发明,小小年纪便梦想有朝一日自己的名字,也能铭刻在人类伟大发明家名人堂上。
14岁的时候,他就幻想一个足够聪明的机器能够帮助人类。这个幻想让他走上了人工智能的道路。
论文链接:
https://arxiv.org/abs/1905.11946
Github:
https://github.com/tensorflow/tpu/tree/master/models/official/efficientnet
欢迎关注磐创博客资源汇总站:
http://docs.panchuang.net/
欢迎关注PyTorch官方中文教程站:
http://pytorch.panchuang.net/
谷歌出品EfficientNet:比现有卷积网络小84倍,比GPipe快6.1倍的更多相关文章
- EdgeFormer: 向视觉 Transformer 学习,构建一个比 MobileViT 更好更快的卷积网络
前言 本文主要探究了轻量模型的设计.通过使用 Vision Transformer 的优势来改进卷积网络,从而获得更好的性能. 欢迎关注公众号CV技术指南,专注于计算机视觉的技术总结.最新技术跟 ...
- 语义分割--全卷积网络FCN详解
语义分割--全卷积网络FCN详解 1.FCN概述 CNN做图像分类甚至做目标检测的效果已经被证明并广泛应用,图像语义分割本质上也可以认为是稠密的目标识别(需要预测每个像素点的类别). 传统的基于C ...
- 机器学习-计算机视觉和卷积网络CNN
概述 对于计算机视觉的应用现在是非常广泛的,但是它背后的原理其实非常简单,就是将每一个像素的值pixel输入到一个DNN中,然后让这个神经网络去学习这个模型,最后去应用这个模型就可以了.听起来是不是很 ...
- 最全面的图卷积网络GCN的理解和详细推导,都在这里了!
目录 目录 1. 为什么会出现图卷积神经网络? 2. 图卷积网络的两种理解方式 2.1 vertex domain(spatial domain):顶点域(空间域) 2.2 spectral doma ...
- CVPR2020论文解读:手绘草图卷积网络语义分割
CVPR2020论文解读:手绘草图卷积网络语义分割 Sketch GCN: Semantic Sketch Segmentation with Graph Convolutional Networks ...
- CVPR2020:点云分析中三维图形卷积网络中可变形核的学习
CVPR2020:点云分析中三维图形卷积网络中可变形核的学习 Convolution in the Cloud: Learning Deformable Kernels in 3D Graph Con ...
- 基于孪生卷积网络(Siamese CNN)和短时约束度量联合学习的tracklet association方法
基于孪生卷积网络(Siamese CNN)和短时约束度量联合学习的tracklet association方法 Siamese CNN Temporally Constrained Metrics T ...
- PRML读书会第五章 Neural Networks(神经网络、BP误差后向传播链式求导法则、正则化、卷积网络)
主讲人 网神 (新浪微博:@豆角茄子麻酱凉面) 网神(66707180) 18:55:06 那我们开始了啊,前面第3,4章讲了回归和分类问题,他们应用的主要限制是维度灾难问题.今天的第5章神经网络的内 ...
- 学习笔记TF028:实现简单卷积网络
载入MNIST数据集.创建默认Interactive Session. 初始化函数,权重制造随机噪声打破完全对称.截断正态分布噪声,标准差设0.1.ReLU,偏置加小正值(0.1),避免死亡节点(de ...
随机推荐
- 联想拯救者y7000使用体验
前言 我以前的电脑是在电商平台买的二手电脑,期间觉得软件的运行速度慢,又在网上买了一个128G的固态硬盘安装上.就从大一到大四上学期这么使用了三年半的时间.因为自己需要运行一些吃内存的软件,而我的这个 ...
- PAT-进制转换-B1022 D进制的A+B (20分)
题目描述: 输入两个非负10进制整数A和B(≤230-1),输出A+B的D(1<D≤10)进制数. 输入格式: 输入在一行中依次给出3个整数A.B和D. 样例: 输入:123 456 8 输出: ...
- linux安装国产数据库(金仓数据库,达梦数据库,南大通用数据库)
今天在公司做的任务是,在Linux的环境下安装三种数据库,结果一种数据库也没有安装好,首先遇到的问题是安装南大通用数据库遇到安装的第五步,就出现问题了,问题是Gbase SDK没有安装成功,以及Gba ...
- python Could not find a version that satisfies the requirement pymysql (from versions: none) ERROR: No matching distribution found for pymysql
使用pip安装pymysql出错;Could not find a version that satisfies the requirement cryptography (from pymysql) ...
- Mac中使用brew安装mysql
若不考虑版本直接执行以下命令 brew install mysql 若要选择版本只要加上@版本即可,例如 brew install mysql@5.7 安装完后启动mysql mysql.server ...
- 面向web前端及node开发人员的vim配置
鉴于 window 下基本用不到 vim,所以下面内容不再提及 window,具体可以在相应 github 中查看手册操作基础:已装有上有 nodejs(npm).没装的可以移步官网:https:// ...
- 从0开始搭建一个阿里云java部署环境
一.购买服务器 https://www.aliyun.com/daily-act/ecs/activity_selection?spm=5176.8112568.738194.8.674c9ed53Y ...
- Linux监控系统相关资源和运行状态命令整理
#前言:Linux系统自带了些实时查看监控系统运行状态的相关命令,接下来我们就来了解一下. #首先我们先来了解一下什么是进程 #进程:是Linux用来表示正在运行的程序的一种抽象概念,Linux系统上 ...
- Robotutor Scratch3.0 在线编程平台升级啦!
Robotutor推出的Scratch3.0在线编程平台受到很多编程老师和学员的喜爱,上一个版本我们提供了用户注册,找回密码,个人项目的在线保存和浏览,社区分享评论. 我们根据实际的教学需要,用户角色 ...
- python基础学习day02
pycharm的安装以及简单使用 辅助开发软件,代码逐行调试,设计高端 python的种类: CPython:官方推荐可以转换成c能够识别的字节码. JPython:可以转化为Java语言能够 ...