多任务学习概述

news2025/1/16 14:55:49

文章目录

  • 前言
  • 1 文章信息
  • 2 背景、目的、结论
    • 2.1 背景
      • 2.1.1 多任务的类型分类
        • 2.1.1.1 相关任务的分类
        • 2.1.1.2 将输入变输出的逆多任务学习
        • 2.1.1.3 对抗性多任务学习
        • 2.1.1.4 辅助任务提供注意力特征的多任务学习
        • 2.1.1.5 附加预测性辅助任务的多任务学习
  • 3 内容与讨论
    • 3.1 多任务学习算法
      • 3.1.1 多任务学习的定义
      • 3.1.2 多任务算法的分类
      • 3.1.3 基于任务层面的学习方法
        • 3.1.3.1 模型参数共享
        • 3.1.3.2 公共特征共享
  • 二、使用步骤
    • 1.引入库
    • 2.读入数据
  • 总结


前言

单一任务独立学习存在的问题:

  • 单一任务独立学习随着任务复杂程度和数据规模的增加,对人工标注数据的数量和质量也提出了更高的要求,造成了标注成本和难度的增大。
  • 单一任务的独立学习往往忽略了来自其它任务的经验信息,致使训练冗余重复和学习资源的浪费,也限制了其性能的提升。

迁移学习(Transfer)含义

  • 把为任务A开发的模型作为初始点,重新使用在为任务B开发模型的过程中。例如我们可能会发现学习识别苹果可能有助于识别梨,或者学习弹奏电子琴可能有助于学习钢琴。

多任务学习的优点

  • 多任务学习假设不同任务数据分布之间存在一定的相似性,在此基础上通过共同训练和优化建立任务之间的联系,这种训练模式充分促进任务之间的信息交换并达到了相互学习的目的。

基于单任务学习存在的问题以及多任务学习的优势,本文通过论文 张钰,刘建伟,左信.多任务学习[J].计算机学报,2020,43(07):1340-1378.来对多任务学习做一个整体的把握。

1 文章信息

作者:张 钰
单位:中国石油大学(北京)自动化系
期刊:计算机学报(CHINESE JOURNAL OF COMPUTERS)
题目:多任务学习

2 背景、目的、结论

2.1 背景

多任务学习的概念
1994年,Caruana提出了多任务学习的概念:多务学习是一种归纳迁移机制,基本目标是提高泛化性能.多任务学习通过同时训练多个相关任务,学习到任务之间的一些共享表示,并进一步地挖掘训练信号中的特定域信息来提高每个任务泛化能力.
多任务学习的应用:数据挖掘、计算机视觉、语音识别、生物医疗、社交网络。
多任务学习VS单任务学习

  • 单VS多1:虽然任务数据采集的来源和分布是相似的,即可能存在共同的归纳偏置,但是由于学习的目的不完全相同,不能简单地将它们合并为一个任务,此时可以将它们看作是由多个相关的任务组成,选择多个任务联合学习,从而获得一些潜在信息以提高各自任务的学习效果.
  • 单VS多2:多任中的其它任务可以为相关的特征提供额外的参考信息,可以有效降低单个任务过拟合和泛化能力差的风险。

其它迁移学习VS多任务学习:其它迁移学习方法侧重于归纳转移,多任务学习侧重于共享。

2.1.1 多任务的类型分类

2.1.1.1 相关任务的分类

多任务学习包括但不限于联合学习(joint learning)自主学习(learning to learn)带有辅助任务的学习(learning with auxiliary task)

联合学习:联合学习又称为对称多任务学习,其认为模型是对称的,不区分主任务和辅助任务,将几个类似的学习任务同时进行训练,通过任务之间的特征信息迁移共同地提升所有任务的学习效率。

自主学习:自主学习又称为非对称多任务学习,利用源任务的信息来改进某些目标任务的学习性能,通常在源任务被学习后使用,和迁移学习不同的是,自主学习仍是建立在共同学习基础上,并不强调源域和目标域分布的差异性,如果分布相似性条件不成立,使用非对称多任务学习是不合理的,只能考虑迁移学习。

带有辅助任务的学习:针对辅助任务的用处不同,又可以将多任务学习划分为输入变输出逆多任务学习对抗性多任务学习辅助任务提供注意力特征的多任务学习附加预测性辅助任务的多任务学习

2.1.1.2 将输入变输出的逆多任务学习

无监督学习:在无监督学习中并没有监督信号,将特征同时作为输入和输出,利用不同的无监督样例的特征信息为彼此提供监督信号,此时允许测试样例的特征作为输入,将其它样例上的特征作为输出,进而达到不同的学习效果,最大地发挥这些特征的作用。

辅助任务:在有监督的多任务学习中如果存在比作为输入更有价值的特征时,可以使用其它任务上的样例的特征作为监督信号,学习目标任务训练集上其它的输入特征到这部分特征的映射关系,学习映射关系的过程可以作为辅助任务.

2.1.1.3 对抗性多任务学习

  • 具有两个任务的对抗性网络如下图所示,其由主要任务输出子网络次要任务输出子网络以及主次任务共同的输入网络构成。其中两个子网络是独立的,输入层提取任务间共享表示.

  • 次要任务在反向传播过程中经过一个反转层将梯度方向反转,弱化了对抗任务的分类精度,目的是学习次要任务的对抗表示,所以对主任务有损害且无关的域依赖信息将从表示中清除。

  • 通过共同学习一个辅助任务域和主要任务域的不变表示,对抗性任务可以发现目标任务最本质的特征,训练完成后将对
    抗性任务的输出子网删除,最终经过对抗学习过程之后,主任务学习的是去除无关信息的特征表示,鲁棒性增加,进而学习效果得到提升。
    在这里插入图片描述

2.1.1.4 辅助任务提供注意力特征的多任务学习

  • 这里的辅助任务可以称为提示性任务,是一种为监督学习增加信息的方式。
  • 在单任务学习过程中,一些显著特征对学习结果的影响较大,一些不常用特征往往被忽略,但是这类特征对于任务的某些功能是必要的,在一般的多任务学习中,这部分不常用的特征可以通过辅助任务单独引入,在共同学习过程中将其放大,平衡显著特征带来的学习不充分问题。
  • 此类在目标任务中需要单独放大的特征一般称为需要注意力集中的特征.

2.1.1.5 附加预测性辅助任务的多任务学习

在出现一些与主任务相关的未知特征时,可以将这些特征的学习作为辅助任务,在离线过程中收集,而在在线过程中为主任务提供额外的信息,帮助主任务学习更合理的归纳表示,这类辅助任务就称为预测性任务,这些额外的任务产生的未来特征测量值,可以应用于很多离线问题。

3 内容与讨论

3.1 多任务学习算法

3.1.1 多任务学习的定义

在这里插入图片描述
在这里插入图片描述

大多数现有MTL算法的一个关键假设是所有任务都通过某种结构相互关联,多任务中任务信息共享是通过特征的联系实现的。

3.1.2 多任务算法的分类

学习模式的不同:分为传统的结构化学习方法深度多任务学习方法

  1. 传统的结构化学习方法不利用抽象后的特征,最终以结构约束的形式体现任务联系,深度多任务学习方法会改变特征的表现形式。
  2. 深度多任务方法对各个任务的特征逐层进行建模,任务关系的表述是通过改变层与层之间的连接方式。

在这里插入图片描述

3.1.3 基于任务层面的学习方法

3.1.3.1 模型参数共享

在早期阶段,许多任务方法侧重于利用任务关系的先验信息,
多层前馈神经网在神经网络 ,Caruana提出,隐含层代表来自所有任务的共同特征,输出层中的每个神经元通常对应于一个任务的输出。
多任务支持向量机方法,假定存在一个通用的多任务模型,权衡每个任务到此通用模型的中心偏离度和模型参数平均值,使得总体损失函数达到最优。
W t = W 0 + V t W_t = W_0+V_t Wt=W0+Vt

  • W 0 W_0 :任务集隐含的共同模型
  • V t V_t t:表示各个任务和中心模型的距离

模型参数共享的出发点是建立在任务相似性比较大的基础上,假设任务相互关联,学习目标是获得一个中心模型来描述这些任务的公共特征集。所以可以看到大多数约束都是使得各个任务模型足够靠近这个模型均值,而现实情况中大部分多任务之间很难满足非常紧密的相关性,于是出现了只挑选一些主要特征的公共特征共享方法。

3.1.3.2 公共特征共享

在公共特征共享的方法中,假设各种任务共享相同的稀疏模式,表现在参数矩阵上就是一些特征行整体被诱导为零,作用是强制所有任务共享一组公共特征来建模任务之间的相关性.这类模型将联合损失定义为各任务损失和正则化项之和:

二、使用步骤

1.引入库

代码如下(示例):

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import warnings
warnings.filterwarnings('ignore')
import  ssl
ssl._create_default_https_context = ssl._create_unverified_context

2.读入数据

代码如下(示例):

data = pd.read_csv(
    'https://labfile.oss.aliyuncs.com/courses/1283/adult.data.csv')
print(data.head())

该处使用的url网络请求的数据。


总结

提示:这里对文章进行总结:

例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/378954.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

HTML+ CSS 笔记

CSS1. 外边距合并 margin2. 浮动和清除浮动3. CSS 属性书写顺序(重点)4. 页面布局分析5. 定位定位模式子绝父相:z-index定位的拓展6. 元素的显示与隐藏7. 精灵图 sprites8. 字体图标 iconfont9. 居中10. 文字溢出处理情况11.HTML5 和CSS3 新增标签12.品优购1. 项目规…

多数据库管理工具哪家强?ChatGPT点评,第一位并不是Navicat

SQL逐渐成为职场必备的编程语言,相信大家都不陌生。SQL是一种结构化查询语言,是用于数据库之间通信的编程语言。每个数据库都有着自己独特的访问规则,但大体上是遵循SQL标准。 因此,辗转于不同的数据库之间,开发者或D…

Codeforces Round #852 (Div. 2) D. Moscow Gorillas

传送门 题意: 给你两个长度为n的排列p,q,同时定义mex表示为在mex中,缺少的最小正整数:如 mex[1,3]2,mex[1,2,3]4。 问你有多少个l,r使mex([])mex([])。 思路 : 可以从mex1,2,3,4,..n…

Word 行中公式与文字对不齐的解决方案

Word 行中公式与文字对不齐的解决方案问题-公式与文字不对齐解决方案简述版(亲测)解决方案详细版(亲测)参考方案问题-公式与文字不对齐 由于复制或其它误操作,可能会出现Word一行中公式与文字并不对齐的问题,有的公式会偏上或偏下,如下图所示…

【Linux内核】内核编程概述

1.GNU GNU计划和自由软件基金会(FSF)是由Richard M.Stallman于1984年创办的,GNU是“GNU’s Not UNIX”的缩写。到20世纪90年代初,GNU项目已经开发出许多高质量的免费软件,其中包括emacs编辑系统、bash shell程序、gcc…

PIGOSS BSM 信创运维之国产数据库监控

随着信创的推进,为国产数据库厂商提供了发展沃土,国产厂商扮演者越来越重要的角色。国产数据库以达梦、人大金仓、南大通用、高斯数据库GaussDB、万里开源为代表,而新兴厂商则利用分布式进行换道超车,以PingCAP、巨杉数据库、星环…

JAVA对象

目录 1.组成 1.1.概述 1.2.对象头 1.3.实例数据 1.4.对齐填充字节 2.实例化流程 1.组成 1.1.概述 JAVA对象由三部分组成: 对象头实例数据对齐填充字节1.2.对象头 对象头里面包含3部分主要内容: markwordklass数组长度(只有数组对象…

StreamYOLO 代码阅读记录

目录 一、安装配置环境 二、运行 train.py文件遇到的问题 问题一 问题二 问题三 问题四 问题五 问题六 问题七 问题八 二、debug记录 1、 args 2、optimizer 3、ckpt 4、self.seq_dirs 5、self._classes 6、im_ann 7、annotations 8、obj 9、self.train_loade…

Qt——拖拽

Qt的拖拽可以按字面意思分为拖和拽两部分。一般来说我们常见的拖拽分别由两个程序合作完成。例如我们经常把桌面的文件拖拽进其他目录: ​ 编辑拖拽方可以发起多个拖拽类型(复制、链接、移动等),接收方可以选择接受其中某个类型或…

《分布式技术原理与算法解析》学习笔记Day25

负载均衡 负载均衡是分布式可靠性中非常关键的一个问题,它在一定程度上反映了分布式系统对业务处理的能力。 什么是负载均衡? 负载均衡可以分为两种: 请求负载均衡,即将用户的请求均衡的分发到不同的服务器进行处理。数据负载…

扬帆优配|弹性增强 双向波动明显 人民币汇率走势将回归基本面

离岸人民币对美元汇率走势图 美联储加息预期起波澜,人民币汇率再临“7”关口。 到2月27日16时30分,在岸人民币对美元汇率收盘报6.9645;离岸人民币对美元汇率盘中最低触及6.9896,险些失守6.99关口。 人民币汇率走贬的一起&#x…

Odoo | Webserivce | 5分钟学会【JSONRPC】接口开发 - 换USERID(进阶)

文章目录JSONRPC - 换取USERID简述换取USERID1. 代码示例2. 换取结果JSONRPC - 换取USERID 简述 从Odoo JSONRPC 接口入门篇,可以发现我们直接传入了USERID,这只是为了方便快速测试。 其实按照常规流程,应该通过【用户名USERNAME】和【用户…

【LeetCode】No.237. 删除链表中的节点 – Java Version

题目链接:https://leetcode.cn/problems/delete-node-in-a-linked-list/ 1. 题目介绍(237. 删除链表中的节点) 有一个单链表的 head,我们想删除它其中的一个节点 node。 给你一个需要删除的节点 node 。你将 无法访问 第一个节点…

consul注册中心服务All service checks failing及解决

文章目录consul注册中心服务All service checks failing问题一:能注册,有报错,中间件不可用问题二:能注册,没报错,通不过检查问题三:同一个服务,注册了很多次consul注册中心服务All …

springBoot内容响应和内容协商原理

spring提供了15种默认返回值处理器: 一、处理返回值: this.returnValueHandlers.handleReturnValue(returnValue, getReturnValueType(returnValue), mavContainer, webRequest)二、获取对应的返回值处理器: private HandlerMethodReturnVa…

《第一行代码》 第九章:使用网络技术

一&#xff0c;WebView的用法 活动布局的代码&#xff1a; <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"android:layout_width"match_parent"android:layout_height"match_parent"><WebViewandroid:id&…

九龙证券|消费电子遇冷后转向动力储能赛道,但毛利率仍弱于同行

近年来&#xff0c;新能源的热度居高不下&#xff0c;顶着赛道光环&#xff0c;2月17日证监会发表信息显现&#xff0c;广州明美新能源股份有限公司&#xff08;简称明美新能&#xff09;首发上市取得通过。公司方案挂牌深交所创业板&#xff0c;并方案募资4.50亿元&#xff0c…

【RocketMQ】RocketMQ 5.0版本任意时刻延迟消息的实现原理浅析

文章目录意外发现设计方案时间轮定时消息存储具体实现流程图流程步骤意外发现 无意间从官方的最新的客户端代码中看到下面的Example&#xff1a; 感兴趣的可以看看这个介绍&#xff1a;https://rocketmq.apache.org/docs/featureBehavior/02delaymessage 生产者&#xff1a;…

【ES】Elasticsearch之数据类型

文章目录1、Mapping1.1 Mapping的作用1.2 Dynamic Mapping1.3 字段控制参数1.3.1 index1.3.2 Index Options1.3.3 null_value1.3.4 copy_to2、数据类型2.1 核心数据类型2.1.1 字符串类型2.1.2 数字类型2.1.3 日期类型2.1.3.1 date2.1.3.2 date_nanos2.1.4 布尔类型2.1.5 二进制…

java中使用protobuf总结

基本没怎么接触过java编程&#xff0c;别的团队发过来一个用java编写的存储pb的文件&#xff0c;让拆分和解析&#xff0c;硬着头皮做一下&#xff0c;在此将步骤做个记录&#xff1a;下载安装protobufhttps://github.com/protocolbuffers/protobuf/tags?afterv3.6.1.2编译pro…