Chen_AdaMV-MoE_Adaptive_Multi-Task_Vision_Mixture-of-Experts 译文

news2024/11/25 11:31:02

摘要

      稀疏激活的专家混合(MoE)正在成为多任务学习(MTL)的一个有前途的范例。 MoE 不是将多个任务的知识压缩到单个模型中,而是分离参数空间,仅利用给定任务类型及其输入的相关模型片段,从而提供稳定的 MTL 训练和超高效推理。然而,当前的 MoE 方法对所有任务采用固定的网络容量(例如,通常是两个专家)。它可能会导致简单任务的过度拟合或具有挑战性的场景的欠拟合,特别是当任务的复杂性显著不同时。在本文中,我们提出了一种用于多任务视觉识别的自适应 MoE 框架,称为 AdaMV-MoE。基于训练动态,它自动确定每个任务的激活专家数量,避免了费力地手动调整最佳模型大小。为了验证我们的建议,我们在 ImageNet 分类和 COCO 对象检测和实例分割上对其进行了基准测试,由于它们之间的差异,它们很难协同学习。与具有共享主干的 MTL 和最近最先进的 (SoTA) MTL MoE 方法相比,针对各种视觉transformers的大量实验证明了 AdaMV-MoE 具有卓越的性能。

  1. Introduction

图 1. 各种 ViT 架构在 ImageNet 分类(y 轴)、COCO 对象检测和实例分割(x 轴)基准上的多任务视觉识别性能。报告检测 AP (%) 和分割 APmask (%) 的平均结果。标记 ✫ 和 ❍ 分别表示我们的方法和基线方法。标记越大表示用于推理的浮点运算 (FLOP) 越多。 ViT-Small* 是一种具有半transformers层的精简主干变体

FLOPS:注意全大写,是floating point operations per second的缩写,意指每秒浮点运算次数,理解为计算速度。是一个衡量硬件性能的指标。

FLOPs:注意s小写,是floating point operations的缩写(s表复数),意指浮点运算数,理解为计算量。可以用来衡量算法/模型的复杂度。

多任务视觉识别旨在同时解决多个目标,这在实际应用中通常是需要的。例如,机器人[64]需要学习如何同时拾取、放置、覆盖、重新排列和对齐对象;自动驾驶车辆[42]预计将同时执行可行驶区域估计、车道检测、行人检测等。经典的多任务学习(MTL)方法[52,60,28,48,67,85,51]学习不同任务之间的共享表示并附加任务具体的头。遵循视觉识别的通用趋势,最近的 MTL 作品利用视觉 Transformers (ViTs) [25,68,49,10] 作为新的统一主干 [7, 5]。

然而,这种具有单一主干的 MTL 模型存在训练不稳定和推理效率低下的问题。正如[56,81,17]所指出的,共享参数可能会收到来自不同目标的冲突更新方向,这种负面竞争通常会导致训练收敛性差、表示有偏差和性能较差。此同时,现有的 MTL 机制通常会激活整个网络主干,无论出现什么任务。它会造成潜在的计算浪费,因为各种现实世界的 MTL 系统 [64] 在每个时刻执行一项或多项任务,这可能只需要相关的模型片段。稀疏激活的专家混合 (SMoE) 是解决这两个 MTL 瓶颈的令人鼓舞的补救措施。具体来说,一项开创性研究[46]将 SMoE 层插入到 MTL ViT 中,方法是用一系列稀疏的前馈网络替换其密集的前馈网络用一系列的激活MOE(例如,多层感知(MLP))。然后,执行与任务相关的路由策略来选择任务相关专家的子集。 MTL MoE [46] 证明了令人印象深刻的结果。

尽管进行了这些初步调查,构建有效的 MTL 系统仍然存在关键挑战:如何为 MTL 中的每个任务确定适当的网络容量?通过将其视为超参数,由于任务之间的纠缠,对每个任务执行手动调整是费力且不可行的。因此,所有任务的固定模型大小是现有 MTL 方法的常规设置(例如,在 [46] 中始终使用 4 个专家)。然而,这种僵化和次优的设计可能会牺牲某些任务的学习,因为网络容量过多或不足会分别导致简单或复杂场景中的过度拟合或欠拟合[72]。当优化任务复杂性差异很大的多个任务时,缺点将进一步放大。以图像分类和目标检测任务为例。首先,常见的分类基准具有较低的输入分辨率,例如 CIFAR [40] 的输入分辨率为 32 × 32,ImageNet [24] 的输入分辨率为 224 × 224,而目标检测通常在分辨率为 640 ×640或892×892的 COCO [47] 数据集上进行评估。其次,为了获得令人满意的性能,用于检测的常规网络[9]通常大于用于分类的网络[69],例如ResNet-101[34]与ResNet-50。第三,就任务目标而言,目标检测既包含目标定位又包含目标识别,因此比本质上可以视为子任务的分类更为复杂。正如[18, 33]中所发现的,他们不匹配的学习目标强调不同的特征属性(即位置不变[8]与敏感)。鉴于任务复杂性的这种异质性,这两个任务很难在共享特征提取器和统一模型大小的情况下一起学习。因此需要一种自适应机制。

在本文中,我们提出 AdaMV-MoE,通过无缝定制当前最先进的 (SOTA) MTL MoE [46] 来解决上述关键障碍。具体来说,提出了一种自适应专家选择机制来自动确定不同视觉任务所使用的专家数量(或模型容量)。我们监控验证损失,以自适应地确定激活更多/更少的专家,以防止欠拟合/过度拟合。我们的贡献总结如下:

⋆ 我们针对多任务视觉识别问题,解决为不同任务选择合适的网络容量的关键挑战。根据训练动态,我们的算法以自适应和自动的方式控制特定于任务的模型大小。  

⋆ 我们引入了定制的MoE来同时解决图像分类、对象检测和实例分割的问题,这对于MTL来说曾经是一个麻烦的组合。提供了我们学习到的特定于任务的路由决策的可视化,并公开了专业化模式,特别是对于图像内容。

 ⋆ 进行了大量的实验来揭示 AdaMV-MoE 在 MTL 中的有效性,如图 1 所示。例如,我们的方法通过共享特征提取器超越了普通的 MTL ViT,显着的性能裕度为 {6.66% ∼ 7.39%准确率,0.87% ∼ 1.13% AP,0.84% ∼ 0.89% APmask},在具有 UViT-Base 主干的 ImageNet 和 COCO 数据集上{图像分类、对象检测、实例分割}[16]。  

  1. 相关工作

多任务学习(MTL)。 MTL 解决多个目标并为输入样本生成相应的预测。它已经被研究了很长的历史,并且提出了许多解决方案,从经典的学习算法[78,36,89,4,8​​0,43,23,41]到现代深度神经网络。深度学习方法生成共享特征表示来对跨任务的公共信息进行建模,这些任务可以分为两组,即以编码器为中心的管道和以解码器为中心的管道。前者[52,60,28,48]允许编码器中的任务交互,并将特定于任务的头附加在其顶部作为独立的解码器。例如,[52]和[48]分别提倡使用线性组合和注意力机制来学习任务之间共享的编码器表示。后者[77,87,86,70]首先从解码器创建初始的任务相关特征,然后将它们聚合以形成最终的每任务预测。此类管道消耗大量计算,因为它们至少需要为初始解码器功能执行一次所有任务,这限制了它们在资源受限场景中的实际使用。在本文中,我们主要研究以编码器为中心的架构。

传统的编码器架构是卷积神经网络(CNN)[48,63,84,85]。随着 ViT 的出现,IPT [11] 利用基于 Transformer 的模型来解决多个低级视觉任务。 [54]和[61]分别对视频中的{对象检测,语义分割}和{场景和动作理解,分数预测}任务采用类似的架构。 [7] 进一步涉及 3D 领域的视觉任务。我们的工作考虑使用基于 ViT 的模型联合学习分类、对象检测和实例分割。请注意,这是非常重要的,因为分类和检测和分割分别强调位置不变[8]和敏感特征,这可能相互矛盾。此外,MTL 的另一个主题研究如何共享和分离参数空间,分别用于学习任务无关和特定知识 [66,71,55,6,46]。

混合专家 (MoE)。 MoE 将一些网络组件复制成一系列副本(称为专家)并以依赖于输入的方式包含条件计算[37,39,12,82]。 MoE 的最早变体密集地激活每个输入的所有专家,因此它是计算密集型的 [26]。后来,[62,44,27]提倡使用稀疏激活的专家方式,称为稀疏 MoE (SMoE)。它极大地降低了训练和推理阶段的成本,从而提供了令人印象深刻的可扩展性,甚至允许具有数万亿参数的巨大语言模型[27]。 SMoE 的有效性已在各种 NLP [62,44,91,88,93,38] 和视觉 [58,26,2,30,74,79,1,57] 任务中得到广泛证明。特别是,开创性的工作[58]为图像识别任务提供了第一个基于视觉transformer的SMoE。

随着进一步的调查,SMoE 的几个缺点被揭示出来,包括: i) 训练不稳定。 [92]对SMoE的训练稳定性和质量之间进行了权衡研究,他们展示了许多经典技巧,如梯度裁剪稳定训练,但牺牲了性能,而路由器z-loss [92]似乎带来了双赢的情况。 ii) 专业化程度低。 SMoE 的理想结果是通过与选定的专家一起解决每个问题来分治某些任务 [3,32,51,53,15]。然而,除非明确强制专业化并减少专家之间的冗余[13],例如预先定义多样化的专家分配[22]或涉及多个路由策略[32],否则很难实现这一目标。 iii) 代表性崩溃。训练有素的 SMoE 很容易出现负载不平衡的情况,例如,只有少数专家被频繁使用,而其他专家则很少被激活。为了缓解这个问题,[62]在路由器网络中添加了高斯噪声; [44, 27]提出辅助损失作为正则化; [45]制定并解决了平衡线性分配问题; [91]为每个专家分配top-k相关输入; [59, 93]采用确定性哈希和随机路由;和[14]分别促进训练期间的多样性。在本文中,我们不仅研究了上述瓶颈,还研究了路由器的新特性,例如策略收敛。Convergence

最近的几项研究还探讨了 SMoE 在 MTL 场景中的可能性。具体来说,[51,3,32,31,90]使用任务相关的路由器网络为每个任务选择具有固定大小的模型的相关部分。它们在医疗信号分类 [3]、数字图像 (MNIST) [32] 和推荐系统 [51] 等小规模应用中显示出积极的结果。 [46] 使用与 SMoE 共同设计的模型加速器来研究高效的设备上 MTL。

  1. 方法

 3.1。重新审视稀疏的专家组合

SMoE [62] 建议扩大模型容量,同时保持较低的每次推理成本。在这项工作中,我们考虑 ViT 的 SMoE [25, 58],它将 SMoE 层插入到每个其他transformer块中。 SMoE层包含路由器网络R和若干专家f1,f2,····,fE,其中E为专家数量。专家模块可以是一些完全连接的 [62, 58] 或卷积层 [73],我们将多层感知 (MLP) 复制为专家网络,如图 2 所示。请注意,ViT 中的 MLP 包含大约 2/3总参数计数,[29, 20] 证明了它们作为存储大量知识的记忆网络的重要性。

SMoE 层中的另一个关键组件,即 R,激活具有与输入嵌入 x 相关的最大分数 R(x)i 的前 k 个专家网络,其中 i 是专家索引。通常,所选专家的数量 k 是固定的,并且远小于专家总数 E,这表明 SMoE 的稀疏激活方式。专家分布可以正式描述如下:

其中 fi(x) 代表专家 fi 产生的特征表示,由 R(x)i 加权形成最终输出 y。网络 g 是路由器 R 内的可学习部分,通常是一层或几层 MLP [62, 27]。 TopK是一个丢弃排在k之后的小元素的函数。为了减少不平衡负载(或表示崩溃[19])的负面影响,我们遵循[58]中的设计和默认超参数,引入正则化项来平衡专家分配。

3.2. AdaMV-MoE:混合专家的自适应多任务视觉识别

AdaMV-MoE 概述 我们提出的框架,即 AdaMV-MoE,由任务相关的路由器网络和自适应专家选择(AES)机制组成。如图 2 所示,input token embeddings 根据任务类型输入相应的路由器网络。然后,任务相关路由器选择最相关的专家,并针对不同的任务聚合他们的特征。所选专家的数量是根据 AES 的实时训练动态动态决定的。

 任务相关的路由策略。令 Rj 代表任务 j 的路由器,所有专家网络 {fi}|E i=1 都在任务之间共享。配备任务相关路由器网络的SMoE定义为:

其中 kj 和 yj 分别是特定于任务的激活专家数量和输出。正如第 4 节所支持的,不同路由策略之间的差异带来了参数空间的纠缠,从而减轻了 MTL 的梯度冲突并提高了性能。

 自适应专家选择(AES)。由于任务复杂性的差异,各种视觉识别任务的最佳网络大小可能会发生显着变化。如果不经过艰苦的尝试和错误,很难手动得出结论。相反,我们采用自动算法 AES 以数据驱动的方式确定 kj。如算法 1 所示,它首先计算验证集上特定于任务的目标 Lj val。如果 Lj val 在接下来的 Δn 迭代中没有衰减,那么我们通过更新 kj = kj + 1 来扩展激活的模型大小。现有文献[76]指出,适当的网络扩展为逃离功能空间中的鞍点创造了可能性,并进一步降低了目标值。同时,如果Lj val大于之前的最佳验证损失Lj val(best),则将所选专家数量减少kj = kj − 1。最后,固定kj,在达到训练目标数量的情况下继续训练模型迭代。对所有任务重复上述过程。

  1. 实验

4.1。实施细节

网络骨干网。我们的实验集中在基于 ViT 的主干上,包括 ViT [25] 及其高级变体 - UViT [16]。改变模型大小,我们建立了四个ViT:{ViT-Small*、ViT-Small、ViT-Base、UViT-Base},其详细信息如表2所示。

主干网络首先从分类和检测数据集中获取输入图像,然后提取将由特定于任务的模块进一步处理的特征。我们的实验中选择了 Cascade Mask-RCNN [9] 的线性分类层以及检测和分割头。按照[58],ViT和SMoE层交替排列。更多详细信息请参见 A1 部分。

表 1.我们提出的 AdaMV-MoE 的多任务视觉识别性能。报告 ImageNet-1k 上的分类 (CLS)、对象检测 (OD) 和 {准确率 (%)}、{AP (%)、AP50(%)、AP75(%)} 和 {APmask(%)}分别在 COCO 上进行实例分割(IS)。 # 参数(M)表示自适应分配的网络容量。采用ViT-Small*/Small/Base [25]和UViT-Base [16]骨干网,其详细信息记录在表2中。ViT-Small*是ViT-Small的简化变体,具有半变压器层。与基线 MTL-ViT 和最近最先进的 MTL 方法 TAPS 进行比较 [71]。我们的 AdaMV-MoE 中的专家 E 总数为 8。{Dense 和 Large Dense、Sparse} 表示 {整个、部分}网络分别用于训练和推理阶段的每个任务。 N.A. 表示“不适用”。

数据集和任务。我们在 ImageNet [24] 和 MS COCO 2017 [47] 数据集上检查我们的方法,分别用于分类和【检测 分割】任务。 ImageNet 包含 1, 000 个类别的 1.28M 训练图像和 50K 测试图像,而 MS COCO 2017 包含 118K 训练图像和 5K 验证图像。用于分类的输入分辨率为 224 × 224,用于对象检测和实例分割的输入分辨率为 640 × 640。

基线。为了支持我们建议的有效性,我们考虑三组比较基线:(1)用于单任务学习(STL)的密集 ViT,即 CLS 的 ViT 和 OD & IS 的 ViT。 (2)用于多任务学习的密集ViT,即MTL-ViT。它共享完整的特征提取器和附加的任务特定头。大密集意味着强化基线,具有更大的隐藏维度和更多的参数计数,如附录 A1 所示。 (3) TAPS [71],一种最近的state of the art的多任务方法,提倡任务自适应参数共享。  

训练和评估详细信息。单任务学习基线的训练批量大小为 1,024 和 256 分别用于分类、对象检测和实例分割。对于 MTL 训练,两个任务的批量大小分别为 1、024 和 128。在训练期间,数据增强适用于这两项任务。对于分类,我们使用 CutMix [83] 和 MixUp [65]。至于检测和分割,采用随机缩放增强来增强输入样本。

我们的 ViT 使用 AdamW [50] 进行优化,权重衰减为 {6 × 10−3, 1 × 10−4, 5 × 10−4},初始学习率 (LR) 为 3 × 10−3,{20, 2, 10}K 次迭代预热,以及 {CLS, OD & IS, MTL} 的余弦 LR 衰减时间表。  模型训练涉及多种损失函数,例如用于分类的交叉熵损失以及用于检测和分割的 Mask-RCNN 的{class, box, mask}损失。在我们的例子中,[16]的默认超参数是继承的。至于AdaMV-MoE,我们添加了两个辅助损失项重要性和负载正则化[58]用于路由器网络学习。这两个损失的系数设置为 5 × 10−3 [58]。应用AES时,将Δn的值设置为2000,并随机保留1%的训练样本来构造AES的验证集Dval。对于 TAPS 和 AdaMV-MoE,我们首先训练网络来解决 300K 步骤的分类任务,并同时训练两个任务(CLS 和 OD & IS),额外增加 200K 步骤。对于{Dense、Large Dense},它经过 200K 次迭代的训练。训练步骤的消融研究见附录 A2。每个实验使用 16 ∼ 64 和 8 个 TPU-v3 进行训练和推理。

为了评估经过训练的 ViT 的性能,我们报告了分类的测试准确性、对象检测任务的验证 {AP, AP50, AP75} [16] 以及实例分割的验证 APmask [16]。此外,还可以计算激活参数的数量(以百万为单位)表示每项任务所使用的模型容量。

4.2. AdaMV-MoE 卓越的多任务视觉识别性能

 STL 和 MTL 方法的比较。

我们选择 ViT-Small*/Small/Base 和 UViT-Base 网络架构,考虑到它们的普通(密集)、加宽(大密集)和 SMoE(稀疏)变体。所有方法都在 ImageNet 分类和 COCO 对象检测和实例分割的基准上进行检查。比较结果收集在表 1 中,其中可以得出以下观察结果: ❶ 与具有共享 ViT 特征提取器(即(Dense、Large Dense)MTL)的 MTL 基线相比,我们的 AdaMV-MoE 表现出巨大的优势,具有明显的性能裕度-ViT。具体来说,AdaMV-MoE获得{(4.69%, 2.67%)、(2.69%, 1.30%)、(1.75%, 0.79%)}、{(9.06%, 6.54%)、(0.73%, 0.09%)、 (0.87%, 0.05%)}, {(4.41%, 4.18%), (0.07%, 0.23%), (0.19%, 0.26%)}, {(7.39%, 6.66%), (1.13%, 0.87% ViT-Small*/Small/Base 和 UViT-Base 的{准确度 (%)、AP (%)、APmask (%)} 改进分别为 (0.84%, 0.89%)}。它验证了我们建议的有效性。 ❷ AdaMV-MoE 通过激活不同数量的模型参数,自适应地分配足够的网络容量来解决分类、检测和分割任务。例如,我们的建议在 CLS 上花费较少的参数数量,而在具有挑战性的 OD 和 IS 任务上花费更多的参数预算,例如,在 ViT-Small 的情况下为 29.65M 和 34.97M,这与我们的直觉一致。 ❸ 此外,AdaMV-MoE 在 ImageNet 和 COCO 数据集上始终超越了最近的 SoTA MTL 方法,即 TAPS [71],准确率达到 0.14% ∼ 3.78%,AP 0.29% ∼ 4.78%,APmask 0.17% ∼ 3.38%跨越四个 ViT 主干网。同时,与单任务学习基线相比,ViT-Small* 取得了有竞争力的结果,进一步显示了我们算法的优越性。

AdaMV-MoE 的消融研究

为了研究 AdaMV-MoE 中每个组件的贡献,使用 ViT-Small* 在多任务视觉识别上进行了综合实验。如表3和表4所示,我们对路由器设计、MTL期间自适应网络容量的需求以及采用AdaMV-MoE时的专家数量进行了消融。

▷ 任务无关路由器与任务相关路由器 R。表 3 中的结果表明,任务相关路由策略比任务无关路由策略受益更多,并且与 MTL-ViT 基线相比,性能增益更大。

 ▷ 带或不带自适应专家选择 (AES)。配备 AES,激活的模型大小针对不同任务进行了优化,从而显着提升了 MTL 性能。具体来说,我们的 w. AES 优于其变体 w.o. AES 的{0.95% 准确度、0.43% AP、0.53% APmask} 改进,以及最近发明的 MTL-MoE [46] 的{0.92% 准确度、0.51% AP、0.52% APmask} 增益,这证明了定制化的必要性每个任务的网络容量。请注意,我们两个都没有。 AES 和 MTL-MoE [46] 在所有视觉任务中采用固定且统一的模型大小(或 # 个选定的专家),这可能会导致较差的结果。

 ▷ 专家数量。作为 SMoE 设计中最重要的超参数之一,E 大致反映了允许通过动态路由进行探索的整体参数空间的大小。表 4 报告了 AdaMV-MoE 在 {1, 4, 8, 16, 32} 位专家的情况下的结果,其中如果设置 E = 1,AdaMV-MoE 就会退化为 MTL-ViT。我们发现 AdaMV-MoE 的性能在超过 8 个专家的情况下饱和。专家认为,E = 8 似乎是我们的多任务视觉识别基准测试中的“最佳点”。

 4.3. AdaMV-MoE 的深入剖析

鉴于 AdaMV-MoE 的优越性,我们通过研究其 i) 专业化、ii) 路由质量、iii) 引入 SMoE 层的足够位置以及 iv) 缓解措施进一步提供深入剖析多个训练目标对梯度冲突的影响。  

Q1:专家的选择是否针对不同的任务、类别和图像内容?是的。 AdaMV-MoE 的一个关键优势是,它优化了 MTL 期间为每个任务和输入样本激活多少(即自适应网络容量)和哪些(即动态路由)专家。我们研究了从粗粒度到细粒度的路由专业化的三重级别,包括任务、类和补丁级别。  

▷ 任务级专业化。从图4(左)中,我们发现❶专家之间的负载总体均衡,这表明所有模型参数都得到了充分利用; ❷ 相对而言,根据频率,CLS 更喜欢专家 1 和 6,OD 和 IS 更喜欢专家 1、3 和 7。  

▷ 等级级别专业化。图 4(右)显示了 AdaMV-MoE 中最后一个 SMoE 层的按类别专家使用情况进行分类,我们观察到大多数类别首选专家 6,而其他专家选择似乎与类别类型相关,这与[58]中的研究结果一致。 OD 和 IS 也存在类似的观察结果,如附录 A2 所示。

 ▷ 补丁级专业化。在图 3 中,我们可视化了 AdaMV-MoE w 的专家分配。每个输入补丁的 ViT-Small。具体来说,激活专家的top-1和top-2分别由补丁边界和内容的颜色表示,其中不同的颜色代表不同的专家。 ❶ 对于分类,背景中的大多数斑块被分配给与黑色斑块边界和红色斑块内容相关的两个特定专家,而利用不同的专家来处理前景中的主要对象。 ❷ 对于对象检测和实例分割,呈现出清晰的补丁式专业化。例如,不同的图像内容(例如对象边界、对象主体和背景)由独特且特定的专家子集处理。这样,任务就分工攻克了。

Q2:学习到的路由策略的质量如何?高品质体现在较少的路由崩溃和良好的政策收敛性方面。我们从崩溃[19]和收敛[21]的角度研究AdaMV-MoE的路由策略。 ❶ 为了研究其路由崩溃,我们绘制了路由器网络隐藏特征的多样性,如图 5 所示。CLS 和 OD & IS 的热图显示了均匀分布的隐藏状态,表明平衡的专家分配和较少的表示崩溃 [19]这与图 4 中得出的观察结果一致。 ❷ 对于策略收敛,我们选择 ViT-Small* 的浅 SMoE 层和深 SMoE 层,并在图 4 中显示来自不同训练迭代的路由决策之间的汉明距离6. 我们注意到,在前 25K 次迭代后,路由收敛得很好,浅 SMoE 层具有更高的收敛速度,具有更小的路由波动和更好的样本效率 [21]。这种高质量的路由策略可能解释了 AdaMV-MoE 的优越性。  

Q3:我们应该在哪里插入 SMoE 层?后来的层。对于视觉转换器,有多种选项可以用 SMoE 层替换原始 ViT 层。我们比较了不同的设计选择,例如在早期、中期、后期和每两层采用 SMoE,其中每个 AdaMV-MoE 变体都有一半 ViT 和一半 SMoE 层。表 5 中的结果表明,仅对早期层实施 SMoE 会导致 MTL 性能较差。一个可能的原因是早期层通常负责学习基本形状或颜色等共同特征,这些特征应该在视觉识别任务期间跨类共享。

Q4:AdaMV-MoE 是否可以缓解不同任务的梯度冲突问题?是的。首先,由于其稀疏和条件计算方式,AdvMV-MoE 自然地解开了不同任务的参数空间。其次,如图 7 所示,对于所有任务的通用参数,我们的建议通常会减少梯度冲突,例如,CLS 和 OD 的训练梯度之间的负余弦距离较小,正余弦距离较大。

5.结论在本文中,我们提出了一种自适应多任务视觉识别框架,旨在自动设计用于独特任务的网络容量。我们的建议无缝定制当前的 SoTA MTL Mixtureof-Experts,并通过自适应激活或停用专家来优化特定于任务的模型大小。对各种 ViT 架构的广泛调查一致证明了我们的方法在 ImageNet 分类和 COCO 对象检测和实例分割的挑战性基准上的性能改进。未来的工作包括扩展“Pathway”系统等多模式多任务学习。

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

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

相关文章

Linux---ps命令

​​​​​​Linux ps 命令 | 菜鸟教程 (runoob.com) process status 用于显示进程的状态 USER: 用户名,运行此进程的用户名。PID: 进程ID(Process ID),每个进程的唯一标识号%CPU: 进程当前使用的CPU百分比%MEM: 进程当前使用的…

VLAN是什么,一个好的网络为什么要划分VLAN呢?

前言 在上一篇中讲解了交换机的工作原理,知道了交换机处理数据的转发方式,其中有两种情况会以广播方式进行发送数据,第一种是目的MAC是全F的,以及组播MAC,第二种是未知单播帧,那这个会带来什么样的问题呢&…

衡山派D133EBS 开发环境安装及SDK编译烧写镜像烧录

1.创建新文件夹,用来存放SDK包(其实本质就是路径要对就ok了),右键鼠标通过Open Git Bash here来打开git 输入命令 git clone --depth1 https://gitee.com/lcsc/luban-lite.git 来拉取,如下所示:&#xff0…

基于Gradle搭建Spring6.2.x版本源码阅读环境

前言 阅读源码是程序猿成长的必经一环,正所谓知其然知其所以然。我们在开发成长道路上不仅需要知道如何使用,更要懂得其背后的原理,如此方可得心应手。本篇文章旨在指导大家搭建Spring6.0以上版本的源码阅读环境,方便大家在学习源…

C++自动化测试:GTest 与 GitLab CI/CD 的完美融合

在现代软件开发中,自动化测试是保证代码质量和稳定性的关键手段。对于C项目而言,自动化测试尤为重要,它能有效捕捉代码中的潜在缺陷,提高代码的可维护性和可靠性。本文将重点介绍如何在C项目中结合使用Google Test(GTe…

ubuntu16.04在ros使用USB摄像头-解决could not open /dev/video0问题

首先检查摄像头 lsusb 安装 uvc camera 功能包 sudo apt-get install ros-indigo-uvc-camera 安装 image 相关功能包 sudo apt-get install ros-kinetic-image-* sudo apt-get install ros-kinetic-rqt-image-view运行 uvc_camera 节点 首先输入roscore 然后另外开一个终端输入…

Linux:文件管理(二)——文件缓冲区

目录 一、缓冲区概念 二、缓冲区刷新机制 三、用缓冲区刷新解释下面现象。 一、缓冲区概念 缓冲区,本质就是一块内存区域。 设计缓冲区就是为了让本来要一次一次传的数据,都暂时传到缓冲区,让缓冲区刷新一次,这样只发生了一次传…

PH热榜 | 2024-11-24

DevNow 是一个精简的开源技术博客项目模版,支持 Vercel 一键部署,支持评论、搜索等功能,欢迎大家体验。 在线预览 1. AutoFlow Studio 标语:借助简化的AI质检,更快发布产品,更聪明地进行测试。 介绍&…

hubuctf-2024校赛-复现wp

web easyweb1 <?php error_reporting(0); highlight_file(__FILE__);$flag getenv("GZCTF_FLAG");if(isset($_GET[num])){$num $_GET[num];if(preg_match("/[0-9]/", $num)){die("You are failed.");}if(intval($num)){echo $flag;} } 利…

飞书会话消息左右排列

飞书会话消息左右排列 1. 飞书登录后&#xff0c;点击头像&#xff0c;弹出菜单有个按钮设置 2. 3.

《图像形态学运算全解析:原理、语法及示例展示》

简介&#xff1a; 本文详细介绍了图像形态学中的多种运算&#xff0c;包括腐蚀、膨胀、开运算、闭运算、形态学梯度运算、礼帽运算以及黑帽运算。分别阐述了各运算的原理、语法格式&#xff0c;并通过 Python 代码结合具体示例图片&#xff08;如erode.JPG、dilate.JPG、close.…

链路聚合实验

1、聚合方式 &#xff08;1&#xff09;、lacp 静态链路聚合、 动态链路聚合&#xff08;开启lacp模式&#xff0c;常用&#xff09; &#xff08;2&#xff09;、手工负载分担 静态端口聚合&#xff08;两台交换机都按照下面的命令配置&#xff09; <H3C>sys System Vi…

电子电气架构 -- ASIL D安全实现策略

我是穿拖鞋的汉子&#xff0c;魔都中坚持长期主义的汽车电子工程师。 老规矩&#xff0c;分享一段喜欢的文字&#xff0c;避免自己成为高知识低文化的工程师&#xff1a; 所有人的看法和评价都是暂时的&#xff0c;只有自己的经历是伴随一生的&#xff0c;几乎所有的担忧和畏惧…

禁止Chrome的自动升级

一、需求分析 因为用Chromeselenium做了网页自动化填写任务&#xff0c;如果Google Chrome浏览器自动升级&#xff0c;就会导致chromedriver加载失败&#xff0c;自动化任务失效&#xff0c;因此需要禁止Chrome浏览器的自动升级。 二、当前环境 三、实际配置 运行注册表编辑…

C0034.在Ubuntu中安装的Qt路径

Qt安装路径查询 在终端输入qmake -v如上中/usr/lib/x86_64-linux-gnu就是Qt的安装目录&#xff1b;

C++从零到满绩——类和对象(中)

目录 1>>前言 2>>构造函数&#xff08;我称之为初始化函数&#xff09; 3>>析构函数&#xff08;我称之为销毁函数&#xff09; 4>>拷贝构造函数&#xff08;我称之为复制函数&#xff09; 5>>运算符重载 5.2>>赋值运算符重载 ​编辑…

oracle 12c查看执行过的sql及当前正在执行的sql

V$SQL 提供了已经执行过及正在执行的SQL语句的信息。 一 查看共享池中所有sql的统计信息 #统计共享池中某类sql执行次数&#xff0c;总体执行时长&#xff0c;平均执行时长等信息&#xff0c;并按总体执行时长降序排序 SELECT INST_ID,SQL_ID,SQL_TEXT,SQL_FULLTEXT,EXECUTI…

解锁PPTist的全新体验:Windows系统环境下本地部署与远程访问

文章目录 前言1. 本地安装PPTist2. PPTist 使用介绍3. 安装Cpolar内网穿透4. 配置公网地址5. 配置固定公网地址 前言 在Windows系统环境中&#xff0c;如何本地部署开源在线演示文稿应用PPTist&#xff0c;并实现远程访问&#xff1f;本文将为您提供详细的部署和配置指南。 P…

C语言中的指针和字符串的赋值

前言&#xff1a;温习下以前学过的C语言知识&#xff0c;温故而知新。 实例说明 本文用一段实例代码阐述指针和字符串的联系。 #include <iostream> #include <cstring> int main() {using namespace std;char animal[20] "bear";const char * bird …

Linux高阶——1117—TCP客户端服务端

目录 1、sock.h socket常用函数 网络初始化函数 首次响应函数 测试IO处理函数 获取时间函数 总代码 2、sock.c SOCKET() ACCEPT()——服务端使用这个函数等待客户端连接 CONNECT()——客户端使用这个函数连接服务端 BIND()——一般只有服务端使用 LISTEN()——服务端…