学习笔记——EffcientNetV2

devtools/2024/9/21 13:31:34/

EffcientNetV2: Smaller Models and Faster Training

EfficientNetV2:更小的模型和更快的训练

论文地址: https://arxiv.org/abs/2104.00298

本文介绍了 EfficientNetV2,这是一个新的卷积网络系列,与以前的模型相比,它具有更快的训练速度和更好的参数效率。

1、前言

EfficientNetV2是谷歌的MingxingTan与Quov V.Le对EfficientNet的一次升级,旨在保持参数量高效利用的同时尽可能提升训练速度。在EfficientNet的基础上,使用训练感知神经架构搜索NAS和缩放技术来优化训练速度和参数效率,然后从富含 Fused-MBConv 等新操作的搜索空间中搜索得到的;同时结合一种改进的渐进式学习方法,它会根据图像大小自适应调整正则化。两种改进的组合得到了本文的EfficientNetV2,它在多个基准数据集上取得了SOTA性能,且训练速度更快。在 ImageNet ILSVRC2012 上实现了 87.3% 的 top-1 准确率,比最近的 ViT 准确率高出 2.0%,同时使用相同的计算资源训练速度提高了 5 倍至 11 倍。

作者指出,可以通过在训练过程中逐渐增加图像大小来进一步加快训练速度,但这通常会导致准确性下降。 为了弥补这种准确性下降,我们提出了一种改进的渐进式学习方法,该方法可以根据图像大小自适应调整正则化(例如数据增强)。

作者认为,对不同的图像尺寸保持相同的正则化并不理想:对于同一个网络,小图像尺寸导致网络容量小,因此需要弱正则化; 反之亦然,大图像尺寸需要更强的正则化来对抗过度拟合。 基于这种见解,作者提出了一种改进的渐进式学习方法:在早期训练时期,我们用小图像尺寸和弱正则化(例如,dropout和数据增强)来训练网络,然后我们逐渐增加图像尺寸并添加更强的正则化 。 基于渐进调整大小,但通过动态调整正则化,我们的方法可以加快训练速度,而不会导致准确性下降。

2、EfficientNet 的训练瓶颈

1、Training with very large image sizes is slow:使用大尺寸图像进行训练速度很慢,于是作者在训练期间逐步调整图像大小和正则化。

2、Depthwise convolutions are slow in early layers but ef-fective in later stages:深度卷积在早期层很慢,但在后期很有效

EfficientNet 的另一个训练瓶颈就来自于广泛的深度卷积。 深度卷积比常规卷积具有更少的参数和 FLOP,但它们通常无法充分利用现代加速器,所以就有了Fused-MBConv,它能更好地利用移动或服务器加速器。

当在早期阶段 1-3 中应用时,FusedMBConv 可以提高训练速度,参数和 FLOP 的开销很小,但如果将 Fused-MBConv 替换所有MBConv(阶段 1-7),那么它会显着增加参数和 FLOP,同时也会降低训练速度。 因此,找到 MBConv 和 Fused-MBConv 这两个构建模块的正确组合并非易事,于是作者利用了神经架构搜索来自动搜索最佳组合。下表是用 Fused-MBConv 替换 MBConv,No fused 表示所有阶段都使用 MBConv,Fused stage1-3 表示在阶段 {2,3,4} 中将 MBConv 替换为 Fused-MBConv。

Fused-MBConv

它将 MBConv中的 升维 conv1x1和depthwise_conv3x3 替换为单个普通的 conv3x3

3、Equally scaling up every stage is sub-optimal:同样扩大每个阶段的规模并不是最优的办法

作者使用非均匀缩放策略在后期逐渐添加更多层。 此外,EfficientNets 会大幅扩大图像尺寸,导致内存消耗大、训练速度慢。 为了解决这个问题,作者稍微修改了缩放规则,并将最大图像尺寸限制为较小的值(480像素)。

3、EfficientNetV2 与V1 的主要区别

(1) 第一,EfficientNetV2 在早期层广泛使用 MBConv 和 Fused-MBConv。

(2) 第二,EfficientNetV2 更喜欢 MBConv 的较小扩展比,因为较小的扩展比往往具有较少的内存访问开销。

(3) 第三,EfficientNetV2 更喜欢较小的3x3内核尺寸,但它增加了更多层来补偿较小内核尺寸导致的感受野减小。

(4) 第四,EfficientNetV2 完全删除了原始 EfficientNet 中的最后一个 stride=1 的阶段,这可能是由于其较大的参数大小和内存访问开销。

卷积神经网络中,步幅为1意味着卷积核在进行卷积操作时,每次移动一个像素的距离。这通常用于减少特征图(feature map)的尺寸,同时增加参数的数量,因为需要更多的卷积核来覆盖整个特征图。

作者发现,原始EfficientNet模型中的最后一个步幅为1的阶段虽然增加了模型的参数量,但同时也带来了较大的内存访问开销。换句话说,这个额外的阶段增加了模型的大小和复杂度,但可能并没有带来与之相称的性能提升。因此,为了提高参数效率和减少内存使用,在V2的设计中选择去掉了这个部分。

简而言之,作者在权衡模型性能和效率后决定牺牲这个可能带来额外计算负担的阶段,以实现更高效的模型设计。这种设计选择反映了EfficientNetV2在追求更快训练速度和更好参数效率的目标。

4、EfficientNetV2-S模型结构

5、在ImageNet ILSVRC2012(1000 个类别)上的结果

EfficientNetV2-m 实现了与 EfficientNet-B7 相当的精度,同时使用相同的计算资源训练速度提高了 11 倍。

EfficientNetV2 模型在准确性和推理速度方面也显着优于所有最新的 RegNet 和 ResNeSt。

EfficientNetV2-L 实现了 85.7% 的 top-1 准确率,超过了 ViT-L/16(21k)。

6、在ImageNet21k(21,841 个类别)上的结果

在 ImageNet21k 上进行预训练,并在 ImageNet ILSVRC2012 上进行微调。与 ViT-L/16(21k) 相比,EfficientNetV2L(21k) 将 top-1 准确率提高了 1.5%(85.3% vs. 86.8%),使用的参数减少了2.5倍,FLOP 次数减少了3.6倍,同时运行速度提高了6倍,训练和推理速度提高7倍。

7、总结

在我的实际使用中,EfficientNetv2效果确实非常好,优于Vision Transformer、ResNet、DenseNet这些网络,略逊于Swin Transformer。需要注意的一点是,虽然EfficientNetv2-s模型大小只有82.6MB,ResNet34模型大小83.2MB,两者从模型大小上相差不大, 但是EfficientNetv2-s的计算复杂度远远高于ResNet34,相同的内存、显存、数据集和参数,ResNet34可以使用32的batchsize,而EfficientNetv2-s只能为8。


http://www.ppmy.cn/devtools/115017.html

相关文章

PHP基础语法入门指南

前言 PHP(Hypertext Preprocessor)是一种广泛使用的开源服务器端脚本语言,特别适合Web开发,并可以嵌入到HTML中使用。PHP能够执行动态内容、创建交互式的Web页面、与数据库进行通信等。本文将带领你走进PHP的世界,从最…

Python计算机视觉编程 第十章 OpenCV

目录 OpenCV的Python接口OpenCV基础知识读取和写入图像颜色空间显示图像及结果 处理视频视频输入将视频读取到NumPy数组中 跟踪光流Lucas-Kanade算法 OpenCV的Python接口 目前,OpenCV 的Python 接口仍在发展,不过并不是所有的OpenCV组件都提供了相应的P…

学习笔记缓存篇(一)

1、如何解决热key 1、本地缓存 采用本地缓存的优点在于简单,扩容方便。但是会带来一致性的问题。 2、离散热点key 做法:结合当前节点的ip或者机器的MAC地址去得出一个固定值拼接在key后面。访问时也是根据key,到后端固定的edis上。 优点&…

了解深度学习,张量,线性代数,激活函数的概念

在人工智能领域,尤其是深度学习中,张量和线性代数是不可或缺的数学工具。这些数学知识的应用主要体现在以下几个方面: 数据表示与运算:张量是多维数组,用于表示和存储数据。在深度学习中,大部分的数据和权重…

动手学深度学习(pytorch)学习记录31-批量规范化(batch normalization)[学习记录]

目录 批量规范化(batch normalization)从头开始实现一个具有张量的批量规范化层简明实现 批量规范化(batch normalization) 可持续加速深层网络的的收敛速度。再结合残差块,批量规范化使得研究人员可以训练100层以上的…

【数据结构】排序算法---快速排序

文章目录 1. 定义2. 算法步骤3. 动图演示4. 性质5. 递归版本代码实现5.1 hoare版本5.2 挖坑法5.3 lomuto前后指针 6. 优化7. 非递归版本代码实现结语 1. 定义 快速排序是由东尼霍尔所发展的一种排序算法。在平均状况下,排序 n 个项目要 O ( n l o g n ) Ο(nlogn) …

抓机遇,促发展——2025第十二届广州国际汽车零部件加工技术及汽车模具展览会

新能源时代,电动化、智能化正在重塑全球汽车市场格局。中国自主品牌新能源汽车的市占率不断提升、头部效应初显,更有机会带动相关供应链企业成长。中国的零部件企业有望抓住变局下的机会,在新一轮竞争中崛起。 智能电动车时代,汽车…

第一篇-基础-第三章-SpringBoot基础

3.1-常用注解和SpringBootApplication标注分析 注解与业务逻辑无关,也不是程序本身,但可以对程序做出解释,程序中的类/方法/变量/参数/包等都可以被注解,完成编译检查工作,减少配置,减少重复工作等等。 常用注解 注解 标注位置 功能 Autowired 成员变量 自动注入依赖 B…