YOLOv9: Learning What You Want to Learn Using Programmable Gradient Information

news2024/11/20 23:39:40

paper: https://arxiv.org/abs/2402.13616
code

YOLOv9: Learning What You Want to Learn Using Programmable Gradient Information

  • 一、引言部分
  • 二、问题分析
    • 2.1 信息瓶颈原理
    • 2.2 可逆函数
  • 三、本文方法
    • 3.1 可编程梯度信息
  • 四、实验
    • 4.1消融实验部分

今天的深度学习方法关注的是如何设计最合适的目标函数,使模型的预测结果最接近真值的情况。同时,必须设计一个适当的体系结构,以方便获取足够的预测信息。现有方法忽略了一个事实,即输入数据在逐层进行特征提取和空间变换时,会丢失大量的信息。这篇论文深入研究了数据在深度网络中传输时的重要数据丢失问题,即信息瓶颈和可逆函数。作者提出了可编程梯度信息(PGI)的概念,以应对深度网络实现多个目标所需的各种变化。
PGI可以为目标任务提供完整的输入信息来计算目标函数,从而获得可靠的梯度信息来更新网络权值。此外,设计了一种新的基于梯度路径规划的轻量级网络结构——广义高效层聚合网络(GELAN)。
GELAN的架构证实了PGI在轻量化模型上取得了卓越的成果。作者在基于MS COCO数据集的目标检测上验证了提出的GELAN和PGI。结果表明,与基于深度卷积的最新方法相比,GELAN仅使用常规卷积算子可以获得更好的参数利用率。PGI可用于从轻型到大型的各种模型。它可以用来获取完整的信息,使得从头开始训练的模型比使用大数据集预训练的最先进的模型获得更好的结果,对比结果如下图所示。
在这里插入图片描述

一、引言部分

近年来,随着计算机视觉的发展,大多数的方法都忽略了输入数据在前馈过程中可能具有不可忽略的信息损失。这种信息的丢失会导致有偏差的梯度流,这些梯度流随后被用来更新模型。上述问题可能导致深度网络在目标和输入之间建立不正确的关联,从而导致训练模型产生不正确的预测。
在深度网络中,输入数据在前馈过程中丢失信息的现象通常被称为信息瓶颈。其原理图如下图所示。在这里插入图片描述
目前,缓解这一现象的主要方法有。(1)使用可逆架构:该方法主要利用重复输入数据,并以显式的方式维护输入数据的信息;(2)使用掩模建模:主要利用重构损失,采用隐式方式最大限度地提取特征并保留输入信息;(3)引入深度监督的概念:它利用没有丢失太多重要信息的浅层特征,预先建立特征到目标的映射,保证重要信息能够传递到更深层。
然而,上述方法在训练过程和推理过程中都有不同的缺点。例如,可逆架构需要额外的层来组合重复输入的数据,这将显著增加推理成本。此外,由于输入数据层到输出层不能有太深的路径,这一限制将使在训练过程中难以对高阶语义信息进行建模。对于掩模建模,其重建损失有时与目标损失相冲突。此外,大多数掩码机制也会与数据产生不正确的关联。对于深层监督机制,会产生误差积累,如果浅层监督在训练过程中丢失信息,后续层将无法检索到所需的信息。上述现象在难度较大的任务和较小的模型上更为明显。
为了解决上述问题,作者提出了一个新的概念,即可编程梯度信息(PGI)。其思想是通过辅助可逆分支生成可靠的梯度,使深层特征仍能保持关键特征以执行目标任务。
辅助可逆分支的设计可以避免传统的多路径特征融合深度监督过程可能造成的语义损失。在不同的语义层次上对梯度信息传播进行编程,从而获得最佳的训练结果。PGI的可逆结构构建在辅助分支上,所以没有额外的参数开销。
由于PGI可以自由选择适合目标任务的损失函数,它也克服了掩模建模所遇到的问题。所提出的PGI机制可以应用于各种规模的深度神经网络,并且比深度监督机制更通用,而深度监督机制只适用于非常深度的神经网络。
这篇文章的贡献如下:
1、从可逆函数的角度对现有的深度神经网络架构进行了理论分析,并通过这一过程成功地解释了许多过去难以解释的现象。在此基础上设计了PGI和辅助可逆分支。
2、设计的PGI解决了深度监督只能用于极深度神经网络架构的问题,从而使新的轻量级架构真正应用于日常生活中。
3、GELAN仅使用常规卷积,实现了比基于最先进技术的深度卷积设计更高的参数使用率,同时显示出轻、快、准的巨大优势。

二、问题分析

通常,人们将深度神经网络收敛问题的困难归因于梯度消失或梯度饱和等因素,这些现象在传统的深度神经网络中确实存在。而现代深度神经网络通过设计各种归一化和激活函数,已经从根本上解决了上述问题。然而,深度神经网络仍然存在收敛速度慢或收敛效果差的问题。
通过对信息瓶颈的深入分析,作者推断出这个问题的根本原因是原本来自非常深的网络的初始梯度在传输后不久就丢失了大量实现目标所需的信息。为了证实这一推断,作者对具有初始权重的不同架构的深度网络进行前馈,结果如下图所示。
在这里插入图片描述
显然,PlainNet丢失了许多深层目标检测所需的重要信息。至于ResNet、CSPNet和GELAN能保留的重要信息比例,确实与训练后能获得的准确率呈正相关。我们进一步设计了基于可逆网络的方法来解决上述问题的原因。

2.1 信息瓶颈原理

根据信息瓶颈原理,数据X在进行变换时可能会造成信息丢失,如下式1所示:
在这里插入图片描述
式中, I I I为交互信息, f f f g g g为变换函数, θ θ θ φ φ φ分别为 f f f g g g的参数。

在深度神经网络中, f θ ( ⋅ ) fθ(·) fθ() g ϕ ( ⋅ ) gϕ(·) gϕ()分别表示深度神经网络中连续两层的操作。从上式中可以看出,随着网络层数的加深,原始数据丢失的可能性也会增大。然而,深度神经网络的参数是基于网络的输出以及给定的目标,然后通过计算损失函数产生新的梯度后更新网络。
可以想象,深度神经网络的输出不太能够保留关于预测目标的完整信息。这将使得在网络训练中使用不完全信息成为可能,从而导致梯度不可靠,收敛性差。
解决上述问题的一种方法是直接增加模型的大小。当使用大量的参数来构建模型时,它更有能力对数据进行更完整的转换。上述方法允许即使在数据前馈过程中丢失信息,仍然有机会保留足够的信息来执行到目标的映射。
上述现象解释了为什么在大多数现代模型中,宽度比深度更重要。然而,上述结论并不能从根本上解决极深神经网络中梯度不可靠的问题。
下面将介绍如何使用可逆函数来解决问题并进行相关分析。

2.2 可逆函数

当一个函数 r r r有一个逆变换函数 v v v时,称这个函数为可逆函数,如下式所示。
在这里插入图片描述
其中 ψ ψ ψ ζ ζ ζ分别是 r r r v v v的参数。数据 X X X用可逆函数变换,不丢失信息,如下式所示。

在这里插入图片描述
当网络的变换函数由可逆函数组成时,可以得到更可靠的梯度来更新模型。几乎所有的今天流行深度学习方法是符合可逆性质的架构,如下式所示:
在这里插入图片描述
式中, l l l为PreAct ResNet的第 l l l层, f f f为第 l l l层的变换函数。PreAct ResNet以显式的方式将原始数据X反复传递给后续层。虽然这样的设计可以使一千多层的深度神经网络很好地收敛,但它破坏了我们需要深度神经网络的一个重要原因。也就是说,对于困难的问题,很难直接找到简单的映射函数将数据映射到目标。这也解释了为什么PreAct ResNet在层数较少的情况下性能比ResNet差。
此外,作者尝试使用屏蔽建模,使变压器模型实现重大突破。使用如下式近似方法,试图找到r的逆变换v,使变换后的特征可以使用稀疏特征保留足够的信息。
在这里插入图片描述
其中 M M M为动态二进制掩码。通常用于执行上述任务的其他方法是扩散模型和变分自编码器,它们都具有查找反函数的功能。然而,当上述方法应用于轻量级模型时,将存在缺陷,因为轻量级模型将被参数化为大量的原始数据。由于上述原因,将数据 X X X映射到目标 Y Y Y的重要信息 I ( Y , X ) I(Y, X) I(Y,X)也会面临同样的问题。对于这个问题,作者将使用信息瓶颈的概念进行探讨。信息瓶颈的计算公式为:
在这里插入图片描述
一般来说, I ( Y , X ) I(Y, X) I(Y,X)只会占据 I ( X , X ) I(X, X) I(X,X)很小的一部分,但它对目标任务至关重要。因此,即使前馈阶段丢失的信息量并不显著,但只要覆盖了 I ( Y , X ) I(Y, X) I(Y,X),训练效果就会受到很大影响。轻量化模型本身处于参数化不足的状态,在前馈阶段容易丢失大量重要信息。因此,作者对轻量化模型的目标是如何准确地从 I ( X , X ) I(X, X) I(X,X)中过滤出 I ( Y , X ) I(Y, X) I(Y,X),而要完全保留 X X X的信息,这是很难做到的。基于以上分析,作者希望提出一种新的深度神经网络训练方法,既能生成可靠的梯度来更新模型,又能适用于浅量和轻量神经网络。

三、本文方法

3.1 可编程梯度信息

为了解决上述问题,作者提出了一种新的辅助监督框架,称为可编程梯度信息(Programmable Gradient Information, PGI),如下图(d)所示。PGI主要包括三个部分,即(1)主分支,(2)辅助可逆分支,(3)多级辅助信息。从下图 (d)可以看出,PGI的推理过程只使用了主干分支,因此不需要任何额外的推理成本。
在这里插入图片描述
至于其他两个组件,它们用于解决或减缓深度学习方法中的几个重要问题。其中,设计了辅助可逆分支来解决神经网络深度化带来的问题。网络深化会造成信息瓶颈,使损失函数无法产生可靠的梯度。对于多级辅助信息,设计用于处理深度监督带来的误差积累问题,特别是针对多预测分支的架构和轻量化模型。
(1)辅助可逆分支
在PGI中,作者提出了辅助可逆分支来生成可靠的梯度和更新网络参数。通过提供从数据到目标的映射信息,损失函数可以提供指导,并避免从与目标不太相关的不完整前馈特征中发现虚假关联的可能性。作者提出通过引入可逆体系结构来维护完整的信息,但是在可逆体系结构中增加主干会消耗大量的推理成本。作者分析了下图(b)的架构,发现当添加从深层到浅层的额外连接时,推理时间将增加20%。将输入数据反复添加到网络的高分辨率计算层(黄色框)时,推理时间甚至超过了时间的两倍。
在这里插入图片描述
由于使用可逆架构是来获得可靠的梯度,因此“可逆”并不是推理阶段的唯一必要条件。鉴于此,作者将可逆分支作为深度监督分支的扩展,然后设计辅助可逆分支,如上图(d)所示。对于因信息瓶颈而丢失重要信息的主分支深度特征,将能够从辅助可逆分支接收到可靠的梯度信息。
这些梯度信息将驱动参数学习,帮助提取正确的重要信息,以上动作可以使主分支获得对目标任务更有效的特征。此外,可逆结构在浅层网络上的表现比一般网络差,因为复杂的任务需要在深层网络中进行转换。作者提出的方法并不强制主分支保留完整的原始信息,而是通过辅助监督机制生成有用的梯度来更新原始信息。这种设计的优点是,所提出的方法也可以应用于较浅的网络。
最后,由于在推理阶段可以去除辅助可逆分支,因此可以保留原始网络的推理能力。也可以在PGI中选择任意可逆体系结构来充当辅助可逆分支的角色。
(2)多级辅助信息
在本节中将讨论多层辅助信息是如何工作的。包含多个预测分支的深度监督架构如下图©所示。对于对象检测,可以使用不同的特征金字塔来执行不同的任务,例如它们可以一起检测不同大小的对象。因此,在连接到深度监督分支后,将引导浅层特征学习小目标检测所需的特征,此时系统将其他大小目标的位置作为背景。然而,上述行为会导致深层特征金字塔丢失大量预测目标物体所需的信息。对于这个问题,作者认为每个特征金字塔都需要接收到所有目标对象的信息,这样后续的主干分支才能保留完整的信息来学习对各种目标的预测。
在这里插入图片描述
多级辅助信息的概念是在辅助监督的特征金字塔层次层和主分支之间插入一个集成网络,然后利用它来组合来自不同预测头的返回梯度,如上图(d)所示。多级辅助信息就是将包含所有目标对象的梯度信息进行聚合,传递给主分支,然后更新参数。此时,主要分支的特征金字塔层次结构的特征就不会被某些特定对象的信息所支配。因此,该方法可以缓解深度监督中的信息破碎问题。此外,任何集成网络都可以使用多层次的辅助信息。因此,可以规划所需的语义层次来指导不同规模的网络架构的学习。
(3)广义ELAN
通过结合CSPNet和ELAN这两种采用梯度路径规划设计的神经网络架构,设计了兼顾轻量级、推理速度和准确性的广义高效层聚合网络(GELAN)。它的整体架构如下图所示。将最初仅使用卷积层堆叠的ELAN的能力推广到可以使用任何计算块的新架构。
在这里插入图片描述

四、实验

在这里插入图片描述
在这里插入图片描述

4.1消融实验部分

在这里插入图片描述
接下来,对不同尺寸的GELAN进行ELAN block-depth和CSP blockdepth实验,结果如下表所示。当ELAN的深度从1增加到2时,精度明显提高。但当深度大于等于2时,无论是提高ELAN深度还是CSP深度,参数数量、计算量和精度始终呈现线性关系。这意味着GELAN对深度不敏感。
换句话说,用户可以任意组合GELAN中的组件来设计网络架构,无需特别设计就能得到性能稳定的模型。在下表中,对于YOLOv9-{S,M,C},将ELAN深度和CSP深度的配对设置为{{2,3},{2,1},{2,1}}。
在这里插入图片描述
可编程梯度信息

在PGI方面,作者分别对骨干和neck的辅助可逆分支和多层辅助信息进行了消融研究。设计了辅助可逆分支ICN,利用DHLC联动获取多级可逆信息。对于多层辅助信息,使用FPN和PAN进行消融研究,PFH的作用相当于传统的深度监督。所有实验结果列于下表。PFH仅在深度模型中有效,而PGI在不同组合下都可以提高精度。特别是在使用ICN时,得到了稳定和更好的结果。
在这里插入图片描述
进一步将PGI和深度监督的概念应用到不同大小的模型上,并对结果进行比较,结果如下示。如前所述,引入深度监督会导致浅层模型的准确性损失。对于一般模型,引入深度监督会导致性能不稳定,深度监督的设计理念只能在极深的模型中带来收益。所提出的PGI能够有效处理信息瓶颈、信息破碎等问题,全面提高不同尺寸模型的精度。PGI的概念带来了两个有价值的贡献。一是使辅助监督方法适用于浅层模型,二是使深层模型训练过程获得更可靠的梯度。这些梯度使深度模型能够使用更准确的信息来建立数据和目标之间的正确相关性。
在这里插入图片描述
可视化结果
在下图中,展示了在不同架构下使用随机初始权重作为前馈得到的特征图的可视化结果。可以看到,随着层数的增加,所有架构的原始信息逐渐减少。例如,在PlainNet的第50层,很难看到物体的位置,而在第100层,所有可区分的特征都将丢失。对于ResNet,虽然在第50层仍然可以看到物体的位置,但是已经丢失了边界信息。当深度达到第100层时,整个图像变得模糊。CSPNet和所提出的GELAN都表现得非常好,并且它们都可以保持支持清晰识别目标的特征,直到第200层。在比较中,GELAN的结果更稳定,边界信息更清晰。
在这里插入图片描述
下图展示了PGI在训练过程中是否能够提供更可靠的梯度,使用于更新的参数能够有效地捕捉输入数据与目标之间的关系。下图为PAN偏置预热时GELAN和YOLOv9 (GELAN + PGI)特征图的可视化结果。从图(b)和©的对比中,可以清楚地看到,PGI准确、简洁地捕获了包含物体的区域。对于不使用PGI的GELAN,发现它在检测物体边界时存在发散,并且在一些背景区域也会产生意想不到的响应。本实验证实了PGI确实可以提供更好的梯度来更新参数,使主分支的前馈阶段保留更重要的特征。
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ELK介绍使用

文章目录 一、ELK介绍二、Elasticsearch1. ElasticSearch简介:2. Elasticsearch核心概念3. Elasticsearch安装4. Elasticsearch基本操作1. 字段类型介绍2. 索引3. 映射4. 文档 5. Elasticsearch 复杂查询 三、LogStash1. LogStash简介2. LogStash安装 四、kibana1. …

hv静态资源web服务

在实际工作中,为了保证App的高可用性,服务端需要缓存一部分静态资源,通过web服务来分发资源。hv即可快速实现web服务。 hv静态资源服务。 HttpService router; router.Static("/statics", "smart-yi-ui");目录结构(sma…

kafka 可视化工具

kafka可视化工具 随着科技发展,中间件也百花齐放。平时我们用的redis,我就会通过redisInsight-v2 来查询数据,mysql就会使用goland-ide插件来查询,都挺方便。但是kafka可视化工具就找了半天,最后还是觉得redpandadata…

javaSE-----继承和多态

目录 一.初识继承: 1.1什么是继承,为什么需要继承: 1.2继承的概念与语法: 二.成员的访问: 2.1super关键字 2.2this和super的区别: 三.再谈初始化: 小结: 四.初识多态: 4.1多…

Java Web开发---复试Tips复习

***********(自用,摘录自各种文章和自己总结)********** 小知识点理解 Web Web应用开发主要是基于浏览器的应用程序开发。一个Web应用由多部分组成 java web就是用java语言开发出可在万维网上浏览的程序 Web应用程序编写完后,…

【自然语言处理六-最重要的模型-transformer-上】

自然语言处理六-最重要的模型-transformer-上 什么是transformer模型transformer 模型在自然语言处理领域的应用transformer 架构encoderinput处理部分(词嵌入和postional encoding)attention部分addNorm Feedforward & add && NormFeedforw…

在哪里能找到抖音短视频素材?推荐热门的抖音短视频素材下载资源

哎呦喂,小伙伴们,是不是在短视频的大海里划船,想找到那颗能让你起飞的珍珠,但又觉得素材难寻如针海捞针?别急,今天我就来给你们送上几个超实用的宝藏素材网站,让你的短视频创作不再愁素材 1&am…

从零开始的LeetCode刷题日记:142.环形链表II

一.相关链接 视频链接:代码随想录:142.环形链表II 题目链接:142.环形链表II 二.心得体会 这道题是一道链表题,但他没有对头结点的操作,所以不用虚拟头结点。这道题要分两步进行,第一步是判断链表有没有环…

如何获取国外信用卡?需要国外银行卡支付怎么解决?如何订阅国外产品?

当国内的用户想要使用国外的产品时,很多产品是需要订阅付费的。其中有些产品还没有引入国内,只能用国外的信用卡支付,对于在国内的朋友,如何获取一张国外的信用卡呢? 这里推荐一个平台:wildCard waildCard…

基于Java的生活废品回收系统(Vue.js+SpringBoot)

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、研究内容三、界面展示3.1 登录注册3.2 资源类型&资源品类模块3.3 回收机构模块3.4 资源求购/出售/交易单模块3.5 客服咨询模块 四、免责说明 一、摘要 1.1 项目介绍 生活废品回收系统是可持续发展的解决方案,旨在鼓…

安泰ATA-4014高压功率放大器的特点有哪些呢

高压功率放大器是一种用于放大高压和高功率信号的电子设备,具有特殊的性能和特点。下面安泰电子将详细介绍高压功率放大器的特点和应用。 高压功率放大器具有较高的输出电压和功率能力。相比于普通的放大器,高压功率放大器可以提供更高的输出电压和功率&…

Day16:信息打点-语言框架开发组件FastJsonShiroLog4jSpringBoot等

目录 前置知识 指纹识别-本地工具-GotoScan(CMSEEK) Python-开发框架-Django&Flask PHP-开发框架-ThinkPHP&Laravel&Yii Java-框架组件-Fastjson&Shiro&Solr&Spring 思维导图 章节知识点 Web:语言/CMS/中间件/…

Decontam去污染:一个尝试

为了程序运行的便利性,不想将Decontam放到windows的Rstudio里面运行,需要直接在Ubuntu中运行,并且为了在Decontam时进行其他操作,使用python去运行R 首先你需要有一个conda环境,安装了R,Decontam&#xff0…

迅速上手:CentOS 系统下 SSH 服务配置指南

前言 掌握 SSH 服务,就像拥有了一把解锁网络世界的钥匙。本文深入浅出地介绍了如何使用 SSH(Secure Shell)服务,从连接远程服务器到安全文件传输,让你轻松驾驭远程管理与数据传输,提高工作效率&#xff0c…

安全防御-第七次

在FW5和FW6之间建立一条IPSEC通道保证10.0.2.0/24网段可以正常访问到192.168.1.0/24 NAT: 安全策略: NAT: 安全策略: 修改服务器映射: 配置IPSEC:

常州大学-吴颖:参加数维杯竞赛后,我成功拿到梦寐以求的奖项

转眼间,数维杯数模竞赛已经进行到了第八年,这八年中,成千上万的数模人乘着属于自己的船成功抵达梦想的彼岸,每一场比赛都留下了他们努力的痕迹,更成为每次想起都觉得极为宝贵的经历。 当然,每个人的参赛经…

SpringCloud之Nacos入门与实战系列

目录 一、Nacos介绍 1.1、配置中心和注册中心的概念 1.2 Nacos 优点 二、Nacos的使用 2.1 以单机模式启动Nacos 2.2 Nacos部署方式介绍 2.3 配置数据源 2.4 开启控制台权限登录 三、配置中心的使用 3.1 创建配置信息 3.2 SpringBoot使用配置中心 四、注册中心的使用 4…

如何在云服务器上面安装宝塔

一、宝塔面板 1.进入宝塔面板免费注册账号 2.找到安装宝 复制centos安装脚本 二、云服务器上安装宝塔 1.输入centos安装脚本 等待安装 出现这个表示安装成功 外网面板地址: https://云服务器内网IP:30230/d3032ee5内网面板地址: https://本地IP:30230/d3032ee5username: p27…

每日学习总结20240308

每日总结 20240305 常用控件 QPushButton(按钮):用于触发操作或响应用户点击事件。QLabel(标签):用于显示文本或图像。QLineEdit(行编辑器):单行文本输入框&#xff0…

测试用例编写详解

🍅 视频学习:文末有免费的配套视频可观看 🍅 关注公众号【互联网杂货铺】,回复 1 ,免费获取软件测试全套资料,资料在手,涨薪更快 一、概念 测试用例的基本概念: 测试用例&#xff…