一、本文介绍
本文记录的是基于 EfficientNet v2 的 YOLOv11 轻量化改进方法研究。EfficientNet v2
针对EfficientNet v1
存在的训练瓶颈,如大图像尺寸训练慢、早期深度卷积层速度慢以及等比例缩放各阶段非最优等情况进行改进,以实现训练速度快、参数效率高和泛化能力好的优势,将其应用到YOLOv11
中有望提升模型整体性能,在保证精度的同时降低模型复杂度和训练时间。
本文在替换骨干网络中配置了原论文中的efficientnet_v2_s
、efficientnet_v2_m
、efficientnet_v2_l
和efficientnet_v2_xl
四种模型,以满足不同的需求。
模型 | 参数量 | 计算量 | 推理速度 |
---|---|---|---|
YOLOv11m | 20.0M | 67.6GFLOPs | 3.5ms |
Improved | 19.3M | 53.3GFLOPs | 1.9ms |
专栏目录:YOLOv11改进目录一览 | 涉及卷积层、轻量化、注意力、损失函数、Backbone、SPPF、Neck、检测头等全方位改进
专栏地址:YOLOv11改进专栏——以发表论文的角度,快速准确的找到有效涨点的创新点!
二、EfficientNet v2详解
EfficientNetV2: Smaller Models and Faster Training
2.1 出发点
2.1.1 训练效率问题
在深度学习中,随着模型和数据规模的增大,训练效率愈发关键。例如,GPT - 3 虽然展现出强大的少样本学习能力,但训练需要耗费大量时间和资源,难以重新训练或改进。EfficientNet v2 旨在提高训练速度的同时保持参数效率,为此对 EfficientNet(v1)的训练瓶颈进行了系统研究,发现了几个关键问题:
- 大图像尺寸训练慢:
EfficientNet
的大图像尺寸导致显著的内存使用,由于 GPU/TPU 总内存固定,不得不使用较小的批量大小进行训练,从而大幅减慢训练速度。 - 早期深度卷积层速度慢:
EfficientNet
中广泛使用的深度卷积在早期层中速度较慢,尽管其参数和 FLOPs 比常规卷积少,但不能充分利用现代加速器。 - 等比例缩放各阶段非最优:
EfficientNet
使用简单的复合缩放规则等比例缩放所有阶段,然而不同阶段对训练速度和参数效率的贡献并不相同,且激进地增大图像尺寸会导致内存消耗大和训练慢。2.2 结构原理
2.2.1 融合模块(Fused - MBConv)的使用
基于对训练瓶颈的分析,EfficientNet v2
的搜索空间引入了新的操作,如Fused - MBConv
。
它用单个常规conv3x3
替换了MBConv
中的 depthwise conv3x3 和 expansion conv1x1
。通过在 EfficientNet - B4 中逐步用 Fused - MBConv 替换原始 MBConv 的实验发现,在早期阶段(1 - 3 阶段)替换可以提高训练速度且参数和 FLOPs 增加较少,但全部替换(1 - 7 阶段)会显著增加参数和 FLOPs 并减慢训练,因此需要找到两者的最佳组合,这促使使用神经架构搜索来自动寻找。
2.2.2 训练感知的 NAS 和缩放策略
NAS 搜索:训练感知的NAS框架旨在联合优化现代加速器上的准确性、参数效率和训练效率。
- 以EfficientNet为骨干网络,搜索空间是基于阶段的分解空间,包括
卷积操作类型({MBConv, Fused-MBConv})
、层数
、核大小({3x3, 5x5})
、扩展比({1, 4, 6})
等设计选择。通过减少不必要的搜索选项和重用骨干网络的通道大小来缩小搜索空间,然后在与EfficientNetB4
大小相当的更大网络上应用强化学习或随机搜索,采样多达1000个模型并每个模型训练约10个周期,搜索奖励结合了模型准确性、归一化训练步长时间和参数大小。
- 以EfficientNet为骨干网络,搜索空间是基于阶段的分解空间,包括
EfficientNet v2 架构特点
- 在早期层广泛使用
MBConv
和Fused - MBConv
;MBConv
倾向于使用更小的扩展比以减少内存访问开销;倾向于使用更小的 3x3 核大小,并通过增加更多层来补偿较小核尺寸导致的感受野减小; - 完全移除了原始
EfficientNet
中的最后一个stride-1阶段,可能是由于其较大的参数大小和内存访问开销。 - 以
EfficientNet v2-S
为例,其架构中不同阶段的操作、步长、通道数和层数都有特定的设置。
- 在早期层广泛使用
缩放策略:通过类似的复合缩放方法将
EfficientNet v2-S
扩展为EfficientNet v2-M/L
,并进行了一些优化,如限制最大推理图像尺寸为480以避免内存和训练速度开销过大,以及逐渐向后阶段添加更多层来增加网络容量而不增加太多运行时开销。2.3 优势
- 训练速度快:通过训练感知的NAS和缩放,
EfficientNet v2
相比之前的模型训练速度大幅提高。 - 参数效率高:在保持较高准确性的同时,
EfficientNet v2
的参数规模相比之前的模型大幅减小。 - 泛化能力好:在 CIFAR - 10、CIFAR - 100、Flowers 和 Cars 等迁移学习数据集上的实验表明,
EfficientNet v2
模型相比之前的 ConvNets 和 Vision Transformers 表现更好,具有良好的泛化能力。
论文:https://arxiv.org/pdf/2104.00298
源码:https://github.com/google/automl/tree/master/efficientnetv2
三、实现代码及YOLOv11修改步骤
模块完整介绍、个人总结、实现代码、模块改进、二次创新以及各模型添加步骤参考如下地址: