EfficientNet-V1论文阅读笔记

目录

    • EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks
      • 摘要
      • Introduction—简介
      • Compound Model Scaling—混合模型缩放
        • Problem Formulation—范式化问题(理论基础)
        • Scaling Dimensions—维度缩放
        • Compound Scaling—混合缩放
      • EfficientNet Architecture—EfficientNet结构
      • 性能评估
      • 总结

EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks

论文链接:EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks

摘要

(1)本文系统地研究了模型的缩放,并且研究确定通过仔细平衡网络深度、宽度和分辨率可以带来更好的性能。

(2)本文提出了一种新的缩放方法,使用一个简单而高效的复合系数统一缩放深度/宽度/分辨率的所有维度。

(3)本文使用神经结构搜索来设计一个新的基线网络,并将其扩大到获得一个模型系列,称为EfficientNets。

(4)本文在数据集上进行实验,发现均能取得最先进的准确性,而参数却少了一个数量级。

Introduction—简介

在以前的工作中,通常都是在深度,宽度,和图像大小三个维度其中之一进行缩放。任意缩放需要繁琐的人工调参,同时可能产生的是一个次优的精度和效率。

本文通过NAS同时探索深度、宽度、分辨率对性能的影响,之前一般都是对一个维度进行探索。

具体方法是使用一组固定的缩放系数来统一缩放网络的宽度、深度和分辨率

image-20240619145345114

Compound Model Scaling—混合模型缩放

Problem Formulation—范式化问题(理论基础)

假设一个卷积层i 可以被定义为一个函数:Yi = Fi ( Xi )

其中的Xi表示输入的特征图,而Yi是输出特征矩阵,Fi就表示这i层的卷积操作。其中Xi的tensor形状为<Hi ,Wi ,Ci >,其中Hi与Wi为空间维度,Ci为通道维度。

而卷积网络可以由一系列这样的层结构组成:

image-20240619150900342

在实践中,ConvNet层往往被划分为多个阶段,每个阶段的所有层都具有相同的架构。

作者回顾了目前网络设计的套路,总结为以下的公式:

image-20240619150944153

其中,Fi^(Li)为第i阶段重复了Li次的层Fi;其中Xi的tensor形状为< Hi,Wi,Ci >

之前的网络设计注重模块化的设计,也就是对Fi的设计,比如ResNet中的Basic Block和Bottleneck Block。

但分别考虑每个阶段的变化,这个搜索空间无疑太大了,因此作者对整个模型采用一种统一的缩放策略,转化为一个优化问题,如下(d,w,r表示对宽度、深度、分辨率的缩放系数):

image-20240619151103512

Scaling Dimensions—维度缩放

Depth:根据以往的经验,增加网络的深度depth能够得到更加丰富、复杂的特征并且能够很好的应用到其它任务中。但网络的深度过深会面临梯度消失,训练困难的问题。

缩放网络深度是一种常用的提高卷积网络精度的方法,但是由于梯度消失问题,更深层次的网络也更难训练。

Width:小型模型通常使用缩放网络宽度来提取更多的特征,增加网络的width(增加卷积核的个数)能够获得更高细粒度的特征并且也更容易训练,但对于width很大而深度较浅的网络往往很难学习到更深层次的特征。

Resolution:增加输入网络的图像分辨率能够潜在得获得更高细粒度的特征模板,但对于非常高的输入分辨率,准确率的增益也会减小。并且大分辨率图像会增加计算量。

image-20240619151322205

本文第一个结论: 扩大网络宽度、深度或分辨率的任何维度都能提高精确度,但对于更大的模型来说,精确度的提高会减弱。

Compound Scaling—混合缩放

从下图可以看出,对于d和r,单独进行缩放均能提升精度,但是同时进行缩放精度的饱和点更高。

image-20240619151823234

本文第二个结论: 为了追求更好的精度和效率,在连续网络缩放过程中平衡网络宽度、深度和分辨率的所有维度是至关重要的。

基于上述验证,本文提出新的复合尺度方式

该方法利用复合系数φ来均匀尺度网络的宽度、深度和分辨率:

α,β,γ是可以通过小网格搜索确定的常数

φ是一个用户指定的系数,它控制有多少资源可用于模型缩放,而α、β、γ则指定如何将这些额外的资源分别分配给网络宽度、深度和分辨率。

image-20240619152034955

EfficientNet Architecture—EfficientNet结构

EfficientNet-B0

EfficientNet-B0各参数如下表,在 B0 中一共分为 9 个 stage,表中的卷积层都默认后面跟了BN层和Swish激活函数。Stage 1 就是一个 3×3 的卷积层。对于 stage 2 到 stage 8 就是在重复堆叠 MBConv。

Layers表示这一层重复堆叠该结构多少次,比如Stage5表示该层对MBConv6这个结构重复堆叠了三次。

stride表示每个stage中的第一个结构(第一个operator)的stride,其他的stride默认为1。

image-20240619152622471

MBConv 模块

MBConv 模块其实就是mobilenetV3的模块

image-20240619153328790

(1)首先是一个 1×1 卷积用于升维,其输出 channel 是输入 channel 的 n 倍(MBConv6就表示n = 6)。

(2)紧接着通过一个 DW 卷积。

(3)然后通过一个 SE 模块,使用注意力机制调整特征矩阵。

(4)之后再通过 1×1 卷积进行降维。注意这里只有 BN,没有 swish 激活函数(其实就是对应线性激活函数)。

(5)最后跟一个dropout层。

注意:

EfficientNet-B0的stage2中,MBConv1由于n = 1,因此没有升维,是没有这一层的。

第一个1x1卷积、DW后面都是接BN + Swish,而最后的1x1降维卷积是没用激活函数的,要用Identity函数。

这里的Dropout用的是Drop path,而不是传统的Dropout。

关于shortcut连接,当且仅当输入MBConv结构的特征矩阵和输出的特征矩阵的shape相同且DW卷积的stride=1时才使用。

SE模块(与mobilenetV3有些许不同)

第一个全连接层的节点个数是输入该MBConv特征矩阵(上图的输入矩阵)channels的1/4(MobileNetV3中第一个全连接层的节点个数是下图feature map中的1/4),且使用Swish激活函数。

第二个全连接层的节点个数等于Depthwise Conv层输出的特征矩阵channels(执行下图中点×操作),且使用Sigmoid激活函数。

image-20240619153906614

MBConv 模块详细结构图如下

img

性能评估

之前的所有的缩放方法都是以更多的FLOPS为代价来提高准确性,但是本文的复合缩放方法可以进一步提高准确性。

image-20240619154806583

总结

  • 这篇论文是Google在2019年发布的文章,作者系统地研究ConvNet的缩放,并确定仔细平衡网络宽度、深度和分辨率的重要性。
  • 论文最主要的创新点是Model Scaling,作者提出了一种简单而高效的复合缩放方法,使我们能够以更原则(深度、宽度、分辨率,组合起来按照一定规则缩放)的方式轻松地将基线ConvNet缩放到任何目标资源约束,同时保持模型效率。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/742585.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

mysql数据库的管理

MySQL数据库管理 mysql数据文件 存放在初始化时定义的datadir 该目录下放置三种后缀文件 .frm 与表相关的元数据&#xff08;meta&#xff09;&#xff0c;表结构的定义信息等。 .MYD mylSAM存储引擎专用 .MYI mylSAM存储引擎专用 MySQL语言类型 DDL&#xff08;数据定义语言…

ElementUI table的设置成Excel表格效果

实现效果代码最重要的部分 <el-table:data"Commision"border:row-style"{height: 0}":cell-style"{padding: 0 ,lineHeight: 0}":header-cell-style"{padding: 0,height: 0,ineHeight: 0}"><el-col :span"11">&…

生鲜水果行业wordpress主题

水果蔬菜wordpress外贸自建站模板 水果、脐橙、牛油果、菠萝、凤梨、鲜枣、苹果、芒果、瓜果、百香果wordpress外贸独立站模板。 https://www.jianzhanpress.com/?p3932 生鲜wordpress外贸出口网站模板 水果、蔬菜、肉蛋奶、水产、干货等生鲜产品wordpress外贸出口公司网站…

昇思25天学习打卡营第6天 | 函数式自动微分

神经网络的训练主要使用反向传播算法&#xff0c; 模型预测值&#xff08;logits&#xff09;与正确标签&#xff08;label&#xff09;送入损失函数&#xff08;loss function&#xff09;获得loss&#xff0c; 然后进行反向传播计算&#xff0c;求得梯度&#xff08;gradie…

Python Web实战:Python+Django+MySQL实现基于Web版的增删改查

项目实战 1.创建项目(sms) File->New Project->Django 稍等片刻&#xff0c;项目的目录结构如下图 项目创建后确认是否已安装Django和mysqlclient解释器&#xff0c;如何确认&#xff1f;file->Settings 如果没有请在Terminal终端输入以下命令完成安装 pip instal…

用户是如何访问网站的?

由于IP地址不方便记忆并且不能显示地址组织的名称和性质&#xff0c;人们设计出了域名&#xff0c;并通过域名系统&#xff08;DNS&#xff0c;Domain Name System&#xff09;来将域名和IP地址相互映射&#xff0c;使人更方便地访问互联网&#xff0c;而不用去记住能够被机器直…

【Docker】镜像

目录 1. 镜像拉取 2. 镜像查询 3. 镜像导出 4. 镜像上传 5. 镜像打标签 6. 镜像上推 7. 镜像删除 8. 镜像运行及修改 8.1 在registry 节点运行 mariadb 镜像&#xff0c;将宿主机 13306 端口作为容器3306 端口映射 8.2 查看容器ID 8.3 进入容器 8.4 创建数据库xd_d…

openfeign的原理 ????

1、我们使用openfeign调用远程接口就像调用本地方法一样简单。 2、支持spring mvc 注解 3、整合了更多的扩展 &#xff08;请求重试策略、超时控制、请求拦截器&#xff09; 4、open Feign是基于aop的原理&#xff0c;他会通过所加FeignClient的接口&#xff0c;自动拼接接口…

揭秘!今日头条爆款文章打造秘诀:低粉作者如何逆袭,成为流量王者?一文带你掌握!

大家好&#xff0c;我是网创有方的站长&#xff0c;今天特地对某头条作者的优质文章内容做了下分析。欢迎各位共同讨论&#xff0c;如果有什么想法的可以评论区留言或者私信讨论。下面开始咱们的正题&#xff1a; 要想文章写的好&#xff0c;那么首先要先会学习人家的优质作品…

react学习——14react生命周期图(旧)

1、生命周期图 2、单个组件 class Demo extends React.Component{//构造器constructor(props){console.log("count--constructor")super(props)this.state{count: 1}}//组件将要挂载componentWillMount(){console.log("count--componentWillMount")}//组件…

TypeError: compilation.getPathWithInfo is not a function

本地运行&#xff0c;npm run dev 正常启动&#xff0c;当修改内容后保存&#xff0c;出现报错&#xff0c;中断编译。 TypeError: compilation.getPathWithInfo is not a function 项目首次能成功运行&#xff0c;热更新时报错而中断&#xff1b; 参考网上的解决办法&#x…

linux rocky9.2系统搭建sqle数据库审核平台

文章目录 前言一、环境准备?二、开始部署前言 关于SQLE SQLE 是由上海爱可生信息技术股份有限公司 开发并开源,支持SQL审核、索引优化、事前审核、事后审核、支持标准化上线流程、原生支持 MySQL 审核且数据库类型可扩展的 SQL 审核工具。 产品特色 支持通过插件的形式扩展…

什么牌子的开放式耳机好?五大优质机型,新手必看!小白闭眼入系列

音乐技术的不断进步为耳机市场的发展有了更多的选择&#xff0c;开放式耳机成为音乐爱好者们新的一个选择。从最初的基础音质到如今的高解析度音频&#xff0c;开放式耳机经历了一次次的技术革新和升级。这类耳机以开放式不入耳的设计&#xff0c;舒适的佩戴体验著称&#xff0…

动作捕捉与数字人实训室,引领动漫专业创新发展

如今&#xff0c;随着全身动作捕捉设备在动漫行业中的应用越来越重要&#xff0c;传统的教学模式与市场需求逐渐脱节&#xff0c;原有的教学方式和思路急需进行调整。高校通过搭建动作捕捉与数字人实训室&#xff0c;可以使得教学质量和效率大大提升&#xff0c;让学生能够接触…

python-九九乘法表(对齐式1)

[题目描述] 输出九九乘法表&#xff0c;输出格式见样例。输入格式&#xff1a; 无输出格式&#xff1a; 输出乘法表&#xff0c;对齐方式见样例输出。样例输入 无样例输出 来源/分类&#xff08;难度系数&#xff1a;一星&#xff09; 完整代码展示&#xff1a; #对齐式1 a[] …

C#的无边框窗体项目模板 - 开源研究系列文章

继续整理和编写代码及博文。 这次将笔者自己整理的C#的无边框窗体项目的基本模板进行总结&#xff0c;得出了基于C#的.net framework的Winform的4个项目模板&#xff0c;这些模板具有基本的功能&#xff0c;即已经初步将代码写了&#xff0c;直接在其基础上添加业务代码即可&am…

【Windows】JetBrains家族软件介绍

软件介绍 JetBrains是一家知名的软件开发工具公司&#xff0c;提供一系列高效的集成开发环境&#xff08;IDE&#xff09;和其他开发工具。以下是JetBrains的一些主要软件及其功能介绍&#xff1a; 集成开发环境&#xff08;IDE&#xff09; IntelliJ IDEA 用途&#xff1a…

基于轨迹加权的混合离线强化学习数据集

写在前面&#xff1a; 这篇论文阅读已经同步到我的博客网站&#xff0c;若需更优的阅读体验&#xff0c;请前往https://mainjaylai.github.io/Blog/blog/paper/trajectory-dataset进行浏览 摘要 大多数离线强化学习&#xff08;RL&#xff09;算法通过最大化目标策略的期望性…

证件照制作工具有哪些?分享当下热门的证件照制作工具

无论是考证、出国旅游还是应聘&#xff0c;一张符合标准的证件照成了必备之物。 如果手头的证件照尺寸不符合要求&#xff0c;不必惊慌&#xff0c;现在有多种证件照制作软件可以帮助你迅速解决问题。 今天&#xff0c;本文就为大家分享几个证件照制作教程&#xff0c;让你的…

深度解析SD-WAN在企业组网中的应用场景

在现代企业快速发展的网络环境中&#xff0c;SD-WAN技术不仅是实现企业各站点间高效连接的关键&#xff0c;也是满足不同站点对互联网、SaaS云应用和公有云等多种业务需求的理想选择。本文将从企业的WAN业务需求出发&#xff0c;对SD-WAN的组网场景进行全面解析&#xff0c;涵盖…