【导读】谷歌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倍的更多相关文章

  1. EdgeFormer: 向视觉 Transformer 学习,构建一个比 MobileViT 更好更快的卷积网络

    ​  前言 本文主要探究了轻量模型的设计.通过使用 Vision Transformer 的优势来改进卷积网络,从而获得更好的性能. 欢迎关注公众号CV技术指南,专注于计算机视觉的技术总结.最新技术跟 ...

  2. 语义分割--全卷积网络FCN详解

    语义分割--全卷积网络FCN详解   1.FCN概述 CNN做图像分类甚至做目标检测的效果已经被证明并广泛应用,图像语义分割本质上也可以认为是稠密的目标识别(需要预测每个像素点的类别). 传统的基于C ...

  3. 机器学习-计算机视觉和卷积网络CNN

    概述 对于计算机视觉的应用现在是非常广泛的,但是它背后的原理其实非常简单,就是将每一个像素的值pixel输入到一个DNN中,然后让这个神经网络去学习这个模型,最后去应用这个模型就可以了.听起来是不是很 ...

  4. 最全面的图卷积网络GCN的理解和详细推导,都在这里了!

    目录 目录 1. 为什么会出现图卷积神经网络? 2. 图卷积网络的两种理解方式 2.1 vertex domain(spatial domain):顶点域(空间域) 2.2 spectral doma ...

  5. CVPR2020论文解读:手绘草图卷积网络语义分割

    CVPR2020论文解读:手绘草图卷积网络语义分割 Sketch GCN: Semantic Sketch Segmentation with Graph Convolutional Networks ...

  6. CVPR2020:点云分析中三维图形卷积网络中可变形核的学习

    CVPR2020:点云分析中三维图形卷积网络中可变形核的学习 Convolution in the Cloud: Learning Deformable Kernels in 3D Graph Con ...

  7. 基于孪生卷积网络(Siamese CNN)和短时约束度量联合学习的tracklet association方法

    基于孪生卷积网络(Siamese CNN)和短时约束度量联合学习的tracklet association方法 Siamese CNN Temporally Constrained Metrics T ...

  8. PRML读书会第五章 Neural Networks(神经网络、BP误差后向传播链式求导法则、正则化、卷积网络)

    主讲人 网神 (新浪微博:@豆角茄子麻酱凉面) 网神(66707180) 18:55:06 那我们开始了啊,前面第3,4章讲了回归和分类问题,他们应用的主要限制是维度灾难问题.今天的第5章神经网络的内 ...

  9. 学习笔记TF028:实现简单卷积网络

    载入MNIST数据集.创建默认Interactive Session. 初始化函数,权重制造随机噪声打破完全对称.截断正态分布噪声,标准差设0.1.ReLU,偏置加小正值(0.1),避免死亡节点(de ...

随机推荐

  1. JS实现总价随数量变化而变化(顾客购买商品表单)

    */ * Copyright (c) 2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名:test.html * 作者:常轩 * 微信公众号:Worldh ...

  2. 【Python3】HTML基础

    [web前端]HTML基础 一.BS模式 BS(Browser-Server)模式:顾名思义为浏览器-服务器的意思,对比的话类似我们PC上面浏览器使用的产品即为BS模式产品,例如google doc. ...

  3. 前端每日实战:60# 视频演示如何用纯 CSS 创作一块乐高积木

    效果预览 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/qKKqrv 可交互视频 此视频是可 ...

  4. JZOJ 5230. 【NOIP2017模拟A组模拟8.5】队伍统计

    5230. [NOIP2017模拟A组模拟8.5]队伍统计 (File IO): input:count.in output:count.out Time Limits: 1500 ms Memory ...

  5. duid 配置监控

    web.xml中加入 <servlet> <servlet-name>DruidStatView</servlet-name> <servlet-class& ...

  6. [每日一题系列] LeetCode 1013. 将数组分成和相等的三个部分

    题目: 给你一个整数数组 A,只有可以将其划分为三个和相等的非空部分时才返回 true,否则返回 false. 形式上,如果可以找出索引 i+1 < j 且满足 (A[0] + A[1] + . ...

  7. 手写Promise原理

    我的promise能实现什么? 1:解决回调地狱,实现异步 2:可以链式调用,可以嵌套调用 3:有等待态到成功态的方法,有等待态到失败态的方法 4:可以衍生出周边的方法,如Promise.resolv ...

  8. 关于adsl vps 拨号ip服务器

    我这几天写了一遍在xp上的文章,但是因为xp上貌似只能使用squid2.6版本的,tinyproxy也不能用,而且怎么弄不出去vps端的端口出来 https://www.cnblogs.com/zen ...

  9. python基础学习day4

    列表的初识 why:int bool str str: 存储少量的数据. str:切片还是对其进行任何操作,获取的内容全都是str类型.存储的数据单一. what:list list = [66, ' ...

  10. Spring MVC系列-(2) Bean的装配

    2. Bean的装配 Spring容器负责创建应用程序中的bean,并通过DI来协调对象之间的关系.Spring提供了三种主要的装配机制: XML显式配置: Java配置类进行显式配置: 隐式的bea ...