【YOLO v5 v7 v8 v9小目标改进】RevCol:解决深度学习信息从低层(输入)传递至高层(输出)的过程中,信息会逐层丢失问题

news2025/1/23 4:43:40

RevCol:解决深度学习信息从低层(输入)传递至高层(输出)的过程中,信息会逐层丢失问题

  • 学习解耦表示
    • 可逆列网络(RevCol)
        • 子特征1:多级可逆单元
        • 子特征2:可逆列架构的宏观设计
        • 子特征3:微观设计调整
        • 子特征4:中间监督
      • 联想
    • 小目标涨点
      • YOLO v5 魔改
      • YOLO v7 魔改
      • YOLO v8 魔改
      • YOLO v9 魔改

 


论文:https://arxiv.org/pdf/2212.11696.pdf

代码:https://github.com/megvii-research/RevCol

 
传统的深度学习模型(遵循信息瓶颈原则)在层与层之间传递信息时,会逐步压缩与目标无关的信息。

在深度学习中,有一个常见的问题:当我们训练模型识别图片或者处理信息时,模型往往只关注于对当前任务有用的信息,而忽略其他可能对将来任务有用的信息。

这就像是在读书时,只记住了考试要考的知识点,但对书中其他有趣或有用的内容视而不见。

虽然短期内这样做可以帮助我们通过考试,但长期来看,我们可能会错过很多重要的知识。

类于交通系统中的立交桥设计。在繁忙的城市中,不同方向的车辆流需要高效地交织而不互相干扰。

立交桥通过不同层级的道路允许车辆在不同方向上流动,从而避免了交叉路口的拥堵和潜在冲突。

同样地,在深度学习网络中,信息需要在不同的层级(类似于不同的道路层级)之间流动。

传统的神经网络结构(比如简单的前馈网络)就像一个没有立交桥的交通系统,信息流(车辆)只能一层层单向传递,这可能导致信息的堵塞和丢失(交通拥堵)。

RevCol网络中的融合模块则像是在这些层级之间建立了立交桥,允许信息在高分辨率和低分辨率的层级之间自由流动(车辆在不同层级间行驶),从而减少了信息丢失,并增加了网络对信息的处理能力。

传统的卷积神经网络(CNNs)在信息流动方面就类似于普通道路系统,信息(车辆)从输入层(起点)一直传递到输出层(终点),中间的每一层只能接收到前一层的信息,难以直接获取到后面层的反馈。

我们得设计一个(立交桥网络)允许信息不仅向前传递,也可以从后续层返回到前面的层,就好比车辆在立交桥中可以自由地改变方向,从而提高了整个网络处理信息的灵活性和效率。

 
如果我们能在学习时,不仅仅记住考试内容,还能把书里的其他知识也整理归档,那么我们就能在需要时随时取用这些知识。

目标:让模型学会把信息分门别类地存储,既能记住对当前任务重要的知识,也能保存可能对未来任务有用的信息。

这种方法通过一个叫做可逆列网络(RevCol)的结构来实现。

RevCol就像一个高效的图书馆,它不仅能保存书中的所有内容,还能按照不同的主题将它们分类。

在这个图书馆里,信息是通过一系列的“列”进行管理的,每一列都负责存储一种类型的信息。

通过特殊的技术,这些列之间能够互相传递信息,而不会丢失任何细节。

这种方法使得模型在学习时,能够更全面地理解和保存信息,不仅仅局限于当前任务,也为处理将来可能遇到的问题做好了准备。

在这里插入图片描述

图1(a)展示的是传统的单列网络(比如一个普通的深度神经网络),其中输入数据经过多个层(Layer 1, 2, 3, …, N)处理后得到输出结果。

每层都对输入数据进行某种形式的转换,并且随着层级的深入,通常会丢失一些信息。

图1(b)展示的是RevCol网络,它包括多个列(Col 1, 2, 3, …, N),每个列都处理输入数据,并且通过可逆连接(由红色曲线标识)在列之间传递信息。

这种设计试图在不同列之间保持信息,确保即使在深层次也能保留低级(接近输入)和高级(语义)特征。

黄色表示低级信息,蓝色表示高级语义信息。

学习解耦表示

采用可逆列网络(RevCol):

  • RevCol的设计:通过N个具有相同结构但权重不同的子网络(列)组成,每个列接收输入的一个副本并生成预测,从而在每个列中存储从低级到高级语义表示的多级嵌入。

    通过引入可逆变换,无损地将多级特征从第i列传递到第i+1列,从而预测输入的最终解耦表示。

  • 为什么使用RevCol:由于问题的特征在于传统深度学习模型在特征传递过程中损失了大量信息,RevCol通过可逆变换保证信息无损传递,同时提供从低级到高级的多级语义表示。

引入新型的可逆多级融合模块:

  • 新型可逆多级融合模块:解决了传统RevNets的两个主要缺陷:特征图形状的限制和最后两个特征图必须同时包含低级和高级信息的问题。
  • 为什么使用这个子解法:这个新型模块能够更灵活地处理不同形状的特征图,并允许更有效地优化网络,避免了与信息瓶颈原则相冲突的问题。

与信息瓶颈原则下的传统深度学习模型不同,这种方法不是简单地抛弃与目标无关的信息,而是力图在保留尽可能多的输入信息的同时,将任务相关的概念或语义词嵌入到几个分离的维度中。

这种方式更贴近于生物细胞的机制,每个细胞虽然含有整个基因组的完整副本,但不同细胞的基因表达强度不同,类似地,在计算视觉任务中,也理应保留高级语义表示的同时,保持其他维度中的低级信息。

可逆列网络(RevCol)

如何在不丢失信息的前提下,实现特征的解耦和高效传递。

  1. 多级可逆单元:想象把信息分成好几层,每一层都处理不同类型的信息(比如一层专注于颜色,另一层专注于形状)。我们用一种特殊的方法让这些信息层之间相互传递信息,但不会丢失任何东西,就像魔术一样。

  2. 可逆列架构:我们把网络分成多个部分(列),每个部分都用上面提到的魔术方法处理信息。这样,我们可以在不同的部分专注于不同的任务,比如一部分识别猫,另一部分保留背景信息。

  3. 微观设计调整:为了让这一切工作得更好,我们对网络的一些基础部件做了细微调整,比如改变一些参数,以确保信息在传递过程中不会被扭曲。

  4. 中间监督:我们在网络的不同部分加入了额外的监督,这就像是给学生额外的测验,以确保他们在学习过程中没有走偏。这有助于网络更好地保留和利用信息。

可逆列网络(RevCol)就像是一个高效的学习机器,不仅能学会识别猫和狗,还能在这个过程中保留大量的其他有用信息。

这种方法让网络更加强大和灵活,适用于多种不同的任务。

在这里插入图片描述
图2(a)展示的是RevNet中的一个可逆单元的例子,这是构建RevCol网络的基础。

这里显示了如何在不丢失任何信息的情况下,将输入xt通过一系列函数(Ft-1, Ft-2, …, Ft-4)转换为输出xt-5。

图2(b)是一个简化的多级可逆单元,展示了如何在网络的不同层级(Level 1, 2, 3, 4)之间传递和转换信息。

图2©展示了整个可逆列网络架构的概览,包括多个列和每个列的多个层级。

在不同层级上的中间监督(Intermediate Supervision)有助于训练过程中信息的保存和优化。

 
在RevCol网络中,传统的可逆结构(如RevNet)和非可逆的多列结构(如HRNet)都存在限制,包括严格的特征维度约束和信息损失问题。

特别是在进行多任务学习时,信息的保留对于模型的泛用性非常关键。

RevCol = 可逆操作的引入 + 融合模块的设计 + 中间监督的加入

子特征1:多级可逆单元
  • 实现方式:通过扩展可逆变换方程,实现了特征的无损解耦传递。
  • 每m个特征图分为一组,通过可逆变换在组内进行信息传递,确保了信息的无损。
  • 选择原因:该方法可以在不同的语义层次或分辨率中使用不同形状的张量来表示特征,解决了特征维度强约束的问题,并易于与现有网络架构协作。
子特征2:可逆列架构的宏观设计
  • 实现方式:RevCol通过多个子网络和可逆连接进行特征解耦,使用多级可逆单元简化输入,每个子网络处理图像分割成的非重叠块,提取多级特征图进行信息传递。
  • 选择原因:这种宏观设计允许在不同任务中灵活使用高级和低级特征,通过可逆连接减少信息损失,提升模型的泛化能力。
子特征3:微观设计调整
  • 实现方式:调整了卷积块和引入融合模块,以兼容宏观架构。
  • 包括修改卷积核大小,采用可学习的可逆操作γ,优化网络稳定性和训练速度。
  • 选择原因:微观设计调整使得原始的ConvNeXt块与RevCol的宏观设计兼容,提高了模型的精度和训练效率,同时保持网络的稳定性。

融合模块的设计:

  • 实现方式:设计了一个新型的融合模块,以支持不同分辨率的特征融合,同时避免了传统可逆网络的严格特征维度约束。
  • 选择原因:这解决了传统结构中特征维度强制匹配的问题,使得网络设计更灵活,可以在不同分辨率间更好地融合特征。

引入融合模块优化信息流动:

  • 解决方案:设计了一种融合模块,结合了向上采样和向下采样的特点,以便在不同层级间更有效地传递信息。

  • 选择原因:传统的网络在传递过程中可能会导致信息的损失,尤其是在高分辨率和低分辨率特征间的转换。

    融合模块通过将低分辨率的特征向上采样,同时将高分辨率的特征向下采样,并将它们融合,以保持信息流动的连续性和完整性,从而提高网络的整体性能。

    这样的设计使得在深层网络中的每一级都能获得丰富的上下文信息,增强了模型的表示能力。

子特征4:中间监督
  • 实现方式:在网络的前几列添加额外的监督,通过优化二元交叉熵重建损失和分类损失,以减少信息丢失,提高特征的质量和网络的性能。
  • 选择原因:中间监督可以在列间迭代时维持信息,减少信息在列内的丢失,提升网络对输入图像和预测之间互信息的下界,从而提高性能。

RevCol通过引入多级可逆单元和宏观设计调整,实现了特征的无损解耦传递。

微观设计的调整和中间监督的加入进一步优化了模型的训练效率和性能。

这些设计选择都是为了解决深度学习中特征传递与学习过程中的信息损失问题,确保了模型在处理不同任务时的灵活性和高效性。

联想

何时使用 - 可逆列网络(RevCol):当你需要一个能够在保留重要特征的同时减少信息损失的网络时,RevCol是一个合适的选择。特别是在下游任务可能需要原始输入数据中不同层次信息的场景,如迁移学习、多任务学习,或是领域适应。

RevCol到每个子解法:

  1. 可逆连接:类似于解压缩算法,保留所有信息,即使在数据经过多个处理层后。
  2. 融合模块:像城市交通枢纽,允许信息在不同层级间有效转换,防止信息丢失。
  3. 中间监督:相当于考试过程中的阶段测试,确保网络在学习过程中不偏离目标。

以融合模块为例,如果我们考虑将其替换为注意力机制,注意力机制允许模型专注于输入数据的最重要部分,类似于人类在观看场景时会自然地注意到最有意义的部分。

  • 对比分析:融合模块通过物理地在网络中融合不同层级的特征来保留信息,而注意力机制则是通过赋予不同特征不同的权重来实现。

融合模块可能会在保持空间信息方面更有效,因为它们允许不同分辨率的特征直接合并。

另一方面,注意力机制在确定哪些信息最相关时可能更加灵活和有效,因为它可以根据上下文动态调整不同特征的重要性。

  • 信息保持:融合模块通过直接合并来自不同层次的特征,能够保持丰富的空间信息。这是特别有用的,比如在处理图像的局部细节时,这些局部细节可能在高层次的抽象中丢失。
  • 信息选择:注意力机制能够选择性地强调网络应该关注的信息部分。在RevCol中,这可以用来动态调整网络在不同列和层级中传递的特征的权重。

结合这两个概念,我们可以创建一个新的融合模块,其中包含注意力机制,使模型能够通过融合模块保持来自不同层的详细信息。

具体的改进点包括:

  • 加权融合:在融合模块中,不同层级的特征图在合并前首先通过注意力机制进行加权。

这意味着,每个特征图不是简单地被物理合并,而是根据其对最终任务的相关性赋予了一个权重。

这允许模型更加关注对当前任务最有用的信息,类似于人类视觉系统会集中注意力于最重要的细节。

  • 多尺度注意力:设计一个可以处理来自不同尺度(即分辨率)的特征图的注意力机制。

这样的机制可以在更广泛的上下文中评估信息的相关性,不仅仅是在单个层级内。

例如,一个来自较低层的特征图(较低级的特征,如边缘或纹理)可能对某个具体任务是至关重要的,而这一点可能在高层次的抽象特征中不是那么明显。

小目标涨点

更新中…

YOLO v5 魔改

YOLO v7 魔改

YOLO v8 魔改

YOLO v9 魔改

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

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

相关文章

实践航拍小目标检测,基于YOLOv7【tiny/l/x】不同系列参数模型开发构建无人机航拍场景下的小目标检测识别分析系统

关于无人机相关的场景在我们之前的博文也有一些比较早期的实践,感兴趣的话可以自行移步阅读即可: 《deepLabV3Plus实现无人机航拍目标分割识别系统》 《基于目标检测的无人机航拍场景下小目标检测实践》 《助力环保河道水质监测,基于yolov…

LLM | GPT-NEOX论文详解

GPT-NEOX使用旋转位置编码。模型权重使用float16表示。最大序列长度为2048。 论文题目:2022.04.14_GPT-NeoX-20B: An Open-Source Autoregressive Language Model 论文地址:2204.06745.pdf (arxiv.org) 论文代码:EleutherAI/gpt-neox: An imp…

初次安装WordPress后如何进行网站设置(主题安装、插件安装、网站美化、网站备份、安全性提升、伪静态、多域名设置等)WordPress网站常见问题设置指南

专栏地址: WordPress建站主题美化系列教程https://blog.csdn.net/seeker1994/category_12184577.html 一文搞懂WordPress是什么?为什么用它建站?怎么安装与部署? 使用腾讯云快速搭建WordPress网站流程详解 ...... 1. 前言 专栏上几篇文章介绍了小白零基础如何使用腾讯…

Golang的Channel源码阅读、工作流程分析。

Channel整体结构 源码位置 位于src/runtime下的chan.go中。 Channel整体结构图 图源:https://i6448038.github.io/2019/04/11/go-channel/ Channel结构体 type hchan struct {qcount uint // total data in the queuedataqsiz uint // si…

09 |「ViewPager」

前言 实践是最好的学习方式,技术也如此。 文章目录 前言一、ViewPager 简介二、ViewPager 与 Fragment 结合1、ViewPager Fragment 实现底部页面导航2、ViewPager Fragment BottomNavigationView 实现底部页面导航3、ViewPager Fragment TabLayout 实现底部页面…

分类算法(Classification algorithms)

逻辑回归(logical regression): 逻辑回归这个名字听上去好像应该是回归算法的,但其实这个名字只是在历史上取名有点区别,但实际上它是一个完全属于是分类算法的。 我们为什么要学习它呢?在用我们的线性回归时会遇到一…

WPF 自定义彩色控制台功能

文章目录 前言环境流内容一个简单的控制台 自动添加数据无法添加数据模板代码添加参数简单的案例添加和清空功能完善代码 额外功能添加移动到底部添加样式 总结 前言 在WPF中添加模拟控制台,可以试试的看到最新的日志信息。但是普通的TextBlock只是纯粹的黑色&…

【C++】十大排序算法之 堆排序 计数排序

本次介绍内容参考自:十大经典排序算法(C实现) - fengMisaka - 博客园 (cnblogs.com) 排序算法是《数据结构与算法》中最基本的算法之一。 十种常见排序算法可以分为两大类: 比较类排序:通过比较来决定元素间的相对次序…

腾轩科技传媒讲解律师事务所创建百度词条的流程

在当今信息爆炸的时代,律师事务所需要在互联网上留下自己的痕迹,为了提升品牌知名度和业务曝光度,很多律师事务所选择在百度百科创建词条。但是,创建词条并不是一件简单的事情,需要注意许多细节和规定。本文腾轩科技传…

美国站群服务器使用技巧与注意事项

美国站群服务器使用技巧与注意事项有哪些?RAKsmart小编为您整理发布美国站群服务器使用技巧与注意事项,希望对您有帮助。 美国站群服务器的使用技巧主要包括远程管理、灵活配置和备份还原,具体如下: 1. **远程管理**:用户可以通过…

SpringBoot集成ElasticSearch(ES)

ElasticSearch环境搭建 采用docker-compose搭建,具体配置如下: version: 3# 网桥es -> 方便相互通讯 networks:es:services:elasticsearch:image: registry.cn-hangzhou.aliyuncs.com/zhengqing/elasticsearch:7.14.1 # 原镜像elasticsearch:7.…

Python】深度学习基础知识——随机梯度下降详解和示例

本文通过原理和示例对随机梯度下降进行了详解,并和梯度下降进行了对比分析,简单易懂。 随机梯度下降原理示例 动态学习率动态学习率示例 总结 随机梯度下降 原理 示例 import torch import torch.nn as nn import matplotlib.pyplot as pltdef train_2…

Vue.js大师: 构建动态Web应用的全面指南

VUE ECMAScript介绍什么是ECMAScriptECMAScript 和 JavaScript 的关系ECMAScript 6 简介 ES6新特性let基本使用const不定参数箭头函数对象简写模块化导出导入a.jsb.jsmain.js Vue简介MVVM 模式的实现者——双向数据绑定模式 Vue环境搭建在页面引入vue的js文件即可。创建div元素…

简单两步,从补税到退税

大家好,我是拭心。 最近到了一年一度的个人所得税年度申报时期,有人可以退好几千,而有的人则需要补上万元,人类的悲喜这一刻并不相通。 我申报的时候,提示我需要补税一万多,心有不甘但差一点就认了&#xf…

瑞芯微第二代8nm高性能AIOT平台 RK3576 详细介绍

RK3576处理器 RK3576瑞芯微第二代8nm高性能AIOT平台,它集成了独立的6TOPS(Tera Operations Per Second,每秒万亿次操作)NPU(神经网络处理单元),用于处理人工智能相关的任务。此外,R…

07-prometheus的自定义监控-pushgateway工具组件

一、概述 pushgateway用于自定义监控节点、节点中服务的工具,用户可以通过自定义的命令获取数据,并将数据推送给pushgateway中; prometheus服务,从pushgateway中获取监控数据; 二、部署pushgateway 我们可以“随便”找…

分库分表浅析原理

数据库存放数据大了,查询等操作就会存在瓶颈,怎么办? 1. 如果是单张表数据大了,可以在原有库上新建几张表table_0、table1、table2、.....table_n 写程序对数据进行分表: --这里提供一种一种分表策略,这里只需维护分…

VR全景数字工厂,制造业企业线上营销新助手

VR全景技术逐渐渗透到各行各业,其中,很多实体工厂的线上营销宣传也借助720云VR全景技术也迎来了新的变革。 一、VR全景技术的独特魅力 VR全景技术是一种基于虚拟现实技术的全新视觉呈现方式,能够为用户带来身临其境的沉浸式体验。通过VR全景…

Clion开发STM32之printf的缓冲区验证方式

前言 clion开发stm32时,涉及到printf函数的重写,一般我们重写__io_putchar函数经发现printf函数在没有加换行符时,数据不会立刻通过串口发送数据,而是等到1024字节之后发送数据 测试 主程序 现象 debug调试 不加换行的情况 总…

985硕的4家大厂实习与校招经历专题分享(part1)

先简单介绍一下我的个人经历: 985硕士24届毕业生,实验室方向:CV深度学习 就业:工程-java后端 关注大模型相关技术发展 校招offer: 阿里巴巴 字节跳动 等10 研究生期间独立发了一篇二区SCI 实习经历:字节 阿里 京东 B站 (只看大厂…