在机器学习的领域中,多任务学习(MTL)
已成为一个备受瞩目的研发方向。这种方法的主要理念是同时解决多个学习任务,并利用任务间的共性与差异。与单独训练模型相比,MTL能显著提高学习效率及预测准确度。早期的多任务学习版本被称为“提示”(hints),该概念最早由Rich Caruana于1997年提出,其论文中描述了MTL如何通过并行学习并共享表示来改善一般化能力。
“多任务学习是一种改进推理的方法,它通过利用相关任务的训练信号中的域信息作为推断偏见来提升学习效果。”
在分类的背景下,多任务学习旨在通过联合学习改善多个分类任务的表现。例如,对于不同用户的垃圾邮件过滤器来说,每个用户可能在识别垃圾邮件的特征上有不同的分布。对于英语使用者来说,所有俄语邮件可能都被视为垃圾邮件,而这并不适用于俄语使用者。然而,在这一分类任务中,仍存在着明显的共性特征,例如与金钱转移相关的文字符号。通过MTL共同解决各用户的垃圾邮件分类问题,可以让解决方案相互影响,由此提升性能。
然而,多任务学习的关键挑战在于如何将来自多个任务的学习信号整合为一个单一的模型。这一部分在很大程度上取决于不同任务之间的一致性或矛盾性。在MTL范畴内,可以根据任务的相关性选择性地分享信息。
“通过任务的组合和重叠来提取信息,能够根据任务相关性的结构来选择性地分享数据。”
具体来说,任务可以根据某种一般指标进行分组或存在于一个层级结构中。例如,每个任务的参数向量可以被建模为某个基础的线性组合。与此相关的任务重叠会显示任务之间的共性,根据这一根据,任务组合可以在某个基础元素所生成的子空间内进行。在这样的结构中,不同任务之间可以是互不相交的,也可以是相互重叠的。
除了关联任务,MTL还能挖掘无关任务的潜力。通过使用无关的辅助任务,无论其本质如何,仍能在应用中获得联合学习的好处。这背后的原因在于,关于任务之间相关性的先前知识能导致对每个任务组合更稀疏且信息丰富的表示。
“在合成及真实数据的实验中,包含无关任务的模型在性能上显著优于标准的多任务学习方法。”
与多任务学习密切相关的是知识转移的概念。传统的多任务学习意味着在任务间并行开发共享表示,而知识转移则暗示着一种序贯共享的表示。实际应用中,像深度卷积神经网络GoogLeNet这类大型机器学习项目,可以开发出强健的表示,这对进一步学习相关任务的算法会有很大的帮助。
例如,预训练模型可作为特征提取器,为其他学习算法执行预处理。或预训练的模型可用来初始化具有相似结构的模型,然后进行微调以学习不同的分类任务。
在某些情况下,同时训练看似相关的任务可能会妨碍与单任务模型相比的性能。为了解决这些冲突,需要利用各种MTL优化方法来最小化此问题的影响。一般来说,对每个任务来说,所计算的梯度最终会通过各种聚合算法或启发式方法合并为一个联合更新方向。
随着技术的进步及对多任务学习的深入研究,我们不禁要问:未来多任务学习将如何进一步提升我们的机器学习模型的准确性与应用范畴?