2020-02-22 09:59:48

1、单任务学习VS多任务学习

单任务学习:一次只学习一个任务(task),大部分的机器学习任务都属于单任务学习。

多任务学习:把多个相关(related)的任务放在一起学习,同时学习多个任务。

多任务学习(multitask learning)产生的原因?

获取最新消息链接:获取最新消息快速通道 - lqfarmer的博客 - 博客频道 - CSDN.NET

现在大多数机器学习任务都是单任务学习。对于复杂的问题,也可以分解为简单且相互独立的子问题来单独解决,然后再合并结果,得到最初复杂问题的结果。这样做看似合理,其实是不正确的,因为现实世界中很多问题不能分解为一个一个独立的子问题,即使可以分解,各个子问题之间也是相互关联的,通过一些共享因素或共享表示(share representation)联系在一起。把现实问题当做一个个独立的单任务处理,忽略了问题之间所富含的丰富的关联信息。多任务学习就是为了解决这个问题而诞生的。把多个相关(related)的任务(task)放在一起学习。这样做真的有效吗?答案是肯定的。多个任务之间共享一些因素,它们可以在学习过程中,共享它们所学到的信息,这是单任务学习所具备的。相关联的多任务学习比单任务学习能去的更好的泛化(generalization)效果。

单任务与多任务对比如图1所示:

图1 单任务学习与多任务学习对比

从图1中可以发现,单任务学习时,各个任务之间的模型空间(Trained Model)是相互独立的(图1上)。多任务学习时,多个任务之间的模型空间(Trained Model)是共享的(图1下)。

假设用含一个隐含层的神经网络来表示学习一个任务,单任务学习和多任务学习可以表示成如图2所示。

图2 基于单层神经网络的单任务和多任务学习对比

从图二可以发现,单任务学习时,各个task任务的学习是相互独立的,多任务学习时,多个任务之间的浅层表示共享(shared representation)。

获取最新消息链接:获取最新消息快速通道 - lqfarmer的博客 - 博客频道 - CSDN.NET

2、多任务学习的定义

多任务学习(Multitask learning)定义:基于共享表示(shared representation),把多个相关的任务放在一起学习的一种机器学习方法。

多任务学习(Multitask Learning)是一种推导迁移学习方法,主任务(main tasks)使用相关任务(related tasks)的训练信号(training signal)所拥有的领域相关信息(domain-specific information),做为一直推导偏差(inductive bias)来提升主任务(main tasks)泛化效果(generalization performance)的一种机器学习方法。多任务学习涉及多个相关的任务同时并行学习,梯度同时反向传播,多个任务通过底层的共享表示(shared representation)来互相帮助学习,提升泛化效果。简单来说:多任务学习把多个相关的任务放在一起学习(注意,一定要是相关的任务,后面会给出相关任务(related tasks)的定义,以及他们共享了那些信息),学习过程(training)中通过一个在浅层的共享(shared representation)表示来互相分享、互相补充学习到的领域相关的信息(domain information),互相促进学习,提升泛化的效果。

共享表示shared representation:

共享表示的目的是为了提高泛化(improving generalization),图2中给出了多任务学习最简单的共享方式,多个任务在浅层共享参数。MTL中共享表示有两种方式:

(1)、基于参数的共享(Parameter based):比如基于神经网络的MTL,高斯处理过程。

(2)、基于约束的共享(regularization based):比如均值,联合特征(Joint feature)学习(创建一个常见的特征集合)。

3、多任务学习有效的原因

为什么把多个相关的任务放在一起学习,可以提高学习的效果?关于这个问题,有很多解释。这里列出其中一部分,以图2中由单隐含层神经网络表示的单任务和多任务学习对比为例。

(1)、多人相关任务放在一起学习,有相关的部分,但也有不相关的部分。当学习一个任务(Main task)时,与该任务不相关的部分,在学习过程中相当于是噪声,因此,引入噪声可以提高学习的泛化(generalization)效果。

(2)、单任务学习时,梯度的反向传播倾向于陷入局部极小值。多任务学习中不同任务的局部极小值处于不同的位置,通过相互作用,可以帮助隐含层逃离局部极小值。

(3)、添加的任务可以改变权值更新的动态特性,可能使网络更适合多任务学习。比如,多任务并行学习,提升了浅层共享层(shared representation)的学习速率,可能,较大的学习速率提升了学习效果。

(4)、多个任务在浅层共享表示,可能削弱了网络的能力,降低网络过拟合,提升了泛化效果。

还有很多潜在的解释,为什么多任务并行学习可以提升学习效果(performance)。多任务学习有效,是因为它是建立在多个相关的,具有共享表示(shared representation)的任务基础之上的,因此,需要定义一下,什么样的任务之间是相关的。

4、相关(relate)定义

相关(related)的具体定义很难,但我们可以知道的是,在多任务学习中,related tasks可以提升main task的学习效果,基于这点得到相关的定义:

Related(Main Task,Related tasks,LearningAlg)= 1

LearningAlg(Main Task||Related tasks)> LearningAlg(Main Task) (1)

LearningAlg表示多任务学习采用的算法,公式(1):第一个公式表示,把Related tasks与main tasks放在一起学习,效果更好;第二个公式表示,基于related tasks,采用LearningAlg算法的多任务学习Main task,要比单学习main task的条件概率概率更大。特别注意,相同的学习任务,基于不同学习算法,得到相关的结果不一样:

Related(Main Task,Related tasks,LearningAlg1)不等于 Related(Main Task,Related tasks,LearningAlg2)

5、多任务学习中的相关关系(task relationship)

多任务学习并行学习时,有5个相关因素可以帮助提升多任务学习的效果。

(1)、数据放大(data amplification)。相关任务在学习过程中产生的额外有用的信息可以有效方法数据/样本(data)的大小/效果。主要有三种数据放大类型:统计数据放大(statistical data amplification)、采样数据放大(sampling data amplification),块数据放大(blocking data amplification)。

(2)、Eavesdropping(窃听)。假设

(3)、属性选择(attribute selection)

(4)、表示偏移(representation bias)

(5)、预防过拟合(overfitting prevention)

所有这些关系(relationships)都可以帮助提升学习效果(improve learning performance),关系具体定义可以参考文献[1]

6、Multitask Learning方法

浅层隐含层节点共享神经网络是最简单MTL,如图2所示。还有基于特征(feature table)共享MTL。

基于特征的共享MTL(联合特征学习,Joint feature learning),通过创建一个常见的特征集合来实现多个任务之间基于特征(features)的shared representation,其共享表示如图3所示。

图3 基于特征的共享表示示意图

基于特征共享的MTL输入输出关系如图4所示,其中采用L1正则来保证稀疏性。

图4 基于joint feature的MTL示意图

如图4,等号左边nxp的输入矩阵,乘上一个由k个任务构成的pxk的共享特征矩阵,加上一个nxk的噪声矩阵(不相关部分),就得到了左边的输出矩阵。

其他多任务学习方法还有均值约束 MTL:基于均值来约束所有的task,参数共享的高斯处理MTL,低秩约束MTL,交替结构优化MTL等等。

获取最新消息链接:获取最新消息快速通道 - lqfarmer的博客 - 博客频道 - CSDN.NET

7、多任务学习与其他学习算法之间的关系

多任务学习(Multitask learning)是迁移学习算法的一种,迁移学习之前介绍过。定义一个一个源领域source domain和一个目标领域(target domain),在source domain学习,并把学习到的知识迁移到target domain,提升target domain的学习效果(performance)。

多标签学习(Multilabel learning)是多任务学习中的一种,建模多个label之间的相关性,同时对多个label进行建模,多个类别之间共享相同的数据/特征。

多类别学习(Multiclass learning)是多标签学习任务中的一种,对多个相互独立的类别(classes)进行建模。这几个学习之间的关系如图5所示:

图5 多任务学习与其他机器学习方法之间的关系

8、多任务学习应用概述

基于神经网络的多任务学习,尤其是基于深度神经网络的多任务学习(DL based Multitask Learning),适用于解决很多NLP领域的问题,比如把词性标注、句子句法成分划分、命名实体识别、语义角色标注等任务,都可以采用MTL任务来解决。

其他MTL的应用还有,网页图片和语音搜索[Zhou et. al. KDD’11],疾病预测[Zhang et. al. NeuroImage 12]等等

参考文献:

[1] Caruana, R. (1997). Multitask Learning. Machine Learning, 28(1), 41–75. doi: 10.1023/A:1007379606734

[2] Collobert, R., & Weston, J. (2008). A unified architecture for natural language processing: Deep neural networks with multitask learning.Presented at the Proceedings of the 25th international conference ….

[3] Lounici, K., Pontil, M., Tsybakov, A. B., & van de Geer, S. (2009, March 8). Taking Advantage of Sparsity in Multi-Task Learning. arXiv.org.

[4] Zhang, Y., & Yeung, D.-Y. (2012, March 15). A Convex Formulation for Learning Task Relationships in Multi-Task Learning. arXiv.org.

[5] Zhou, J., Chen, J., & Ye, J. (2012) Multi-Task Learning , Theory, Algorithms, and Applications, SDM

文章转自:https://zhuanlan.zhihu.com/p/27421983

多任务学习-Multitask Learning概述相关推荐

  1. 多任务学习 (Multitask Learning) 汇总

    1 前言 多任务学习(Multi-task learning)是和单任务学习(single-task learning)相对的一种机器学习方法.在机器学习领域,标准的算法理论是一次学习一个任务,也就是 ...

  2. 深度学习核心技术精讲100篇(八)-keras 实战系列之深度学习中的多任务学习(Multi-task learning)

    多任务学习(Multi-task learning)简介 多任务学习(Multi-task learning)是迁移学习(Transfer Learning)的一种,而迁移学习指的是将从源领域的知识( ...

  3. 如何融合多任务学习 (Multi-Task Learning ) 损失函数loss

    目录 1 Uncertainty Weighting 1.1 基础概念 1.2 方法 2 GradNorm 2.1 原理 2.2 方法 3 Multi-Objective Optimisation 3 ...

  4. 经验 | 训练多任务学习(Multi-task Learning)方法总结

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 转载于:知乎Anticoder https://zhuanlan. ...

  5. 多任务学习(Multi-task Learning)方法总结

    多任务学习(multi task learning)简称为MTL.简单来说有多个目标函数loss同时学习的就算多任务学习.多任务既可以每个任务都搞一个模型来学,也可以一个模型多任务学习来一次全搞定的. ...

  6. 迁移学习(Transfer Learning)概述及代码实现(full version)

    基于PaddlePaddle的李宏毅机器学习--迁移学习 大噶好,我是黄波波.希望能和大家共进步,错误之处恳请指出! 百度AI Studio个人主页, 我在AI Studio上获得白银等级,点亮2个徽 ...

  7. 迁移学习(Transfer Learning)概述及代码实现

    基于PaddlePaddle的李宏毅机器学习--迁移学习 大噶好,我是黄波波,希望能和大家共进步,错误之处恳请指出! 百度AI Studio个人主页, 我在AI Studio上获得白银等级,点亮2个徽 ...

  8. 深度学习-多任务学习总结

    深度学习中多任务学习的方法和问题总结 为什么要做多任务学习 多任务学习的实现方法 介绍下ESSM 介绍下PLE 为什么要做多任务学习 多任务算法的应用场景还是很广泛的,只要是推荐技术涉及的业务,比如搜 ...

  9. 多任务学习(Multi-task)keras实现

    多目标任务存在很多场景中,如多目标检测,推荐系统中的多任务学习. 多任务学习(Multi-task learning)简介 多任务学习背景:只专注于单个模型可能会忽略一些相关任务中可能提升目标任务的潜 ...

  10. 深度学习中的多任务学习(一)

    任务学习-Multitask Learning概述 Reference https://blog.csdn.net/u010417185/article/details/83065506 1.单任务学 ...

最新文章

  1. (转载)连连看游戏外挂详细制作过程
  2. java--杨辉三角
  3. 左神算法:可见的山峰对数量(有重复值的情况)(Java版)
  4. 全程图解交换机和路由器的应用
  5. csp-c模拟测试「set·read·」
  6. leetcode力扣12. 整数转罗马数字
  7. 一款基于jquery和css3实现的摩天轮式分享按钮
  8. if条件判断C语言,if条件判断语句,谁能帮我分析一下?
  9. JavaScript 如何工作:渲染引擎和性能优化技巧
  10. springboot项目自定义注解实现的多数据源切换--亲测有效
  11. python字典常见操作
  12. 手机版云盘怎么打开连接服务器,手把手教你简易NAS构建,手机/平板/智能电视随意调取,家庭存储云共享,有了自己的网络云盘后再也不用担心容量不够了!...
  13. QT Creator 应用程序*.exe文件打包发布详细教程【绿色便携形式 和 安装包形式】
  14. Petya and Countryside
  15. 怎样导出ZBrush中的模型和贴图
  16. 英语国际音标之元音发音技巧
  17. 【ML】关于什么是概率图模型?
  18. HCIA——TCP及其三次握手,问题
  19. 公司担心 DDoS 攻击对客户的挫败感和品牌损害
  20. xxljob 配置具体定时任务_快速使用分布式定时任务 xxl-job

热门文章

  1. project甘特图导出图片_Project2013教程-常见视图-甘特图
  2. 如何在vue3.0项目中集成Element-plus
  3. python语言实例-Python代码样例列表
  4. [供应链·案例篇]疫情影响下的全球十大零售商都做了些什么
  5. ENVI 工具箱汉翻译汉化
  6. 十六进制换算成二进制、八进制、十进制
  7. VTK系列57_VTK对几何体网格细化(多分辨率处理)
  8. E-mail计算机实验报告,邮件发送实验报告
  9. HTML5期末大作业:仿华为手机商城网站设计——仿华为手机电子商城 (1页) HTML+CSS+JavaScript html网页制作期末大作业成品_网页设计期末作业
  10. Honeyview 漫画阅读器 v5.30.zip 下载