利用历史数据中的有用信息来帮助分析未来数据的机器学习,通常需要大量有标签数据才能训练出一个优良的学习器。深度学习模型是一种典型的机器学习模型,因为这类模型是带有很多隐藏层和很多参数的神经网络,所以通常需要数以百万计的数据样本才能学习得到准确的参数。但是,包括医学图像分析在内的一些应用无法满足这种数据要求,因为标注数据需要很多人力劳动。在这些情况下,多任务学习(MTL)可以通过使用来自其它相关学习任务的有用信息来帮助缓解这种数据稀疏问题。
MTL 是机器学习中一个很有前景的领域,其目标是利用多个学习任务中所包含的有用信息来帮助为每个任务学习得到更为准确的学习器。我们假设所有任务(至少其中一部分任务)是相关的,在此基础上,我们在实验和理论上都发现,联合学习多个任务能比单独学习它们得到更好的性能。根据任务的性质,MTL 可以被分类成多种设置,主要包括多任务监督学习、多任务无监督学习、多任务半监督学习、多任务主动学习、多任务强化学习、多任务在线学习和多任务多视角学习。
多任务监督学习任务(可能是分类或回归问题)是根据训练数据集(包含训练数据实例和它们的标签)预测未曾见过的数据的标签。多任务无监督学习任务(可能是聚类问题)是识别仅由数据构成的训练数据集中的有用模式。多任务半监督学习任务与多任务监督学习类似,只是其训练集中不仅包含有标签数据,也包含无标签数据。多任务主动学习任务是利用无标签数据来帮助学习有标签数据,这类似于多任务半监督学习,其差异在于主动学习会选择无标签数据来主动查询它们的标签从而降低标注开销。多任务强化学习任务是选择动作以最大化累积奖励。多任务在线学习任务是处理序列数据。多任务多视角学习任务是处理多视角数据——其中每个数据实例都有多组特征。
MTL 可以看作是让机器模仿人类学习行为的一种方法,因为人类常常将一个任务的知识迁移到另一个相关的任务上。例如,根据作者自身经验,打壁球和打网球的技能可以互相帮助提升。与人类学习类似,(机器)同时学习多个学习任务是很有用的,因为一个任务可以利用另一个相关任务的知识。
MTL 也与机器学习的某些其它领域有关,包括迁移学习、多标签学习和多输出回归,但 MTL 也有自己不同的特点。比如说,类似于 MTL,迁移学习的目标也是将知识从一个任务迁移到另一个任务,但不同之处在于迁移学习希望使用一个或多个任务来帮助另一个目标任务,而 MTL 则是希望多个任务彼此助益。当多任务监督学习的不同任务使用了同样的训练数据时,这就变成了多标签学习或多输出回归。从这个意义上看,MTL 可以被看作是多标签学习和多输出回归的一种泛化。
在此,我们给出 MTL 的正式定义。
定义 1(多任务学习):给定 m 个学习任务,其中所有或一部分任务是相关但并不完全一样的,多任务学习的目标是通过使用这 m 个任务中包含的知识来帮助提升各个任务的性能。
基于这一定义,我们可以看到 MTL 有两个基本因素。
第一个因素是任务的相关性。任务的相关性是基于对不同任务关联方式的理解,这种相关性会被编码进 MTL 模型的设计中。
第二个因素是任务的定义。在机器学习中,学习任务主要包含分类和回归等监督学习任务、聚类等无监督学习任务、半监督学习任务、主动学习任务、强化学习任务、在线学习任务和多视角学习任务。因此不同的学习任务对应于不同的 MTL 设置。包括计算机视觉、生物信息学、健康信息学、语音、自然语言处理、网络应用和普适计算在内的很多领域都在使用 MTL 来提升各自的应用的性能。
最近,深度学习在诸多应用领域中广为流行,并且深度学习十分适用于 MTL。几乎所有的深层模型都会为不同的任务共享隐藏层;当各种任务非常相似时,这种在任务之间共享知识的方式非常有用,但是一旦这种假设被违背,模型性能则显著恶化。我们认为,多任务深度模型的未来发展方向是设计更加灵活的架构,可以容纳不相关的任务甚至异常的任务。此外,深度学习,任务聚类和多层次方法缺乏理论基础,需要更多的分析来指导这些方面的研究。
[描述来源:多任务学习概述论文:从定义和方法到应用和原理分析|机器之心]
在深度学习中,多任务学习通常通过隐藏层的 Hard 或 Soft 参数共享来完成。
共享 Hard 参数是神经网络 MTL 最常用的方法,可以追溯1993年Caruana所发表的论文。在实际应用中,通常通过在所有任务之间共享隐藏层,同时保留几个特定任务的输出层来实现。共享 Hard 参数大大降低了过拟合的风险。1997年Jonathan Baxter在他的论文中证明过拟合共享参数的风险为 O(N)——其中 N 是任务数——小于过拟合特定任务参数,即输出层。这很直观:我们同时学习的工作越多,我们的模型找到一个含有所有任务的表征就越困难,而过拟合我们原始任务的可能性就越小。
另一方面,在共享 Soft 参数时,每个任务都有自己的参数和模型。模型参数之间的距离是正则化的,以便鼓励参数相似化。1998年Caruana对早期的MTL的研究进行了总结,并演示了三个领域中的多任务学习。他们解释了多任务学习的工作原理,提出了一个基于案例的方法(如k-最近邻和核回归)的多任务学习算法和结果,并为决策树中的多任务学习绘制了一个算法。目前大部分MTL学习所基于的机制仍然来源于此篇文章。
2000年,针对机器学习中的表征偏置——如何选择学习者的假设空间,以便它足够大以包含所学问题的解决方案,但又足够小以确保从合理大小的训练集中可靠地泛化的问题,通常情况下,Jonathan Baxter提出了一种自动学习偏置的模型。该模型的中心假设是学习者被嵌入在相关学习任务的环境中,在这样的环境中,学习者可以从多个任务中抽样,因此可以搜索假设空间,并且该假设空间包含环境中许多问题的良好解决方案。这将有助于模型在将来泛化到新任务,因为在足够数量的训练任务上表现很好的假设空间也将很好地用于学习具有相同环境的新任务。
在用于计算机视觉的 MTL 中,通常的方法是共享卷积层,同时学习特定任务的全连接层。2015年,Mingsheng Long等学者提出通过深度关系网络(Deep Relationship Network)来改进这些模型。除了共享卷积和特定任务层的结构之外,他们在全连接层上使用矩阵先验(matrix priors),这样可以让模型学习任务之间的关系。然而,这种方法仍然依赖于预定义的共享结构,这可能对于已经充分研究的计算机视觉问题是可行的,但是对于新任务来说容易出错。
2016年Yongxi Lu等学者从另一个极端提出了一个从窄网络(thin network)开始的自下而上的方法,并在训练过程中使用一个促进类似任务分组的标准,贪婪地动态拓宽网络。但是,贪婪方法可能无法发现全局最优的模型,而将每个分支正好分配给一个任务不允许模型学习更复杂的任务交互。
Ishan Misra等学者则从两个独立的模型架构开始,如共享 Soft 参数一样。然后,他们使用称为十字绣(cross stitch)的单位,以允许模型通过学习前面层的输出的线性组合来确定如何使特定任务的网络利用其它任务的知识。即通过端对端的学习来自动决定共享层。
在自然语言处理(NLP)方面,最著名的论文应属Ronan Collobert和Jason Weston在2008年发表的A unified architecture for natural language processing: deep neural networks with multitask learning,他们使用了一个单一的卷积神经网络架构来完成命名实体识别、输出语义上相似的单词等任务。Ruder等学者则于2017年提出了水闸网络(Sluice Network),一种泛化基于深度学习的 MTL 方法(比如 Hard 参数共享和十字绣网络、块稀疏正则化方法以及最近的任务层次结构的 NLP 方法)的模型。该模型可以学习哪些层和子空间应该共享,以及网络在哪层学到了输入序列的最佳表征。
年份 | 事件 | 相关论文/Reference |
1993 | Caruana提出共享 Hard 参数 | Caruana, R. (1993). Multitask learning: A knowledge-based source of inductive bias. Proceedings of the Tenth International Conference on Machine Learning. |
1997 | Jonathan Baxter在他的论文中证明过拟合共享参数的风险为 O(N)——其中 N 是任务数——小于过拟合特定任务参数,即输出层 | Baxter, J. (1997). A Bayesian/information theoretic model of learning to learn via multiple task sampling. Machine Learning, 28, 7–39. |
1998 | Caruana对早期的MTL的研究进行了总结,并演示了三个领域中的多任务学习 | Caruana R. (1998) Multitask Learning. Learning to Learn.pp 95-133. |
2000 | Jonathan Baxter提出了一种自动学习偏置的模型 | Baxter, J. (2000). A Model of Inductive Bias Learning. Journal of Artificial Intelligence Research, 12, 149–198. |
2008 | Ronan Collobert和Jason Weston使用了一个单一的卷积神经网络架构来完成命名实体识别、输出语义上相似的单词等任务。 | Collobert, R.; Weston, J. (2008). A unified architecture for natural language processing: deep neural networks with multitask learning. roceedings of the 25th international conference on Machine learning. pp 160-167. |
2015 | Mingsheng Long等学者提出通过深度关系网络(Deep Relationship Network)来改进用于计算机视觉的神经网络模型 | Long, M., & Wang, J. (2015). Learning Multiple Tasks with Deep Relationship Networks. arXiv Preprint arXiv:1506.02117. |
2016 | Yongxi Lu等学者从另一个极端提出了一个从窄网络(thin network)开始的自下而上的方法 | Lu, Y., Kumar, A., Zhai, S., Cheng, Y., Javidi, T., & Feris, R. (2016). Fully-adaptive Feature Sharing in Multi-Task Networks with Applications in Person Attribute Classification. Retrieved from http://arxiv.org/abs/1611.05377 |
2016 | Ishan Misra等学者提出十字绣网络 | Misra, I., Shrivastava, A., Gupta, A., & Hebert, M. (2016). Cross-stitch Networks for Multi-task Learning. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition |
2017 | Ruder等学者提出了水闸网络(Sluice Network) | Ruder, S., Bingel, J., Augenstein, I., & Søgaard, A. (2017). Sluice networks: Learning what to share between loosely related tasks. Retrieved from http://arxiv.org/abs/1705.08142 |
目前我们对多任务学习中的任务的理解仍然有限(如,它们的相似性、关系、层次结构和 MTL 的用处),因而对 MTL 泛化能力的理解也有限。另外,使用神经网络进行多任务学习时,如何确定网络的共享部分是一个难点,即使我们使用十字绣网络去自动决定共享层,又会带来如何进行初始化,如何设置学习速率等问题。
虽然十字绣网络的表现有限,但自动学习共享层仍然是一个研究方向,传统的参数共享方法仍然是目前的主流。由于NLP和机器视觉目前的研究都涉及到很多相似/相关的任务,多任务学习必然是一个重点。