EfficientNet-V2论文阅读笔记

目录

    • EfficientNetV2: Smaller Models and Faster Training
      • 摘要
      • Introduction—简介
      • Related work—相关工作
      • EfficientNetV2 Architecture Design—高效EfficientNetV2架构设计
        • Understanding Training Efficiency—了解训练效率
        • Training-Aware NAS and Scaling—训练感知NAS和缩放
        • EfficientNetV2 Architecture—EfficientNetV2 体系结构
        • Progressive Learning—渐进式学习
        • Stochastic Depth(dropout)
      • 总结

EfficientNetV2: Smaller Models and Faster Training

论文链接:EfficientNetV2: Smaller Models and Faster Training

该网络主要使用训练感知神经结构搜索缩放的组合;在EfficientNetV1的基础上,引入了Fused-MBConv到搜索空间中;引入渐进式学习策略自适应正则强度调整机制使得训练更快;进一步关注模型的推理速度训练速度

摘要

(1)本文使用训练感知神经结构搜索(training-aware NAS)和缩放的组合,以共同优化训练速度和参数效率

(2)从空间搜索领域引入新的操作:Fused-MBConv优化模型

(3)提出了一种改进的渐进式学习方法,它自适应地调整正则化(如dropout和数据增强)以及图像大小,用来加速训练过程

(4)实验表明,EfficientNetV2模型的训练速度比最先进的模型快得多,但参数量小6.8倍

Introduction—简介

之前有关训练效率的工作

  • NFNets: 去除批量归一化

  • 添加注意力机制

  • Vision Transformers: 使用Transformer块

之前的不足

这些方法在大参数规模上往往伴随着大量的参数计算

EfficientNet v1的不足

(1)输入分辨率大时训练比较慢

(2)深度depth-wise卷积在网络浅层中比较慢

(3)用同样的缩放系数缩放网络的每个stage是次优的

本文采用的方法

(1)作者设计了一个包含额外算子ops如Fused-MBConv的搜索空间,并应用训练感知training-aware的NAS和缩放scaling来联合优化模型精度、训练速度和参数大小。

(2)本文还提出了一种改进的渐进式训练progressive learning方法:在训练的早期用较小的输入和较弱的正则化,随着训练的进行,逐渐增大输入分辨率和正则化的强度。

本文主要贡献

(1)本文提出了EfficientNet V2,一个更小更快的模型,基于training-aware NAS和scaling,EfficientNetV2在训练速度和参数效率方面都优于之前的模型。

(2)本文提出了一种改进的渐进式训练方法,它自适应的调整正则化和输入大小,通过实验证明该方法既加快了训练速度,同时也提高了准确性。

(3)EfficientNetV2结合改进的渐进式训练方法,在ImageNet、CIFAR、Cars、Flowers数据集上,比之前的模型训练速度最高提升了11倍,参数效率最高提升了6.8倍。

Related work—相关工作

Training and parameter efficiency—训练和参数效率

  • 以较少的参数实现更高的精度: DenseNet和EfficientNet
  • 侧重于GPU和/或TPU推理速度: RegNet、ResNeSt、TResNet和EfficientNet-X
  • 专注于提高训练速度: NFNET和BoTNets

Progressive training—渐进式训练

先前研究的渐进式训练:GANs、迁移学习、对抗性学习和语言模型

本文方法:本文主要通过自适应地调整正则化,提高训练速度和精度。同时也通过增加更多的正则化来逐渐增加学习难度,但没有选择性地选择训练示例。

Neural architecture search (NAS)—神经架构搜索

本文使用NAS优化训练效率和参数效率

EfficientNetV2 Architecture Design—高效EfficientNetV2架构设计

Understanding Training Efficiency—了解训练效率

Training with very large image sizes is slow—使用非常大的图像大小进行训练的速度很慢

存在的问题: 训练图像的尺寸很大时,训练速度非常慢

本文方法: 降低训练图片尺寸,加快训练速度的同时还可以使用更大的 batch_size。

image-20240619211129235

Depthwise convolutions are slow in early layers but ef- fective in later stages—深度卷积在早期阶段较慢,但在后期阶段有效

DW 卷积在现有的硬件下是无法利用很多加速器的,所以实际使用起来并没有想象中那么快(虽然DW理论上计算量很小)。

引入Fused-MBConv,结构如下图就是把EfficientNetV1的MBConv 模块的conv1×1和dw conv 用conv3×3替换

image-20240619211450501

替换后的结果从下表可以看出,用Fused-MBConv替换stage1-3或者stage1-5,精度提升的同时训练速度也有所提升。

但如果用Fused-MBConv替换stage1-7所有模块,不仅会导致参数和FLOPs会增加(这两个指标怎样替换都会增加,从下表可看出),同时训练速度也会降低。

image-20240619211741025

本文目标: 找到MBConv和Fused-MBConv这两个模块的正确组合

本文方法: 使用 NAS 技术进行搜索,将前三个 MBConv 用Fused-MBConv进行替换

Equally scaling up every stage is sub-optimal—对每个阶段做相同的扩展是次优的

之前的问题:

(1)在 EfficientNetV1 中每个 stage 的深度和宽度都是同等放大的。也就是直接简单粗暴的乘上宽度和深度缩放因子就行了,但是不同 stage 对于网络的训练速度,参数量等贡献并不相同。

(2)EfficientNet的采用大尺寸图像导致大计算量、训练速度降低问题。

本文方法:

(1)采用非均匀缩放策略对后面的stage添加更多的层。(每个stage的缩放因子是不同的)

(2)对缩放规则进行了轻微调整并将最大图像尺寸限制在一个较小的数值。

Training-Aware NAS and Scaling—训练感知NAS和缩放

NAS Search—NAS搜索

目的:联合优化精度、参数效率和现代加速器的训练效率

本文使用的方法:

(1)使用EfficientNet作为主干。搜索空间是一个类似于EfficientNet v1的基于阶段的因式分解空间(stage-based factorized space),

(2)这里进行网络搜索的单元是stage,其中的搜索空间包括:卷积模块的类型(MBConv或Fused-MBConv),stage中layer的数量,卷积kernel的大小3或5,膨胀系数[1,4,6]。

减少了搜索空间的大小的方法:

(1)移除了诸如pooling skip这类非必要的op,因为这类op在EfficientNet中就没有存在

(2)重用EfficientNet中搜索的到的channel数

公式:使用简单加权乘积 image-20240619212619173

其中,w = -0.07和v = -0.05(经验所得)

EfficientNetV2 Architecture—EfficientNetV2 体系结构

image-20240619215226923

与V1的不同:

(1)除了使用 MBConv 之外还使用了 Fused-MBConv 模块,加快训练速度与提升性能

(2)使用较小的 expansion ratio (之前都是6),从而减少内存的访问量

(3)趋向于选择kernel大小为3的卷积核,但是会增加多个卷积用以提升感受野,( V1 中有 5 × 5 )

(4)移除了最后一个stride为1的stage,从而减少部分参数和内存访问

Fused-MBConv模块

当expansion ratio = 1 时,图中conv1 × 1 这一层是没有的。

注意:无论是expansion ratio是否等于1,无论是Fused-MBConv模块还是MBConv模块,dropout和shortcut都是同生共死的,即有shortcut才需要dropout,而shortcut需要channel一致才能执行。

image-20240619220841858

EfficientNetV2 Scaling—EfficientNetV2缩放

作者在EfficientNetV2-S的基础上采用类似EfficientNet的复合缩放,并添加几个额外的优化,得到EfficientNetV2-M/L。

额外的优化描述如下:

(1)限制最大推理图像尺寸为480

(2)在网络的后期添加更多的层提升模型容量且不引入过多耗时

Progressive Learning—渐进式学习

实验探究

当用不同的图像尺寸进行训练时,也应该相应地调整正则化强度(而不是像以前的工作那样使用固定的正则化)

下表就是用同一网络,以不同的输入大小和不同的正则强度进行训练的结果,可以看出需要一起进行共同调整,提高饱和点。

image-20240619232320117

结论:

(1)即使是相同的网络,较小的图像尺寸会导致较小的网络容量,因此需要较弱的正则化

(2)反之,较大的图像尺寸会导致更多的计算,而容量较大,因此更容易出现过拟合

(3)当图像大小较小时,弱增强的精度最好;但对于较大的图像,更强的增强效果更好

Progressive Learning with adaptive Regularization—自适应正则化的渐进学习

训练早期使用较小的训练尺寸以及较弱的正则方法weak regularization,这样网络能够快速的学习到一些简单的表达能力。接着逐渐提升图像尺寸,同时增强正则方法adding stronger regularization。这里所说的regularization包括Dropout,RandAugment以及Mixup。

image-20240619232502587

它从较小的图像大小和弱正则化(epoch=1)开始,然后随着图像大小和强正则化逐渐增加学习难度:dropout rate较大,RandAugment幅度较大,mixup ratio(如epoch=300)较大。

渐进式学习策略可以抽象成了一个公式来设置不同训练阶段使用的训练尺寸以及正则化强度。

以下算法1总结了过程:

image-20240619233041457

image-20240619233141982

下表给出了EfficientNetV2(S,M,L)三个模型的渐进学习策略参数,Image Size越大其他参数也需要适当进行增大。

image-20240619233802603

Stochastic Depth(dropout)

论文链接:Deep Networks with Stochastic Depth

从下图可知,每一层都当作一个残差结构,通过存活率来控制,存活率是递减的,开始为1.0,存活时该层为active,失活时该层为inactive,相当于输入就是输出,没有这一层,因此该网络的深度是随机的

在EfficientNetV2的dropout中也是这种原理,但是不是通过存活率控制,而是用drop_prob(失活率)控制,drop_prob在0 - 0.2之间。

优点:提升训练速度,小幅提升准确率。

注意:EfficientNetV2中,这里的dropout层仅指Fused-MBConv模块以及MBConv模块中的dropout层,不包括最后全连接前的dropout层。

image-20240619220131617

总结

本文是EfficientNet原作者对其进行的一次升级,旨在保持参数量高效利用的同时尽可能提升训练速度。

作者系统性的研究了EfficientNet的训练过程,并总结出了三个问题:

  1. 训练图像的尺寸很大时,训练速度非常慢
  2. 在网络浅层中使用Depthwise convolutions速度会很慢
  3. 同等的放大每个阶段是次优的

在EfficientNet的基础上,引入了Fused-MBConv到搜索空间中;同时为渐进式学习引入了自适应正则强度调整机制,两种改进的组合得到了EfficientNetV2。

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

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

相关文章

Leetcode3190. 使所有元素都可以被 3 整除的最少操作数

Every day a Leetcode 题目来源:3190. 使所有元素都可以被 3 整除的最少操作数 解法1:遍历 遍历数组,累加最少操作数,即 min(num % 3, 3 - num % 3)。 代码: /** lc appleetcode.cn id3190 langcpp** [3190] 使所…

自媒体常用的高清素材网站有哪些?自媒体必备的素材网站库分享

在自媒体时代,拥有高质量的素材库对创作者来说至关重要。素材的高清晰度、多样性和易用性可以显著提升你的内容吸引力和专业感。今天,我们就来探讨一些对自媒体创作者非常有用的高清素材网站。 蛙学网:自媒体创作者的理想选择 蛙学网为自媒体…

五、Spring IoCDI ★ ✔

5. Spring IoC&DI 1. IoC & DI ⼊⻔1.1 Spring 是什么?★ (Spring 是包含了众多⼯具⽅法的 IoC 容器)1.1.1 什么是容器?1.1.2 什么是 IoC?★ (IoC: Inversion of Control (控制反转))总…

将深度相机的实时三维坐标数据保存为excel文档

一、如何将数据保存为excel文档 1.excel文件库与相关使用 (1)导入相应的excel文件库,导入前先要进行pip安装,pip install xlwt import xlwt # 导入用于创建和写入Excel文件的库 (2) 建立一个excel文档,并在第0行写…

51单片机STC89C52RC——12.1 数据存储芯片AT24C02

目的/效果 利用存储芯片AT24C02存储数据,LCD1602显示存储的数据。 一,STC单片机模块 二,AT24C02存储芯片 2.1 介绍 AT24C02是一个2K位串行CMOS E2PROM,内部含有256个8位字节,采用先进CMOS技术实质上减少了器件的功…

什么是中断?---STM32篇

目录 一,中断的概念 二,中断的意义 三,中断的优先级 四,中断的嵌套 如果一个高优先级的中断发生,它会立即打断当前正在处理的中断(如果其优先级较低),并首先处理这个高优…

【SGX系列教程】(五)Intel-SGX 官方示例分析(SampleCode)——RemoteAttestation

文章目录 一.RemoteAttestation原理介绍1.1 远程认证原理1.2 远程认证步骤1.3 远程认证基本流程1.4 IAS通过以下步骤验证报告的签名1.5 关键术语1.6 总结二.源码分析2.1 README2.1.1 README给出的编译流程2.2 重点代码分析2.2.0 主要代码模块交互流程分析2.2.1 isv_app文件夹2.…

RAG 基本流程及处理技巧 with LangChain

LLM 主要存在两个问题:幻想和缺乏领域知识。领域知识缺乏的原因是因为训练 LLM 本身的知识更新慢,对特定领域的知识也没有太细致的输入。 RAG 主要是解决 LLM 缺乏领域知识的问题。底层的逻辑是:把 LLM 作为逻辑推理引擎,而不是信…

小白学webgl合集-WebGL中给图片添加背景

一.实现效果 二.逻辑 为了在WebGL中给图片添加背景&#xff0c;主要的逻辑步骤包括初始化WebGL上下文、编写和编译着色器、创建和绑定缓冲区、加载和配置纹理以及绘制场景。以下是代码逻辑的详细说明&#xff1a; 1. 获取WebGL上下文 首先&#xff0c;通过获取<canvas>…

ArtTS语言基础类库内容的学习(2.10.1)

上篇回顾&#xff1a; ArkTS开发系列之Web组件的学习&#xff08;2.9&#xff09; 本篇内容&#xff1a;ArtTS语言基础类库-异步同步并发内容的学习(2.10.1&#xff09; 一、知识储备 1. 异常并发 Promise和Async/await提供异步并发能力&#xff0c;是标准的JS异步语法 Pr…

【王佩丰 Excel 基础教程】第一讲:认识Excel

文章目录 前言一、Excel软件简介1.1、历史上的其他数据处理软件与 Microsoft Excel1.2、Microsoft Excel 能做些什么1.3、Excel 界面介绍 二、Microsoft Excel 的一些重要概念2.1、Microsoft Excel 的几种常见文件类型2.2、工作簿、工作表、单元格. 三、使用小工具&#xff1a;…

基于Spring Boot的药房信息管理系统

1 项目介绍 1.1 研究的背景及意义 随着社会的飞速进步和药房行业竞争的白热化&#xff0c;传统的手工管理模式已难以适应药房信息管理的现代化需求。在计算机科学技术日臻完善的背景下&#xff0c;药房信息管理者们日益认识到运用计算机技术进行信息管理的迫切性和重要性。计…

黑马苍穹外卖8 Spring Task+WebSocket 来单提醒和客户催单

Spring Task Spring提供的任务调度工具&#xff0c;按照约定时间自动执行代码。【以前的都是基于请求(http)响应的】 cron表达式 通过cron表达式可以定义任务触发时间。 cron表达式生成器 &#xff08;1&#xff09;导入spring-context &#xff08;2&#xff09;EnableSc…

[OtterCTF 2018]Graphic‘s For The Weak

恶意软件的图形中有些可疑之处。 软件图形 &#xff1f;&#xff1f;&#xff1f;这里的恶意文件都是 vmware-tray.ex使用procdump转存进程的可执行文件 &#xff08;可执行的&#xff09;导出了 &#xff0c;看文件里面是否存在 图片 volatility.exe -f .\OtterCTF.vmem --pro…

Day38:LeedCode 1049. 最后一块石头的重量 II 494. 目标和 474.一和零

1049. 最后一块石头的重量 II 有一堆石头&#xff0c;用整数数组 stones 表示。其中 stones[i] 表示第 i 块石头的重量。 每一回合&#xff0c;从中选出任意两块石头&#xff0c;然后将它们一起粉碎。假设石头的重量分别为 x 和 y&#xff0c;且 x < y。那么粉碎的可能结果…

Linux - 记一次某Java程序启动报错(申请内存失败)

文章目录 问题可能原因分析可能原因分析尝试各种解决方案尝试解决过程 解决办法&#xff1a; 调整 overcommit_meory参数overcommit_memory详解什么是 overcommit_memory&#xff1f;overcommit_memory 的选项及其含义配置 overcommit_memory查看当前设置设置 overcommit_memor…

# linux 系统中,使用 “ ll “ 命令报错 “ bash ll command not found “ 解决方法:

linux 系统中&#xff0c;使用 " ll " 命令报错 " bash ll command not found " 解决方法&#xff1a; 一、错误描述&#xff1a; 报错原因&#xff1a; 1、这个错误表明你尝试在 bash shell 中执行 ll 命令&#xff0c;但是系统找不到这个命令。ll 通常…

Nvidia显卡GeForce Experience录屏操作流程

安装软件 首先我们从英伟达官网下载GeForce Experience程序&#xff0c;安装在电脑中GeForce Experience&#xff08;简称 GFE&#xff09;自动更新驱动并优化游戏设置 | NVIDIA 登录软件 安装完成后登录 开启录屏功能 登录后点击右上角的设置&#xff08;小齿轮图标&#x…

接口自动化测试关联token的方法?

引言&#xff1a; 在接口自动化测试中&#xff0c;有时候我们需要关联token来进行身份验证或权限管理。本文将从零开始&#xff0c;介绍如何详细且规范地实现接口自动化测试中token的关联。 步骤一&#xff1a;准备工作 在开始之前&#xff0c;我们需要确保以下准备工作已完成…

UE5(c++)demo开发日志(1):Actor类添加

工具---新建c类---选用Actor&#xff0c;创造出头文件(.h&#xff0c;用于声明变量、函数、重写父类函数等)和源文件(.cpp&#xff0c;涉及到具体功能实现)&#xff0c;客户端界面成功显示出来新建类&#xff1a; Actor头文件默认方法简介&#xff1a; UCLASS(): ue提供的宏&a…