摘要
许多计算机视觉应用需要实时解决多个任务。可以使用多任务学习来训练神经网络同时解决多个任务。这可以节省推理时的计算量,因为只需要评估单个网络。不幸的是,这通常会导致整体性能较差,因为任务目标可能会相互竞争,从而提出了一个问题:在采用多任务学习时,哪些任务应该和不应该在一个网络中一起学习?我们研究了几种不同学习环境中的任务合作和竞争,并提出了一个将任务分配给几个神经网络的框架,使得合作任务由同一神经网络计算,而竞争任务由不同网络计算。我们的框架提供了时间精度权衡,并且可以使用比单个大型多任务神经网络和许多单任务网络更少的推理时间产生更好的精度。
- 简介 许多应用,尤其是机器人和自动驾驶车辆,主要对使用多任务学习来减少估计视觉输入的许多特征所需的推理时间感兴趣。例如,自动驾驶车辆可能需要检测行人的位置,确定每个像素的深度,并预测物体的轨迹,所有这些都在数十毫秒内完成。在多任务学习中,通常使用单个神经网络同时解决多个任务。除了减少推理时间之外,理论上,联合而不是独立地解决一组任务还可以带来其他好处,例如提高预测精度、提高数据效率和减少训练时间。
图 1. 给定要解决的五个示例任务,可以通过多种方式将它们分成任务组以进行多任务学习。我们怎样才能找到最好的呢?例如,我们提出了一个计算框架,建议使用以下分组来实现最低的总损失,使用 2.5 个单位的计算预算:训练网络 A 来解决语义分割、深度估计和表面法线预测;训练网络B解决关键点检测、边缘检测和表面法线预测;使用计算成本较低的编码器训练网络 C 来单独解决表面法线预测;在前两个网络中将表面法线作为输出被发现有利于改善其他输出,而第三个网络则预测了最佳法线。这种任务分组优于所有其他可行的分组,包括在一个大型网络中学习所有五个任务或使用五个专用的较小网络。
不幸的是,当网络因负迁移现象而需要进行多次预测时,预测的质量通常会受到影响。事实上,多任务性能可能会受到很大影响,以至于较小的独立网络往往更优越。这可能是因为任务必须以不同的速率学习。或者因为一项任务可能主导学习,导致其他任务表现不佳。此外,任务梯度可能会干扰,并且多个总和损失可能会使优化环境变得更加困难。
另一方面,当任务目标相互干扰不大时,联合训练时可以保持甚至提高两项任务的表现。直观上,这种质量的损失或增加似乎取决于联合训练的任务之间的关系。我们根据经验深入研究这些关系。
先前的工作研究了迁移学习任务之间的关系(Zamir 等人,2018)。然而,我们发现转移关系不能高度预测多任务关系。除了研究多任务关系之外,我们还尝试通过将竞争任务分配给单独的网络并将协作任务分配给同一网络来确定如何在有限的推理时间预算下产生良好的预测精度。
更具体地说,这导致了以下问题:给定一组任务 T 和计算预算 b(例如,最大允许推理时间),将任务分配给组合成本 ≤ b 的网络的最佳方式是什么,使得 a任务绩效的综合衡量标准是否最大化?
为此,我们开发了一个计算框架,用于选择最佳任务组合在一起,以便拥有少量独立的神经网络,完全覆盖任务集并在给定的计算预算下最大化任务性能。我们进行了有趣的观察,即在网络中包含附加任务可能会提高其他任务的准确性,即使附加任务的性能可能很差。这可以被视为通过添加额外的损失来引导一项任务的损失,例如类似于课程学习(Bengio 等人,2009)。当然,实现这一目标取决于选择要添加的适当辅助任务 - 我们的系统可以利用这种现象,如图 1 所示。
本文有两个主要贡献。首先,在第 4 节中,我们对影响多任务学习的许多因素进行了实证研究,包括网络大小、数据集大小以及任务一起学习时如何相互影响。然后,在第 5 节中,我们概述了一个向网络分配任务的框架,以便在有限的推理时间预算下实现最佳的总体预测精度。我们分析结果并表明,选择最佳的小组任务分配对于良好绩效至关重要。
- 先前工作
多任务学习:有关多任务学习的详细概述,请参阅(Zhang & Yang,2017)。 (Ruder,2017)的作者确定了当代技术的两个集群:硬参数共享和软参数共享。
在硬参数共享中,网络中的大部分或全部参数在所有任务之间共享。计算机视觉中硬参数共享的一个已知的当代例子是 UberNet (Kokkinos, 2017),它使用硬参数共享解决了 7 个计算机视觉问题。作者专注于降低硬参数共享训练的计算成本,但随着更多任务添加到网络中,性能迅速下降。硬参数共享也用于许多其他工作,例如(Thrun,1996;Caruana,1997;Nekrasov et al.,2018;Dvornik et al.,2017;Bilen & Vedaldi,2016;Pentina & Lampert,2017;Doersch & Zisserman) ,2017 年;Long 等人,2016 年; d. Miranda 等人,2012;Rudd 等人,2016;Leang 等人,2019;
其他工作,例如(Sener & Koltun,2018)和(Chen et al.,2018b),旨在在训练期间动态地重新加权每个任务的损失。前一项工作找到了可证明导致帕累托最优解决方案的权重,而后者则试图找到平衡每个任务对网络权重影响的权重。 (Kendall 等人,2018)使用不确定性来衡量任务的权重。 (Gong et al., 2019) 和 (Leang et al., 2020) 比较了损失加权策略。他们都没有发现明显的赢家,并且策略之间的表现相似,包括统一的权重策略。与我们类似,他们发现多任务学习通常不如具有多个网络的单任务学习。
在软或部分参数共享中,要么每个任务有一组单独的参数,要么很大一部分参数不共享。这些模型通过信息共享或要求参数相似而连接在一起。例子包括(Dai 等人,2016;Duong 等人,2015;Misra 等人,2016;Tessler 等人,2017;Yang & Hospedales,2017;Lu 等人,2017)。
软参数共享的典型示例可以参见(Duong et al., 2015)。作者有兴趣为没有太多可用树库数据的语言(例如爱尔兰语)设计深度依赖解析器。他们利用来自其他语言的丰富数据,通过在相应权重之间添加 L2 距离惩罚将两个网络的权重联系在一起,并显示出目标语言的显着改进。
软参数共享的另一个例子是十字绣网络(Misra et al., 2016)。从用于两个任务的单独网络开始,作者在它们之间添加了“十字绣单元”,这使得每个网络都可以窥视另一个网络的隐藏层。这种方法减少但没有消除任务干扰,并且整体性能对相对损失权重不太敏感。
(Liu 等人,2019)在每层之后添加了一个每任务注意层,并且(Maninis 等人,2019)添加了任务特定的残差路径和对抗训练来匹配梯度。两者都为每个任务单独运行网络。 最后,(Bingel & Søgaard,2017)研究了 NLP 的任务交互,(Zamir 等人,2020)利用任务关系来改进相关任务的预测。
与我们的方法不同,上述工作都没有试图发现好的任务组来一起训练。此外,软参数共享不会减少推理时间,而这是我们的主要目标。
PathNet(Fernando 等人,2017 年)和 AdaShare(Sun 等人,2019 年)等混合方法试图了解哪些内容可以分享,哪些内容不可以分享。这些工作并不试图发现良好的源任务和目标任务对,也不试图满足推理时间预算。最重要的是,它们无法通过模块重用来实现很大的推理时间加速。
迁移学习:迁移学习 (Pratt, 1993; Helleputte & Dupont, 2009; Silver & Bennett, 2008; Finn et al., 2016; Mihalkova et al., 2007; Niculescu-Mizil & Caruana, 2007; Luo et al., 2017拉扎维安等人,2014; 2010; Mallya & Lazebnik, 2018; Fernando et al., 2017; Rusu et al., 2016) 与多任务学习类似,都是针对多个任务学习解决方案。然而,与多任务学习不同,迁移学习方法通常假设给定源任务的模型,然后将该模型适应目标任务。迁移学习方法通常既不寻求对源任务的任何好处,也不将减少推理时间作为其主要目标。
神经架构搜索(NAS):最近的许多工作都在网络架构空间中进行搜索,以找到性能良好的网络架构(Zoph et al., 2018;Zoph & Le, 2017;Liu et al., 2018;Pham et al., 2018; Xie 等人,2019;Elsken 等人,2019;Baker 等人,2019; 2017;雷亚尔等人,2019)。这与我们搜索任务分组空间的工作有关。就像 NAS 一样,计算发现的分组通常比人工设计的分组表现更好。
任务关系:我们的工作与 Taskonomy(Zamir 等人,2018)相关,它研究了用于迁移学习的视觉任务之间的关系,并引入了包含超过 400 万张图像和 26 个任务的相应标签的数据集。最近的一些工作进一步分析了迁移学习的任务关系(Pal & Balasubramanian,2019;Dwivedi & Roig.,2019;Achille et al.,2019;Wang et al.,2019)。当他们提取这些任务之间的关系以进行迁移学习时,我们对多任务学习设置感兴趣。有趣的是,我们发现转移任务亲和力和多任务亲和力之间存在显着差异。他们的方法的不同之处还在于,他们感兴趣的是标记数据效率而不是推理时间效率。最后,Taskonomy(读出函数)采用的转移量化方法只能找到为每个任务开发的高级瓶颈表示之间的关系,而各级任务之间的结构相似性可能与多任务学习相关。
- 实验设置
数据集:我们使用Taskonomy数据集(Zamir等人,2018)进行研究,该数据集是目前最大的具有多种任务的计算机视觉多任务数据集。这些数据是通过对约 600 座建筑物的 3D 扫描获得的。该数据集包含约 400 万个示例,我们将其分为约 390 万个训练实例(设置 3 为 20 万个)、约 5 万个验证实例和约 5 万个测试实例。训练和测试集中出现的建筑物没有重叠。
任务集:我们从该数据集中选择了两组,每组五个任务。任务集 1 包括语义分割、深度估计、表面法线预测、SURF 关键点检测和 Canny 边缘检测。包括一项语义任务、两项 3D 任务和两项 2D 任务。选择这些任务是为了代表主要任务类别,但也有足够的重叠,以便测试类似任务可以很好地一起训练的假设。任务集 2 包括自动编码器、再次表面法线预测、遮挡边缘、重新着色和主曲率。有关每项任务的详细定义,请参阅 Taskonomy 论文的补充材料。交叉熵损失用于语义分割,而 L1 损失用于所有其他任务。
架构:在所有实验中,我们使用了标准编码器-解码器架构和修改后的 Xception(Chollet,2017)编码器。我们对架构的选择并不重要,选择它是因为其推理时间相当短。所有最大池化层均替换为步长为 2 的 2 × 2 卷积层,类似于(Chen 等人,2018a)。该网络有 1650 万个参数,每个图像需要 64 亿次乘加运算。所有网络的输入图像大小都是256×256。
为了研究网络大小对任务关系的影响,我们还定义了一个更小的Xception17网络。对于 Xception17,Xception 网络编码器被简化为 17 层,中间流层减少为 512 个而不是 728 个通道,从而产生约 400 万个参数。这相当于 22.8 亿次乘加。
我们的解码器被设计为轻量级的,具有四个转置卷积层(Noh 等人,2015)和四个卷积层。
设置:我们在四种设置下运行实验。
我们使用设置 1 测试网络大小对多任务学习的影响。它使用比其他设置更小、深度更低的网络。设置 2 是控制。它使用大型网络、完整数据集和任务集 1。我们使用设置 3 测试数据集大小对多任务学习的影响。这里我们将自己限制为仅 20 万个训练实例。最后,我们使用设置 4 测试其他任务关系,该设置使用任务集 2。
训练详细信息:所有训练均使用 PyTorch(Paszke 等人,2017)和 Apex 进行 fp16 加速(Mi cikevicius 等人,2017)完成。
我们使用的训练损失是所包含任务损失的未加权平均值。网络以 0.1 的初始学习率进行训练,每次训练损失停止减少时,该学习率就会减少一半。网络接受训练,直到验证损失停止改善。验证损失最高的网络(在每个 epoch 的 20% 数据后进行检查)被保存。没有进行超参数搜索。
比较:我们定义了一个计算网络成本单位,标准网络时间(SNT)。在设置1中,SNT是Xception17中的乘加数。在其他设置中,SNT 是正常 Xception 网络中的乘加数。为了生成更小/更大的模型以在每个设置中进行比较,我们缩小/增加了编码器每一层中的通道数量,以便它具有适当数量的乘法加法。
训练过的网络:在每个设置中,我们为设置的 5 个任务的 2n − 1 个可行子集中的每一个训练一个 1-SNT 网络。因此,我们训练了 5 个单任务网络、10 个双任务网络、10 个三任务网络、5 个四任务网络和一个五任务网络。另外训练了五个单任务网络,每个网络都有一个半尺寸(1/2-SNT)编码器和一个标准解码器。最后,我们训练了一些分数 SNT 单任务网络作为比较和基线。
- 任务关系的研究
我们研究了影响多任务网络性能的许多因素。我们查看每个设置中任务之间的关系,并将它们与其他设置中的关系进行比较。 设置 1:较小的网络,Xception17。 首先,我们分析多任务网络中包含的任务数量如何影响性能。表 1 显示了多任务学习相对于独立训练的性能。
表 1. 多任务学习相对于独立(即单任务)训练的性能。例如,当一个 4 任务网络与四个 1-SNT 单任务网络进行比较时,4 任务网络的总损失平均要差 10.69%。当同一网络与四个 1/4-SNT 网络相比时,总损耗平均要好 4.86%。
在设置 1 中,多任务网络与多个单任务网络相比并不有利,每个单任务网络都允许与单个多任务网络相同的计算预算
表 2. 设置 1 中的成对多任务关系。该表列出了每个任务与每个其他任务成对训练时的表现。例如,当使用 Depth 训练 SemSeg(语义分割)时,SemSeg 的性能比在 1/2-SNT 网络上单独训练 SemSeg 时好 4.17%。
然而,当单任务网络缩小到与多任务网络具有相同的总预算时,具有 3、4 或 5 个任务的多任务网络平均优于单任务网络。尽管如此,双任务网络仍然无法与之相比。表 2 给出了这 10 个双任务网络的更详细视图,显示了每个任务与其他任务一起训练时相对于使用 1/2-SNT 网络单独训练时的性能。我们看到,Normals 任务有助于训练它的所有其他任务的执行。
表 3. 设置 1 的任务对之间的多任务学习亲和力。这些值显示了两个任务成对训练时相对于单独训练时的性能平均变化。
表 4. 根据 Taskonomy 的作者的说法,任务对之间的迁移学习亲和力(Zamir 等人,2018)。前向和后向转移亲和力被平均。
为了确定多任务学习的任务间亲和力,我们取一阶关系矩阵(表 2)及其转置的平均值。结果如表 3 所示。根据该指标,亲和力最高的对是表面法线预测和 2D 边缘检测。令人惊讶的是,我们的两个 3D 任务(深度估计和表面法线预测)在这一相似性指标上得分并不高。这与 Taskonomy 中的迁移学习研究结果(表 4)形成鲜明对比,它们对后者具有最高的亲和力。事实上,在这种情况下,多任务和迁移学习亲和力(表 3 和表 4)之间似乎不存在相关性(Pearson 的 r 为 -0.12,p = 0.74)。
设置2:控制设置。 我们通过使用更高容量的编码器重新训练所有网络来测试网络容量对多任务亲和力的影响。这次我们使用了完整的 Xception 网络(Chollet,2017),它使用了 64 亿次乘加运算。由此产生的数据使我们能够为设置 2 生成表 2 的新版本,如表 5 所示。
通过比较表 5 和表 2,我们可以看到,使用更大的网络时,任务更有可能从一起训练中受益。然而,当一起训练时,仍然会遇到一些任务。此外,表 5 中的值似乎与表 2 中的值不相关(Pearson r = 0.08)。这些亲和力似乎也与 Taskonomy 的转移亲和力无关(Pearson 的 r = -0.14)。这些结果强调了在每个特定设置中使用自动框架来确定一起训练哪些任务的必要性。
设置 3:仅使用 5% 的可用训练数据。 我们仅使用 199,498 个训练实例(每个训练大楼 420 个)来研究训练集大小的影响。这个数据量与文献中的其他多任务数据集更相似。一个常见的假设是,多任务学习在低数据场景中可能会更好,因为 MTL 可以有效地让您集中监督。然而,我们在表 6 中看到这个假设被违反了,因为大多数任务在这种设置下与另一个任务一起训练时都会受到影响,特别是与设置 2 相比。此外,如果不是 Edges 任务在某些情况下获得了巨大的收益,平均而言,MTL 是有害的。
尽管我们没有发现低容量模型和高容量模型的任务关系之间存在相关性,但低数据关系与两者呈正相关。小数据关系与低容量关系(Pearson r = +0.375,p = 0.10)以及高容量关系(Pearson r = +0.558,p = 0.01)相关。然而,这些亲和力仍然与 Taskonomy 的迁移学习亲和力没有高度相关(Pearson 的 r = -0.235,p = 0.51)。
设置 4:使用任务集 2。除了自动编码器任务之外,任务集 2 中的其他四个任务几乎都对彼此具有中等的积极影响。这四个任务都是非常相似的 3D 任务,因此看起来相似的任务在某些情况下可以很好地协同工作。不幸的是,自动编码器任务平均会损害其他任务的性能。我们再次发现与 Taskonomy 的转移亲和力没有相关性(Pearson 的 r = -0.153,p = 0.674)。
要点:理想情况下,任务之间的关系应该独立于学习设置。我们发现情况并非如此,因此使用像我们这样的计算方法来查找任务亲和力和分组似乎是必要的。我们看到网络容量和训练数据量都会影响多任务任务亲和力。我们还发现,更多相似的任务并不一定能更好地一起训练。我们还发现在任何设置中多任务任务亲和力和迁移学习任务亲和力之间都没有相关性。
最后,Normals 任务似乎提高了其训练任务的性能。在使用法线训练的 16 个模型中,有 15 个模型的其他任务得到了改善。此外,在 15 次中,有 13 次这种改进优于任何不同任务联合训练的效果。这可能是因为法线在整个表面上具有统一的值并保留 3D 边缘。然而,当用其他任务进行训练时,法线任务本身往往表现更差。
我们发现,选择一起学习的任务对于取得良好绩效至关重要。现在,我们转向研究如何找到最佳任务来一起训练。
- 任务分组框架
概述:我们的目标是找到一组网络,每个网络都针对任务子集进行训练,从而在给定的计算预算内产生最佳的总体损失。我们通过考虑所有可能的任务子集的空间,为每个子集训练一个网络,然后使用每个网络的性能来选择适合预算的最佳网络来做到这一点。由于为每个子集完全训练网络可能成本高昂,因此我们还概述了两种预测训练结果的策略(第 5.3 节)。
正式问题定义:我们希望在给定有限的推理时间预算 b 的情况下最小化一组任务 T = {t1, t2, ..., tk} 的总体损失,b 是我们必须完成所有任务的总时间任务。每个求解 T 的某个子集并且可能成为最终解决方案一部分的神经网络用 n 表示。它具有关联的推理时间成本 cn 和每个任务的损失 L(n, ti)(对于网络不尝试解决的每个任务,其损失为 ∞)。解决方案S是一组共同解决所有任务的网络。解决方案的计算成本为 cost(S) = Σ n∈S cn。任务解决方案的损失 L(S, ti) 是解决方案网络中该任务的最低损失,L(S, ti) = minn∈S L(n, ti)。解决方案的整体性能为 L(S) = Σ ti∈T L(S, ti)。 我们希望找到总体损耗最低且成本低于我们预算的解决方案,Sb = argminS:cost(S)≤b L(S)。
-
- 要考虑哪些候选网络?
对于给定的任务集 T ,我们不仅希望确定每对任务一起训练时的执行情况,还希望确定每个任务组合一起执行的情况,以便我们能够捕获高阶任务关系。为此,我们的候选网络集包含所有 2|T | − 1 种可能的分组:(|T | 1 ) 具有一项任务的网络,(|T | 2 ) 具有两项任务的网络,(|T | 3 ) 具有三项任务的网络等。对于我们在实验中使用的五个任务,这是 31 个网络,其中 5 个是单任务网络。
网络的大小是另一种设计选择,为了在一定程度上探索其影响,我们还包括 5 个单任务网络,每个网络的计算成本只有标准网络的一半。这使得我们的网络总数达到 36 个。
原则上,可以包括任意不同计算成本的附加候选网络,并让下面的框架决定哪些值得使用。引入使用不同架构、任务权重或训练策略训练的网络甚至可能是有利的。我们不探讨这个。
-
- 网络选择
考虑这样一种情况,我们有一个初始候选集 C0 = {n1, n2, ..., nm} 的经过充分训练的网络,每个网络都解决我们的任务集 T 的某个子集。我们的目标是选择 C0 的子集来解决所有任务,总推理时间在预算 b 下且总体损失最低。Sb = argminS⊆C0:cost(S)≤b L(S)。
可以证明,解决这个问题一般来说是 NP 困难的(从 SET-COVER 简化)。然而,存在许多技术可以在可接受的时间内以最佳方式解决此类问题的最合理大小的实例。所有这些技术都会产生相同的解决方案。我们选择使用类似分支定界的算法来寻找最佳解决方案(该算法的伪代码位于补充材料中,我们的实现位于 GitHub 上),但原则上完全相同的解决方案可以通过其他方法实现优化方法,例如将问题编码为二进制整数程序(BIP)并以类似于 Taskonomy 的方式求解(Zamir 等人,2018)。
大多数当代 MTL 作品使用的独特任务类型少于 4 种,但是,通过使用合成输入,我们发现我们的类似分支定界的方法比所有 2|T | 的网络训练需要的时间更少。 − 1 + |T |少于十个任务的候选人。
-
- 减少训练时间的近似方法
本节描述了两种减少获得网络集合作为网络选择算法的输入所需的训练时间的技术。我们的目标是产生与完整搜索产生的结果相似的任务分组,但训练时间负担更少。这两种技术都涉及预测网络的性能,而无需实际训练网络收敛。第一种技术涉及在短时间内训练每个网络,第二种技术涉及根据在两个任务上训练的网络的表现来推断在两个以上任务上训练的网络将如何执行。
-
-
- 在收敛之前提前停止
-
我们发现,在仅通过 20% 的数据后,设置 1 中 36 个候选神经网络的验证损失与经过充分训练的网络的最终验证损失之间存在较高的相关性(Pearson r = 0.49) 。这意味着任务关系趋势较早稳定下来。我们发现,通过在经过轻度训练的网络上运行网络选择,然后简单地训练所选网络以使其收敛,我们可以获得不错的结果。这是超参数优化中的常用技术(Domhan 等人,2015;Li 等人,2017)。
对于我们的设置,与完全训练所有候选网络相比,该技术将训练时间负担减少了约 20 倍。显然,这种技术确实会带来预测准确性的损失。由于早期网络性能和最终网络性能之间的相关性并不完美,一旦网络被训练到收敛,网络选择做出的决策就不再保证是最优的。我们将这种近似称为早期停止 ping 近似 (ESA),并在第 6 节中介绍使用此技术的结果。
- 任务分组评估
我们在所有四种设置中应用了我们的框架和近似值。我们以 1/2 SNT 的增量计算了从 1 SNT 到 5 SNT 的推理时间预算的解决方案。用于网络选择的性能分数是在验证集上计算的。每个选择的解决方案都在测试集上进行评估。请注意,由于标签标准化和损失定义存在微小差异,因此无法在设置之间正确比较报告的总损失数。
基线:我们将结果与传统方法进行比较,例如五个单任务网络和所有任务联合训练的单个网络。
对于设置 1,我们还与文献中的两种多任务方法进行了比较。第一个是(Sener & Koltun,2018)。我们发现他们的算法过于激进地低估了语义分割任务的权重,导致任务性能较差,并且与任务损失的简单总和相比,整体性能较差。我们推测这是因为语义分割的损失与其他损失的行为不同。接下来我们与 GradNorm 进行比较(Chen 等人,2018b)。 GradNorm 的结果也比具有统一任务权重的经典 MTL 稍差,但这可能是因为我们使用统一的任务权重进行评估,而 GranNorm 针对其计算的任务权重进行了优化。无论如何,这些技术与我们的技术是正交的,并且可以结合使用它们带来比简单地求和损失更好的解决方案的情况。
每个基线都使用多个编码器大小(每层更多或更少的通道)进行评估,以便可以在许多推理时间预算下比较结果。 最后,我们将我们的结果与两个控制基线进行了比较,说明了对一起训练的任务做出良好选择的重要性,“随机”和“悲观”。“随机”是一个由有效的随机任务分组组成的解决方案,可以解决我们的五个任务。报告的值是一百万次随机试验的平均值。 “悲观”是一种解决方案,其中我们选择导致整体性能最差的网络,尽管该解决方案在每个任务上的性能仍然是解决该任务的网络中最好的。
设置 1:图 3 显示了为每种技术选择的任务组,图 2 显示了这些组的表现以及我们的基线的表现。我们可以看到,对于每个计算预算,我们的每种方法都优于传统基线。
图 2. 设置 1 中各种方法的性能/推理时间权衡。我们不报告误差线,因为测试集足够大,标准误差太小而无法显示。
当计算预算仅为 1 SNT 时,我们所有的方法都必须选择相同的模型——具有 1 SNT 编码器和 5 个解码器的传统多任务网络。该策略优于 GradNorm (Sener & Koltun, 2018) 以及独立网络。然而,对于每个 > 1.5 的预算,利用多个网络的解决方案都优于这种传统策略——根据兼容性对任务进行分组始终可以实现更好的性能。
图 3. 我们的每种技术为 1 到 5 之间的整数预算选择的任务组。网络显示为 ○(全尺寸)或 ○(半尺寸)。网络连接到它们计算预测的任务。 s:语义分割,d:深度估计,n:表面法线预测,k:关键点检测,e:边缘检测。虚线边缘代表未使用的解码器。例如,绿色突出显示的解决方案由两个半尺寸网络和一个全尺寸网络组成。全尺寸网络解决了深度估计、表面法线预测和关键点检测。一个半尺寸网络解决语义分割,另一个解决边缘检测。所有五个任务的总损失为 0.455。补充材料中显示了部分预算的分组。
当计算预算实际上是无限的(5 SNT)时,我们的最佳方法选择五个网络,每个网络用于对单独的任务进行预测。然而,其中三个网络各自接受三项任务的训练,而只有两个网络各自接受一项任务的训练。这表明通过多任务学习学习的网络最适合我们的三个任务(s、d 和 e),而我们的两个任务(n 和 k)最好单独解决。
我们还看到,我们使用 2.5 SNT 的最佳技术和使用 3.5 SNT 的高阶近似都可以优于总共使用 5 SNT 的单个网络。
设置 2:当我们将网络选择框架应用于来自该高容量网络的性能数据时(图 4),我们再次发现我们的方法优于为每个任务训练单个网络以及一起训练所有任务。即使在这种情况下成对的任务往往能够更好地合作,情况也是如此。事实上,我们小组的表现在这里更胜一筹。应该指出的是,尽管 ESA 优于基线,但 ESA 与最优解之间存在显着差距。也许在使用更多数据进行训练后停止会改善 ESA 的结果。
设置 3:我们可以在图 5 中看到,我们在仅使用 20 万个示例进行训练的网络上的选择框架再次优于基线。对于 ESA 在此设置中,我们将整个 200k 示例运行了四次,而不是只运行了 20% 一次。这表示与其他设置中的训练量相同。
设置 4:在此设置中,我们训练的各种网络的性能非常相似。这在图 6 中显示为 1-SNT allin-one 和 5-SNT 最佳解决方案之间的差异非常小。由于这种设置中的任务往往能够很好地合作,因此独立训练基线的竞争力不强也就不足为奇了。事实上,我们看到用 4 个 SNT 训练的一体化网络实际上优于 Early Stopping Approximation。然而,即使在这种高度合作的场景中,我们的最佳解决方案也优于每个基线,HOA 也是如此。
定性结果:图 7 可以对我们的方法和基线进行定性比较。我们可以看到每个基线都存在明显的视觉问题存在于我们的方法中。我们的两种近似方法都会产生类似于最佳任务分组的预测。
讨论:在所有四种设置中,我们的最佳分组都优于每个基线。此外,高阶近似的表现始终与最优解非常相似,而且通常同样好。然而,因为我们有五个任务,所以超过一半的候选集已经针对这种近似进行了充分的训练。早期停止近似通常具有竞争力,但解决方案往往比最佳解决方案更差。原则上,人们可以在对更多数据进行训练后停止,这可能会产生更好的结果。我们无法使用其他数据量测试 ESA,因为我们的自适应学习率导致网络在接受更多数据训练后不再具有可比性。
- 结论 我们描述了与多任务学习相关的任务兼容性问题。我们提供了一个计算框架,用于确定哪些任务应该在给定的设置中联合训练,哪些任务应该单独训练。我们的解决方案可以利用联合训练对某些任务有利但对同一组中的其他任务不利的情况。对于许多用例来说,这个框架已经足够了,但在训练时成本可能很高。因此,我们提供了两种策略来应对这个问题并评估它们的性能。我们的方法优于单任务网络、所有任务联合训练的多任务网络以及其他基线。我们还利用这个机会来分析特定任务在多任务设置中如何交互,并将其与之前的迁移学习任务交互结果进行比较。我们发现,与传输任务关联性不同,多任务关联性高度依赖于许多因素,例如数据集大小和网络容量。这是为什么像我们这样的计算框架对于发现多任务学习中应该一起学习哪些任务是必要的另一个原因。
- 致谢 我们衷心感谢 TRI (S-2018-29)、NSF 拨款 DMS-1546206、Vannevar Bush 教员奖学金和 ONR MURI (W911NF150100479) 的支持。丰田研究院(“TRI”)提供资金协助作者进行研究,但本文仅反映作者的观点和结论,不代表 TRI 或任何其他丰田实体。