多任务学习和迁移学习的区别

机器算法验证 机器学习 术语 多任务学习 迁移学习
2022-03-26 03:23:45

我正在阅读 Caruana (1997) 多任务学习 ( pdf )。在多任务学习的定义中,作者指出;

通常,我们并不关心额外任务的学习程度;他们的唯一目的是帮助更好地学习主要任务。

这也是迁移学习的目标吧?那有什么区别呢?这两个术语是否可以互换使用(我认为不是)?

3个回答

单任务学习:给出一组学习任务,t1,t2,...,t(n),独立学习每个任务这是实践中最常用的机器学习范式。

多任务学习:给出一组学习任务,t1,t2,...,t(n),同时共同学习所有任务。换句话说,学习者通过一些共享知识来优化所有 n 个任务的学习/性能。这也可以称为批量多任务学习。在线多任务学习更像是终身学习(见下文)。

迁移学习 (或域适应):给定一组源域/任务 t1, t2, ..., t(n-1) 和目标域/任务 t(n),目标是学习好 t(n)通过将一些共享知识从 t1, t2, ..., t(n-1) 转移到 t(n)。虽然这个定义很笼统,但几乎所有关于迁移学习的文献都是关于有监督的迁移学习,源域的数量只有一个(即 n=2)。它还假设源域有标记的训练数据,而目标域/任务中的标记示例很少或没有,但 t(n) 中有大量未标记的数据。请注意,迁移学习的目标是只为目标任务学习好。源任务的学习是无关紧要的。

终身学习:学习者对从 t1 到 t(n-1) 的一系列任务进行了学习。在面对第n个任务时,它利用过去n-1个任务中获得的相关知识来帮助学习第n个任务。基于这个定义,终身学习类似于涉及多个源域或任务的一般迁移学习。然而,一些研究人员对终身学习的定义较窄。他们认为这是一个学习过程,旨在在没有看到任何未来任务数据的情况下很好地学习未来的任务 t(n)。这意味着系统应该从过去观察到的任务中生成一些先验知识,以帮助新的/未来的任务学习,而无需观察来自未来任务 t(n) 的任何信息。未来的任务学习只是使用知识。这个定义使得终身学习不同于迁移学习和多任务学习。它与迁移学习不同,因为迁移学习使用标记和未标记数据的目标/未来任务来识别先验知识。

所有内容均来自https://www.cs.uic.edu/~liub/IJCAI15-tutorial.html

多任务学习和迁移学习方法虽然有一些共同点,但并不相同。迁移学习仅旨在通过从源任务中迁移知识来实现​​目标任务的高性能,而多任务学习则试图同时学习目标和源任务。

许多机器学习和数据挖掘算法的一个主要假设是训练数据和未来数据必须在相同的特征空间中并且具有相同的分布。这个假设很弱,在许多情况下可能不成立。例如,假设我们在一个感兴趣的领域有一个分类任务,但我们在另一个感兴趣的领域只有足够的训练数据,后者的数据可能在不同的特征空间或遵循不同的数据分布。在多任务学习中,没有强制观察不同任务分布的差异。

迁移学习是比领域适应更广泛的话题。后者是试图改变源域的过程,以使源域的分布更接近目标域的分布。迁移学习还可以包括我们想要将知识从旧任务迁移到新的和不同的任务的情况(例如,在我们有不同标签的分类问题中),这与旧任务有一些相似之处,除了上面解释的情况我们有一项任务,但数据的分布存在差异(例如样本偏差等)。

ICML 2018 评论 ( https://towardsdatascience.com/icml-2018-advances-in-transfer-multitask-and-semi-supervised-learning-2a15ef7208ec )中的答案略有不同(我认为更好),其中多任务学习、领域适应和微调是迁移学习的具体案例。

终身学习(或元学习)从过去看到的多个“历史”任务中积累知识,目的是提高未来任务的表现。它与多任务学习有关,只是任务来自过去,目标是未来。