浅谈多任务学习

article/2025/11/8 16:38:58

目录

一、前言及定义

二、多任务学习(MTL)的两种方法 

2.1 参数的硬共享机制(hard parameter sharing)

2.2 参数的软共享机制(soft parameter sharing)

三、多任务学习模型

3.1 MT-DNN

3.2 ERNIE 2.0

四、多任务学习与其他学习算法的关系


一、前言及定义

多任务学习(Multi-task learning)是和单任务学习(single-task learning)相对的一种机器学习方法。在机器学习领域,标准的算法理论是一次学习一个任务,也就是系统的输出为实数的情况。复杂的学习问题先被分解成理论上独立的子问题,然后分别对每个子问题进行学习,最后通过对子问题学习结果的组合建立复杂问题的数学模型。多任务学习是一种联合学习,多个任务并行学习,结果相互影响。

  用大家经常使用的school data做个简单的对比,school data是用来预测学生成绩的回归问题的数据集,总共有139个中学的15362个学生,其中每一个中学都可以看作是一个预测任务。单任务学习就是忽略任务之间可能存在的关系分别学习139个回归函数进行分数的预测,或者直接将139个学校的所有数据放到一起学习一个回归函数进行预测。而多任务学习则看重 任务之间的联系,通过联合学习,同时对139个任务学习不同的回归函数,既考虑到了任务之间的差别,又考虑到任务之间的联系,这也是多任务学习最重要的思想之一。

  

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

二、多任务学习(MTL)的两种方法 

2.1 参数的硬共享机制(hard parameter sharing)

 

参数的硬共享机制是神经网络的多任务学习中最常见的一种方式,一般来讲,它可以应用到所有任务的所有隐层上,而保留任务相关的输出层。如上图所示,前几层dnn为各个任务共享,后面分离出不同任务的layers。这种方法有效降低了过拟合的风险: 模型同时学习的任务数越多,模型在共享层就要学到一个通用的嵌入式表达使得每个任务都表现较好,从而降低过拟合的风险。 直观来将,这一点是非常有意义的。越多任务同时学习,我们的模型就能捕捉到越多任务的同一个表示,从而导致在我们原始任务上的过拟合风险越小。

2.2 参数的软共享机制(soft parameter sharing)

在这种方法下,每个任务都有自己的模型,有自己的参数,但是对不同模型之间的参数是有限制的,不同模型的参数之间必须相似,由此会有个distance描述参数之间的相似度,会作为额外的任务加入到模型的学习中,类似正则化项。

三、多任务学习模型

3.1 MT-DNN

微软提出的 MT-DNN模型 (Multi-task Deep Neural Network)是一个简单有效的尝试。MT-DNN的模型结构如下图所示,模型主要包含两个部分,分别是多任务的共享编码层(与BERT一致)以及任务相关的输出层。MT-DNN模型考虑了四种不同类型的语言理解类任务,分别是单句文本分类(如CoLA、SST-2)、句对文本分类(如RTE、MNLI、MRPC)、文本相似度(回归问题)以及相关性排序(排序问题)。不同类型的任务对应不同的输出层结构与参数。模型输入的构造方式与BERT基本一致,即“[CLS]文本1 [SEP]文本2 [SEP]”的形式。

模型的训练过程分为两个阶段,首先对多任务共享的编码层进行预训练,方法与BERT模型一致;然后利用各个任务的标注数据以及相应的损失函数进行有监督的多任务学习。与T5模型类似,经过多任务学习的MT-DNN模型可以在特定任务上进一步精调,通常能够取得更好的效果。

3.2 ERNIE 2.0

除了利用相关NLP任务的有限标注数据,还可以从无标注以及弱标注数据中抽象出一系列任务联合学习,以进一步提升预训练模型的能力。百度的研究人员在ERNIE模型的基础之上做了改进,分别从词法、句法及语义层面构造了更加丰富的预训练任务,并通过连续多任务学习(Continual Multi-task Learning)的方式进行增量式预训练,从而得到了 ERNIE 2.0模型 。ERNIE 2.0模型框架如下图所示。
在模型的输入层,除了常用的词向量、块向量和位置向量,ERNIE2.0使用了一个额外的任务向量(Task embedding)。每一个预训练任务对应一个独立的任务编码(1,2,···)并被转化为连续向量表示,在训练过程中更新。使用任务向量是多任务学习中的常用手段,尤其是在任务较多的情况下。这与T5、GPT-3等生成模型中使用的任务提示(Prompt)思想是类似的。模型的输出层分别对应以下预训练任务。
1.词法相关预训练任务
  • ERNIE模型原有的单词、实体、短语掩码模型;
  • 单词的大写(Capitalization)预测;
  • 单词--文档关系预测(预测输入文本块中的词是否出现在同一文档的其他文本块)。
2.语法相关预训练任务
  • 句子重排序:对于随机打乱的文本块,恢复其原始顺序;
  • 句子距离预测:判断输入的两个句子是来自同一文档的两个相邻句子,或是同一文档的两个不相邻句子,或来自不同文档。因此是一个多分类问题。
3.语义相关预训练任务
  • 篇章关系(Discourse relation)预测:对句对间的修辞关系分类。这里用到了由无监督方法构建的篇章关系数据集
  • 信息检索相关性(IR Relevance)。这里需要用到搜索引擎的查询日志:取搜索引擎的查询与文档的标题作为模型的输入句对,如果该文档没有出现在搜索结果中,则认为两者不相关。否则,根据用户是否点击进一步分为强相关与弱相关。
关于模型的训练过程,ERNIE 2.0采用了连续多任务学习的方式,在训练过程中逐渐增加任务数量并进行多任务学习。在维持整体迭代次 数不变的条件下,自动为每个任务分配其在各个阶段多任务学习中的迭代次数。实验结果表明,这种训练方式既可以避免连续学习 (Continual learning)的知识遗忘问题,也能够使各个任务得到更有效的训练。ERNIE 2.0在中、英文各项任务上都取得了出色的表现,同时为预训练任务的设计及多任务学习的机制带来了很多启发。

四、多任务学习与其他学习算法的关系

  1. transfer learning:定义一个源域一个目标域,从源域学习,然后把学习的知识信息迁移到目标域中,从而提升目标域的泛化效果。迁移学习一个非常经典的案例就是图像处理中的风格迁移

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

  3. multi-label:打多个标签,或者说进行多种分类,还是拿人举例啊,一个人,他可以被打上标签{青年,男性,画家}这些标签。如果还有一个人他也是青年男性,但不是画家,那就只能打上标签{青年,男性}。它和多任务学习不一样,它的目标不是学习出一个共同的表示,而是多标签

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


http://chatgpt.dhexx.cn/article/TgC7fr1E.shtml

相关文章

多任务学习

一、单任务学习和多任务学习 多任务学习是和单任务学习对应的一种机器学习方法。 单任务学习 在单任务学习中,认为不同任务之间是不具有关联性的。因此,每个模型的参数都是独立训练的。这样的学习方法有两个缺陷: 由于每个任务中的训练数据有…

多任务学习 (Multitask Learning) 汇总

1 前言 多任务学习(Multi-task learning)是和单任务学习(single-task learning)相对的一种机器学习方法。在机器学习领域,标准的算法理论是一次学习一个任务,也就是系统的输出为实数的情况。复杂的学习问题…

【GANs学习笔记】(十八)LAPGAN、ProGAN、SRGAN

完整笔记:http://www.gwylab.com/note-gans.html ——————————————————————— 4. LapGAN 4.1 LapGAN基本思路 如果我们希望生成高分辨率图像,还有一种GANs可以考虑,那就是LapGAN。LapGAN与StackGAN有着非常类似的思路&…

GAN网络

目录 GAN生成网络G(Generative)对抗网络D(Discriminative)两分布之间差异性评价KL散度JS散度 损失函数一次代码实验 WGANWGAN-GPConditional GAN GAN 生成式对抗网络(GAN, Generative Adversarial Networks&#xff0…

基于pytorch的SRGAN实现(全网最细!!!)

基于pytorch的SRGAN实现 前言SRGAN论文概要(贡献)网络结构和损失函数pytorch代码实现1. 准备工作1.1 数据下载并放到合适位置 2. 开始训练和测试 源码详解1. 数据集的加载: data_utils.py2. 网络模型: model.py2.1 生成器: Generator2.2 判别器:Discrimi…

超分辨率——基于SRGAN的图像超分辨率重建(Pytorch实现)

基于SRGAN的图像超分辨率重建 本文偏新手项,因此只是作为定性学习使用,因此不涉及最后的定量评估环节 目录 基于SRGAN的图像超分辨率重建1 简要介绍2 代码实现2.1 开发环境2.2 主要流程2.3 构建数据集2.4 构建生成模型(Generator&#xff09…

SRCNN神经网络

0 前言 超分辨率技术(Super Resolution,SR)是指从观测到的低分辨率图像重建出相应的高分辨率图像,在监控设备、卫星图像和医学影像等领域都拥有着重要的应用价值。 1 SRCNN SRCNN是深度学习用在超分辨率重建上的开山之作。 其结构十分简单&#xff0c…

SRGAN的理解

全文翻译见:https://blog.csdn.net/weixin_42113955/article/details/89001989 和https://blog.csdn.net/c2a2o2/article/details/78930865 1. ptrain是真正的HR图像,也就是data要预测的。 pG是生成的超分辨图像 好处在于:固定 G&#xff0c…

GANs综述

生成式对抗网络GANs及其变体 基础GAN 生成式对抗网络,是lan Goodfellow 等人在2014年开发的,GANs 属于生成式模型,GANs是基于最小值和最大值的零和博弈理论。 为此,GANs是由两个神经网络组成一个Generator。另一个是Discriminat…

图像的超分辨率重建SRGAN与ESRGAN

SRGAN 传统的图像超分辨率重建方法一般都是放大较小的倍数,当放大倍数在4倍以上时就会出现过度平滑的现象,使得图像出现一些非真实感。SRGAN借助于GAN的网络架构生成图像中的细节。 训练网络使用均方误差(MSE)能够获得较高的峰值…

SRGAN With WGAN

SRGAN With WGAN RGAN 是基于 GAN 方法进行训练的,有一个生成器和一个判别器,判别器的主体使用 VGG19,生成器是一连串的 Residual block 连接,同时在模型后部也加入了 subpixel 模块,借鉴了 Shi et al 的 Subpixel Ne…

SRGAN论文与ESRGAN论文总结

博客结构 SRGANContribution:Network Architecture:Generator NetworkDiscriminator Network Perceptual loss function:Experiments:Mean opinion score (MOS) testing: ESRGANContribution:Network Architecture:ESR…

SR-GNN

Session-based Recommendation with Graph Neural Networks 一、论文 1、理论 ​ SR-GNN是一种基于会话序列建模的推荐系统。会话序列专门表示一个用户过往一段时间的交互序列。 ​ 常用的会话推荐包括循环神经网络和马尔科夫链,但有两个缺点: 当一…

SRGAN(SRResNet)介绍

生成对抗网络GAN是由蒙特利尔大学Ian Goodfellow在2014年提出的机器学习架构。 生成式对抗网络(GAN, Generative Adversarial Networks )是一种深度学习模型,是近年来复杂分布上无监督学习最具前景的方法之一。模型通过框架中(至…

SRGAN

摘要: 尽管使用更快更深的卷积神经网络在单图像超分辨率的准确性和速度方面取得了突破,但一个核心问题仍然很大程度上未解决:当我们在大的升级因子上超分辨时,我们如何恢复更精细的纹理细节?基于优化的超分辨率方法的行…

深度学习计划(4)SRGan简析

SRGAN 一种用于图像超分辨率(SR)的生成对抗网络(GAN) 超分辨率:从低分辨率(LR)图像来估计其对应高分辨率(HR)图像的高挑战性任务被称作超分辨率(SR) 问题: 重建的SR图像中通常缺少纹理细节。有监督SR算法的优化目标通常是最小化恢复的HR图像和真实图像…

图像超分经典网络 SRGAN精确解析

SRGAN 核心思想 早期超分辨率方法的优化目标都是降低低清图像和高清图像之间的均方误差。降低均方误差,确实让增强图像和原高清图像的相似度更高。但是,图像的相似度指标高并不能代表图像的增强质量就很高。 为什么 SRGAN 的增强结果那么清楚呢&#x…

SRGAN简单了解

超分辨率问题的病态性质尤其表现在取较高的放大因子时,重构的超分辨率图像通常会缺失纹理细节。监督SR算法的优化目标函数通常取重建高分辨率图像和地面真值之间的均方误差,在减小均方误差的同时又可以增大峰值信噪比(PSNR),PSNR是评价和比较…

【超分辨】SRGAN详解及其pytorch代码解释

SRGAN详解 介绍网络结构损失函数数据处理网络训练 介绍 「2023年更新」本代码是学习参考代码,一般不能直接运行,想找现成能运行的建议看看其他的。 SRGAN是一个超分辨网络,利用生成对抗网络的方法实现图片的超分辨。 关于生成对抗网络&#…

超分之一文读懂SRGAN

这篇文章介绍SRResNet网络,以及将SRResNet作为生成网络的GAN模型用于超分,即SRGAN模型。这是首篇在人类感知视觉上进行超分的文章,而以往的文章以PSNR为导向,但那些方式并不能让人眼觉得感知到了高分辨率——Photo-Realistic。 参…