决定哪些任务应该在多任务神经网络中一起训练

发布时间:2021-11-28编辑:RainNight阅读(441)

    许多机器学习 (ML) 模型通常专注于一次学习一个任务。例如,语言模型在给定过去单词的上下文的情况下预测下一个单词的概率,而对象检测模型则识别图像中存在的对象。但是,在某些情况下,同时从许多相关任务中学习会带来更好的建模性能。这在多任务学习领域得到了解决,这是ML的一个子领域,其中多个目标同时在同一模型中训练。

    考虑一个真实的例子:乒乓球游戏。打乒乓球时,判断乒乓球的距离、旋转和即将发生的轨迹,调整身体,摆成一个秋千,往往是有利的。虽然这些任务中的每一个都是独一无二的 - 预测乒乓球的旋转与预测其位置根本不同 - 但改善您对球的位置和旋转的推理可能会帮助您更好地预测其轨迹,反之亦然。通过类比,在深度学习领域内,训练模型以预测三个相关任务(即乒乓球的位置,旋转和轨迹)可能会导致仅预测单个目标的模型的性能得到提高。

    file

    在NeurIPS 2021的聚光灯演讲中,在”高效识别多任务学习中的任务分组”中,我们描述了一种称为任务亲和力分组(TAG)的方法,该方法确定哪些任务应该在多任务神经网络中一起训练。我们的方法尝试将一组任务划分为更小的子集,以便最大限度地提高所有任务的性能。为了实现这一目标,它在单个多任务模型中一起训练所有任务,并测量一个任务对模型参数的梯度更新对网络中其他任务的丢失的影响程度。我们将此数量表示为任务间亲和力。我们的实验结果表明,选择最大化任务间亲和力的任务组与整体模型性能密切相关。

    哪些任务应该一起训练?

    在理想情况下,多任务学习模型将应用它在训练过程中学到的信息,以减少训练网络中包含的其他任务的损失。这种信息传递导致单个模型不仅可以进行多个预测,而且与为每个任务训练不同模型的性能相比,这些预测的准确性也可能提高。另一方面,在许多任务上训练单个模型可能会导致对模型容量的竞争,并严重降低性能。当任务不相关时,通常会发生后一种情况。回到我们的乒乓球类比,想象一下试图预测乒乓球的位置,旋转和轨迹,同时重述斐波那契序列。这不是一个有趣的前景,很可能对你作为乒乓球运动员的进步有害。

    选择模型应训练的任务子集的一种直接方法是对一组任务的所有可能的多任务网络组合执行详尽的搜索。但是,与此搜索相关的成本可能令人望而却步,尤其是在存在大量任务时,因为可能的组合数相对于集中的任务数呈指数级增长。由于应用模型的任务集在其整个生命周期中可能会发生变化,这一事实使情况变得更加复杂。当任务添加到所有任务集或从中删除任务时,需要重复这种代价高昂的分析来确定新的分组。此外,随着模型的规模和复杂性不断增加,即使是仅评估可能的多任务网络子集的近似任务分组算法,评估成本也可能高得令人望而却步,而且耗时。

    构建任务亲和力分组

    在研究这一挑战时,我们从元学习中汲取了灵感,元学习是机器学习的一个领域,可以训练一个神经网络,可以快速适应新的,以前看不见的任务。经典的元学习算法之一MAML对任务集合的模型参数应用梯度更新,然后更新其原始参数集,以最大程度地减少在更新的参数值下计算的集合中任务子集的损失。使用此方法,MAML 训练模型以学习表示形式,这些表示形式不会最小化其当前权重集的损失,而是在一个或多个训练步骤后最小化权重的损失。因此,MAML训练模型的参数,使其能够快速适应以前看不见的任务,因为它针对未来而不是现在进行了优化。

    TAG采用类似的机制来深入了解多任务神经网络的训练动态。特别是,它仅更新与单个任务相关的模型参数,查看此更改将如何影响多任务神经网络中的其他任务,然后撤消此更新。然后,对每个其他任务重复此过程,以收集有关网络中每个任务如何与任何其他任务交互的信息。然后,通过更新模型相对于网络中每个任务的共享参数,训练继续正常进行。

    收集这些统计数据,并在整个训练过程中观察它们的动态,发现某些任务始终表现出有益的关系,而有些任务则彼此对立。网络选择算法可以利用这些数据将任务分组在一起,从而最大限度地提高任务间的亲和力,这取决于从业者在推理过程中可以选择使用多少个多任务网络。

    file

    TAG 概述。首先,任务在同一网络中一起训练,同时计算任务之间的亲和力。其次,网络选择算法查找可最大化任务间亲和力的任务分组。第三,对由此产生的多任务网络进行训练和部署。

    结果

    实验结果表明,TAG可以选择非常强的任务分组。在CelebA和Taskonomy数据集上,TAG与之前最先进的产品竞争,同时运行速度分别提高了32倍和11.5倍。在Taskonomy数据集上,这种加速转化为减少2,008 Tesla V100 GPU小时来查找任务分组。

    结论

    TAG 是确定哪些任务应在单个训练运行中一起训练的有效方法。该方法查看任务如何通过训练进行交互,特别是,在训练一个任务时更新模型的参数会对网络中其他任务的损失值产生的影响。我们发现,选择任务组以最大化此分数与模型性能密切相关。

Collect from 雨夜的博客 雨夜的博客