Multi task learning多任务学习背景简介

简介: Multi task learning多任务学习背景简介

本篇文章将介绍在机器学习中效果比较好的一种模式,多任务学习(Multi task Learning,MTL)。已经有一篇机器之心翻译的很好的博文介绍多任务学习了: 共享相关任务表征,一文读懂深度神经网络多任务学习,写的非常详细,但是我在看的时候会觉得略有点晦涩。所以我准备写的这篇呢,想用大白话介绍一下多任务学习解决的问题是什么,具体是怎么做的,有哪些优势。并且这篇博文中不准备写相关paper的总结和简介。

接下来从以下几个方面介绍MTL:

定义及与其他机器学习任务的区别(单任务、multi label多标签、multi class多类别)
什么是相关任务
共享表示
优势
应用方向
1、定义及与其他机器学习任务的区别

1.1 单任务学习与多任务学习

Multi task learning多任务学习背景简介

既然要介绍多任务学习,那么就必须要提到与之对应的单任务学习。

我们平时接触最多的那些机器学习算法基本都是单任务学习,即专注于一个学习目标。

如上图所示,有4个独立的神经网络,每个网络针对同样的输入只有一个输出函数(优化目标),这四个网络之间没有任何连接,所以每个网络之间的表示层是独立的,彼此训练的隐层对其他网络的训练没有任何影响,这种方式就叫做单任务学习(Single Task Learning,STL)

而多任务学习,顾名思义,学习目标有多个。如上图所示,把四个任务放在一起进行学习,他们共享了同一个模型空间,或者换句话说,他们用了共享表示层(shared representation)。在训练过程中,四个任务全都会对这个共享模型造成影响。

1.2 multi task多任务&multi label多标签 & multi class多类别

这三个名词里都带有multi,于是很多人会把他们搞混。下面解释一下这三种之间的区别。

multi class:多分类问题,可选类别有多个但是结果只能分到一类中,比如一个人他是孩子、少年、中年人还是老人。

multi label:打多个标签,或者说进行多种分类,还是拿人举例啊,一个人,他可以被打上标签{青年,男性,画家}这些标签。如果还有一个人他也是青年男性,但不是画家,那就只能打上标签{青年,男性}。

它和多任务学习不一样,它的目标不是学习出一个共同的表示,而是多标签。

multi task:训练模型的时候目标是多个相关目标共享一个表征,比如人的特征学习,一个人,既可以从年轻人和老人这方面分类,也可以从男人女人这方面分类,这两个目标联合起来学习人的特征模型,可以学习出来一个共同特征,适用于这两种分类结果,这就是多任务学习。

2、 什么是相关任务

multi task同时学习多个相关任务,并且具有相当的优势。同时,我们在做多任务学习时,有时关注的点在某个主要任务上,其他的共同学习的任务可能更多的只是起到帮助作用,这些起到帮助作用的任务叫做辅助任务。辅助任务与主任务越相关,那么起到的效果可能会越好。

那么什么是相关任务?比较大白话的解释有:

(1)如果两个任务是处理输入的相同函数,但是在任务信号中加入独立的噪声,很明显这两个任务是相关的。

(2)如果两个任务用于预测同个个体的属性的不同方面,这些任务比预测不同个体的属性的不同方面更相关。

(3)两个任务共同训练时能够相互帮助并不意味着它们是相关的:有时通过在后向传播网络的一个额外输出加入噪声可以提高泛化能力,但是这个噪声任务与其它任务不相关

那么比较学术严谨一些的定义有:

(1)使用相同的特征做判断的任务

(2)共享相同的最优假设空间,即拥有相同的归纳偏置(having the same inductive bias)

(3)F-相关(F-related): 两个任务的数据可以从一组分布变换 F 得到的固定概率分布生成

(4)任务的分类边界接近,也就是参数向量(parameter vectors)接近

任务是否相似不是非0即1的。越相似的任务,收益越大。但即使相关性不佳的任务也会有所收益。不过任务之间的相似性对我们在选择辅助任务上还是有绝对的帮助的。

  1. 共享表示 (shared representation)

共享表示的目的是为了提高泛化(improving generalization),一般来说有两种

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

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

神经网络中MTL的共享表示有两种方式

3.1 hard参数共享

它是神经网络MTL中最常见的一种方式,即在所有任务之间共享隐藏层,同时保留几个特定任务的输出层。这种方式很大程度上降低了过拟合的风险,因为同时学习的工作越多,模型找到一个含有所有任务的表征就越困难,而过拟合某特定原始任务的可能性就越小。

Multi task learning多任务学习背景简介

3.2 soft参数共享

每个任务有自己的参数和模型,最后通过对不同任务的参数之间的差异加约束,表达相似性。比如可以使用L2进行正则, 迹范数(trace norm)等。

Multi task learning多任务学习背景简介

4、优势

为什么多个相关的任务放在一起学习就可以提升学习效果?关于这个问题,有很多解释。这里列出其中一部分。

(1)、多个任务一起学习时,有相关部分也有不那么相关的地方,在学习一个任务时,与它不相关的部分就相当于是加入一些噪声,而加入噪声可以提升模型的泛化能力。

(2)、单任务学习时容易陷入局部最优,而多任务学习中不同任务的局部最优解处于不同的位置,通过相互作用,可以逃离局部最优。

(3)、增加任务会影响网络参数的更新,比如增加额外的任务增加了隐层的有效的学习率,具体取决于每个任务输出的错误反馈权重。可能较大的学习速率提升了学习效果

(4)某些特征可能在主任务不好学习(比如以很复杂的方式与特征进行交互,或被其他因素抑制),但在辅助任务上这个特征好学习到。可以通过辅助任务来学习这些特征,方法比如hints(预测重要特征)

(5)通过学习足够大的假设空间,在未来某些新任务中可以有较好的表现(解决冷启动),前提是这些任务都是同源的。

(6)多个任务在浅层共享表示,引入归纳偏置作为正则化项。因此,它降低了过拟合的风险以及模型的 Rademacher 复杂度(即适合随机噪声的能力)

5、应用场景

多任务学习在传统机器学习和深度学习方向都有很多应用,这里就不一一举例了。

深度学习网络是具有多个隐层的神经网络,在深度学习网络中应用多任务学习是一种很自然的想法。机器视觉领域有广泛的多任务学习应用,主要方式包括:

1)多个任务并行输出,同时做分类和回归或使用不同的损失函数;

2)多个任务像流水线一样,辅助任务附加在主任务后面等。

参考博文:

https://mp.weixin.qq.com/s?__biz=MzA3MzI4MjgzMw==&mid=2650728311&idx=1&sn=62b2dcc82657d1ce3bf91fd6a1197699&chksm=871b2309b06caa1fa314e3807d84cdb32eb34419341ba26e037dabe90909ca4a9f480b6eeac2&scene=21&token=630103414&lang=zh_CN#wechat_redirect

https://blog.csdn.net/zaf0516/article/details/90380732

https://blog.csdn.net/lqfarmer/article/details/73322878

https://blog.csdn.net/laolu1573/article/details/78205180#2

相关文章
|
7月前
|
自然语言处理 算法 前端开发
Multi-Agent实践第5期:RAG智能体的应用:让AgentScope介绍一下自己吧
本期文章,我们将向大家展示如何使用AgentScope中构建和使用具有RAG功能的智能体,创造AgentScope助手群,为大家解答和AgentScope相关的问题。
|
1月前
|
弹性计算 自然语言处理 安全
掌握 In-Context Learning (ICL):构建高效 Prompt 的技巧与调优策略
ICL(In-Context Learning)是一种在大型语言模型中使用的技术,通过提供示例让模型在上下文中理解任务并生成正确输出。核心步骤包括定义任务、选择和格式化示例、编写任务指示,并通过调优和修复错误提高模型性能。欢迎体验阿里云百炼大模型及相关服务产品。
55 1
|
2月前
|
传感器 人工智能 机器人
Multi-Agent应用领域及项目示例
多智能体系统(MAS)通过多个自主、交互式的智能体协同工作,能够更高效地解决复杂问题,提高系统的灵活性和鲁棒性。本文详细介绍了MAS的概念、特点及其在人工智能与机器人技术、经济与商业、交通管理、医疗健康和环境保护等领域的具体应用示例。
111 0
|
7月前
|
数据采集 人工智能 文字识别
【AAAI 2024】MuLTI:高效视频与语言理解
多模态理解模型具有广泛的应用,比如多标签分类、视频问答(videoQA)和文本视频检索等。现有的方法已经在视频和语言理解方面取得了重大进展,然而,他们仍然面临两个巨大的挑战:无法充分的利用现有的特征;训练时巨大的GPU内存消耗。我们提出了MuLTI,这是一种高度准确高效的视频和语言理解模型,可以实现高效有效的特征融合和对下游任务的快速适应。本文详细介绍基于MuLTI实现高效视频与语言理解。
|
7月前
|
JSON 前端开发 决策智能
Multi-Agent实践第6期:面向智能体编程:狼人杀在AgentScope
本期文章,我们会介绍一下AgentScope的一个设计哲学(Agent-oriented programming)
|
7月前
|
小程序 API 决策智能
Multi-Agent实践第1期:5分钟上手AgentScope
阿里云与魔搭社区联合举办Create@AI创客松,邀请开发者探索基于多智能体的人机协作模式。活动提供资源支持和专家指导,获胜者可获得近5万元现金奖励及6亿次千问调用额度。参赛者需准备大模型API,如DashScope或OpenAI,使用AgentScope开源框架开发多智能体应用。立即报名参加:[报名链接](https//startup.aliyun.com/special/aihackathon4)。
|
7月前
|
人工智能
极智AI | 讲解TensorRT Fully Connected算子
大家好,我是极智视界,本文讲解一下 TensorRT Fully Connected 算子。
119 0
|
机器学习/深度学习 算法 搜索推荐
动手学强化学习(一):多臂老虎机 Multi-armed Bandit
 强化学习关注智能体和环境交互过程中的学习,这是一种试错型学习(trial-and-error learning)范式。在正式学习强化学习之前,我们需要先了解多臂老虎机问题,它可以被看作简化版的强化学习问题。与强化学习不同,多臂老虎机不存在状态信息,只有动作和奖励,算是最简单的“和环境交互中的学习”的一种形式。多臂老虎机中的探索与利用(exploration vs. exploitation)问题一直以来都是一个特别经典的问题,理解它能够帮助我们学习强化学习。
964 1
|
机器学习/深度学习 PyTorch 算法框架/工具
【多任务学习】Multi-Task Learning Using Uncertainty to Weigh Losses for Scene Geometry and Semantics
【多任务学习】Multi-Task Learning Using Uncertainty to Weigh Losses for Scene Geometry and Semantics
923 0
【多任务学习】Multi-Task Learning Using Uncertainty to Weigh Losses for Scene Geometry and Semantics

热门文章

最新文章