YOLOv11改进策略【模型轻量化】| 替换华为的极简主义骨干网络:VanillaNet

简介: YOLOv11改进策略【模型轻量化】| 替换华为的极简主义骨干网络:VanillaNet

一、本文介绍

本文记录的是基于VanillaNet的YOLOv11轻量化改进方法研究VanillaNet的极简主义在于无 shortcut 连接,并且在网络的每个阶段仅使用一层卷积,无额外复杂模块,仅通过自身简洁的架构设计和训练策略,实现有效地训练和优化。

本文在替换骨干网络中配置了原论文中的vanillanet_5vanillanet_6vanillanet_7vanillanet_8vanillanet_9vanillanet_10vanillanet_11vanillanet_12vanillanet_13vanillanet_13_x1_5、和vanillanet_13_x1_5_ada_pool11种模型,以满足不同的需求。

模型 参数量 计算量 推理速度
YOLOv11m 20.0M 67.6GFLOPs 3.5ms
Improved 10.4M 29.8GFLOPs 2.3ms

专栏目录:YOLOv11改进目录一览 | 涉及卷积层、轻量化、注意力、损失函数、Backbone、SPPF、Neck、检测头等全方位改进
专栏地址:YOLOv11改进专栏——以发表论文的角度,快速准确的找到有效涨点的创新点!

二、VanillaNet结构详解

VanillaNet: the Power of Minimalism in Deep Learning

VanillaNet是一种强调设计的优雅和简洁的神经网络架构,以下是其相关介绍:

2.1 设计出发点

  • 应对优化挑战和复杂性:随着神经网络的发展,如Transformer模型在计算机视觉和自然语言处理领域取得了显著成功,但也面临着优化困难和固有复杂性的挑战。因此需要一种向简单性转变的范式,VanillaNet应运而生。
  • 关注资源受限环境:复杂的神经网络架构在部署时面临诸多问题,如ResNets中的shortcut操作消耗大量片外内存带宽,一些复杂操作需要复杂的工程实现。而在资源受限环境中,需要一种简洁且高效的网络架构,VanillaNet旨在解决这些问题。

2.2 原理

2.2.1 深度训练策略

  • 训练过程:在训练开始时,使用两个带有激活函数的卷积层代替单个卷积层进行训练。随着训练epoch的增加,激活函数逐渐变为恒等映射,训练结束时,两个卷积层可以轻松合并为一个卷积层,从而减少推理时间。
  • 数学原理:对于激活函数$A(x)$,将其与恒等映射结合为$A'(x)=(1-\lambda) A(x)+\lambda x$,其中$\lambda$是一个平衡修改后的激活函数$A'(x)$非线性的超参数,随着训练过程$\lambda$从$1$逐渐变为$0$。

    2.2.2 系列激活函数

  • 提升非线性:通过将多个激活函数进行堆叠来提高神经网络的非线性。具体公式为$A{s}(x)=\sum{i=1}^{n} a{i} A\left(x+b{i}\right)$,其中$n$是堆叠的激活函数数量,$a{i}$和$b{i}$是每个激活函数的缩放和偏差参数,避免简单积累。
  • 全局信息学习:为了进一步丰富系列函数的逼近能力,使其能够学习全局信息,公式进一步扩展为$A{s}\left(x{h, w, c}\right)=\sum{i, j \in{-n, n}} a{i, j, c} A\left(x{i+h, j+w, c}+b{c}\right)$,其中\$h$、$w$和$c$分别是特征的宽度、高度和通道数。

2.3 结构

2.3.1 整体结构

  • 遵循神经网络的常见设计,包括stem块主体全连接层。与现有深度网络不同的是,在每个阶段只使用一层来构建一个尽可能简单的网络。

    2.3.2 stem块

  • 使用一个$4×4×3×C$的卷积层,步长为$4$,将输入的$3$通道图像映射为$C$通道的特征。

    2.3.3 主体阶段

  • 阶段1 - 3:在阶段$1$、$2$和$3$,使用一个步长为$2$的最大池化层来减小特征图的大小,同时通道数增加$2$倍。
  • 阶段4:在阶段$4$,不增加通道数,而是使用一个平均池化层。

    2.3.4 全连接层

  • 最后一层是一个全连接层,用于输出分类结果。每个卷积层的核大小为$1×1$,激活函数应用在每个$1×1$卷积层之后,并且在每层之后添加批量归一化。

在这里插入图片描述

VanillaNet-6模型的架构,仅由6个卷积层组成,非常容易在任何现代硬件上使用。输入特征的大小被下采样,而通道在每个阶段加倍,这借用了经典神经网络的设计,如AlexNet和VGGNet。

2.4 优势

  • 简洁性
    • 架构简单没有shortcut连接,避免了复杂的分支和额外的模块,如挤压和激励模块,使得网络架构极其简单,易于理解和实现。
    • 计算成本低:每层使用最小的计算成本,同时保持特征图的信息,例如卷积层核大小为$1×1$。
  • 高效性
    • 推理速度快:在现代AI芯片环境下,其简单的设计和相对较浅的结构使得推理速度不受FLOPs或参数的限制,相比一些复杂的网络架构,如MobileNetV3-Large,虽然FLOPs较高,但推理速度更快。
    • 训练高效:采用的深度训练策略和系列激活函数在提升性能的同时,也保证了训练的高效性。
  • 性能相当:在大规模图像分类任务上,能够取得与著名的深度神经网络和视觉Transformer相当的性能,如在ImageNet数据集上的实验结果所示。

论文:https://arxiv.org/pdf/2305.12972v2
源码:https://github.com/huawei-noah/VanillaNet

三、实现代码及YOLOv11修改步骤

模块完整介绍、个人总结、实现代码、模块改进、二次创新以及各模型添加步骤参考如下地址:

https://blog.csdn.net/qq_42591591/article/details/143279754

相关文章
|
4月前
|
监控 安全 网络协议
Cisco Identity Services Engine (ISE) 3.5 发布 - 基于身份的网络访问控制和策略实施系统
Cisco Identity Services Engine (ISE) 3.5 发布 - 基于身份的网络访问控制和策略实施系统
530 1
Cisco Identity Services Engine (ISE) 3.5 发布 - 基于身份的网络访问控制和策略实施系统
|
6月前
|
安全 KVM 虚拟化
Cisco Identity Services Engine (ISE) 3.4 - 基于身份的网络访问控制和策略实施系统
Cisco Identity Services Engine (ISE) 3.4 - 基于身份的网络访问控制和策略实施系统
338 2
Cisco Identity Services Engine (ISE) 3.4 - 基于身份的网络访问控制和策略实施系统
|
6月前
|
机器学习/深度学习 数据采集 运维
匹配网络处理不平衡数据集的6种优化策略:有效提升分类准确率
匹配网络是一种基于度量的元学习方法,通过计算查询样本与支持集样本的相似性实现分类。其核心依赖距离度量函数(如余弦相似度),并引入注意力机制对特征维度加权,提升对关键特征的关注能力,尤其在处理复杂或噪声数据时表现出更强的泛化性。
355 6
匹配网络处理不平衡数据集的6种优化策略:有效提升分类准确率
|
5月前
|
监控 安全 Devops
DevOps 流水线的网络安全盲区与防御策略
在软件研发中,DevOps流水线加速了开发与交付,但也带来严重安全风险。自动化节点和第三方集成成为攻击入口,凭证泄露、供应链渗透、配置错误和依赖混乱等问题频发。企业需构建全流程安全体系,嵌入自动化安全策略,强化访问控制与监控,提升全员安全意识,实现效率与安全的协同发展。
510 1
|
12月前
|
人工智能 安全 网络安全
网络安全领导者有效缓解团队倦怠的四步策略
网络安全领导者有效缓解团队倦怠的四步策略
|
7月前
|
存储 监控 算法
基于 Python 跳表算法的局域网网络监控软件动态数据索引优化策略研究
局域网网络监控软件需高效处理终端行为数据,跳表作为一种基于概率平衡的动态数据结构,具备高效的插入、删除与查询性能(平均时间复杂度为O(log n)),适用于高频数据写入和随机查询场景。本文深入解析跳表原理,探讨其在局域网监控中的适配性,并提供基于Python的完整实现方案,优化终端会话管理,提升系统响应性能。
211 4
|
12月前
|
网络协议 测试技术 Linux
Golang 实现轻量、快速的基于 Reactor 模式的非阻塞 TCP 网络库
gev 是一个基于 epoll 和 kqueue 实现的高性能事件循环库,适用于 Linux 和 macOS(Windows 暂不支持)。它支持多核多线程、动态扩容的 Ring Buffer 读写缓冲区、异步读写和 SO_REUSEPORT 端口重用。gev 使用少量 goroutine,监听连接并处理读写事件。性能测试显示其在不同配置下表现优异。安装命令:`go get -u github.com/Allenxuxu/gev`。
296 0
|
SQL 安全 网络安全
网络安全与信息安全:知识分享####
【10月更文挑战第21天】 随着数字化时代的快速发展,网络安全和信息安全已成为个人和企业不可忽视的关键问题。本文将探讨网络安全漏洞、加密技术以及安全意识的重要性,并提供一些实用的建议,帮助读者提高自身的网络安全防护能力。 ####
351 17
|
SQL 安全 网络安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
随着互联网的普及,网络安全问题日益突出。本文将从网络安全漏洞、加密技术和安全意识三个方面进行探讨,旨在提高读者对网络安全的认识和防范能力。通过分析常见的网络安全漏洞,介绍加密技术的基本原理和应用,以及强调安全意识的重要性,帮助读者更好地保护自己的网络信息安全。
278 10
|
存储 SQL 安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
随着互联网的普及,网络安全问题日益突出。本文将介绍网络安全的重要性,分析常见的网络安全漏洞及其危害,探讨加密技术在保障网络安全中的作用,并强调提高安全意识的必要性。通过本文的学习,读者将了解网络安全的基本概念和应对策略,提升个人和组织的网络安全防护能力。