多任务学习概述

news/2024/4/19 22:02:39/文章来源:https://blog.csdn.net/qq_40940944/article/details/129140853

文章目录

  • 前言
  • 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提出,隐含层代表来自所有任务的共同特征,输出层中的每个神经元通常对应于一个任务的输出。
多任务支持向量机方法,假定存在一个通用的多任务模型,权衡每个任务到此通用模型的中心偏离度和模型参数平均值,使得总体损失函数达到最优。
Wt=W0+VtW_t = W_0+V_tWt=W0+Vt

  • W0W_0:任务集隐含的共同模型
  • VtV_tt:表示各个任务和中心模型的距离

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

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.luyixian.cn/news_show_75343.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大数据技术之Hadoop

第1章 Hadoop概述1.1 Hadoop是什么1.2 Hadoop发展历史(了解)1.3 Hadoop三大发行版本(了解)Hadoop三大发行版本:Apache、Cloudera、Hortonworks。Apache版本最原始(最基础)的版本,对于…

【unity】开发rts 3 出生点,创建建筑物

一 出生点、阵营类型、阵营 实例栏-GameManage,默认有一个插槽 size 插槽数量 role 权限,host是主人,权限高 type 阵营类型,不选不限制,选的效果没看懂,文档原文: The Type field in Data al…

Cookie、Session、JWT 那些事

文章目录前言一、概念1、Cookie:2、Session:3、JWT二、应用1. 基本使用2. 实现 “退出” 功能总结前言 目前 C/S 模式盛行,HTTP 是其中最常见的通信协议,我们知道 HTTP 协议是无状态的,但是这场景完全不够用。 比如&…

Python|每日一练|算法初阶|字符串|树|深度优先搜索|单选记录:循环随机取数组直到得出指定数字|有效数字|平衡二叉树

1、循环随机取数组直到得出指定数字?(算法初阶) 贡献者:weixin_30937093 举个例子: 随机数字范围:0~100 每组数字量:6(s1,s2,s3,s4,s5,s6) 第二轮开始随机数字范围&…

Linux 基础介绍-基础命令

文章目录01 学习目标02 Linux/Unix 操作系统简介2.1 Linux 操作系统的目标2.2 Linux 操作系统的作用2.3 Unix 家族历史2.4 Linux 家族历史2.5 Linux 和Unix 的联系2.6 Linux 内核介绍2.7 Linux 发行版本2.8 Unix/Linux 开发应用领域介绍03 Linux 目录结构3.1 Win 和Linux 文件系…

Mac iTerm2 rz sz

1、安装brew(找了很多🔗,就这个博主的好用) Mac如何安装brew?_行走的码农00的博客-CSDN博客_mac brew 2、安装lrzsz brew install lrzsz 检查是否安装成功 brew list 定位lrzsz的安装目录 brew list lrzsz 执…

git学习记录/菜鸟教程(基于Gitcode)

首先说明下为何使用Gitcode而不是hub或lab:只是因为国外的网站访问太慢了,而且还要翻译从初次使用开始说:首先安装Git,一路next就可以,安装好后打开,输入git version如果有显示版本号,说明安装成…

2020蓝桥杯真题跑步锻炼(填空题) C语言/C++

题目描述 本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。 小蓝每天都锻炼身体。 正常情况下,小蓝每天跑 1 千米。如果某天是周一或者月初(1 日),为了激励自己,小蓝…

Docker在Windows环境的搭建和使用

文章目录安装WSL安装Docker安装Docker镜像下载Docker镜像启动gpu启动传送文件训练yolov5安装WSL Windows10和11支持Docker的安装,安装需要用到WSL。所以,我们先安装WSL。 参考文章:旧版 WSL 的手动安装步骤 以管理员身份打开powershell, 执行…

软考信息系统监理师备考建议

用好备考方法,两三个月就可以过的。信息系统监理师备考最好以教材和历年真题为主,教学视频模拟题为辅。考试介绍与复习建议:考试设置的科目包括:(1)信息系统工程监理基础知识,考试时间150分钟&a…

Three.js初试——基础概念

一、Three.js 是什么 先附上文档: 官网:JavaScript 3D Library 中文文档:中文文档 Three.js 是一个让用户通过 javascript 入手进入搭建 WebGL 项目的类库。众所周知学习 WebGL 需要图形学知识,而 webgl 需要通过 js 和 glsl …

第八届蓝桥杯省赛——4承压计算(二维数组,嵌套循环)

题目:X星球的高科技实验室中整齐地堆放着某批珍贵金属原料。每块金属原料的外形、尺寸完全一致,但重量不同。金属材料被严格地堆放成金字塔形。7 5 8 7 8 8 9 2 7 2 8 1 4 9 1 8 1 8 8 4 1 7 9 6 1 4 5 4 5 6 5 5 6 9 5 6 5 5 4 7 9 3 5 5 1 7 5 7 9 7 4…

车辆热管理测试方案

车辆热管理是在能源危机出现、汽车排放法规日益严格以及人们对汽车舒适性要求更高的背景下应运而生的。将各个系统或部件如冷却系统、润滑系统和空调系统等集成一个有效的热管理系统;控制和优化车辆的热量传递过程,保证各关键部件和系统安全高效运行&…

社交媒体营销的5个好处

有些人认为,社交媒体营销不能直接与销售挂钩。这就是为什么在制定营销策略时,社交媒体营销会被部分人忽视的原因。然而,与其他广告渠道不同,社交媒体是双向渠道。忽视社交媒体营销将影响与客户的关系。最重要的是,它将…

回顾1-idea创建Java项目

创建Java项目 创建项目和模块的区别 环境前置 IDEA开发工具JDK及配置环境变量 创建项目/工程 新建项目 选择Java模块 > SDK( 已配置的JDK ) > 下一步 直接下一步 填写项目信息 QQ游戏工程 里的 叫项目 所以 QQgame目录下 可以放 > 斗地主项目 / 美女来找茬等… …

C while 循环for循环

C 循环 只要给定的条件为真,C 语言中的 while 循环语句会重复执行一个目标语句。 语法 C 语言中 while 循环的语法: while(condition) {statement(s); }在这里,statement(s) 可以是一个单独的语句,也可以是几个语句组成的代码块…

深度学习基础实例与总结

一、神经网络 1 深度学习 1 什么是深度学习? 简单来说,深度学习就是一种包括多个隐含层 (越多即为越深)的多层感知机。它通过组合低层特征,形成更为抽象的高层表示,用以描述被识别对象的高级属性类别或特征。 能自生成数据的中…

DNS服务器部署的详细操作(图文版)

DNS服务器的部署 打开虚拟机后查看已经开放的端口,可以看到没有TCP53、UDP53,说明DNS服务端口没有打开 打开我的电脑—双击CD驱动器— 选择安装可选的Windows组件 选择网络服务—域名系统(DNS)— 点击下一步后会弹出如下弹…

线程安全实例分析

一、变量的线程安全分析 成员变量和静态变量是否线程安全? ● 如果它们没有共享,则线程安全 ● 如果它们被共享了,根据它们的状态是否能够改变,又分两种情况 —— 如果只有读操作,则线程安全 —— 如果有读写操作&am…

实时手势识别(C++与python都可实现)

一、前提配置: Windows,visual studio 2019,opencv,python10,opencv-python,numpy,tensorflow,mediapipe,math 1.安装python环境 这里我个人使用的安装python10&#…