文章共3200字,预计阅读时间12min

  • 什么是EfficientNet

  • 模型复合缩放方法

  • 把问题用数学来描述

  • 实验内容

  • 模型复合缩放方法

  • EfficientNet的基线模型

efficientNet的论文原文链接:https://arxiv.org/pdf/1905.11946.pdf

英语过关的小伙伴也许可以挑战一下?哈哈

模型扩展Model scaling一直以来都是提高卷积神经网络效果的重要方法。

比如说,ResNet可以增加层数从ResNet18扩展到ResNet200。这次,我们要介绍的是最新的网络结构——EfficientNet,就是一种标准化的模型扩展结果,通过下面的图,我们可以i只管的体会到EfficientNet b0-b7在ImageNet上的效果:对于ImageNet历史上的各种网络而言,可以说EfficientNet在效果上实现了碾压

什么是EfficientNet

一般我们在扩展网络的时候,一般通过调成输入图像的大小、网络的深度和宽度(卷积通道数,也就是channel数)。在EfficientNet之前,没有研究工作只是针对这三个维度中的某一个维度进行调整,因为没钱啊!!有限的计算能力,很少有研究对这三个维度进行综合调整的。

EfficientNet的设想就是能否设计一个标准化的卷积网络扩展方法,既可以实现较高的准确率,又可以充分的节省算力资源。因而问题可以描述成,如何平衡分辨率、深度和宽度这三个维度,来实现拘拿及网络在效率和准确率上的优化

模型复合缩放方法

  • compound scaling methd

EfficientNet给出的解决方案是提出了这个模型复合缩放方法

在这里插入图片描述

图a是一个基线网络,也就是我们所说的baseline,图b,c,d三个网络分别对该基线网络的宽度、深度、和输入分辨率进行了扩展,而最右边的e图,就是EfficientNet的主要思想,综合宽度、深度和分辨率对网络进行符合扩展。

把问题用数学来描述

首先,我们把整个卷积网络称为N,他的第i个卷积层可以看作下面的函数映射:

在这里插入图片描述

Yi是输出张量,Xi是输入张量,假设这个Xi的维度是<Hi,Wi,Ci>(这里省略了Batch的维度),那么这个整个卷积网络N,是由k个卷积层组成的,因此可以表示为:

在这里插入图片描述

通常情况,一个神经网络会有多个相同的卷积层存在,因此,我们称多个结构相同的卷积层为一个stage。举个例子:ResNet可以分为5个stage,每一个stage中的卷积层结构相同(除了第一层为降采样层),前四个stage都是baseblock,第五个stage是fc层。现在构建神经网络也讲究模块化嘛。

总之,我们以stage为单位,将上面的卷积网络N改成为:其中,下表1...s表示stage的讯号,Fi表示对第i层的卷积运算,Li的意思是Fi在第i个stage中有Li个一样结构的卷积层。<Hi, Wi, Ci>表示第i层输入的shape。为了减小搜索空间,作者先固定了网络的基本结构,而只改变上面公式中的三个缩放维度。还记得之前我们提高的分辨率,宽度,深度吗?

  • Li就是深度,Li越大重复的卷积层越多,网络越深;

  • Ci就是channel数目,也就是网络的宽度

  • Hi和Wi就是图片的分辨率

就算如此,这也有三个参数要调整,搜索空间也是非常的大,因此EfficientNet的设想是一个卷积网络所有的卷积层必须通过相同的比例常数进行统一扩展 ,这句话的意思是,三个参数乘上常熟倍率。所以个一个模型的扩展问题,就用数学语言描述为:

在这里插入图片描述

其中,d、w和r分别表示网络深度、宽度和分辨率的倍率。这个算式表现为在给定计算内存和效率的约束下,如何优化参数d、w和r来实现最好的模型准确率。

实验内容

上面问题的难点在于,三个倍率之间是由内在联系的,比如更高分辨率的图片就需要更深的网络来增大感受野的捕捉特征。因此作者做了两个实验(实际应该是做了很多的实验)来说明:(1) 第一个实验,对三个维度固定了两个,只方法其中一个,得到的结果如下:

在这里插入图片描述

从左到右分别是只放大了网络宽度(width,w为放大倍率)、网络深度(depth,d为放大倍率)和图像分辨率(resolution, r为放大倍率)。我们可以看到,单个维度的放大最高精度只有80左右,本次实验,作者得出一个管带你:三个维度中任一维度的放大都可以带来精度的提升,但是随着倍率的越来越大,提升越来越小。

(2)于是作者做了第二个实验,尝试在不同的d,r组合下变动w,得到下图:从实验结果来看,最高精度相比之前已经有所提升,突破了80大关。而且组合不同,效果不同。作者又得到了一个观点:得到了更高的精度以及效率的关键是平衡网络的宽度,网络深度,网络分辨率三个维度的缩放倍率

模型复合缩放方法

这时候作者提出了这个方法 EfficientNet的规范化复合调参方法使用了一个复合系数,来对三个参数进行符合调整:其中的都是常数,可以通过网格搜索获得。复合系数通过人工调节。考虑到如果网络深度翻番那么对应的计算量翻番,网络宽度和图像分辨率翻番对应的计算量会翻4番,卷积操作的计算量与,成正比,。在这个约束下,网络的计算量大约是之前的倍


以上就是EfficientNet的复合扩展的方式,但是这仅仅是一种模型扩展方式,我们还没有讲到EfficientNet到底是一个什么样的网络。

EfficientNet的基线模型

EfficientNet使用了MobileNet V2中的MBCConv作为模型的主干网络,同时也是用了SENet中的squeeze and excitation方法对网络结构进行了优化。

总之呢,综合了MBConv和squeeze and excitation方法的EfficientNet-B0的网络结构如下表所示:

对于EfficientNet-B0这样的一个基线网络,如何使用复合扩展发对该网络进行扩展呢?这里主要是分两步走:还记得这个规划问题吗?

(1)第一步,先将复合系数固定为1,先假设有两倍以上的计算资源可以用,然后对进行网络搜索。对于EfficientNet-B0网络,在约束条件为

时,分别取1.2,1.1和1.15时效果最佳。第二步是固定,通过复合调整公式对基线网络进行扩展,得到B1到B7网络。于是就有了开头的这一张图片,EfficientNet在ImageNet上的效果碾压,而且模型规模比此前的GPipe小了8.4倍。

在这里插入图片描述

普通人来训练和扩展EfficientNet实在过于昂贵,所以对于我们来说,最好的方法就是迁移学习,稍后我会写一个Pytorch如何使用EfficientNet进行迁移学习的教程:

- END -

往期精彩回顾适合初学者入门人工智能的路线及资料下载机器学习及深度学习笔记等资料打印机器学习在线手册深度学习笔记专辑《统计学习方法》的代码复现专辑
AI基础下载机器学习的数学基础专辑获取一折本站知识星球优惠券,复制链接直接打开:https://t.zsxq.com/662nyZF本站qq群1003271085。加入微信群请扫码进群(如果是博士或者准备读博士请说明):

【论文解读】EfficientNet强在哪里相关推荐

  1. 部署高效及泛化能力强的Osnet论文解读

    Building Computationally Efficient and Well-Generalizing Person Re-Identification Models with Metric ...

  2. 自监督学习(Self-Supervised Learning)多篇论文解读(上)

    自监督学习(Self-Supervised Learning)多篇论文解读(上) 前言 Supervised deep learning由于需要大量标注信息,同时之前大量的研究已经解决了许多问题.所以 ...

  3. 点云配准的端到端深度神经网络:ICCV2019论文解读

    点云配准的端到端深度神经网络:ICCV2019论文解读 DeepVCP: An End-to-End Deep Neural Network for Point Cloud Registration ...

  4. 图像分类:CVPR2020论文解读

    图像分类:CVPR2020论文解读 Towards Robust Image Classification Using Sequential Attention Models 论文链接:https:// ...

  5. CVPR2020论文解读:三维语义分割3D Semantic Segmentation

    CVPR2020论文解读:三维语义分割3D Semantic Segmentation xMUDA: Cross-Modal Unsupervised Domain Adaptation for 3D ...

  6. CVPR2020论文解读:CNN合成的图片鉴别

    CVPR2020论文解读:CNN合成的图片鉴别 <CNN-generated images are surprisingly easy to spot- for now> 论文链接:htt ...

  7. CVPR2020行人重识别算法论文解读

    CVPR2020行人重识别算法论文解读 Cross-modalityPersonre-identificationwithShared-SpecificFeatureTransfer 具有特定共享特征变换 ...

  8. RepVGG:极简架构,SOTA性能,论文解读

    ** RepVGG:极简架构,SOTA性能,论文解读 ** 更新:RepVGG的更深版本达到了83.55%正确率!PyTorch代码和模型已经在GitHub上放出.DingXiaoH/RepVGG 2 ...

  9. ICLR 2019论文解读:量化神经网络

    https://www.toutiao.com/a6701879235964830212/ 今年五月举办 ICLR 2019 会议共接收论文 502 篇,本文将解读其中两篇有关量化神经网络的研究. U ...

  10. 为什么正则化可以起到对模型容量进行控制_论文解读 | 基于正则化图神经网络的脑电情绪识别...

    ©PaperWeekly 原创 · 作者|张玮玮 学校|东北大学硕士生 研究方向|情绪识别 引言论文动机 现有的基于脑电图的情绪识别方法大多不能很好地解决以下三个方面的问题:1. 脑电图信号的拓扑结构 ...

最新文章

  1. 只能看到部分局域网计算机,为什么局域网中只能看到部分电脑
  2. 防火墙冗余-ASA5520 Failover
  3. Linux Unix C 中的curses库——curses.h
  4. Plain text, flat file, 及flat-file database 如何翻译
  5. 数据治理项目失败,90%都是被这29条骚操作搞垮的
  6. ipv4广播地址怎么填_什么是IP地址?IP地址有什么用?网络工程师来告诉你
  7. vue返回上一页面时回到原先滚动的位置
  8. C语言--课程管理信息系统
  9. access做仓库管理
  10. 时间轮python_时间轮定时器的实现(参考Linux源码)
  11. MB/T 2020/4/9-技术创新方法·概述
  12. 花菁染料Cy3.5 炔烃,Cy3.5 alkyne储存条件及光谱特性解析
  13. web前端开发常用的10个高端CSS UI开源框架
  14. Jenkins构建maven项目不执行测试用例的命令
  15. Warpaffine
  16. 使用Packer在Winodws VMware Workstation Pro上自动部署Windows Server 2016中文版
  17. linux打地鼠课程设计,数字电路课程设计打地鼠.doc
  18. 2021年氯化工艺报名考试及氯化工艺考试内容
  19. linux汇编.section与.globl
  20. 基于java的电脑配件报价网站系统

热门文章

  1. 用js实现统计字符串里面的出现次数最多的字符
  2. JS 之 数据类型转换
  3. Struts的MVC和Spring的MVC的区别
  4. java file函数_java File类的使用以及一些函数
  5. python计时器timeit返回秒数_python中的计时器timeit的使用方法
  6. python 办公_python 让办公变得自动化
  7. Image Pro Plus测量组织平均厚度
  8. 【OpenCV入门学习笔记2】:Mat对象
  9. 计算机网络实验二:应用层和传输层网络协议分析
  10. 本工作簿不能再使用其他新字体_1.2.16 EXCEL篇之关于工作表的操作合集