MulT: An End-to-End Multitask Learning Transformer 多任务共享注意力

文章

       同时学习多个高级视觉任务,包括深度估计、语义分割、reshading表面法线估计、2D 关键点检测和边缘检测。

  • 与单个任务Transformer相比,跨任务联合培训的Transformer模型能否提高每个任务的性能?
  • 在基于Transformer的框架中,可以显式地对任务之间的依赖关系进行编码吗?
  • 多任务Transformer可以推广到相似领域吗?

       我们提出了一个端到端的多任务学习转换器框架MulT,用于同时学习多个高级视觉任务,包括深度估计、语义分割、重阴影、表面法线估计、二维关键点检测和边缘检测。基于Swin-transformer模型,我们的框架将输入图像编码为共享表示,并使用特定于任务的基于transformer的解码器头对每个视觉任务进行预测。我们方法的核心是一种共享注意机制,它对任务之间的依赖关系进行建模。我们在多个多任务基准上评估了我们的模型,结果表明我们的MulT框架UT既可以执行最先进的多任务卷积神经网络模型,也可以执行所有相应的单任务转换器模型。我们的实验进一步强调了在所有任务中共享注意力的好处,并证明了我们的MulT模型是健壮的,可以很好地推广到新的领域。

        MulT: An End-to-End Multitask Learning Transformer
       Code:https://github.com/IVRL/MulT

1. ☞ 简介

        在本文中研究了变压器在多任务学习中的使用。(虽然有一些作品研究了如何使用转换器来处理多个输入模式,如图像和文本,但它们通常专注于单个任务,例如视觉问答,但[20]除外,它处理多个语言任务,但只处理一个视觉任务。相比之下,我们的目标是连接涵盖2D、3D和语义域的多个视觉任务。)

       我们引入了MulT,它包括一个基于转换器的编码器,用于将输入图像转换为任务共享的潜在表示,然后具有任务特定头的转换器解码器,用于生成每个任务的最终预测。 贡献总结:
• 我们提出了一种端到端多任务转换器体系结构,它在一个模型中处理多个高级视觉任务。
• 我们在多个任务的transformer解码器之间引入了shared attention(共同关注☺)。这种共享注意力机制进一步提高了每个视觉任务的性能。
• 我们的框架使我们能够了解跨高级愿景任务的相互依赖性。
• 我们表明,与现有的多任务卷积模型相比,我们的模型在不同视觉任务上的平均误差更低,可以推广和适应新的领域【42,54】。

       我们对各种任务进行了详尽的实验和分析,结果表明,我们的MulT模型不仅改善了单任务体系结构的性能,而且在基准上(如Taskonomy[55]、Replica[43]、NYU[32]和CocoDoom[30])也优于最先进的基于CNN的多任务模型(如图1所示)

2. 模型 MulT: A Multitask Transformer

在这里插入图片描述

       对于基于transformer的编码器,我们使用一个名为Swin transformer的金字塔主干,将视觉特征嵌入到包含全局上下文信息的隐藏状态列表(a list of hidden states that incorporates global contextual information)中。然后,我们应用transformer解码器对编码图像中的标记化映射进行逐步解码和上采样。最后,将transformer解码器的表示传递给特定于任务的头部。例如一个简单的两层分类器(在分割的情况下),它输出最终的预测。鉴于MulT的简单性,它可以很容易地扩展到更多的任务。我们的经验表明,我们的模型可以联合学习6个不同的任务,并且可以很好地推广到新的领域。

网络的详细信息

3.1. Encoder Module

       编码器采用SWN-L,它以金字塔的方式将堆叠变压器应用于分辨率逐渐降低的特征,从而产生分层多尺度编码特征,如图2所示。
       特别是,按照ResNet[18]的结构和设计规则,依次定义了四个阶段:每个阶段都包含一个面片嵌入步骤,该步骤降低了空间分辨率并增加了通道尺寸,以及一个变压器块的柱状序列。
       第一阶段中的初始基本贴片嵌入使用大小为pH=pW=4和通道大小为C=192的方形贴片执行,无需添加“类”token;
       所有三个后续阶段中的面片合并采用前一阶段的输出标记,在2D表示中对其进行重塑,并通过按通道串联和线性变换将相邻标记聚集在大小为pH=pW=2的非重叠面片中,从而将产生的通道数减半(从而使通道数相对于输入标记加倍)。
       这种方法将分辨率减半,并在每个中间阶段将通道尺寸加倍,与典型的完全卷积主干的行为相匹配,并生成与大多数以前的视觉任务体系结构兼容的特征金字塔(输出大小为原始分辨率的1/4、1/8、1/16、1/32)。(后边有关swin-transformer窗口划分等设计略去。)

3.2. Decoder Module

(主要描述了跳跃连接的结构)
       受【57】中提出的两个基于CNN的解码器的启发,我们开发了相应的基于变压器的概念相似的版本。一般的想法是用加窗变压器块代替卷积层。具体而言,我们的解码器架构由四个阶段组成,每个阶段包含一个由2个转换器块组成的序列,总共8个。在每个阶段中,两个顺序转换器块允许我们通过交替的规则和移位窗口配置(如编码器中)来利用窗口间连接。在连续的阶段之间,我们使用上采样层将空间分辨率提高一倍,通道尺寸降低一半;因此,我们在第一、第二、第三和第四阶段将注意力头的数量分别调整为48、24、12、6。
       生成的特征映射的空间/通道形状与编码器级的输出相匹配,编码器级的输出通过跳过连接传递到相应的解码器级。这产生了一种沙漏结构,具有镜像编码器-解码器通信:解码器的较低分辨率级由较高级别的较深编码特征引导,解码器的较高分辨率级由较低级别的较浅编码特征引导,允许以从粗到细的方式逐渐恢复信息,并在更相关的地方利用不同的语义级别。注意,解码器的每一级中的第一变换块使用常规窗口分区,而第二变换块使用移位窗口分区;这可以很容易地扩展到使用更长的变压器块序列,只要长度是2的倍数,这就可以在两种配置之间交替。
       为了执行多任务预测,我们在所有任务中共享编码器,并使用具有相同体系结构但参数值不同的特定于任务的解码器。然后,我们只需将特定于任务的头附加到解码器。例如,一个为语义分割和深度预测联合训练的模型将有两个特定于任务的头部:一个预测K通道,然后是用于语义分割的softmax,另一个预测单个通道,然后是用于深度估计的sigmoid。

❊ 3.3. Shared Attention

       计算任务t的自注意的标准方法是仅从它自己的解码器输出xt中获取键、查询和值向量。本文的计算方法如图3所示:

在这里插入图片描述

在这里插入图片描述

项目含义注释
x t x^t xt某次解码器的上采样输出解码器输入
x s a x_{sa} xsa以相同分辨率运行的编码器的输出解码器输入
q s a r q^r_{sa} qsarquerylinear( x s a x_{sa} xsa)
k s a r k^r_{sa} ksarkeylinear( x s a x_{sa} xsa)
x r x^r xr一个特定参考任务r的解码器输出
C r C^r Cr通道个数
B r B^r Brbias
v t v_t vt对于任务t的value
x ^ t = A s a r v t \hat x^t = A^r_{sa}v^t x^t=Asarvt

       得到q,k,v只后进行多头注意力计算:

在这里插入图片描述

项目含义注释
h e a d i t ( x ^ i t , W i t ) = x ^ i t ⋅ W i t head^t_i(\hat x^t_i, W^t_i) =\hat x_i^t\cdot W_i^t headit(x^it,Wit)=x^itWit
$ W_i^t$对于任务t的可学权重
x ^ i t \hat x_i^t x^it x ^ t \hat x^t x^t的第i个通道
W表示多头注意力权重计算 M H A t MHA^t MHAt公式中的W

       从经验来看,参考任务选择为surface normal task 。

       请注意,我们的共同关注不同于之前的工作【8】中引入的共同关注,其中值和键通过编码器层的跳过连接传递。图4显示了在任务中添加共享注意机制的效果,其中,与不使用共享注意的MulT模型相比,使用共享注意机制的MulT改进了所有任务的结果。

LOSS

来自transformer解码器模块的特征映射被输入到不同的任务头,以进行后续预测。每个类头包括一个线性层以输出一个H×W×1贴图,其中H,W是输入图像的尺寸。我们采用基于加权和(11)的任务特定损失来联合训练网络,其中损失在每个任务的地面真实值和最终预测之间计算。特别是,我们分别使用交叉熵进行分割,旋转损失用于深度,L1损失用于曲面法线、2D关键点、2D边和重着色。请注意,我们使用这些损失来保持与基线的一致性【42、54、55】。

       

参考与更多

更多
Swin-Unet
End-to-End Multi-Task Learning with Attention
10、31、41 提到了使用变压器解决多个任务的问题,除了使用共享主干之外,这些工作都不旨在编码任务之间的强依赖关系

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值