GLID: Pre-training a Generalist Encoder-Decoder Vision Model

1 研究目的

现在存在的问题是:

目前,尽管自监督预训练方法(如Masked Autoencoder)在迁移学习中取得了成功,但对于不同的下游任务,仍需要附加任务特定的子架构,这些特定于任务的子架构很复杂,需要在下游任务上从头开始训练,这使得大规模预训练的好处无法得到充分利用,制了预训练模型的通用性和效率。

为了解决这个问题,论文提出了:

GLID预训练方法,该方法通过统一预训练和微调阶段的架构,使得预训练模型能够更好地适应各种下游任务。

具体来说,GLID将预训练前置任务和其他下游任务都建模为“查询-回答”问题,每个查询都与一个掩码补丁位置相关联,并将其设置为其位置嵌入。每个查询的“答案”或学习目标是相应掩码补丁的像素值。从而实现了任务无关的编码器-解码器的预训练。

微调阶段,GLID保持预训练的编码器-解码器和查询不变,只需对最顶层的线性变换层进行替换,以输出每个任务的所需目标。这样,所提出的GLID尽可能地保持预先训练的权重,这最小化了预训练与微调之间的架构不一致性,并使预训练模型能够更好地适应下游任务。

特别是,编码器和解码器可以通过重建前置任务联合训练。

2 方法

 自监督预训练方法MAE(Masked Autoencoder) 仅主干预训练与 GLID 预训练。

GLID 预训练允许预训练的编码器-解码器在各种视觉任务上进行微调,而无需特定于任务的解码器设计,并且优于仅 MAE 主干的预训练。

  • 掩模图像建模(MIM)是一种流行的视觉表示学习的前置任务,旨在从损坏的输入中重建被屏蔽的标记。
  • MAE方法提出了一种非对称编码器-解码器架构,并使用编码器处理部分可见的标记,并使用轻量级解码器在掩码位置预测相应的像素值。

2.1 通用编码器-解码器预训练

  1. 给定一个输入掩码图像imagex∈RH×W ×3,其中H, W为图像的高度和宽度,将其划分为图像块并将其转换为图像标记,并应用随机掩码 M 来屏蔽一部分输入标记。
  2. 图像编码器Enc用于提取视觉特征,视觉编码器来生成多尺度特征图,视觉编码器遵循MAE,仅用于处理可见标记。Bi-FPN用于更好的使不同特征图尺度之间的交互
  3. 基于查询Q的变压器解码器Dec解码最终特征(将多个尺度特征图输入到L个交叉注意力和自注意力块的解码器中产生最终预测)

针对第3步:

引入了许多掩码标记 [M] 作为解码器的输入查询,这些查询被添加到不同的位置嵌入中,以表示唯一的掩码位置。

此外,在第 0 个位置附加一个额外的 [CLS] 标记查询,它与特定的掩码位置无关,但用于捕获全局表示。所以在预训练期间,我们可以将 Q 表示为 Q = [CLS, M1, M2,..., MN] 其中 N 表示掩码标记的数量。

     4.通过最顶层的线性变换层替换,以输出每个任务的所需目标,在掩码位置使用像素值 P t 作             为重建目标。

     5.对于下游任务的微调,将预训练的最顶层的线性变换层替换为特定于任务的线性层,通过这             种方式最小化了预训练-微调差距,并使预训练的架构更好的适应下游任务

     6.使用不同的 Q-P 对在不同的任务之间切换

  • 在预训练期间,通过掩码图像建模(MIM)预训练与任务无关的编码器-解码器转换器架构。
  • 对于下游任务的微调,将最顶层的线性变换层替换为特定于任务的线性头。通过这种方式,所提出的 GLID 最小化了预训练-微调差距,并使预训练的架构能够更好地适应下游任务。
  • 将解码器架构与下游任务中使用的解码器对齐,将MIM前置任务重新表述为“查询到答案”问题,并使用基于查询的变压器解码器 解码 掩码标记 进行预训练。

上图中编码器中的Backbone和BiFPN是什么意思?

  • Backbone:在计算机视觉任务中,Backbone通常指的是预训练的基础网络模型,用于提取输入图像的基本特征。这些特征随后可以被用于各种下游任务,如目标检测、图像分割等。Backbone网络结构多样,常见的包括ResNet、VGG等。
  • BiFPN:BiFPN是Bidirectional Feature Pyramid Network的缩写,是一种用于目标检测等任务的特征融合方法。它旨在融合不同尺度的特征信息,以提高目标检测的精度。通过自顶向下和自底向上的方式,BiFPN能够有效地融合低层次和高层次特征,使得网络能够同时捕获到细节信息和全局信息。

上图为GLID预训练的流程

2.2 下游任务的微调

基于通用设计,可以将预训练的GLID模型应用于各种下游任务,包括目标检测、图像分割、姿态估计和深度估计。

所有这些任务也被建模为新的“查询-答案”问题,可以通过用特定于任务的线性层替换预训练中使用的最顶层线性层并将不同的学习目标分配给查询-答案对来无缝地将GLID微调到这些任务。

2.2.1 目标检测

对于目标检测任务,每个查询都用于表示对象实例,基于DETR。使用两个线性层将解码的隐藏特征分别转换为边界框和类概率

2.2.2 图像分割

用 Mask2Former 的方法,每个查询用于预测  C-维度 掩码嵌入及其类别。因此,我们可以通过掩码嵌入和主干的 1/4 尺度特征图之间的点积来获得二进制掩码预测,然后是 sigmoid 激活

2.2.3 深度估计

用 AdaBins 和 BinsFormer 的方法,深度回归任务被表述为“分类回归”问题,其中连续预测是通过 bin 中心的线性组合获得的。具体来说,查询的隐藏特征通过深度头转换为 bin 长度和 bin 嵌入, 然后我们可以通过 bin 嵌入和主干的 1/4 尺度特征图之间的点积来获得概率分布图 ,然后是 softmax 函数

2.2.4 姿态估计

利用基于热图的ViTPose姿态估计方法。特别是,每个查询都用于输出关键点的热图。采用位姿预测头将查询特征转换为c维特征向量,表示不同关键点的热图P,位姿热图就可以得到。

      综上,在获得查询的预测后,遵循现有技术使用预测和基本事实之间的任务损失进行微调。特别是,计算对象检测和图像分割任务的二部匹配损失,对于这两个任务,预测的数量通常大于基本事实的数量。对于深度估计和姿态估计任务,分别使用尺度不变(SI)回归损失和平滑L1损失。在微调 GLID 时,继承了大多数预训练的架构权重,以充分利用大规模数据集上的自我监督预训练。

3 评估

3.1 定量评估

该表显示了作者的方法与其他特定和通用方法的比较。作者的通用方法可以通过最少的架构修改来解决所研究的任务,并在这些任务上取得了强大的性能。

将预训练的编码器-解码器微调到各种下游任务,包括

  • COCO上的目标检测/姿态估计
  • ADE20K上的语义/实例/全景分割
  • NYUDepth-v2上的深度估计
  • 在文献中提到的APbox、mIoU、mAP、PQ、REL、RMSE和APkp都是用于评估不同计算机视觉任务性能的指标。这些指标通常用于衡量模型在特定数据集上的表现,帮助研究者了解模型的性能并进行优化。

其中的对应的各个指标:

  • AP^{kp}Average Precision for Keypoints,即关键点的平均精度。这个指标在关键点检测或人体姿态估计任务中使用,用于衡量模型对关键点位置的预测准确性。AP^{kp}越高,说明模型在关键点检测任务中的性能越好。

  • AP^{box}:Average Precision for Bounding Boxes,即边界框的平均精度。这个指标通常用于目标检测任务中,衡量模型对目标物体位置预测的准确程度。AP^{box}越高,说明模型在定位目标物体时的性能越好。

  • mIoU:Mean Intersection over Union,即平均交并比。这是语义分割任务中常用的一个指标,用于衡量模型预测出的分割区域与真实分割区域之间的重叠程度。mIoU越高,说明模型的分割性能越好。

  • mAP:Mean Average Precision,即平均精度均值。这个指标在目标检测任务中广泛使用,用于衡量模型在不同召回率下的平均精度。mAP越高,说明模型在检测目标物体时的性能越稳定且准确。

  • PQ:Panoptic Quality,即全景质量。这个指标用于全景分割任务,综合衡量了分割的准确性和完整性。PQ越高,说明模型在全景分割任务中的性能越好。

  • REL:这是一个相对误差的指标,可能因任务而异。在某些任务中,它可能用于衡量模型预测值与真实值之间的相对误差大小。REL越低,通常表示模型的预测更为准确。

  • RMSE:Root Mean Square Error,即均方根误差。这个指标用于衡量模型预测值与真实值之间的偏差大小。RMSE越小,说明模型的预测值与真实值越接近,性能越好。

  • “数据”表示预训练数据。
  • “w/ Labels”预训练阶段不仅利用了无标签数据进行自监督学习,还结合了带标签的数据进行有监督学习。
  • \bigstar”表示模型可以执行此类任务,但没有报告结果。
  • “-”表示模型无法执行此类任务。
  • † 表示我们使用官方代码的实现。

Swin-B、Swin-L代表的是Swin Transformer的不同版本或大小

  • Swin-B通常代表较小的模型版本,适用于资源有限或需要快速推理的场景。
  • Swin-L则代表较大的模型版本,通常具有更多的参数和更强的性能,适用于需要更高精度的任务或场景。

该表将作者的预训练方法 GLID 与之前的预训练方法进行比较,以证明其在各种视觉任务上的有效性,使用相同架构的预训练主干,在研究的下游任务上微调它们。

3.2 消融实验

表3的内容:

  • 除了在各种任务上单独微调预训练模型外,作者还探索了多任务微调。
  • ADE20K 上的多任务与单任务微调,因为它的注释可用于三种类型的分割任务。我们在具有不同任务组合的数据集上微调预训练的 Swin-B。
  • 发现多任务模型不如单任务模型(训练语义、训练实例、全景任务

表4的内容:

  • 为了性能比较,加载部分预训练权重的消融。对于未加载的架构,用随机权重初始化它。
  • 然后,在两个下游任务上微调模型,并将它们与完整的预训练模型进行了比较。第 1 行的结果是从头开始训练的。随着加载更多预训练的权重,性能会逐渐提高。
  • 此外,加载 BiFPN 部分也可以优于仅加载主干权重的选择。所有结果证明了通才编码器-解码器预训练的重要性。

表5,为了研究解码器深度对我们的模型的影响,测试了改变模型中解码器层的数量。

       具体来说,使用 3、6 和 9 个解码器层预训练模型,并在下游任务上微调它们。请注意,对预训练和微调使用相同的解码器层数。如表中所示,使用更多的解码器层并不能带来显着的性能提升,而是引入了额外的计算成本。

表6,为了研究预训练 epoch 的数量对模型的性能的影响,改变了预训练 epoch 的数量。

        使用不同数量的 epoch 进行预训练,并在下游任务上微调预训练模型。

        发现如果预训练 900 个 epoch,性能逐渐饱和并且没有太大改善。

表7,掩码策略和掩码比率。研究了掩码策略和掩码比率的影响

发现使用随机掩码在其他掩码策略中表现最好。此外,使用较大的掩码比率,即 0.75,会导致最佳结果。

表8,使用有限数据进行微调,研究了有限数据在微调期间的影响。

主要原因是对于有监督的预训练方法,需要在下游任务中从头开始训练特定于任务的解码器,相比之下,GLID统一预训练方法可以同时预训练并保持预训练的编码器-解码器即使在没有太多特定于任务的数据的情况下也实现了强大的性能。

3.3 定性评估

查询在不同任务上的交叉注意映射。每列显示特定任务上的三个尺度注意力图。特定于任务的查询用于可视化。

观察到查询可以专注于不同任务的不同语义部分。

  • 对于预训练前置任务,查询学习关注局部区域进行重建。
  • 对于目标检测和姿态估计任务,查询关注一些极值点,例如对象的边界或特定的关键点位置。
  • 对于分割或深度估计任务,注意图对不同的语义区域有明显的分离。

比较了部分加载预先训练的权重在语义分割和深度估计任务上的收敛曲线,和表4是一样的

4优点

  1. 通用性强:GLID方法通过设计一种通用的编码器-解码器结构,使得预训练模型能够处理多种不同的下游计算机视觉任务,而不需要为每一个任务都设计特定的子架构。这种通用性使得GLID在多种任务上都能取得良好的性能。

  2. 适应性好:GLID预训练方案将预训练任务和下游任务都建模为“查询-回答”问题,这种设计使得预训练模型能够更好地适应不同的任务需求。在微调阶段,GLID仅替换最顶层的线性变换层为任务特定的线性头,从而最小化了预训练与微调阶段架构的不一致性,使得预训练模型能够更好地适应下游任务。

  3. 性能优越:GLID在多种视觉任务上展现出竞争性的性能,包括目标检测、图像分割、姿态估计和深度估计等。与专业的模型如Mask2Former、DETR、ViTPose和BinsFormer相比,GLID要么性能更好,要么性能相当。

5 限制

  1. 可能受限于预训练任务:虽然GLID设计了一个通用的编码器-解码器结构,但预训练任务的设计对于模型性能仍然至关重要。如果预训练任务不能很好地涵盖下游任务的需求,那么模型在下游任务上的性能可能会受到影响。

  2. 计算资源需求大:由于GLID方法涉及到大规模的预训练,因此可能需要大量的计算资源和时间。这对于资源有限的研究机构或个人来说可能是一个挑战。

  3. 任务特定头的设计:虽然GLID在微调阶段只需要替换顶层的线性变换层,但对于某些复杂的任务,可能还需要更精细的任务特定头设计,以进一步提高性能。这增加了在特定任务上应用GLID的复杂性。

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

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

相关文章

【信号处理】心电信号传统R波检测定位典型方法实现(matlab)

关于 心电信号中QRS波检测是一个非常重要的步骤,可以用于实现重要波群的基本定位,在定位基础上,可以进一步分析心电信号的特征变化,从而为医疗诊断提供必要的参考。 工具 MATLAB ECG心电信号 方法实现 ECG心电信号加载 ecg …

JetBrains PhpStorm v2024.1 安装教程 (PHP集成开发IDE)

前言 PhpStorm是由JetBrains推出的一款轻量级集成开发环境,专为PHP开发者而设计。该软件融合了智能的HTML/CSS/JavaScript/PHP编辑器、代码质量分析工具、版本控制系统集成(包括SVN和GIT)、调试和测试等功能。除此之外,PhpStorm还…

C++异常和断言

C异常 异常的理念看似有前途&#xff0c;但实际的使用效果并不好。编程社区达成的一致意见是&#xff0c;最好不要使用这项功能。C98引入异常规范&#xff0c;C11已弃用。 例如&#xff1a;我们输入1时抛出异常。 #include <iostream> #include <vector> #includ…

Charles 工具如何做断点测试?

在测试工作过程中&#xff0c;我们经常会在程序的某一行或者某一环节设置断点&#xff0c;在程序请求的过程中&#xff0c;修改断点处的参数、请求或者响应&#xff0c;借此定位问题&#xff0c;这就是所谓的断点测试。这类断点测试主要用于接口测试。 断点测试可以通过查看接…

W801学习笔记十一:掌机进阶V3版本之硬件改造

经由前面的笔记&#xff0c;我们打造出了一款游戏掌机。 W801学习笔记十&#xff1a;HLK-W801制作学习机/NES游戏机(总结) 然而&#xff0c;考虑到后续的游戏开发&#xff0c;总是忧心容量不足。故而&#xff0c;在正式展开软件开发工作以前&#xff0c;最终进行一下升级改造…

maven多模块创建-安装配置

1、前提 许久没有写文章了&#xff0c;荒废了2年多的时间&#xff0c;在整理的时候&#xff0c;发现Maven还差一篇安装配置的文章&#xff0c;现在开始提笔完善它&#xff0c;参考&#xff1a;https://blog.csdn.net/m0_72803119/article/details/134634164。 —写于2024年4月…

LeetCode - 11.盛最多水的容器

一. 题目链接 LeetCode - 11.盛最多水的容器 二. 思路解释 利用双指针的思想&#xff0c;定义一个left和reght&#xff0c;left指向首部&#xff0c;right指向尾部&#xff0c;计算当前两个指针所对应的高度构成容器的体积。根据当前双指针所指的高度的大小&#xff0c;然后让…

linux服务器和RAID磁盘阵列

1、服务器 &#xff08;1&#xff09;服务器分类 机架式居多 塔式 刀片式 机柜式 机架式 机架式服务器是一种服务器的机箱形式&#xff0c;它被设计为在服务器机架或机柜中安装。机架式服务器通常具有标准的19英寸宽度&#xff0c;并且可以根据服务器的高度进行划分&#xff0…

富唯智能:打造未来机器人教育新标杆

随着科技的飞速发展&#xff0c;机器人教育正逐渐成为培养未来人才的重要领域。富唯智能&#xff0c;作为业内领先的机器人技术提供商&#xff0c;近日推出了一款全新的机器人教育实践平台系统&#xff0c;旨在为学生提供更加丰富、更具挑战性的学习体验。 该平台系统以AUBO-i5…

电力监控系统是什么,有哪些功能

电力监控系统是什么,有哪些功能 电力是国家重要的基础设施&#xff0c;电力监控系统用于监视和控制电力生产和供应过程&#xff0c;是电力安全稳定运行的支撑系统。 什么是电力监控系统&#xff1f; 电力监控系统是指用于监视和控制电力生产及供应过程的、基于计算机及网…

上网行为管理软件有哪些?三款常用上网行为管理软件评测

互联网的普及&#xff0c;企业和个人对于网络安全和信息保护的需求越来越高。为了确保网络环境的安全和稳定&#xff0c;上网行为管理软件应运而生。本文将对三款常用的上网行为管理软件进行评测&#xff0c;分别是域智盾、Splunk Enterprise Security和安企神。 1、域智盾 域…

Linux查看僵尸进程

1、查看系统是否有僵尸进程 使用Top命令查找&#xff0c;当zombie前的数量不为0时&#xff0c;即系统内存在相应数量的僵尸进程。 2、定位僵尸进程 使用命令ps -A -ostat,ppid,pid,cmd |grep -e ‘^[Zz]’定位僵尸进程以及该僵尸进程的父进程。 3、杀死僵尸进程 使用Kill -…

二叉树中的最长交错路径

题目链接 二叉树中的最长交错路径 题目描述 注意点 每个节点的值在 [1, 100] 之间 解答思路 深度优先遍历整棵树&#xff0c;遍历的同时需要将到达根节点是向左交叉还是向右交叉以及路径长度传递到子树。当根节点是向左交叉遍历而来&#xff0c;子树想和根节点组成路径就只…

<计算机网络自顶向下> 面向连接的传输:TCP

目录 TCP: 概述 TCP报文段结构 TCP往返延时&#xff08;RTT&#xff09;和超时 可靠数据传输 快速重传 流量控制 连接管理 TCP: 概述 点对点 一个发送方&#xff0c;一个接收方可靠的、按顺序的字节流 不出错&#xff0c;不重复&#xff0c;不丢失&#xff0c;不失序没有报…

面试算法准备:动态规划

这里写自定义目录标题 1 理论2 例题2.1 斐波那契数列&#xff08;什么是重叠子问题&#xff09;2.1.1 带备忘录的递归解法 2.2 零钱兑换&#xff08;讲解最优子结构&#xff09;2.3 最长递增子序列&#xff08;讲解如何求解状态转移方程&#xff09;2.4 俄罗斯套娃信封问题&…

3月养颜抗氧化市场发展趋势洞察:抗糖亮肤功能性产品成为行业大势

随着我国人口老龄化程度的加深和人们对健康和美丽的追求日益增强&#xff0c;具备养颜抗氧化、抗衰老功能的产品逐渐成为市场热门&#xff0c;备受人们关注。 根据鲸参谋数据显示&#xff0c;今年3月份&#xff0c;在线上电商平台&#xff08;京东天猫淘宝&#xff09;养颜抗氧…

[Windows] Bypass分流抢票 v1.16.25 五一黄金周自动抢票软件(2024.02.08更新)

五一黄金周要来了&#xff0c;火车票难买到&#xff0c;即便官网候选订票也要看运气&#xff0c;推荐使用这个靠谱的自动抢票软件&#xff0c; 该工具是目前市面上最好用口碑最好的电脑抢票软件&#xff0c;从13年到现在&#xff0c;作者依旧在更新&#xff0c;可以自动识别123…

什么是最优物理隔离文件导出导入解决方案,来看看吧

企业进行物理隔离的主要原因是为了提高安全性&#xff0c;减少安全风险。物理隔离通常指的是将网络或系统中的关键部分与外界断开直接连接&#xff0c;以增强安全性。在企业环境中&#xff0c;这通常意味着将内部网络&#xff08;内网&#xff09;与外部网络&#xff08;如互联…

关于MCU核心板的一些常见问题

BGA植球与焊接&#xff08;多涂焊油&#xff09;&#xff1a; 【BGA芯片是真麻烦&#xff0c;主要是植锡珠太麻烦了&#xff0c;拆一次就得重新植】https://www.bilibili.com/video/BV1vW4y1w7oNvd_source3cc3c07b09206097d0d8b0aefdf07958 / NC电容一般有两种含义&#xff1…

控制台居然可以这么玩?五分钟带你上手ANSI指令,实现一个log工具包

目录 前言 基础知识 进阶实践 ANSI参数 ANSI类 JSLog类 工具的使用说明 配置相关 全局配置项 默认配置 基本用法 打印字符 添加全局配置项 清空所有样式及操作行为 校验传入的参数是否正确 样式控制 Node环境 浏览器中 光标控制指令 光标位置偏移 滚动条控…