Adaptive Weight Assignment Scheme For Multi-task Learning
题目 | Adaptive Weight Assignment Scheme For Multi-task Learning |
---|---|
译题 | 用于多任务学习的自适应权重分配方案 |
时间 | 2022年 |
期刊/会议 | IAES International Journal of Artificial Intelligence (IJ-AI) |
摘要:如今,基于深度学习的模型在每一个应用程序中都定期得到了使用。一般来说,我们在一项任务上训练一个模型。然而,在多任务学习设置下,我们可以在单个模型上训练多个任务。这为我们提供了许多优点,如更少的训练时间、为多个任务训练单个模型、减少过拟合、提高性能等。要在多任务学习环境中训练模型,我们需要对不同任务的损失值求和。在普通的多任务学习设置中,我们分配相同的权重,但由于并非所有任务的难度都相似,我们需要为难度更大的任务分配更多的权重。此外,不适当的权重分配也会降低模型的性能。我们在本文中提出了一个简单的权重分配方案,它提高了模型的性能,并更加重视困难的任务。我们测试了我们的方法在图像和文本数据上的性能,并将性能与两种流行的权重分配方法进行了比较。经验结果表明,与其他流行的方法相比,我们提出的方法取得了更好的结果。
1. 引言
从过去十年开始,深度学习方法就被广泛应用于各种应用中。它不仅在计算机科学领域,而且在电气工程、土木工程、机械工程和其他领域都取得了巨大的突破。这是因为深度神经网络(DNN)在图像分类[1]、问答[2]、唇语[3]、视频游戏[4]等各种应用中都达到了人类水平。DNNs 能够在没有任何帮助的情况下找出输入数据的复杂和隐藏特征。以前,这些模型依赖于手工制作的功能[5-10]。
人类有能力同时执行多个任务,而不会损害任何任务的性能。人类经常这样做,并且能够决定哪些任务可以同时完成。这就是为什么近年来人们把很多注意力放在使用 DNN 方法的多任务学习上。通常,一个模型专门用于执行一个任务。然而,执行多个任务可以提高模型的性能,减少训练时间和过拟合[11]。通常,我们发现单个任务的数据集很小,但如果任务以某种方式相关,那么我们可以使用这些共享信息并构建一个足够大的数据集,这将减少这个问题。目前,在多任务学习领域,一些研究工作正在进行,以创建用于多任务学习设置的新DNN架构[12,13],决定哪些任务应该一起学习[14],如何为损失值分配权重[15,16]等。在这项研究工作中,我们专注于创建一种动态权重分配技术,该技术将在训练过程中为每个时期的损失值分配不同的权重。在我们的研究工作中,我们提出了一种为所有损失值分配权重的新方法,并在图像和文本领域使用的两个数据集上进行了测试。我们的研究工作贡献如下。
1)我们提出了一种用于多任务学习的直观损失加权方案;
2)我们使用两个不同的数据集,针对图像和文本领域测试了我们的方法。我们这样做是为了确保我们的方法在所有领域都表现良好;
3)我们将我们的方法与两种流行的权重分配方案进行了比较,以比较我们方法的性能。
2. 研究方法
在本节中,我们将对该领域先前的研究工作进行讨论。接下来,我们将提供我们提出的方法。
2.1 文献综述
R.Caruana[11]提供了关于多任务学习的最早论文之一。在手稿中,作者探讨了多任务学习的思想,并展示了它在不同数据集下的有效性。作者还解释了多任务学习是如何工作的,以及如何将其用于反向传播。为了训练基于多任务学习设置的DNN,我们需要考虑哪些网络层在所有任务之间共享,哪些层用于单个任务。此前,大多数研究工作都集中在硬参数共享概念上[17-19]。在这种情况下,用户定义可共享的层,直到特定的点,然后为每个任务分配所有层。还有软参数共享的概念,其中对于网络中的所有任务存在单个列。在所有网络中设计了一种特殊的机制来共享参数。这种方法的流行方法是Cross-Sitch[13]、Sluich[20]等。最近提出了一种名为 Ada-share 的新方法,其中模型动态学习为所有任务共享哪些层,以及为单个任务使用哪些层[14]。作者还提出了一种新的损失函数,以确保模型的紧凑性和性能。
权重分配是多任务学习领域中一项非常关键的任务。以前的权重要么是相等的值,要么是研究人员指定的一些手动调整值[18,21,22]。然而,在多任务学习模型需要执行大量任务的情况下,这种方法是不够的。[15]提出了一种基于不确定性的方法。后来[12]提出了这种方法的修订方法。在本文中,作者通过添加正则化项来改进先前的基于不确定性的方法。[12]提出了动态权重平均法。在这种方法中,作者计算了前两个时期损失值的相对变化,并对这些值使用 softmax 函数来获得权重。[23]对不同的权重分配方案进行了比较研究。然而,除了图像,他们没有在任何领域研究这些方法。此外,他们使用的数据集只有2个任务。
2.2 自适应权重分配
我们提出的方法很简单,它考虑了(take into account of )每个 epoch 中每个任务的损失值。与其他方法相比,我们的方法易于实现。通常,在多任务学习设置中,为了训练模型,我们需要将所有损失值与其权重相加,然后执行反向传播(backpropagation)以更新模型的权重。这种损失的总和可以表示为: