摘要

多任务学习(Multi-Task Learning, MTL)是机器学习中的一种学习范式,其目的是利用包含在多个相关任务中的有用信息来帮助提高所有任务的泛化性能。

首先,我们将不同的MTL算法分为特征学习法、低秩方法、任务聚类方法、任务关系学习方法和分解方法,然后讨论每种方法的特点。为了进一步提高学习任务的性能,MTL可以与其他学习范式相结合,包括半监督学习、主动学习、非监督学习、强化学习、多视图学习和图形模型。当任务数量较大或数据维数较高时,批量MTL模型难以处理,本文对在线、并行和分布式MTL模型以及降维和特征哈希进行了综述,揭示了它们在计算和存储方面的优势。许多实际的应用程序使用MTL来提高它们的性能。最后,我们提出了理论分析,并讨论了未来的几个方向。

1 介绍

数据集难以收集时,MTL是个好的解决方案。

在MTL中,有多个学习任务,每个学习任务都可以是一个通用的学习任务,如监督任务(如分类或回归问题)、非监督任务(如聚类问题)。半监督任务,强化学习任务。多视图学习任务或图形模型。在这些学习任务中,所有这些任务或至少其中一部分被认为是相互关联的。在这种情况下,我们发现联合学习这些任务可以比单独学习更有效地提高性能。这一观察结果导致了MTL的诞生。因此,当多个任务相关时,MTL旨在提高它们的泛化性能。

MTL的设置与迁移学习[2]相似,但也有显著性差异。在MTL中,不同任务之间没有区别,目标是提高所有任务的性能。但是迁移学习是在在源任务的帮助下提高目标任务的性能,目标任务比源任务起着更重要的作用。

因此,MTL对所有的任务都一视同仁,但在转移学习中,目标任务是所有任务中最受关注的。在[3],[4],[5]中,研究了一种新的MTL设置,称为非对称多任务学习,该设置考虑了一个不同的场景,当多个任务通过某种MTL方法联合学习时,又有了新任务。一个简单的解决方案是从头开始学习旧的和新的任务,但是这需要大量的计算。而非对称多任务学习仅仅是在旧任务的帮助下学习新任务,因此核心问题是如何将旧任务中包含的知识转移到新任务中。从这个意义上说,这种设置更类似于转移学习而不是MTL。

在这篇论文中,我们对MTL进行了研究。在给出了MTL的定义之后,我们将不同的MTL算法分为几个类别:特征学习方法,它可以分为特征变换和特征选择方法、低秩方法、任务聚类方法、任务重组学习方法和分解方法。我们讨论每种方法的特征。MTL可以与其他学习范式相结合,进一步提高学习任务的性能,因此我们讨论了MTL与其他学习范式的结合,包括半监督学习、主动学习、非监督学习、强化学习、多视图学习和图形模型。当任务数量较大时,所有任务中的训练数据量都可能非常大,这就需要进行MTL模型的在线并行计算。在这种情况下,不同任务的训练数据可以放在不同的机器上,因此分布式的MTL模型是一个很好的解决方案。在MTL中,维数重构和特征哈希是降低高维数据维数的重要工具。因此,我们回顾了在多个任务中处理大数据时有用的技术。作为一种通用的学习范式,MTL在各个领域都有广泛的应用,本文简要回顾了它在计算机视觉、生物信息学、健康信息学、语音、自然语言处理、网络应用和普适计算等领域的应用。

2 MTL模型

MTL :假设m个学习任务Ti(i=1~m),其中所有任务或其中一个子集是相关的,多任务学习的目的是通过使用所有或部分m个任务中包含的知识来帮助改进Ti模型的学习。

在此,我们需要区分同构MTL和异构MTL。[7],异构MTL被认为是由不同类型的监督任务,包括分类和回归问题,这里我们推广到更一般的设定任务的异构MTL由不同类型包括监督学习、无监督学习,semisupervised学习,强化学习,多视点学习和图形模型。与异构MTL相对的是同构MTL,它只包含一种类型的任务。综上所述,同质类和异质类MTL在学习任务类型上存在差异,而同质类特征MTL与异质类特征MTL在原始特征表示上存在差异。类似地,没有特殊的解释,默认的MTL设置是同类的MTL。

为了描述MTL定义中的关联性,需要解决三个问题: 何时共享、共享什么以及如何共享

“何时共享”问题是针对一个多任务问题在单任务请求和多任务模型之间做出选择。目前,这样的决定是由人类专家做出的,很少有人学习研究它的方法。一个简单的计算解决方案是将这样的决策表示为模型选择问题,然后使用模型选择技术(例如交叉验证)来进行决策,但是这种解决方案通常计算量很大,并且可能需要更多的训练数据。另一种解决方案是使用多任务模型,该模型可以退化为单任务模型,例如problem(34),当不同任务的学习变为(加和符号)时可以解耦。在这种情况下,我们可以让训练数据来决定(加和符号)的形式,从而做出隐含的选择。

要共享什么内容,需要确定所有任务之间可以通过哪些形式进行知识共享。通常,共享内容有三种形式,包括特性、实例和参数。基于特征的MTL旨在学习不同任务之间的共同特征,从而共享知识。基于实例的MTL希望在任务中为其他任务标识有用的数据实例,然后通过标识的实例共享知识。基于参数的MTL在任务中使用模型参数(例如,线性模型中的系数),以某种方式帮助学习其他任务中的模型参数,例如正则化。现有的MTL研究主要集中在基于特征和基于参数的方法上,属于基于实例方法的研究较少。代表基于实例的方法是多任务分布匹配方法[8],密度比率首次估计概率之间的每个实例以及它的标签属于自己的任务和混合所有的任务,然后使用加权训练数据的所有任务基于学习模型参数的估计的密度比为每个任务。由于基于实例的MTL研究较少,我们主要综述基于特征和基于参数的MTL模型。

在确定了“共享什么”之后,“如何共享”指定了在任务之间共享知识的具体方法。在基于特征的MTL中,有一种主要的方法:特征学习方法。特征学习方法侧重于学习基于浅层或深层模型的多任务的公共特征表示,其中学习的公共特征表示可以是原始特征表示的子集或转换。基于参数MTL。主要有四种方法:低秩方法、任务聚类方法、任务关系学习方法和分解方法。低秩方法将多个任务之间的关联解释为这些任务的参数矩阵的低秩性。任务集群方法假设所有任务都形成几个集群,其中集群中的任务彼此相关。任务关系学习方法旨在从数据中自动学习任务之间的定量关系。分解方法将所有任务的模型参数分解为两个或多个分量,由不同的正则化器进行惩罚。总之,基于特征和基于参数的MTL主要有五种方法。在接下来的章节中,我们将按时间顺序回顾这些方法,以揭示它们中不同模型之间的关系和演进。(????)

特征转移方法

输入所有样本  经过Hidden layers   —》  输出该样本属于哪个任务。

这里隐藏层的输出可以被视为m的共同特征表示学习任务和转换从原始表示学到一个取决于连接输入和隐藏层的权重以及激活函数采用隐藏的单位。因此,如果隐层中的激活函数是线性的,那么变换就是线性的,反之就是非线性的。与用于单任务学习的多层前馈神经网络相比,网络结构的不同之处在于输出层,在单任务学习中只有一个输出单元,而在MTL中有m个输出单元。在[9]中,只有一个隐含层的径向基函数网络通过贪婪地确定隐含层的结构扩展到MTL。与这些神经网络模型不同的是,Silver等人提出了一个上下文敏感的多任务神经网络,它只有一个由不同任务共享的输出单元,但有一个特定于任务的上下文作为额外的输入。

与连接主义模型的多层前馈神经网络不同,多任务特征学习(MTFL)方法在正则化框架下,以目标函数为

论文阅读 | A Survey on Multi-Task Learning的更多相关文章

  1. 【论文阅读】Deep Clustering for Unsupervised Learning of Visual Features

    文章:Deep Clustering for Unsupervised Learning of Visual Features 作者:Mathilde Caron, Piotr Bojanowski, ...

  2. 论文阅读 TEMPORAL GRAPH NETWORKS FOR DEEP LEARNING ON DYNAMIC GRAPHS

    14 TEMPORAL GRAPH NETWORKS FOR DEEP LEARNING ON DYNAMIC GRAPHS link:https://scholar.google.com.hk/sc ...

  3. 论文阅读笔记十六:DeconvNet:Learning Deconvolution Network for Semantic Segmentation(ICCV2015)

    论文源址:https://arxiv.org/abs/1505.04366 tensorflow代码:https://github.com/fabianbormann/Tensorflow-Decon ...

  4. 【论文阅读】PBA-Population Based Augmentation:Efficient Learning of Augmentation Policy Schedules

    参考 1. PBA_paper; 2. github; 3. Berkeley_blog; 4. pabbeel_berkeley_EECS_homepage; 完

  5. 论文阅读: A Review of Robot Learning for Manipulation: Challenges, Representations, and Algorithms

    机器人学习操纵综述:挑战,表示形式和算法 1.介绍 因此,研究人员专注于机器人应如何学习操纵周围世界的问题. 这项研究的范围很广,从学习个人操作技巧到人类演示,再到学习适用于高级计划的操作任务的抽象描 ...

  6. [论文阅读笔记] node2vec Scalable Feature Learning for Networks

    [论文阅读笔记] node2vec:Scalable Feature Learning for Networks 本文结构 解决问题 主要贡献 算法原理 参考文献 (1) 解决问题 由于DeepWal ...

  7. Deep Reinforcement Learning for Dialogue Generation 论文阅读

    本文来自李纪为博士的论文 Deep Reinforcement Learning for Dialogue Generation. 1,概述 当前在闲聊机器人中的主要技术框架都是seq2seq模型.但 ...

  8. 论文阅读笔记 Word Embeddings A Survey

    论文阅读笔记 Word Embeddings A Survey 收获 Word Embedding 的定义 dense, distributed, fixed-length word vectors, ...

  9. 论文阅读笔记 Improved Word Representation Learning with Sememes

    论文阅读笔记 Improved Word Representation Learning with Sememes 一句话概括本文工作 使用词汇资源--知网--来提升词嵌入的表征能力,并提出了三种基于 ...

随机推荐

  1. Log4j,Log4j2,logback,slf4j日志学习(转)

    日志学习笔记Log4jLog4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台.文件.数据库等:我们也可以控制每一条日志的输出格式:通过定义每一条日志 ...

  2. Waiting (TTFB) 时间

    什么是 Waiting (TTFB) 时间 TTFB 是 Time to First Byte 的缩写,指的是浏览器开始收到服务器响应数据的时间(后台处理时间+重定向时间),是反映服务端响应速度的重要 ...

  3. Codeforces Round #456 (Div. 2) 912D D. Fishes

    题: OvO http://codeforces.com/contest/912/problem/D 解: 枚举每一条鱼,每放一条鱼,必然放到最优的位置,而最优位置即使钓上的概率最大的位置,即最多的r ...

  4. Docker Gitlib创建项目后仓库连接IP地址不一致问题(包括进入docker中容器命令及退出命令)

    首次在内网搭建Gitlab环境,在成功后在Gitlab上新建了一个项目. 然而在IDEA上clone项目时发现,项目地址如下: git@0096ce63c43f:root/jump.git 或者这样 ...

  5. P5057 [CQOI2006]简单题 前缀异或差分/树状数组

    好思路,好思路... 思路:前缀异或差分 提交:1次 题解:区间修改,单点查询,树状数组,如思路$qwq$ #include<cstdio> #include<iostream> ...

  6. 洛谷 P5174 圆点

    题面 感觉被侮辱智商了,这水题NM省选NOI-.... 直接枚举一维,另一维单调不增,然后直接算答案就可以了.... gan #include<bits/stdc++.h> #define ...

  7. Git 提交代码和更新代码

    首先,操作之前一定要看清分支!! 其次,提交代码之前一定要先更新代码!! git branch        -----查看当前分支 git pull             -----更新代码到本地 ...

  8. NetCore2.0无法下载apk文件 IIS设置

    把apk 文件放到网站的wwwroot目录 1.IIS设置MIME类型添加.apk, MIME类型:application/vnd.android.package-archive 2.然后StarUp ...

  9. ie8中如何使用base64

    由于ie8中不能使用jQuery2.0以上版本所以无法使用 window.btoa()加密 window.atob()解密 所以只能使用最原生的base64加密方法如下: /** * Created ...

  10. 【java设计模式】-07适配器模式

    适配器模式 定义: 将一个类的接口转换成客户希望的另外一个接口.适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作. 类型: 结构型模式 应用实例: 1.JAVA JDK 1.1 提供 ...