深度学习领域的多任务学习综述

2023-05-16

文章目录

  • 前言
  • 1. 什么是多任务学习?
  • 2. 为何要使用多任务学习?
  • 3. 多任务学习有哪些类型?
    • 3.1 基于硬参数共享的多任务学习
    • 3.2 基于软参数共享的多任务学习
  • 4. 为什么多任务学习能提升模型的性能?
    • 4.1 隐藏数据扩充(Implicit data augmentation)
    • 4.2 注意力聚焦 ( Attention focusing)
    • 4.3 窃听(Eavesdropping)
    • 4.4 表示偏差(Representation bias)
    • 4.5 正则化(Regularization)
  • 5 非神经模型的多任务学习
    • 5.1 块稀疏正则化
    • 5.2 学习任务关系
  • 6 深度学习领域的多任务学习有哪些方法?
    • 6.1 深度关系网络(Deep Relation Networks)
    • 6.2 全自适应特征共享(Fully-Adaptive Feature Sharing)
    • 6.3 十字绣网络(Cross-stitch Networks)
    • 6.4 低监督(Low supervision)
    • 6.5 多任务联合模型(A Joint Many-Task Model)
  • 6.6 不确定性权重损失(Weighting losses with uncertainty )
  • 6.7 MTL的张量因子分解(Tensor factorisation for MTL)
  • 6.8 水闸网络(Sluice Networks)
  • 总结


前言

本文通过对论文An Overview of Multi-Task Learning in Deep Neural Network的解读来对多任务学习做一个大概的了解,把握多任务学习的方向。

多任务学习的应用领域:自然语言处理、语音识别、计算机视觉、药物发现。


1. 什么是多任务学习?

含义:通过相关任务间的参数或权重的共享,模型的性能表现的更加优越,这便是多任务学习。
界定:同时优化多个损失函数便可界定为多任务学习。
目标:通过利用包含在相关任务的训练参数中特定领域的训练参数,多任务学习提高了模型的泛化能力。


2. 为何要使用多任务学习?

在生物学角度,多任务学习受到人类学习的启发——在认识新事物的时候,人会使用之前认识旧事物时所获得的旧知识。
在教与学角度,不断学习的简单技术能够为我们提供掌握复杂技术的必要技能。
机器学习角度,归纳转移。


3. 多任务学习有哪些类型?

:此处的多任务学习类型是指在深度学习领域下的多任务学习类型。

3.1 基于硬参数共享的多任务学习

在这里插入图片描述
在各个任务的共有隐藏层中共享权重参数,在各任务的隐藏层中独享参数,这大大降低了模型过拟合的风险;

3.2 基于软参数共享的多任务学习

在这里插入图片描述
每个任务都有自己的模型和自己的参数,通过正则化模型中部分隐藏层参数之间的距离来促进参数的相似性。


4. 为什么多任务学习能提升模型的性能?

:假设存在相似的任务A和B,A与B有相同的隐藏层F。

4.1 隐藏数据扩充(Implicit data augmentation)

多任务学习有效地增加了用于训练模型的样本数量。不同的任务有不同的偏差,一个同时学习两个任务的模型能够学习一个更一般的权重表示。只学习A任务,A任务存在过拟合的风险,而共同学习A任务和B任务可以使模型通过对偏差的平均获得更好的隐藏层F的权重表示。

4.2 注意力聚焦 ( Attention focusing)

若在一个任务中,其数据集中数据偏差较大或数据维度较高且数据量有限,那么单任务获得的一个模型可能很难区分相关的和不相关的特征。由于在多任务学习中其他任务能为原任务中的某些特征提供相关性大小的参考,所以在多任务学习中模型能够将其注意力集中在那些有用的特征上。

4.3 窃听(Eavesdropping)

有些特性G对于B任务很容易学习,而对于A任务则很难学习 (这可能是因为A以一种更复杂的方式与特征进行交互,或者是因为其他特征阻碍了模型学习G的能力)。通过多任务学习,A任务能够窃听到B任务学习到的特征G。

4.4 表示偏差(Representation bias)

多任务学习在训练的过程中偏向于选择其他任务也喜欢的权重参数,这将有助于模型泛化到新任务中,由于模型在来自同一个环境的多个任务中表现良好,那么其在来自相同环境的任务上也会表现良好。

4.5 正则化(Regularization)

多任务学习引入一个归纳偏置来作为一个正则化器。其降低了模型过拟合的风险以及模型的复杂性。

5 非神经模型的多任务学习

存在模型:线性模型、核方法和贝叶斯算法

通过范数正则化来加强任务间的稀疏性;以及建模任务之间的关系


5.1 块稀疏正则化

:假定存在T个任务,对于其中的每一个任务t,都有与其对应的模型 m t m_t mt和一个维度为d的权重参数向量 a t a_t at:
a t = [ a 1 , t . . . a d , t ] T a_t = \left[ \begin{matrix} a_{1,t}\\ . \\ . \\ . \\ a_{d,t} \end{matrix} \right] ^T at= a1,t...ad,t T

5.2 学习任务关系


6 深度学习领域的多任务学习有哪些方法?

6.1 深度关系网络(Deep Relation Networks)

在计算机视觉的MTL中,通常共享卷积层,学习特定任务的全连接层。通过对任务层设定先验,使模型学习任务间的关系。
在这里插入图片描述

6.2 全自适应特征共享(Fully-Adaptive Feature Sharing)

首先构建共享参数的权重共享层以及各个分任务的任务层,之后使用贪心算法从底层开始将权重共享层不断拓宽网络(网络结构不变,不同组的权重共享层中的权重参数不一样),贪心方法可能无法做到全局最优。
在这里插入图片描述

6.3 十字绣网络(Cross-stitch Networks)

在这里插入图片描述构建两个独立的模型架构,在模型的池化和完全连接的层后放置十字绣单元,从而允许模型学习其他任务的特征,本质上是一种软参数共享的多任务学习,十字绣单元如下,详情请参考Cross-stitch Networks for Multi-task Learning。
在这里插入图片描述

6.4 低监督(Low supervision)

低层任务在网络低层建模的性能高于在网络高层建模。低层任务在低层建模,高层任务才能使用低层任务的共享表示,预训练+微调。

6.5 多任务联合模型(A Joint Many-Task Model)

这是个怪兽一般的模型,多层LSTM并联,从下往上看在文本颗粒度上是越来越大,在任务上是越来越复杂。由底而上分别是词性标注(POS)、句子分块(CHUNK)、句法分析(DEP)、句子相关性判断(DEP)、逻辑蕴涵关系。输入可以是词,也可以是字符ngram。底层任务的隐藏状态有到其他层级的直接路径,相关性encoder的输出卷积一下,供逻辑关系分类器使用。整个模型使用同一个目标函数。左右对称只是示意可以接受两个句子用于关联分析,其实是同一套参数。
在这里插入图片描述

6.6 不确定性权重损失(Weighting losses with uncertainty )

此框架不存在分任务权重参数共享,而是采用正交的方法来考虑每个任务的不确定性。然后通过推导一个基于任务相关不确定性高斯似然最大化的多任务损失函数来调整每个任务在代价函数中的相对权重。
(在计算联合损失函数时,各任务的损失占比由模型自动计算出来,而且这个占比在训练过程中自动调整)。
在这里插入图片描述

6.7 MTL的张量因子分解(Tensor factorisation for MTL)

对模型中的每层参数使用张量分解分为共享参数和特定于任务的参数。

6.8 水闸网络(Sluice Networks)

该模型综合使用了现有的基于深度学习的MTL方法,这些技术包括硬参数共享、交叉缝合网络、块稀疏正则化方法、创建任务层次结构的NLP方法。该模型能够学习到应该共享的层和子空间以及能够将输入序列最佳表示的层。
在这里插入图片描述


总结

以上就是本文依据论文对深度学习领域的多任务学习进行了简要介绍,多任务学习有着广泛的应用,后文将深入学习。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

深度学习领域的多任务学习综述 的相关文章

  • 02 LinerRegression

    问题引入 xff1a 这就是个简单的线性回归函数的计算问题 现在我们已知一次函数 y 61 4x 43 9 xff0c bias为一个服从标准正态分布的随机随机数值 那么通过 y 61 4x 43 9 43 bias xff0c 当我们给定
  • Mysql 5.1.70 及 Navicat 安装教程

    为了避免安装后期出现Bug xff0c 首先必须明确电脑中从未安装过Mysql xff0c 或者安装过Mysql并且卸载干净 xff0c 否则二次安装会出错 此外 xff0c 安装过Mysql xff0c 并且进行过卸载 xff0c 需要进
  • jdk的配置与eclipse的使用

    首先自然是安装包从哪里获得这个问题 xff1a jdk历史版本 xff1a https www oracle com java technologies oracle java archive downloads html eclipse历
  • 01 原生JDBC的使用缺陷与基础环境配置

    开发环境 jdk1 7 0 72 eclipse eclipse 3 7 indigo mysql mysql5 1 相关安装教程 jdk的配置与eclipse的使用 与 Mysql 5 1 70 及 Navicat 安装教程 工程目录 创
  • 02 Mybatis结构配置

    文章目录 01 mybatis介绍 02 mybatis框架工作流程 03 ecplice项目jar包导入方法 04 在项目中导入mybitis框架的依赖包 05 项目下创建config文件夹 06 xml配置文件的设置 07 pojo数据
  • 03 Mybatis入门程序

    1 配置SqlMapConfig 配置数据库连接相关信息 span class token prolog lt xml version 1 0 encoding UTF 8 gt span span class token doctype
  • 04 Mybatis的增删改查

    1 mybatis中sql语句的占位符与parameterType 与 parameterType 表示一个占位符 向占位符输入参数 mybatis自动进行java类型和jdbc类型的转换 程序员不需要考虑参数的类型 比如传入字符串 myb
  • C++链表的各种操作

    题目描述 代码 include lt iostream gt include lt algorithm gt using namespace std struct sqList int data sqList next sqList Lis
  • HJ001 字符串最后一个单词的长度

    目录 题目描述 输入描述 输出描述 输入 输出 做题思路 AC代码 题目描述 计算字符串最后一个单词的长度 xff0c 单词以空格隔开 输入描述 输入一行 xff0c 代表要计算的字符串 xff0c 非空 xff0c 长度小于5000 输出
  • 盲签名 blind signature 简介

    转 https blog csdn net zhang hui cs article details 8728776 盲签名 Blind Signature 定义 是一种数字签名的方式 在消息内容被签名之前 对于签名者来说消息内容是不可见的
  • VMware 虚拟机安装 OpenWrt 作旁路由 单臂路由 img 镜像转 vmdk 旁路由无法上网 没网络

    重要注意事项 由于布线原因笔记本只能采用无线的方式连接路由器 xff0c 在Windows10的环境下使用无线网卡桥接 xff0c 结果软路由无法上网 xff0c 翻阅了各种帖子最终发现跟系统底层的协议栈有关系 xff0c 随即放弃使用有线
  • HJ002 计算某字母出现的次数

    目录 题目描述 输入描述 输出描述 输入 输出 做题思路 1 AC代码 1 做题思路 2 AC代码 2 题目描述 写出一个程序 xff0c 接受一个由字母 数字和空格组成的字符串 xff0c 和一个字母 xff0c 然后输出输入字符串中该字
  • HJ003 明明的随机数

    目录 题目描述 输入描述 输出描述 输入 输出 说明 做题思路 AC代码 题目描述 明明想在学校中请一些同学一起做一项问卷调查 xff0c 为了实验的客观性 xff0c 他先用计算机生成了N个1到1000之间的随机整数 xff08 N 10
  • new,delete使用详解(动态多维数组空间申请)

    C语言中利用库函数malloc和free来分配和撤销空间的 C 43 43 中的new与delete是运算符 xff0c 不是函数 xff0c 所以执行效率更高 但C 43 43 中也是可以使用malloc和free的 但是一来不方便 xf
  • 局部,全局(外部),static等变量详解

    首先 xff0c 必须明白一个程序是包含若干个源文件 xff0c 每个源文件又是包含若干个函数 xff0c 每个源文件 函数中又定义了若干个变量 但是每个变量都有自己的作用范围 xff0c 也就是自己的作用域 只有在作用域内才可以访问变量
  • 函数的可变参数的实现

    stdarg h stdarg h是C语言中C标准函数库的头文件 xff0c stdarg是由standard xff08 标准 xff09 arguments xff08 参数 xff09 简化而来 xff0c 主要目的为让函数能够接收可
  • 常见的注入方式

    设计模式中常见的注入方式 依赖注入 最近在求职 xff0c 耽搁了 xff0c 对于应届生来讲想找个大数据相关的工作何其困难 所以在填充一些自己不足之处 xff0c 希望与君共勉 一 依赖注入DI 开发过程中 xff0c 如果发现客户程序依
  • 部分Fortify代码扫描高风险解决方案

    部分Fortify代码扫描高风险解决方案 一 Category Access Control Database 问题描述 xff1a Database access control 错误在以下情况下发生 xff1a 1 数据从一个不可信赖的
  • 中标麒麟高级服务器V7安装

    中标麒麟高级服务器V7安装 中标麒麟高级服务器操作系统软件 xff08 兆芯版 xff09 一 安装步骤 准备 xff1a 1 相关中标麒麟镜像 2 vncviewer xff0c 由它去远程连接服务器上的机器节点 1 首先进入界面呈现 该

随机推荐

  • Hive--OR-AND使用方法

    OR AND 数据源 xff1a 1 22 1 21 2 22 1 20 select from id age where id 61 1 or id 61 2 and age 61 22 表示 xff1a 查询id 61 1 同时age
  • gdb 打印内存和数组

    打印数组 xff1a p arrayPtr 64 256 打印256个数组元素类型元素值 xff0c 二元操作符 64 左边数组第一个元素 xff0c 右边数组长度 p x char arrayPtr 64 256 以16进制打印256个以
  • Hive--清除/删除Hive表数据,where条件

    清除Hive表数据 hive删除表 xff1a drop table table name hive删除表中数据 xff1a truncate table table name hive按分区删除数据 xff1a alter table t
  • Mysql--查询时使用SQL将字段的数据类型转换(varchar->int)

    查询时使用SQL将数据类型转换 在 span class token keyword sql span 里面String转 span class token keyword int span span class token punctua
  • Mysql项目实践常用操作汇总(不断更新)

    MySQL 1 主键 xff0c 索引 xff0c 引擎 CREATE TABLE 96 表名 96 96 列名1 96 int 11 NOT NULL 96 列名2 96 varchar 255 NOT NULL PRIMARY KEY
  • 大文件处理方案

    处理海量数据问题 xff0c 无非就是 xff1a 分而治之 hash映射 43 hash统计 43 堆 快速 归并排序 xff1b Bloom filter Bitmap xff1b Trie树 数据库 倒排索引 xff1b 外排序 xf
  • spark读取嵌套json代码测试示例

    示例一 示例数据 xff1a span class token punctuation span span class token string 34 name 34 span span class token operator span
  • Redis集群原理和总结

    Redis集群原理 节点主从 xff08 镜像全量 xff09 43 哈希slot xff08 分片 xff09 无主模型 遵循 CAP原则 C一致性 A可用性 P分区容错性 xff0c 三者不可兼得 数据放在大数据集群中的方式 集群承载数
  • Hbase基础

    Hbase 谷歌 BigTable论文 海量存储 列式存储 极易扩展 RS HDFS 高并发 稀疏性 主要是针对Hbase列的灵活性 xff0c 在列族中 xff0c 你可以指定任意多的列 xff0c 在列数据为空的情况下 xff0c 是不
  • Flink

    Flink 一 简介 Flink核心是一个流式的数据流执行引擎 xff0c 其针对数据流的分布式计算提供了数据分布 数据通信以及容错机制等功能 基于流执行引擎 xff0c Flink提供了诸多更高抽象层的API以便用户编写分布式任务 xff
  • SUMO学习入门 (二)路网文件的生成

    声明 xff1a 该文章为博主转载自知乎用户 xff1a 侘寂升平 xff0c 侵删 xff01 非常感谢知乎朋友无私分享的sumo系列文章 xff0c 给了我很多的指导 xff01 欢迎读者关注该博主 xff01 以下为转载正文 xff1
  • 第七章 结构体

    文章目录 前言一 结构体与结构体指针1 结构体的定义 引用与初始化2 结构体指针3 typedef的使用A typedef结构体B typedef整型 二 C 43 43 的引用1 数字2 指针 前言 本文主要介绍结构体的使用 一 结构体与
  • Mapreduce实例(七):二次排序

    系统环境 Linux Ubuntu 16 04 jdk 7u75 linux x64 hadoop 2 6 0 cdh5 4 5 hadoop 2 6 0 eclipse cdh5 4 5 jar eclipse java juno SR2
  • WiFiduino+blinker+小爱同学打造智慧卧室

    系列文章目录 文章目录 系列文章目录前言一 实现功能二 所需材料三 导线连接四 软件开发1 开发环境搭建2 编写程序 五 手机操作部分1 blinkerAPP2 米家APP3 小米音箱APP 六 实物部分1 实物图片 总结 前言 本科二年级
  • 深度学习实际—手写体识别

    文章目录 前言1 什么是机器识别手写数字 xff1f 2 MNIST数据集是什么 xff1f 3 显示MNIST数据集4 名词解释4 1 图像4 2 卷积层4 3 池化层4 4 线性层4 5 激活函数4 6 损失函数 https blog
  • 简易计时器开发

    一 项目场景 xff1a 事情是这样的 xff0c 学校给了一个网页 xff0c 让我们去学习 xff0c 网页超过5分钟无操作会自动跳出 xff0c 需要一个定时器来提醒我们每隔一段时间去操作网页 xff0c 我在网上查了几个定时器 xf
  • 第9章 无监督学习

    系列文章目录 第1章 绪论 第2章 机器学习概述 第3章 线性模型 第4章 前馈神经网络 第5章 卷积神经网络 第6章 循环神经网络 第7章 网络优化与正则化 第8章 注意力机制与外部记忆 第9章 无监督学习 第10章 模型独立的学习方式
  • 第1章 计算机组成原理概述

    文章目录 前言1 0 课程简介1 0 1 课程的地位1 0 2 课程学习思路1 0 3 课程组成 1 1 计算机系统简介1 1 1 计算机组成1 计算机的类型2 计算机的组成3 软件组成 1 1 2 计算机系统的层次结构1 物理层方面2 程
  • ASGCN之图卷积网络(GCN)

    文章目录 前言1 理论部分1 1 为什么会出现图卷积网络 xff1f 1 2 图卷积网络的推导过程1 3 图卷积网络的公式 2 代码实现参考资料 前言 本文从使用图卷积网络的目的出发 xff0c 先对图卷积网络的来源与公式做简要介绍 xff
  • 深度学习领域的多任务学习综述

    文章目录 前言1 什么是多任务学习 xff1f 2 为何要使用多任务学习 xff1f 3 多任务学习有哪些类型 xff1f 3 1 基于硬参数共享的多任务学习3 2 基于软参数共享的多任务学习 4 为什么多任务学习能提升模型的性能 xff1