目录
论文:YOLOv9: Learning What You Want to Learn Using Programmable Gradient Information
代码: https://github.com/WongKinYiu/yolov9
摘要
当今的深度学习方法侧重于如何设计最合适的目标函数,使模型的预测结果最接近实际情况。同时,还必须设计一种适当的架构,以促进获取足够用于预测的信息。现有的方法忽略了一个事实,即当输入数据经过逐层特征提取和空间变换时,会丢失大量信息。本文将深入研究数据通过深度网络传输时数据丢失的重要问题,即信息瓶颈和可逆函数。作者提出了可编程梯度信息(PGI)的概念,以应对深度网络实现多个目标所需的各种变化。PGI可以为目标任务提供完整的输入信息来计算目标函数,从而获得可靠的梯度信息来更新网络权重。此外,还设计了一种新的基于梯度路径规划的轻量级网络架构——通用高效层聚合网络(GELAN)。GELAN的架构证实了PGI在轻量级模型上取得了卓越的成果。在基于MS COCO数据集的目标检测上验证了所提出的GELAN和PGI。结果表明,与基于深度卷积的最先进方法相比,GELAN仅使用传统的卷积算子来实现更好的参数利用率。PGI可以用于从轻量级到大型的各种模型。它可以用于获得完整的信息,因此从头开始训练的模型可以获得比使用大型数据集预先训练的现有模型更好的结果,比较结果如图1所示。
1 引言
在计算机视觉、语言处理和语音识别等各个领域,基于深度学习的模型已经显示出比过去的人工智能系统更好的性能。近年来,深度学习领域的研究人员主要关注如何开发更强大的系统架构和学习方法,如CNN,Transformer,Perceivers和Mambas。此外,一些研究人员试图开发更通用的目标函数,如损失函数、标签分配和辅助监督。上述研究都试图准确地找到输入任务和目标任务之间的映射。然而,大多数过去的方法都忽略了输入数据在前馈过程中可能具有不可忽略的信息损失量。这种信息丢失可能导致有偏差的梯度流,而梯度流随后会被用于更新模型。上述问题可能导致深度网络在目标和输入之间建立不正确的关联,导致训练后的模型产生不正确的预测。
在深度网络中,输入数据在前馈过程中丢失信息的现象通常被称为信息瓶颈,其原理图如图2所示。目前,可以缓解这一现象的主要方法如下:
(1)使用可逆架构:这种方法主要使用重复的输入数据,并以显式的方式维护输入数据的信息;
(2) Mask建模:主要利用重建损失,采用隐式方法最大化提取的特征,保留输入信息;
(3)引入深度监督概念:它使用没有丢失太多重要信息的浅层特征来预先建立从特征到目标的映射,以确保重要信息可以转移到更深的层。
然而,上述方法在训练过程和推理过程中都有不同的缺点。例如,可逆架构需要额外的层来组合重复馈送的输入数据,这将显著增加推理成本。此外,由于输入数据层到输出层不能有太深的路径,这种限制将使训练过程中难以对高阶语义信息进行建模。对于掩模建模,其重建损失有时与目标损失相冲突。此外,大多数掩码机制也会产生与数据的不正确关联。对于深度监督机制来说,它会产生错误积累,如果浅层监督在训练过程中丢失信息,后续层将无法检索到所需的信息。上述现象在困难任务和小型模型中更为显著。
为了解决上述问题,提出了一个新的概念,即可编程梯度信息(PGI)。其概念是通过辅助可逆分支生成可靠的梯度,使深层特征仍能保持执行目标任务的关键特征。辅助可逆分支的设计可以避免传统的集成多路径特征的深度监督过程可能导致的语义损失。换句话说,通过对不同语义级别的梯度信息传播进行编程,从而获得最佳的训练结果。PGI的可逆架构建立在辅助分支上,因此不需要额外的成本。由于PGI可以自由选择适合目标任务的损失函数,它也克服了掩模建模所遇到的问题。所提出的PGI机制可以应用于各种规模的深度神经网络,并且比仅适用于非常深度神经网络的深度监督机制更通用。
在本文中,还在ELAN的基础上设计了generalized ELAN(GELAN),GELAN的设计同时考虑了参数的数量、计算复杂度、准确性和推理速度。这种设计允许用户为不同的推理设备任意选择合适的计算块。将所提出的PGI和GELAN相结合,然后设计了新一代YOLO系列目标检测系统,称之为YOLOv9。使用MS COCO数据集进行了实验,实验结果验证了提出的YOLOv9在所有比较中都取得了最佳性能。
将本文的贡献总结如下:
- 从可逆函数的角度对现有的深度神经网络架构进行了理论分析,并通过这个过程成功地解释了许多过去难以解释的现象。在此基础上,我们还设计了PGI和辅助可逆分支,并取得了良好的效果。
- 设计的PGI解决了深度监控只能用于极深度神经网络架构的问题,从而使新的轻量级架构能够真正应用于日常生活。
- 设计的GELAN仅使用传统卷积,比基于最先进技术的深度卷积设计实现了更高的参数使用率,同时显示出轻、快、准确的巨大优势。
- 将所提出的PGI和GELAN相结合,YOLOv9在MS COCO数据集上的目标检测性能在各个方面都大大超过了现有的实时目标检测器。
2 相关工作
2.1 实时目标检测
目前主流的实时物体检测器是 YOLO 系列[2、7、13-15、25、30、31、47-49、61-63、74、75],这些模型大多使用 CSPNet [64] 或 ELAN [65] 及其变体作为主要计算单元。在特征集成方面,通常使用改进的 PAN [37] 或 FPN [35] 作为工具,然后使用改进的 YOLOv3 head [49] 或 FCOS head [57, 58] 作为预测头。最近还提出了一些实时物体检测器,如 RT DETR [43],它的基础是 DETR [4]。然而,由于 DETR 系列物体检测器在没有相应领域预训练模型的情况下很难应用到新的领域,因此目前应用最广泛的实时物体检测器仍然是 YOLO 系列。本文选择在各种计算机视觉任务和各种场景中被证明有效的 YOLOv7 [63]作为基础,来开发所提出的方法。使用 GELAN 改进了架构和训练过程,并提出了 PGI。上述新方法使所提出的 YOLOv9 成为新一代顶级实时物体检测器。
2.2 可逆架构
可逆架构[3, 16, 19]的运算单元必须保持可逆转换的特性,这样才能保证每层运算单元输出的特征图都能保留完整的原始信息。之前,RevCol[3]将传统的可逆单元泛化为多层次,从而可以扩展不同层单元所表达的语义层次。通过对各种神经网络架构的文献回顾,发现有许多高性能架构都具有不同程度的可逆特性。例如,Res2Net 模块[11]以分层的方式将不同的输入分区与下一个分区相结合,并在向后传递之前将所有转换后的分区串联起来。CBNet [34, 39]通过复合骨干网重新引入原始输入数据,获得完整的原始信息,并通过各种组成方法获得不同层次的多级可逆信息。这些网络架构一般都有很好的参数利用率,但额外的复合层会导致推理速度缓慢。DynamicDet [36] 结合了 CBNet [34] 和高效实时物体检测器 YOLOv7 [63],在速度、参数数量和精度之间实现了很好的权衡。本文介绍的 DynamicDet 架构是设计可逆分支的基础。此外,还进一步将可逆信息引入到所提出的 PGI 中。所提出的新架构在推理过程中不需要额外的连接,因此可以充分保留速度、参数数量和精度方面的优势。
2.3 辅助监督
深度监督 [28, 54, 68] 是最常见的辅助监督方法,它通过在中间层插入额外的预测层来进行训练。尤其是基于Transformer的方法中引入的多层解码器的应用最为常见。另一种常见的辅助监督方法是利用相关元信息来指导中间层生成的特征图,使其具有目标任务所需的属性 [18, 20, 24, 29, 76]。这类例子包括利用分割损失或深度损失来提高物体检测器的准确性。最近,有许多文献 [53, 67, 82] 报道使用不同的标签分配方法生成不同的辅助监督机制,以加快模型的收敛速度,同时提高鲁棒性。然而,辅助监督机制通常只适用于大型模型,因此当它应用于轻量级模型时,容易造成参数化不足现象,使性能变差。作者提出的 PGI 设计了一种对多层次语义信息进行重新编程的方法,这种设计使轻量级模型也能从辅助监督机制中受益。
3 问题陈述
通常,人们将深度神经网络收敛困难问题归因于梯度消失(gradient vanish)或梯度饱和(gradient saturation)等因素,这些现象在传统深度神经网络中确实存在。然而,现代深度神经网络通过设计各种归一化和激活函数,已经从根本上解决了上述问题。然而,深度神经网络仍然存在收敛速度慢或收敛效果差的问题。
本文将进一步探讨上述问题的本质。通过对信息瓶颈的深入分析,推断出造成这一问题的根本原因是,原本来自非常深的网络的初始梯度在传输后不久就丢失了大量实现目标所需的信息。为了证实这一推论,对不同架构的深度网络进行了初始权重的前馈,然后在图 2 中对它们进行了可视化说明。很明显,PlainNet 在深层中丢失了很多物体检测所需的重要信息。至于 ResNet、CSPNet 和 GELAN 所能保留的重要信息比例,确实与训练后所能获得的准确率成正相关。进一步设计了基于可逆网络的方法来解决上述问题的成因。本节将详细阐述对信息瓶颈原理和可逆函数的分析。
3.1 信息瓶颈原理
根据信息瓶颈原理,我们知道数据 X 在经过转换时可能会造成信息损失,如下式 1 所示:
I ( X , X ) ≥ I ( X , f θ ( X ) ) ≥ I ( X , g ϕ ( f θ ( X ) ) ) , I(X,X)\geq I(X,f_\theta(X))\geq I(X,g_\phi(f_\theta(X))), I(X,X)≥I(X,fθ(X))≥I(X,g