密集预测任务的多任务学习综述

本文综述了深度学习在多任务学习(MTL)中的应用,重点关注密集预测任务。介绍了硬参数共享(如共享编码器和特定任务解码器)和软参数共享(如跨线程网络和注意力机制)的架构,以及优化策略,如任务平衡(不确定性加权、梯度规范化、动态权重平均等)。这些方法旨在改善性能、计算效率和内存占用,同时利用任务间的互补信息。
摘要由CSDN通过智能技术生成

本篇翻译自:Multi-Task Learning for Dense Prediction Tasks: A Surveyhttps://arxiv.org/pdf/2004.13379v3.pdf

目录

摘要

1 引言

2 深度多任务结构

2.1 历史概述和分类

2.1.1 非深度学习方法

2.1.2 深度学习中的软硬参数共享

2.1.3 深度学习中的蒸馏任务预测

2.1.4 MTL方法的新分类

2.2 Encoder-Focused Architectures

2.2.1 Cross-Stitch Networks【十字绣网路】

2.2.2 Neural Discriminative Dimensionality Reduction

2.2.3 Multi-Task Attention Networks

2.2.4 Branched Multi-Task Learning Networks

2.3 Decoder-Focused Architectures 

2.3.1 PAD-Net

2.3.2 Pattern-Affinitive Propagation Networ

2.3.3 Joint Task-Recursive Learning

2.3.4 Multi-Scale Task Interaction Networks

2.4 Other Approaches

3 Optimization in MTL

3.1 Task Balancing Approaches

3.1.1 Uncertainty Weighting

3.1.2 Gradient Normalization

3.1.3 Dynamic Weight Averaging

3.1.4 Dynamic Task Prioritization

3.1.5 MTL as Multi-Objective Optimization

3.1.6 Discussion

3.2 Other Approaches


更多MTL参考文献:

MULTI-TASK LEARNING WITH DEEP NEURAL NETWORKS: A SURVEYhttps://arxiv.org/pdf/2009.09796.pdf

An Overview of Multi-Task Learning in Deep Neural Networkshttps://arxiv.org/pdf/1706.05098.pdf

摘要

MTL技巧在性能、计算和内存占用方面都有显著的提升。这篇综述中,我们在针对CV、密集预测中的多任务sota深度学习方法提出一个全局视角。研究成果涉及到以下几点:

首先,从网络结构的视角来看MTL,包含一个全面综述,并论述了最近MTL模型的优缺点;

其次,研究了多任务联合学习的优化方法,梳理了这些研究的定性因素、论述了共性和差异。

最后,提出了针对各种密集预测基准的广泛实验评估方法,来评估不同方法的优缺点,包括网络和优化策略。

索引词:MTL,密集预测任务,像素级预测任务,优化方法,CNN

1 引言

在过去的十年中,神经网络在许多任务中显示了令人印象深刻的结果,如语义分割,实例分割和单目深度估计。传统上,这些任务是孤立处理的,即为每个任务训练一个单独的神经网络。

然而,许多现实世界的问题本质上是多模式的。例如,自动驾驶汽车应该能够分割车道标记,检测场景中的所有实例,估计它们的距离和轨迹等,以便在其周围安全导航。同样的,智能广告系统应该能够从它的角度检测出人们的存在,了解他们的性别和年龄,分析他们的外表,跟踪他们在看什么,等等,以便提供个性化的内容。

与此同时,人类非常擅长同时解决许多任务。生物数据处理似乎也遵循多任务策略:不同的过程似乎共享大脑中相同的早期处理层,而不是将任务分开并单独处理它们。

上述观察结果促使研究人员开发了广义深度学习模型,即给定输入即可推断出所有期望的任务输出。

多任务学习 (MTL) 旨在通过利用相关任务的训练信号中包含的领域特定信息来改进这种泛化。

在深度学习时代,MTL 指的是设计能够从多任务监督信号中学习共享表示的网络。

与单任务的情况下,每个单独的任务都由它自己的网络单独解决的情况相比,这种多任务网络给表带来了几个优点:

首先,由于它们内在地存在共享层,其内存占用大大减少。

其次,由于他们明确地避免重复计算共享层中的特征,每个任务计算一次,他们显示出更高的推理速度。

最重要的是,如果相关联的任务共享互补的信息,或相互充当正则化因子,则它们具有提高性能的潜力。

在本综述中,研究了计算机视觉中 MTL 的深度学习方法。有兴趣的读者可以通过 [31] 了解 MTL 在其他应用领域的概况,如自然语言处理 [32]、语音识别 [33]、生物信息学 [34]等。最重要的是,本文强调解决多像素级或密集的预测任务,而不是多图像级分类任务,这种情况在 MTL 中尚未得到充分探索。

解决多个密集预测任务与解决多个分类任务有几个不同之处。

首先,由于联合学习多个密集预测任务由不同的损失函数控制,不像分类任务主要使用交叉熵损失,需要额外考虑,以避免在训练过程中某些任务压倒其他任务的情况。(损失函数使用方法不同)

其次,相对于图像级分类任务,密集的预测任务不能直接从共享的全局图像表示进行预测,这使得网络设计更加困难。(网络设计方法不同)

第三,场景理解中的像素级任务通常具有类似的特征,这些相似性可以潜在地用于在 MTL 设置下提高性能。一个典型的例子是语义分割和深度估计。

关于 MTL 的大量文献相当零散。例如,在本文第 2 节中确定了两组关于深度多任务架构的主要工作,它们在很大程度上是相互独立的。此外,对使用的评价指标和基准也没有达成一致。本文旨在对这一问题提供一个较为统一的观点。此外,本文提供了一个全面的实验研究,在横向比较(同类比较)中评估了两组 MTL 工作。

MTL survey 工作已经在 [30],[31],[36],[37] 进行了研究。

在 [30] 中,Caruana 表明 MTL 是有益的,因为它允许通过将相关的额外任务纳入 train pipeline 来获得归纳偏差。作者展示了 MTL 在人工神经网络、决策树和 k-最近邻方法中的使用,但该研究处于神经网络的早期阶段,在深度学习时代显得过时。

Ruder [36] 概述了最近应用于深度神经网络的 MTL 技术 (如 [5],[6],[9],[19])。同样,Zhang 和Yang [31] 对 MTL 的特征学习、低秩、任务聚类、任务关系学习和分解方法进行了综述。然而,这两个工作都是文献综述研究,没有实证评价或几项技术的对比研究。

最后,Gong et al. [37] 在三个 MTL 数据集上对几种优化技术 (如 [8]、[19]) 进行了基准测试。然而,这项研究的范围是相当有限的,明显集中在优化方面。

最重要的是,所有之前的研究都提供了对 MTL 的宽泛概述,但没有特别关注在计算机视觉中至关重要的密集预测任务。

在下面的小节中,本文将全面介绍定义范围内的最先进的 MTL 技术。

第 2 节考虑了不同的深度多任务体系结构,将它们分为两大类:以编码器和解码器为重点的方法。

第 3 节考察了在更新网络权重时平衡任务影响的各种优化技术。本文考虑了大部分的任务平衡,包括对抗和控制技术。

第 4 节为对比实验部分,本文在每组方法 (例如以编码器为中心的方法) 的范围内以及在方法 (例如以编码器为中心的方法 vs 以解码器为中心的方法) 的不同数据集上提供了广泛的实验评估。

第 5 节讨论了 MTL 与其他领域的关系。

第 6 节对全文进行总结。

图1展示了本文的编排结构,为了降低综述中提到的MTL技术的应用难度,我们代码已开源:

https://github.com/SimonVandenhende/Multi-Task-Learning-PyTorch
 

2 深度多任务结构

本节回顾多任务学习的结构。首先,简要介绍 MTL 方法的历史概况,然后介绍了一种新的分类法来对不同的方法进行分类。其次,从不同的研究群体中讨论网络设计,并分析其优缺点。

2.1 历史概述和分类

2.1.1 非深度学习方法

在深度学习时代之前,MTL尝试对各任务之间的共享信息进行建模,希望联合学习任务能取得较好的泛化性能。为了做到这一点,他们在参数空间会做一个假设,如:任务参数应该在距离空间内很接近、共享同一个先验概率、可以映射到同一个低维子空间或流型。当任务相关时,这些假设很有效。但是当任务不相关时,这种设计可能导致性能降低。后者是MTL中的已知问题,称作负迁移,为了缓解这类问题,一些研究选择基于对任务相似性或相关性的先验信念将任务分组。

2.1.2 深度学习中的软硬参数共享

在深度学习环境下,MTL 是通过从多任务监控信号中学习共享表示来实现的。在历史上,深度多任务架构分为硬参数共享技术和软参数共享技术。

在硬参数共享中,将参数集分为共享参数和任务特定参数 (如图 2a)。使用硬参数共享的 MTL 模型通常由一个共享编码器组成,该编码器分支到特定于任务的头 [19],[20],[22],[53],[54]。

在软参数共享中,每个任务被分配给自己的一组参数,一个特征共享机制处理跨任务对话 (见图 2b)。
硬参数共享。

UberNet [55] 是第一个共同解决大量低、中、高层视觉任务的硬参数共享模型。该模型具有跨不同网络层和规模的多头设计。不过,最具特色的硬参数共享设计包括一个共享编码器,该编码器分支为特定任务的解码器。

Multilinear relationship networks [56] 通过在全连通层的参数集上放置张量法线先验来扩展这种设计。在这些工作中,网络中的分支点是自定义的,这可能导致次优任务分组。为了缓解这个问题,最近的几个项目 [9],[10],[11],[12] 提出了自动决定在网络中何处共享或分支的高效设计程序。

类似地,随机滤波器组(stochastic filter groups) [57] 在每一层重新使用卷积核,以支持共享或特定任务的行为。

软参数共享。

Cross-stitch networks [5] 在深度 MTL 架构中引入了软参数共享。该模型采用特定任务网络各层激活的线性组合作为软特征融合的手段。

Sluice networks [6] 通过允许学习分层、子空间和跳过连接的选择性共享扩展了这一思想。

NDDR - CNN [7] 还在特征融合层中加入了降维技术。

与此不同的是,MTAN [8] 使用了一种注意机制,在特定任务网络之间共享一个通用的特征池。

软参数共享方法的一个问题是可伸缩性,因为多任务网络的规模往往随任务数量线性增长。

2.1.3 深度学习中的蒸馏任务预测

第 2.1.2 节中介绍的所有工作都遵循一个共同的模式:它们直接预测一个处理周期中来自相同输入的所有任务输出。

相反,最近的一些研究首先使用多任务网络来进行初始任务预测,然后利用这些初始预测的特性进一步改进每个任务的输出——以一次性或递归的方式。

PAD-Net [13] 提出通过空间注意从其他任务的初始任务预测中提取信息,然后将其作为兴趣任务的残差添加到兴趣任务中。

JTRL [15] 选择按顺序预测每个任务,目的是在每次迭代时利用来自一个任务的过去预测的信息来改进另一个任务的特性。

PAP-Net [14] 扩展了这一思想,并使用递归过程传播在初始任务预测中发现的类似的跨任务和特定任务模式。为了做到这一点,他们对初始预测的亲和矩阵进行操作,而不是对特征本身进行操作,就像 [13],[15] 之前的情况一样。

Zhou et al. [17] 通过将任务间和任务内模式分离出来,改进了使用像素亲和力来提取信息的方法。

MTI-Net [16] 采用多尺度多峰蒸馏过程,明确地模拟发生在每个个体尺度上的独特任务交互作用。

2.1.4 MTL方法的新分类

如 2.1.2 节所述,多任务网络历来被分为软参数共享技术和硬参数共享技术。然而,最近的一些作品从这两组作品中获得了灵感,共同解决多个像素级的任务。因此,软参数共享范式和硬参数共享范式是否仍应作为对 MTL 体系结构进行分类的主要框架存在争议。

本综述提出了一种可选的分类法,根据任务交互发生的位置来区分不同的体系结构,即任务之间交换或共享信息或特征的网络位置。这个框架的动机在第 2.1.3 节中给出。基于提出的标准,我们区分了两种类型的模型:以 encoder-focused 和 decoder-focused 的体系结构。

encoder-focused 的架构 (参见图3a) 在使用独立的任务专用头解码每个任务之前,只使用硬参数或软参数共享编码器中的信息。

decoder-focused 的结构 (见图3b) 也在解码阶段交换信息。

2.2 Encoder-Focused Architectures

Encoder-focused  的架构 (参见图 3a) 在编码阶段共享任务特性,然后使用一组独立的特定任务头来处理它们。[19],[20],[22],[53],[54] 的许多工作都采用了一种特别的策略,通过与小的特定任务头共享现成的主干网络 (参见图 2a)。这个模型依赖于编码器 (即 backbone 网络) 来学习场景的一般表示。然后,特定于任务的头部使用编码器的特性来获取每个任务的预测。虽然这个简单的模型在所有任务中共享完整的编码器,但最近的工作已经考虑了在编码器中共享特性的位置和方式。本文将在下面的小节中讨论这种共享策略。

2.2.1 Cross-Stitch Networks【十字绣网路】

Cross-stitch networks [5] 在编码器中的所有单任务网络中共享激活。假设在一个特定层有两个激活映射x_A, x_B,它们分别属于任务 A 和任务 B。将这些激活图进行可学习的线性组合,然后将变换后的结果\tilde{x}_A, \tilde{x}_B 馈给单任务网络中的下一层。该变换由可学习权值 \alpha参数化,可表示为 

\begin{bmatrix} \tilde{x}_A\\ \tilde{x}_B \end{bmatrix} =\begin{bmatrix} \alpha_{AA}& \alpha_{AB} \\ \alpha_{BA}& \alpha_{BB} \end{bmatrix} \begin{bmatrix} x_A\\ x_B \end{bmatrix}

如图 4 所示,这个过程在编码器的多个位置重复。通过学习权值\alpha,网络可以确定任务之间特征共享的程度。 

在实践中,需要对单任务网络进行预训练,然后将它们拼接在一起,以使性能最大化。

Cross-stitch 网络的一个缺点是网络的大小随任务的数量线性增加。此外,它是不清楚的 Cross-stitch 单位应该在哪里插入,以最大限度地发挥其效力。Sluice networks [6] 通过支持选择性共享子空间和跳过连接扩展了这项工作。

2.2.2 Neural Discriminative Dimensionality Reduction

Neural Discriminative dimension Reduction CNNs (NDDR-CNNs) [7] 使用了与 cross-stitch 网络类似的架构 (见图 4)。然而,不是使用线性组合来融合所有单任务网络的激活,而是使用了一种降维机制。首先,将单任务网络中具有相同空间分辨率的特征按通道拼接。其次,在将结果提供给下一层之前,通过 1x1 卷积层处理特征来减少通道的数量。卷积层允许融合所有通道的激活。不同的是,cross-stitch 网络只允许融合来自共享相同索引的通道的激活。当卷积层权矩阵中的非对角元素为零时,NDDR-CNNs 表现为 cross-stitch 网络。
由于它们与 cross-stitch 网络的相似性,NDDR-CNNs 容易出现同样的问题。首先,在处理大量任务时,存在可伸缩性问题。第二,NDDR-CNNs 涉及额外的设计选择,因为需要决定在哪里包含NDDR 层。最后,cross-stitch 网络和 NDDR-CNNs 在融合不同单任务网络的激活时,只允许使用有限的局部信息 (即较小的接受域)。假设这是次优的,因为在编码过程中使用足够的上下文非常重要——正如图像分类 [58] 和语义分割 [59],[60],[61] 所显示的那样。2.3 节中某些 decoder-focused 的架构支持了这一点,这些架构通过在多个尺度上预测任务,并在每个尺度上重复共享特征,克服了有限的接受域。

2.2.3 Multi-Task Attention Networks

Multi-Task Attention Networks (MTAN) [8] 使用了一个共享 backbone 网与编码器中的特定任务注意力模块相结合 (见图 5)。共享 backbone 网提取了一个通用的特征库。然后,每个任务特定的注意力模块通过应用一个软注意力 mask 从一般池化中选择特征。注意力机制是使用正则卷积层和 sigmoid 非线性实现的。由于注意力模块与 backbone 网络相比较小,因此 MTAN 模型不会受到 cross-stitch 网络和 NDDR-CNNs 通常存在的可伸缩性问题的严重影响。然而,与后者的融合机制类似,MTAN 模型只能使用有限的局部信息来生成注意力 mask。

2.2.4 Branched Multi-Task Learning Networks

章节 2.2.1-2.2.3 中介绍的模型在编码阶段柔和地共享了任务之间的特性。不同的是,分支多任务网络遵循硬参数共享方案。在提出这些方法之前,请考虑以下观察:深度神经网络倾向于学习分层图像表示 [62]。早期的层倾向于集中于更一般的低级图像特征,如边缘、角等,而更深的层倾向于提取更特定于任务的高级信息。

基于这种观察,分支 MTL 网络选择学习类似的层次编码结构 [9],[10],[11],[12]。这些分支网络通常以一些共享层开始,然后不同的任务(组)向外分支,形成它们自己的层序列。在这样做的过程中,随着向更深层次移动,不同的分支逐渐变得更加特定于任务。这种行为与深度神经网络学习的层次表示很好地一致。然而,由于可能的网络配置的数量组合起来很大,决定共享哪些层以及在哪里扩展就变得很麻烦。一些工作尝试自动化的过程,层次聚类任务形成分支 MTL 网络给定特定的计算预算 (如参数的数量,FLOPS)。
Fully-Adaptive Feature Sharing (FAFS) [9] 从一个网络开始,其中任务最初共享所有层,并在训练过程中以一种逐层贪婪的方式动态增长模型。优化任务分组,使不同的任务相互分离,同时最小化网络复杂度。任务相关性是基于任务中同时出现 “简单” 或 “困难” 样本的概率。这个策略假设,当大多数样本对一个任务来说是 “简单的”,而对另一个任务来说是 “困难的” 时,以独立的方式解决两个任务( 即不同的分支) 是更好的选择。
与 FAFS 类似,Vandenende et al. [10] 依赖于预先计算的任务相关性分数来决定任务分组。与FAFS 不同的是,它们基于特征亲和度评分来衡量任务相关性,而不是样本难度。主要假设是,如果两个任务的单任务模型依赖于一组相似的特性,那么它们是紧密相关的。一种有效的方法 [63] 被用来量化这一性质。与 FAFS 相比,任务分组的一个优点是可以为整个网络离线确定,而不是以一种逐层贪婪的方式在线确定。这种策略促进任务分组在全局而不是局部的意义上是最优的。但缺点是,计算任务亲和度得分需要先对一组单任务网络进行预训练。

与以往的工作不同,Branched Multi-Task Architecture Search (BMTAS)ss [11] 和 Learning To Branch (LTB) [12] 直接优化了网络拓扑,而不依赖于预先计算的任务关联评分。更具体地说,它们依赖于树形结构的网络设计空间,其中的分支点被转换为 Gumbel softmax 操作。与 [9]、[10] 相比,该策略的优势在于,任务分组可以直接针对所考虑的任务进行端到端优化。此外,这两种方法可以很容易地应用于任何一组任务,包括图像分类和逐像素预测任务。与 [9]、[10] 类似,可以通过包含一个资源感知损失项来获得紧凑的网络拓扑。在这种情况下,以端到端方式将计算预算与多任务学习目标联合优化。

2.3 Decoder-Focused Architectures 

章节 2.2 中 encoder-focused 的体系结构遵循一个共同的模式:它们直接预测在一个处理周期中来自相同输入的所有任务输出 (即所有预测都是一次性生成的,并行或顺序生成,之后不会再细化)。这样做,他们无法捕捉到任务之间的共性和差异,而这些共性和差异对彼此来说可能是卓有成效的 (例如,深度不连续通常与语义边缘对齐)。可以论证的是,这可能是 MTL 中以编码器为中心的方法仅取得适度性能改进的原因 (参见 4.3.1 节)。为了缓解这个问题,最近的一些研究首先使用了多任务网络来进行初始任务预测,然后利用这些初始预测的特性来进一步改进每个任务的输出——以一次性或递归的方式。由于这些 MTL 方法也在解码阶段共享或交换信息,我们将它们称为decoder-focused 的体系结构 (参见图3b)。

2.3.1 PAD-Net

PAD-Net [13] 是第一个 decoder-focused 的体系结构,模型如图 6 所示。输入图像首先由现成的 backbone 网进行处理。backbone 特征被一组特定任务的头部进一步处理,产生对每个任务的初步预测。这些初始任务预测为网络添加了深度监督,也可以用于任务之间的信息交换。任务特定头部的最后一层任务特征包含场景的每个任务特征表示。PAD-Net 提出通过一个多模态蒸馏单元将它们重新组合,该单元的作用是提取跨任务信息,然后生成最终的任务预测。

​​​​​​​ 

PAD-Net 通过空间注意机制进行多模态蒸馏。特别地,任务k的输出特征 F_k^o 计算为 (2) 式。

其中, \sigma(W_{k,l}F_l^i)返回一个应用于任务l的初始任务特征F_l^i的空间注意。注意掩码本身是通过应用卷积层w_k^l从初始任务特征中提取局部信息来找到的。方程2假设任务之间的交互依赖于位置,即任务在整个图像上的关系不是恒定的。这可以从一个简单的例子中理解。考虑两个密集的预测任务,例如单目深度预测和语义分割。深度不连续和语义边界经常重合。然而,当将一个平面物体 (如杂志) 与一个平面 (如表格) 分割开来时,仍然会发现一个语义边界,其中深度图相当连续。在这种特殊情况下,深度特性没有为语义边界的本地化提供额外的信息。空间注意的使用明确地允许网络从其他任务中选择有用的信息。

章节 2.2 中 encoder-focused 的方法在使用编码器中的中间表示的任务之间共享特性。与此不同的是,PAD-Net 通过对特定任务头部的特征应用空间注意层来表达任务交互。与编码器中的中间特征表示不同,PAD-Net 所使用的任务特征已经根据输出任务进行了解耦。假设,这使得其他任务更容易提取相关信息。这种来自 PAD-Net 的多步译码策略被应用于其他 decoder-focused  的方法中。

2.3.2 Pattern-Affinitive Propagation Networ

Pattern-Affinitive Propagation Networks (PAP-Net) [14] 使用了类似于 PAD-Net 的架构 (见图7),但本工作中的多模态蒸馏是以不同的方式进行的。作者认为,通过空间注意机制直接处理任务的空间特征,就像 PAD-Net 那样,可能是次优选择。由于优化仍然发生在不同的空间,即任务标签空间,因此不能保证模型将学习所需的任务关系。相反,从统计学上观察到,像素亲和力(pixel affinities)倾向于与任务标签空间上的普通局部结构很好地对齐。基于这一观察,提出利用像素亲和力来进行多模态蒸馏。

为了实现这一点,

首先,backbone 特征被一组特定任务的头部处理,以获得每个任务的初始预测。

其次,通过估计来自每个头部的任务特征的像素相关性,计算每个任务像素亲和矩阵 MTj。

第三,将任务 Ti 的亲和矩阵 MTi 与可学习权值  自适应结合,得到每个任务 Tj 的跨任务信息矩阵 ,如公式(3)。

最后,利用跨任务信息矩阵  对来自每个头 j 的任务特征进行细化。

具体来说,将跨任务信息矩阵扩散到任务特征空间,将相关信息扩散到整个图像。这有效地削弱或加强了任务 Tj 的像素相关性,基于其他任务Ti的像素相关性。改进后的特征被用于对每个 task 做出最后的预测。

前面讨论的方法在融合不同任务的特征时只使用有限的局部信息。例如,cross-stitch networks and NDDR-CNNs 以通道方式结合了这些特征,而 PAD-Net 仅使用来自 3 × 3 像素窗口内的信息来构建空间注意 mask。不同的是,PAP-Net 还通过测量整个图像的像素亲和力来模拟非局部关系。Zhou 等人 [17] 扩展了这个想法,专门挖掘和传播任务间和任务内模式。

2.3.3 Joint Task-Recursive Learning

联合任务递归学习 (Joint Task-Recursive Learning, JTRL) [15] 在越来越高的尺度上递归地预测两个任务,以便根据过去的状态逐步完善结果。该体系结构如图 8 所示。类似于 PAD-Net 和 PAP- Net,多模态蒸馏机制被用于结合来自早期任务预测的信息,通过这些信息,后期的预测得到细化。不同的是,JTRL 模型预测两个任务是顺序的,而不是并行的,并以一种相互交织的方式。这种方法的主要缺点是,它不直接,甚至不可能以相互交织然后细化模型的这种方式下,将这个模型扩展到两个以上的任务。

2.3.4 Multi-Scale Task Interaction Networks

在目前所介绍的以解码器为重点的体系结构中,多模态蒸馏是在固定的尺度上进行的,即 backbone 最后一层的特征。这基于这样一个假设: 所有相关的任务交互都可以通过一个具有特定滤波接受域的单一过滤动作来建模。然而,多尺度任务交互网络 (MTI-Net) [16] 表明,这是一个相当严格的假设。事实上,不同的任务在不同的接受领域会产生不同的影响。

在目前所介绍的以解码器为重点的体系结构中,多模态蒸馏是在固定的尺度上进行的,即 backbone 最后一层的特征。这基于这样一个假设: 所有相关的任务交互都可以通过一个具有特定滤波接受域的单一过作来建模。然而,多尺度任务交互网络 (MTI-Net) [16] 表明,这是一个相当严格的假设。事实上,不同的任务在不同的接受领域会产生不同的影响。

​​​​​​​ 

为了考虑到这一限制,MTI-Net 明确地考虑了多个尺度上的任务交互。其体系结构如图 9 所示。首先,利用现成的 backbone 网络从输入图像中提取多尺度特征表示。从多尺度特征表示出发,在每个尺度上对每个任务进行初始预测。在特定尺度下的任务预测是通过将特定任务的头部应用到该尺度下提取的主干特征上得到的。与 PAD-Net 类似,将任务特定头部的最后一层的特征进行组合和细化,从而做出最终的预测。不同的是,在 MTI-Net 中,每个任务的特征表示可以在每个尺度上单独提取。这允许有多个任务交互,每个任务都在一个特定的接受域内建模。将蒸馏得到的多尺度特征上采样到最高尺度并进行连接,从而得到每个任务的最终特征表示。通过再次以特定于任务的方式解码这些最终特征表示,可以找到最终任务预测。通过使用特性传播模块将信息从低分辨率任务特性传播到高分辨率任务特性,性能得到了进一步改进。

[16] 的实验评价表明,与只在单一尺度上提取任务信息的 PAD-Net 相比,在多个尺度上提取任务信息可以提高多任务处理性能。此外,由于 MTI-Net 在多个尺度上提取特征,即使用不同的像素膨胀,它克服了只使用有限的局部信息来融合特征的问题,这在 PAP-Net 中已经被证明是有益的。

2.4 Other Approaches

许多文献中提出了不在上述范畴的方法。例如,多重线性关系网络 [56] 使用张量正态先验到特定任务头部的参数集,以允许在解码阶段进行交互。与标准的并行排序方案 (如 [5],[7]) 不同,soft layer 排序 [64] 提出了一种跨任务和网络深度的灵活共享方案。Yang 等人 [65] 采用广义矩阵分解的MTL方法,以学习网络各层的跨任务共享结构。Routing 网络 [66] 提出了一种通过路由确定网络功能块连通性的原则方法。Piggyback [67] 展示了如何通过学习二进制掩码将单一固定的神经网络适应到多任务网络。Huang 等人 [68] 引入了一种基于神经体系结构搜索 (Neural Architecture Search, NAS) 的方法来自动构建基于树的多属性学习网络。随机滤波器组 [57] 在网络的每一层重新使用卷积核,以支持共享或特定任务的行为。类似地,feature partitioning [69] 提出了划分策略,将网络各层的卷积核分配到不同的任务中。

一般来说,这些工作在 MTL 中有不同的范围,例如自动化网络架构设计。此外,它们大多专注于解决多个 (二元) 分类任务,而不是多个密集的预测任务。因此,它们不在本综述的范围之内,但有一个值得注意的例外情况将在下面讨论。

注意多任务单任务处理 (ASTMT) [18]提出对 MTL 问题采取 “单任务” 路线。也就是说,在多任务框架下,他们执行单独的前向传递,每个任务一次,激活所有任务之间的共同反应,以及一些特定任务的残差反应。此外,为了抑制负迁移问题,在梯度水平上应用了对抗训练,迫使他们在不同任务之间在统计上难以区分。这种方法的优点是可以自然地将网络中共享的和特定于任务的信息分离出来。但消极的一面是,任务不能完全预测,只能一个接一个地预测,这大大提高了推理速度,在某种程度上违背了 MTL 的目的。

3 Optimization in MTL

在前一节中,讨论了能够同时学习多个任务的网络结构的构建。尽管如此,MTL 中的一个显著挑战还是来自于优化过程本身。特别是,需要小心地平衡所有任务的联合学习,以避免一个或多个任务在网络权重中占主导地位的情况。在本节中,将讨论考虑这个任务平衡问题的几种方法。

3.1 Task Balancing Approaches

在不失一般性的前提下,MTL 问题的优化目标,假设特定任务的权重 w_i 和特定任务的损失函数\mathcal{L}_i,可以表示为公式 (4)。

当使用随机梯度下降来最小化公式 (4) 中的目标时,共享层中的网络权值W_{sh}按照公式 (5) 的规则进行更新。该公式可以得出以下结论。

首先,当两个任务的梯度冲突时,网络权值的更新可能是次优的,或者当一个任务的梯度值比其他任务大得多时,网络权值的更新可能被一个任务主导。这促使研究者 [8],[19],[20],[21] 通过设置特定任务的权重来平衡梯度大小。为此,其他文献 [22],[26],[70] 也考虑了任务梯度方向的影响。

其次,每个任务对网络权值更新的影响可以被控制,或者间接地通过调整特定任务的权值 wi 在损失,或者直接地通过操作任务特定梯度\frac{\partial\mathcal{L}_i}{\partial{W_{sh}}}。下面将讨论一些试图解决这些问题的方法。

3.1.1 Uncertainty Weighting

Kendall et al. [19] 使用同方差的不确定性( homoscedastic uncertainty)来平衡单任务损失。同方差的不确定性或任务相关不确定性不是模型的输出,而是同一任务的不同输入样本保持不变的量化。优化过程是最大化考虑同方差不确定性的高斯似然目标。特别是对模型权重 W 和噪声参数 \sigma_1,\sigma_2 进行优化,以达到最小化以下目标,即公式(6)。

\mathcal{L}_1,\mathcal{L}_2分别是第一个和第二个任务的损失函数。通过最小化噪声参数 \sigma_1,\sigma_2的损失,可以在训练过程中基本平衡各任务的损失。公式(6)中的优化目标也可以很容易地扩展到两个以上的任务。在训练过程中通过标准反向传播更新噪声参数。

需要注意的是,增加噪声参数\sigma_i会降低任务i 的权值,因此当任务的同方差不确定性较高时,任务i对网络权值更新的影响较小。这在处理带噪的标注数据时很有优势,因为针对这类任务,特定于任务的权重将自动降低。

3.1.2 Gradient Normalization

梯度归一化 (GradNorm) [20] 提出通过刺激特定任务的梯度达到相似的量级来控制多任务网络的训练。通过这样做,网络被鼓励以相同的速度学习所有的任务。在介绍这种方法之前,我们在下面的段落中介绍必要的符号。

我们定义在第 t 步加权单任务损失 w_i(t) \cdot L_i(t) 梯度的 L2 范数,表示为 G^W_i(t)。我们另外定义以下量:

•  平均任务梯度 \bar{G}^W 平均跨越所有任务梯度 \bar{G}^W_i w.r.t的权重W在步骤 t: \bar{G}^W (t) = E_{task} \[G^W_i (t)\];

•  逆向训练率 \tilde{L}_ i 的任务i在步骤 t: \tilde{L}_i (t) = L_i (t) /L_i (0);

•  任务i在步骤t的相对逆向训练率 :r_i (t) =\tilde{ L}_ i (t) /E_{task} \[\tilde{L} _i (t)\]

GradNorm 的目标是在多任务网络的训练中平衡两个属性。

首先,平衡梯度大小G_i^W。为了实现这一目标,将平均梯度\bar{G}^W作为一个共同的基准,从这个基础上可以衡量各个任务的相对梯度大小。

第二,平衡学习不同任务的速率。为此,使用相对逆训练速率r_i(t)。当相对逆训练率r_i(t)增大时,任务 i 的梯度幅值G_i^W(t)也应增大,以刺激任务更快地进行训练。GradNorm 通过最小化以下损失来实现这两个目标。 

任务 i 的梯度幅度G_i^W(t)取决于加权的单任务损失w_i^t\cdot L_i(t) 。因此,可以通过调整特定任务的权重w_i来最小化公式 7 中的目标。在实践中,在训练过程中,这些特定任务的权值会在每次迭代中使用反向传播进行更新。在每次更新后,任务特定的权重w_i(t)被重新归一化,以将学习率与任务特定的权重解耦。

需要注意的是,计算梯度大小G_i^W(t)需要向后遍历每个任务 i 的特定任务层。然而,考虑任务梯度大小只考虑最后一个共享层的权值,可以节省计算时间。

与不确定性加权不同,GradNorm 不考虑任务相关的不确定性来重新加权特定任务的损失。相反,GradNorm 试图平衡学习任务的速率,同时避免不同程度的梯度。

3.1.3 Dynamic Weight Averaging

与 GradNorm 类似,Liu et al. [8] 提出了一种技术,称为动态加权平均 (DWA),以平衡学习任务的速度。不同的是,DWA 只需要访问特定于任务的损失值。这就避免了在训练过程中为了获得特定于任务的梯度而执行单独的向后传递。在 DWA 中,将第 t 步任务 i 的任务特定权重w_i设置为:

N是任务数。标量r_n(\cdot)估计任务特定损失值L_n 的相对下降率。温度 T 控制 softmax 操作符中任务权重的柔软度。当一个任务的下降速率比其他任务慢时,损失函数中特定任务的权重就会增加。

请注意,特定于任务的权重w_i仅基于特定于任务的损失变化的速率。这种策略需要事先平衡总体损失的大小,否则在训练过程中,有些任务仍然可能压倒其他任务。GradNorm 通过单一目标平衡训练速率和梯度大小来避免这个问题 (见公式 8)。

3.1.4 Dynamic Task Prioritization【动态任务优先级】

第 3.1.1-3.1.3 节中的任务平衡技术选择优化特定任务的权重 wi 作为高斯似然目标的一部分,或者为了平衡学习不同任务的速度 [8],[20]。相反,动态任务优先级(DTP) [21] 选择通过分配更高的特定任务权重来优先考虑 “困难” 任务的学习。这样做的动机是,网络应该花更多的精力去学习 “困难” 的任务。注意,这与不确定性加权是相反的,不确定性加权会给 “简单” 的任务分配更高的权重。假设这两种技术并不一定冲突,但是不确定性加权似乎更适合于任务有噪声标记数据的情况,而当能够访问干净的真实注释时,DTP 更有意义。

为了测量任务难度,可以考虑使用由 GradNorm 定义的  loss ratio 在每个任务上的进展。然而,由于损耗率取决于初始损耗 ,它的值可能会有很大的噪声和初始化依赖。此外,使用损耗率度量任务进度可能不能准确地反映定性结果方面的任务进度。

因此,DTP 提出使用关键绩效指标 (KPIs) 来量化每个任务的难度。特别地,为每个任务 i 选择一个 KPI \kappa_i,其中 0 < \kappa_i​​​​​​​​​​​​​​ < 1。选择\kappa_i​​​​​​​是为了使其具有直观的含义,例如分类任务的准确性。对于回归任务,可以对预测误差进行阈值设置,以获得介于 0 和 1 之间的 KPI。

进一步,定义了一个任务级别的聚焦参数\gamma_i ≥0,允许调整权重,在该权重下,容易或困难的任务被降低权重。DTP 将步骤t中任务i的任务特定权重w_i设置为公式(9)。

注意,公式 9 使用了一个focalloss[71] 来降低 “简单” 任务的特定任务权重。也就是,随着 KPI  的值增加,任务i的权重w_i正在降低。

DTP 需要仔细选择 KPI。例如,考虑选择一个阈值来度量回归任务的性能。根据阈值的值,特定于任务的权重在训练过程中会有所提高或降低。

得出结论,DTP 中 KPI 的选择不是以一种直接的方式确定的。此外,与 DWA 类似,DTP 需要事先平衡损失值的总体大小。毕竟,公式 9 在计算特定于任务的权重时没有考虑损失的大小。因此, DTP 仍然需要手动调优以设置特定于任务的权重。

3.1.5 MTL as Multi-Objective Optimization

对于公式 4 中的多任务优化目标,很难找到全局最优解。由于这个问题的复杂性,提高一个任务性能的某个选择可能会导致另一个任务的性能下降。之前讨论的任务平衡方法试图通过一些启发式的方法来设置损失中特定任务的权重来解决这个问题。不同的是,Sener 和 Koltun[22] 将 MTL 视为一个多目标优化问题,其总体目标是在所有任务中找到一个 帕累托最优解

在MTL中,只要满足以下条件,即在不增加任何任务损失的情况下,任何任务的损失都能减少,就能得到一个Pareto最优解。在 [22] 中提出了一种多重梯度下降算法 (MGDA)[72] 来寻找一个 帕累托平稳点。特别是,通过在特定任务的梯度中找到一个共同的方向来更新共享的网络权重。只要有一个共同的方向可以降低特定任务的损失,就还没有达到帕累托最优点。这种方法的优点是,由于共享网络权值只沿着特定任务梯度的共同方向更新,在权值更新步骤中避免了冲突梯度的情况。

Lin et al. [23] 观察到 MGDA 只能从众多 帕累托最优解中找到一个。此外,也不能保证所得到的解决方案能够满足用户的需求。为了解决这个问题,他们将 MGDA 推广到生成一组具有代表性的帕累托解,从中可以选择一个更优的解。然而,到目前为止,该方法仅适用于小规模数据集 (如 Multi-MNIST)。

3.1.6 Discussion

在 3.1 节中,描述了在训练多任务网络时平衡每个任务影响的几种方法。表 1 提供了所描述方法的定性比较。下面总结了一些结论。

(1) 这些方法之间的差异:如不确定性加权赋予 “简单” 任务更高的权重,而 DTP 主张相反。后者可以归因于对不同任务平衡策略的实验评价,通常在文献中使用不同的数据集或任务字典。本文认为应该为每个案例单独决定一个适当的任务平衡策略。

(2) 这些方法之间的共性:如不确定性加权,GradNorm 和 MGDA 选择平衡损失幅度作为他们的学习策略的一部分。在4.4节中,我们做了一些在相同数据集或相同任务词典下的消融实验,用来验证哪些任务平衡策略对于提高多任务性能最有效。

(3) 许多工作 (如 DWA、DTP) 仍然需要仔细手动调整初始超参数,这可能会限制它们在处理大量任务时的适用性。

3.2 Other Approaches

3.1 节中的任务平衡工作可以插入到大多数现有的多任务体系结构中,以调节任务学习。另一组研究也试图规范多任务网络的训练,尽管是针对更具体的设置。在这里讨论其中的几种方法。请注意,其中一些概念也可以与任务平衡策略相结合。

Zhao et al. 从经验上发现,梯度指向相反方向的任务会导致梯度的破坏性干扰。这个观察结果与方程5中的更新规则有关。他们建议在网络中增加一个调制单元,以缓解训练过程中的竞争梯度问题。

Liu et al. 考虑了一种特定的多任务架构,其中功能空间被分割为共享部分和特定任务部分。他们认为共享特性应该包含更多的公共信息,而不是只针对特定任务的信息。通过执行这种先验,网络权值被正则化。更具体地说,使用对抗性的方法来避免任务特定的特性潜入共享表示。类似地,[18],[25] 在单任务梯度中增加了一个对抗性损失,以便使它们在网络共享部分中在统计上彼此无法区分。

Chen et al. 提出了梯度符号 dropout,这是一个模块层,可以插入任何具有多个梯度信号的网络。在 MGDA 之后,作者认为当不同学习信号的梯度值具有相反的符号时,在权值更新中会产生冲突。梯度符号 dropout 是根据梯度值的分布选择梯度的符号,并掩盖带有相反符号的梯度值。结果表明,该方法具有若干可取的特性,与同类方法相比,提高了性能和鲁棒性。

最后,一些文献依靠启发式来平衡任务。Sanh et al.[27] 通过在每次迭代中随机采样单个任务进行权值更新来训练网络。采样概率与每个任务可用的训练数据量成比例。Raffel et al.[28] 使用温度缩放来平衡这些任务。然而,到目前为止,这两个过程都是在自然语言处理的上下文中使用的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

NLP_wendi

谢谢您的支持。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值