多任务学习(一)

article/2025/11/8 12:32:38

多任务学习

单任务学习

样本之间没有关联性。

缺点:训练出来的模型不具有泛化性;不共享信息使得学习能力下降。

多任务学习

多任务学习的构建原则

  • 建模任务之间的相关性
  • 同时对多个任务的模型参数进行联合学习,挖掘其中的共享信息;
  • 考虑 人物之间的差异性,增强模型的适应能力。

多任务学习的两种主要方式

  • 基于参数的共享

    例如:神经网络隐层节点的共享

  • 基于正则化约束的共享

    例如:均值约束、联合特征学习等。

参数共享多任务学习

在这里插入图片描述

单任务学习中,每个单任务建立一个模型。每个任务的模型不适用于另一个任务。

基于正则化约束的共享

在这里插入图片描述

例子:

1.多输入多输出(主辅任务)

# 导入包
from keras.layers import Input,Embedding,LSTM,Dense
from keras.models import Model
import keras#搭建模型
main_input=Input(shape=(100,),dtype='int32',name='main_input')
x=Embedding(output_dim=512,input_dim=10000,input_length=100)(main_input)
lstm_out=LSTM(32)(x)# 辅助输出
auxiliary_output=Dense(1,activation='sigmoid',name='aux_output')(lstm_out)# 辅助输入
auxiliary_input=Input(shape=(5,),name='aux_input')
x=keras.layers.concatenate([lstm_out,auxiliary_input])x=Dense(64,activation='relu')(x)
x=Dense(64,activation='relu')(x)
x=Dense(64,activation='relu')(x)
# 主要输出
main_output=Dense(1,activation='sigmoid',name='main_output')(x)model=Model(inputs=[main_input,auxiliary_input],outputs=[main_output,auxiliary_output])
# 查看模型结构
model.summary()

在这里插入图片描述

# 查看模型网络结构图并保存
from tensorflow.keras.utils import plot_model
plot_model(model, to_file='model.png',show_shapes='true')

在这里插入图片描述

# 编译模型
model.compile(optimizer='rmsprop',loss={'main_output':'binary_crossentropy','aux_output':'binary_crossentropy'},loss_weights={'main_output':1.,'aux_output':0.2})model.fit({'main_input':headline_data,'aux_input':additional_data},{'main_output':labels,'aux_output':labels},epochs=50,batch_size=32)

2.共享网络层

# 导入包
import keras
from keras.layers import Input,LSTM,Dense
from keras.models import Model# 搭建模型
tweet_a=Input(shape=(280,256))
tweet_b=Input(shape=(280,256))shared_lstm=LSTM(64)encoded_a=shared_lstm(tweet_a)
encoded_b=shared_lstm(tweet_b)merged_vector=keras.layers.concatenate([encoded_a,encoded_b],axis=-1)predictions=Dense(1,activation='sigmoid')(merged_vector)model=Model(inputs=[tweet_a,tweet_b],outputs=predictions)
# 编译模型
model.compile(optimizer='rmsprop',loss='binary_crossentropy',metrics=['accuracy'])model.fit([data_a,data_b],labels,epochs=10)
# 查看模型结构
model.summary()

# 查看模型网络图
from tensorflow.keras.utils import plot_model
plot_model(model, to_file='model.png',show_shapes='true')

在这里插入图片描述

查看各节点输出

a = Input(shape=(280, 256))lstm = LSTM(32)
encoded_a = lstm(a)lstm.output == encoded_a
# >>><KerasTensor: shape=(None, 32) dtype=bool (created by layer 'tf.__operators__.eq_3')>

参考文献:
https://keras.io/zh/getting-started/functional-api-guide/


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

相关文章

多任务学习-Multitask Learning概述

2020-02-22 09:59:48 1、单任务学习VS多任务学习 单任务学习&#xff1a;一次只学习一个任务&#xff08;task&#xff09;&#xff0c;大部分的机器学习任务都属于单任务学习。 多任务学习&#xff1a;把多个相关&#xff08;related&#xff09;的任务放在一起学习&#x…

深度学习之----多任务学习

介绍 在机器学习&#xff08;ML&#xff09;中&#xff0c;通常的关注点是对特定度量进行优化&#xff0c;度量有很多种&#xff0c;例如特定基准或商业 KPI 的分数。为了做到这一点&#xff0c;我们通常训练一个模型或模型组合来执行目标任务。然后&#xff0c;我们微调这些模…

深度学习中的多任务学习介绍

在2017年有一篇关于在深度神经网络中多任务学习概述的论文&#xff1a;《An Overview of Multi-Task Learning in Deep Neural Networks》&#xff0c;论文链接为&#xff1a;https://arxiv.org/pdf/1706.05098.pdf&#xff0c;它介绍了在深度学习中多任务学习(Multi-task Lear…

C# 多线程七 任务Task的简单理解与运用一

目录 一.Task 二.Task中的全局队列和本地队列 三.TaskCreationOptions 枚举 四.CancellationTokenSource/CancellationToken 1.延时取消线程 2.立即取消&#xff1a; 五.Task的三种调用方式 为了防止大家被标题误导 写在前面&#xff1a; Task并不是线程 Task的执行需要…

整理学习之多任务学习

如果有n个任务&#xff08;传统的深度学习方法旨在使用一种特定模型仅解决一项任务&#xff09;&#xff0c;而这n个任务或它们的一个子集彼此相关但不完全相同&#xff0c;则称为多任务学习&#xff08;MTL&#xff09; 通过使用所有n个任务中包含的知识&#xff0c;将有助于改…

多任务学习优化总结 Multi-task learning(附代码)

目录 一、多重梯度下降multiple gradient descent algorithm (MGDA) 二、Gradient Normalization (GradNorm) 三、Uncertainty 多任务学习的优势不用说了&#xff0c;主要是可以合并模型&#xff0c;减小模型体积&#xff0c;只用一次推理也可以加快速度。对于任务表现的提升…

经验 | 训练多任务学习(Multi-task Learning)方法总结

点击上方“小白学视觉”&#xff0c;选择加"星标"或“置顶” 重磅干货&#xff0c;第一时间送达 转载于&#xff1a;知乎Anticoder https://zhuanlan.zhihu.com/p/59413549 背景&#xff1a;只专注于单个模型可能会忽略一些相关任务中可能提升目标任务的潜在信息&…

多任务学习(Multi-Task Learning)

转自&#xff1a;https://www.cnblogs.com/zeze/p/8244357.html 1. 前言 多任务学习&#xff08;Multi-task learning&#xff09;是和单任务学习&#xff08;single-task learning&#xff09;相对的一种机器学习方法。在机器学习领域&#xff0c;标准的算法理论是一次学习一…

多任务学习 | YOLOP,一个网络同时完成三大任务

关注并星标 从此不迷路 计算机视觉研究院 公众号ID&#xff5c;ComputerVisionGzq 学习群&#xff5c;扫码在主页获取加入方式 paper: https://arxiv.org/abs/2108.11250 code: https://github.com/hustvl/YOLOP 计算机视觉研究院专栏 作者&#xff1a;Edison_G YOLOP: You Onl…

多任务学习概述

文章目录 前言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 多任务学…

多任务学习(Multi-task Learning)方法总结

多任务学习&#xff08;multi task learning&#xff09;简称为MTL。简单来说有多个目标函数loss同时学习的就算多任务学习。多任务既可以每个任务都搞一个模型来学&#xff0c;也可以一个模型多任务学习来一次全搞定的。 作者丨Anticoder知乎 链接丨https://zhuanlan.zhihu.co…

浅谈多任务学习

目录 一、前言及定义 二、多任务学习&#xff08;MTL&#xff09;的两种方法 2.1 参数的硬共享机制&#xff08;hard parameter sharing&#xff09; 2.2 参数的软共享机制&#xff08;soft parameter sharing&#xff09; 三、多任务学习模型 3.1 MT-DNN 3.2 ERNIE 2.0…

多任务学习

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

多任务学习 (Multitask Learning) 汇总

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

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

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

GAN网络

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

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

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

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

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

SRCNN神经网络

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

SRGAN的理解

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