多任务学习

2023-11-18

一、单任务学习和多任务学习

  多任务学习是和单任务学习对应的一种机器学习方法。

  1. 单任务学习

在这里插入图片描述

  在单任务学习中,认为不同任务之间是不具有关联性的。因此,每个模型的参数都是独立训练的。这样的学习方法有两个缺陷:

  • 由于每个任务中的训练数据有限,因此所训练出的模型并不能具有很好的泛化性。
  • 由于没有考虑任务之间的关联性, 缺乏任务之间共享信息的机制,使得模型训练的过程中学习能力下降。

  因此,诞生了多任务模型。

在这里插入图片描述
  在多任务学习中,主要认为不同任务之间实际上是具有一定的关联性,因此,多任务学习采用的方法是将不同任务之间的训练数据集成在一起,然后联合同时训练多个不同任务的模型参数,提高模型的学习能力,增强模型的泛化性。

多任务学习的构建原则

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

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

  • 基于参数的共享:例如,神经网络隐藏节点的共享,这种方法主要通过挖掘不同任务之间在浅层所共享的隐藏节点特征来达到任务之间相关性建模的目的。
  • 基于正则化约束的共享:例如:均值约束、联合特征学习等,实际上就是在模型中引入一些正则化的先验,通过先验对模型的约束来建模不同任务之间的相关性。

多任务学习和其他算法之间的关系图
在这里插入图片描述


二、几种常见多任务学习

  1. 基于参数共享的多任务学习(硬共享) — 神经网络节点共享
    在这里插入图片描述

  在单任务学习中,每一个任务都对应了一个网络,也就是说,不同的任务建立了不同的神经网络来学习不同的模型参数实现任务的输出。这样的方法造成每个任务都独立训练一个模型参数,也就是说,任务一训练的参数对其他任务没有任何影响。同时任务一中提取的浅层特征对其他任务也没有相应的服务。所以几个任务之间提取的浅层特征没有达到共享的目的。

在这里插入图片描述
  在多任务学习中,让同一个神经网络具有多个不同的输出,每一个输出对应不同的任务。这样的方式可以在任务的反馈中,通过反向传播机制共同的为不同的任务训练同一个模型参数。通过挖掘不同任务之间的相关性的特征,我们在底层共享同同一个参数来提取能够为所有任务服务的共享特征达到相关性建模的目的。

实例

  1. Zhanpeng Zhang, Ping Luo, Chen Change Loy, and Xiaoou Tang. Facial landmark detection by deep multi-task learning, ECCV, 2014
    在这里插入图片描述

  在右侧有7个相关任务,它们在左侧共享同一个模型参数提取能够应用于不同任务的共享特征,这样就实现了通过神经网络的方式在浅层共享同一个参数为不同的任务服务,建立任务之间的相关性,挖掘它们之间的潜在共享信息的目的。在这个网络中,通过最后不同的输出层建立不同任务之间的差异性。

  1. 基于正则化的多任务学习(软共享)

  每个任务都有自己的模型自己的参数。模型参数之间的距离是正则化的,以便鼓励参数相似化。

2.1 均值约束共享
在这里插入图片描述

  既然任务之间具有一定的相关性,但是不知道这样的相关性如何描述?那么简单认为不同模型之间的相关性实际上是通过模型参数相互接近来建模的

  但是,我们又不知道任务一和任务二更接近,还是某几个任务之间更接近?因此,为了捕获这样一种相关性,就让每一个任务的模型参数都能够接近所有任务模型参数的均值,这样就保证了不同的任务的模型参数相互之间的距离并不是很远。

  这样的方法是一个比较直观简单的方法,可能在实际中并不是很适用,但是这种方法的提出对于基于正则化约束的多任务学习模型提供了一个较好的思路。

2.2 联合特征约束的多任务学习
在这里插入图片描述

  这个方法是认为不同的任务之间的模型参数可能会共享样本的某一个共同特征集合。如图所示,Y的每一列对应不同的任务,W的每一列对应每个任务的模型参数,图中表明了每个任务都挑选了样本的第1,2,3,5,6,9个特征。通过这样的方式可以建立不同任务之间的相关性达到多任务学习的目的。

下面通过例子说明这种假设为什么是成立的?

实例:现在的任务是预测五个不同学校的学生成绩。
在这里插入图片描述

  那么现在我们五个不同的模型参数,每一个模型都能够预测对应学校的学生成绩。左侧是提取的学生的特征。
对于这样的一个回归任务,我们可以认为不同任务之间实际上是具有共享特征集合的多任务学习模型。因为我们认为影响学生成绩的主要因素是上次成绩,上次排名,睡觉时间和父母教育背景这四个因素。尽管每个任务是预测不同学校的学生,但是这个例子中可以直观地感受到每一个学校的模型参数实际上都应该与一些直观的影响成绩的特征是有关的。所以在右边模型参数上都选了第1,2,3,7个特征。

  所以上面假设是合理的。但是这样的相关性要求在实际中可能显得有些严格,只针对某一些特定任务,实际任务往往没有这种严格的形式。比如对于第一个学校来说,按照学生身高进行排座,个子小的同学坐前面,有可能这个因素会影响成绩,因此身高可能是会影响第一个学校的成绩的因素。

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

多任务学习 的相关文章

随机推荐

  • 计算机网络——传输层

    一 传输层概述 传输层功能 完成主机进程 主机进程之间的报文传输 传输层是真正的端对端的通信 传输层协议在端主机上运行 路由器一般没有传输层 传输层从主机层面上对网络层采取相应补救措施 可以提供更高质量的数据传输能力 传输层独立于网络设备
  • 设计模式——Visitor(访问者)模式

    目录 前言 1 定义 2 适用性 3 结构 3 1 结构图 3 2 参与者 4 Java实际应用举例 以ASM技术为例 4 1 被访问对象 ClassReader 4 2 Visitor ClassVisitor 4 3 具体visitor
  • web渗透测试学习路线

    web渗透学习路线 文章目录 web渗透学习路线 前言 一 web渗透测试是什么 二 web渗透步骤 1 前期工作 2 中期提高 3 后期打牢 总结 前言 本文整理的学习路线 清晰明了 重点分明 能快速上手实践 相信想学的同学们都能轻松学完
  • Stable Diffusion入门笔记(自用)

    学习视频 20分钟搞懂Prompt与参数设置 你的AI绘画 咒语 学明白了吗 零基础入门Stable Diffusion 保姆级新手教程 Prompt关键词教学 哔哩哔哩 bilibili 1 图片提示词模板 2 权重 提示词 无数字 fl
  • 如何编译火狐浏览器的源代码

    以下摘录于 http zhidao baidu com question 33214960 html 源代码编译安装Firefox linux下 http forums mozine cn index php showtopic 601 W
  • Goland2023版新UI的debug模式调试框按钮功能说明

    一 背景 Jetbrains家的IDE的UI基本都是一样的 debug模式的调试框按钮排列也是一致的 但是在我使用Goland2023版的新UI时 发现调试框的按钮变化还是很大的 有一些按钮被收起来了 如果看之前的博客会发现有一些文中的旧U
  • 自绘CComboBox

    转自 http www gymsaga com mfc 419 html 先介绍基本ComboBox 风格 列表框何时可见 静态控件还是编辑控件 Simple 包括下拉框一直可见 编辑控件 Drop down 可编辑 下拉框 点击可见 编辑
  • 数字逻辑笔记7丨2.5逻辑函数卡诺图化简法

    卡诺图的构成 1 卡诺图的构成 一种图形化简法 在逻辑设计中广泛应用 卡诺图 一种平面方格图 每个小方格代表一个最小项 又叫 最小项方格图 卡诺图可以视为真值表图形化的结果 n个变量的真值表是用2的n次方行给出变量的2的n次方种取值 每行取
  • laravel框架 - 安装初步使用学习 composer安装

    一 什么是laravel框架 Laravel框架可以开发各种不同类型的项目 内容管理系统 Content Management System CMS 是一种比较典型的项目 常见的网站类型 如门户 新闻 博客 文章等 都可以利用CMS进行搭建
  • Shiro权限管理框架

    Shiro 一 Shiro权限 什么是权限控制 忽略特别细的概念 比如权限能细分很多种 功能权限 数据权限 管理权限等 理解两个概念 用户和资源 让指定的用户 只能操作指定的资源 CRUD 初学javaweb时怎么做 Filter接口中有一
  • 153、有效三角形的个数

    题目描述 给定一个包含非负整数的数组 你的任务是统计其中可以组成三角形三条边的三元组个数 示例 1 输入 2 2 3 4 输出 3 解释 有效的组合是 2 3 4 使用第一个 2 2 3 4 使用第二个 2 2 2 3 注意 数组长度不超过
  • 为 Vue 编写一个插件

    1 介绍 以编写Vue日志插件为例 讲述从插件的开发到部署 原文 https lluvio github io blog plugin for vuejs html 2 代码初始 不用一步到位开发插件 先抛开 Vue保证自己的代码能够运行
  • 数字IC后端笔试500题出炉(附答案)

    数字IC后端笔试500题出炉 附答案 文章右侧广告为官方硬广告 与吾爱IC社区无关 用户勿点 点击进去后出现任何损失与社区无关 吾爱 IC 社区 吾爱 IC 社区 52 ic com 是一个专业交流和分享数字 IC 设计与实现技术与经验的
  • element-ui table 某列数据后加上单位,排序不正确

    根据项目需要 在时间列 需要显示分秒 而后台返回的值是秒 前端需要转换 页面显示如下 转换之后 点击排序发现 数据展示的顺序是错乱的 如下图 解决方法 在请求数据后 给数组多加一个字段 用来后面排序 注 flightTime是处理后 页面显
  • Charles 学习心得,Mac环境下解决https乱码,以及火狐浏览器配置https后无法上网的问题

    网上有很详细的ssl证书配置方法 此处不再赘述 简要的过程 Charles help ssl proxying install charles root certificate 将证书设置成始终信任 移动端 安卓 iOS 中 将WiFi里面
  • 【分布式设计与开发3】什么是分布式架构设计中的CAP原理

    分布式系统 CAP原理 架构设计 一 引言 在2000年7月ACM 美国计算机协会 组织的PODC PrinciplesofDistributedComputing分布式计算原理 会议上 UCBerkeley大学的EricA Brewer教
  • Foo bar 什么鬼?

    相信大家对于 foo 和 bar 这两个单词一定再熟悉不过了 它们是计算机图书中最常使用的变量名 不同的字典对 foo 的解释相去甚远 一说来自中国 福 字的发音 又有解释为二战时期的一种武器 其实将 foo 和 bar 组合在一起所构成的
  • [CVPR‘22] DTLD: Towards Accurate Facial Landmark Detection via Cascaded Transformers

    paper https openaccess thecvf com content CVPR2022 papers Li Towards Accurate Facial Landmark Detection via Cascaded Tra
  • Python - 嵌入式数据库Sqlite3的基本使用

    SQLite是一种轻量级的嵌入式关系型数据库管理系统 而Python标准库中提供了与SQLite交互的模块 sqlite3 下面是一个Python 3中使用sqlite3模块的详细示例与解析 import sqlite3 创建或连接数据库
  • 多任务学习

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