Paper | Multitask learning

article/2025/8/21 23:15:14

目录

  • 1. MTL的定义
  • 2. MTL的机制
    • 2.1. Representation Bias
    • 2.2. Uncorrelated Tasks May Help?
  • 3. MTL的用途
    • 3.1. Using the Future to Predict the Present
    • 3.2. Time Series Prediction
    • 3.3. Using Extra Tasks to Focus Attention
    • 3.4. Quantization Smoothing
    • 3.5. Some Inputs Work Better as Outputs
    • 3.6. 其他MTL方法
  • 4. 讨论
    • 4.1. Predictions for Multiple Tasks
    • 4.2. Architecture
    • 4.3. What Are Related Tasks?
    • 4.4. Transfer Learning
  • 5. 番外:生物学启发

论文:Multitask learning

Caruana, Rich. "Multitask learning." Machine learning 28.1 (1997): 41-75.
Over 3600 citations (2019).

1. MTL的定义

Multi-task learning (MTL) is a subfield of machine learning in which multiple learning tasks are solved at the same time, while exploiting commonalities and differences across tasks.

Notice, MTL is a collection of ideas, techniques, and algorithms, not one algorithm.
E.g., k-nearest neighbor and decision trees.

2. MTL的机制

这部分我们主要设计一些简单的实验,来说明MTL的机制,并且纠正一些错误的观点。
这部分主要参考:Multitask Learning (R.CARUANA, 1997), 3531 citations.

2.1. Representation Bias

这一部分告诉我们:如果任务之间是无关的,那么多任务会起反作用。

假设任务T有两个极小值点A和B,任务T'有两个极小值点A和C。也就是说,这两个任务共享一个极小值点A。
经过精心设计,任务T落入A和B的概率相同,任务T'同理。

In the first, we selected the minima so that nets trained on T alone are equally likely to find A or B, and nets trained on
T' alone are equally likely to find A or C.

然后,作者让两个任务在同一个网络中进行训练。结果发现,这些网络通常会落入共同极小值点A。这说明:在MTL任务中,如果某些任务偏好一种对共享层的表示,那么其他任务也会对其产生偏好。

Nets trained on both T and T 0 usually fall into A for both tasks. This shows that MTL tasks prefer hidden layer representations that other tasks prefer.

当然了,前提是这种表示对所有任务都是局部最优的。

其次,作者改变了任务T的极小值点:T非常容易落入B,而不太容易落入A。T'的极小值点不变,落入A和C的概率相同。
此时再同时训练,作者发现:T'很难影响T的偏好,T仍然总是落入B。同时,T'落入C的概率大大增加了!

这表明:在T的影响下,共享层更偏好于远离极小值点B,这影响到了其他共享这一共享层的任务。

T creates a “tide” in the hidden layer representation towards B that flows away from A. T' has no preference for A or C, but is subject to the tide created by T.

这一部分告诉我们:如果两个任务鲜有关联,那么放在同一个网络训练的后果就是:两个任务都会偏离它们的共同极值点(局部,弱),因此共享层是没有意义的。
个人认为,这样反倒有可能限制二者的学习能力,因为两个任务被迫共享没有意义的隐藏层。

2.2. Uncorrelated Tasks May Help?

Holmstrom等人在1992年发现,在BP过程中添加噪声,有时可以提高模型的泛化能力。
有人就想:如果MTL网络中任务之间是无关的,那么它们和共享层之间的BP过程,彼此互为噪声(没有一致性的BP)。既然添加噪声可以提高泛化能力,那么uncorrelated tasks是否能互相促进呢?

作者设计了一个实验。对已有的MTL任务集和一个MTL网络,在训练时,extra tasks的training signals是随机提供的。
此时,如果MTL受益于“噪声”,那么该MTL网络将胜过STL网络;如果MTL受益于任务关联性,那么MTL网络的表现将不如STL网络。

实验证明,MTL要比STL更差。因此MTL一定是受益于相关任务的,这一点无需再质疑。

3. MTL的用途

3.1. Using the Future to Predict the Present

假设我们要设计一个肺炎诊断系统。该系统的输入是病人的体检数据(身高,体重,白细胞指标等),输出即是否得肺炎。

参加体检的有没患肺炎的:做了简单的检查就离开了;也有患肺炎入院的:入院后还进行了进一步的体检。
这两部分体检的数据,我们都有。前者就是所谓的"present",后者就是所谓的"future"。

前者是直接可用的,但后者是不能直接作为训练数据的!因为后者全部来源于肺炎病人,直接作为输入训练很有可能导致泛化能力的严重退化。

那么后者就要被浪费了吗?此时,MTL就提供了一个全新的方法:将这部分数据作为extra任务的输出标签。此时,该任务就可以帮助主任务更好地构建hidden layer representation。
MTL
实验表明,新构建的MTL任务,比STL任务的错误率要低5%以上。(参见Multitask learning P9)

更常见的情形是:来自"future"的数据没法在训练时实时获取,但可以在运行过程中获取而用于进一步调整模型。
比如,在自动驾驶任务中,交通标线lane markings是很重要的信息。虚实,单双,黄白,都有各自的意义。
但对于一辆正在行驶的车辆而言,它只能获取一定范围内的lane marking,远处的只能在事后获取。
假设我们将预测lane markings作为extra task,显然该任务对我们的主线任务有很大的帮助。我们可以将实时获取的lane markings作为之前预测结果的label,迭代训练我们的MTL模型。

3.2. Time Series Prediction

实现时序预测问题最简单的方法是:将每一个时刻对应一个输出。
这实际上就是我们的RNN。

3.3. Using Extra Tasks to Focus Attention

刚刚我们提到,lane markings对自动驾驶任务很重要。但在实际应用中,lane markings往往只占输入图片中的一小部分,并且在快速变化甚至消失,很容易被忽略。但它又很重要。
lane markings

为此,我们将预测标线作为extra task,强迫网络建立起与标线相关的support,这样主线任务能从中受益。

3.4. Quantization Smoothing

我们的训练数据中,几乎都是经过量化得到的。如果我们能补偿量化带来的精度损失,那么模型的预测精度将会提高。

  • 方案1:加入量化更细致的支线任务。
  • 方案2:加入量化方式与主线任务不同的支线任务。

回到我们的肺炎诊断模型。肺炎诊断是一个复杂的问题,但我们将其简单地归为二分类问题,实际上是非常不合理的。
为了增强模型的预测平滑性,我们可以增加一个支线任务:预测留院时间。
该支线任务非常复杂。高危病人既有可能长时间留园,也有可能很快死亡。因此,该任务强迫我们的网络学习更加复杂的映射。

3.5. Some Inputs Work Better as Outputs

刚刚提到,有些特征无法事先得到,或是容易被忽略,因此我们将其作为输出。还有一些特征,我们将其作为输出,比作为输入更好。
参见Multitask learning P21。
这是一个人为设计的问题,此外还有一些更自然的应用。比如,当特征中存在噪声时,作为输出通常比作为输入更好。我们所谓的Dropout方法,实际上就等价于在输出中增加噪声。

3.6. 其他MTL方法

  • KNN:KNN的关键在于衡量样本之间的距离。
    KNN
    在加入其他任务一起衡量距离后,表现会更好。参见Multitask learning P23。
  • Decision tree:在自上而下的推导过程中,主线任务和支线任务一起决定是否分叉。如果这些任务是相关的,那么决策会更合理。
    DT
    具体是计算information gain。可以引入参数lambda来控制支线任务的权重。

4. 讨论

4.1. Predictions for Multiple Tasks

MTL trains many tasks in parallel on one learner, but this does not mean one learned model should be used to make predictions for many tasks.
The reason for training multiple tasks on one learner is so one task can benefit from the information contained in the training signals of other tasks, not to reduce the number of models that must be learned.
比如我们的KNN和Decision tree,支线任务可以有权重。

这里举一个例子。NETtalk是MTL在1989年的一个代表性工作,可以根据输入的句子,同时学习phonemes和stresses,最终输出句子的英文读音。研究发现,当phoneme网络最优时,stress网络已经严重过拟合。
此时,我们应该给两个网络分配不同的学习率,或进行snapshot,不同时刻的网络给不同任务使用。

4.2. Architecture

Regularization methods such as weight decay can be used with MTL. By reducing the effective number of free parameters in the model, regularization promotes sharing.

Too strong a bias for sharing, however, can hurt performance.
MTL performance often drops if the size of the shared hidden layer is much smaller than the sum of the sizes of the STL hidden layers that would provide good performance on the tasks when trained separately.

No clear definition. 事实上,CVPR 2018的best paper还在讨论这一问题。
要注意的是,如果两个任务同时训练时互相促进,不能证明它们相关。
例如,如果在BP网络中增加噪声,那么网络的泛化能力会增强,因为这相当于给hidden layer增加了正则项。但显然噪声任务与主线任务无关。

4.4. Transfer Learning

Sequential transfer learning differ from MTL, where the goal is to learn a better model for one task by learning all available extra tasks in parallel. MTL is a kind of parallel transfer.

5. 番外:生物学启发

参考:顾险峰《人工智能中的联结主义和符号主义》

人工神经网络在20世纪80年代末和90年代初达到巅峰,随后迅速衰落,其中一个重要原因是深度神经网络的发展严重受挫。
人们发现,如果网络的层数加深,那么最终网络的输出结果对于初始几层的参数影响微乎其微,整个网络的训练过程无法保证收敛。

同时,人们发现大脑具有不同的功能区域,每个区域专门负责同一类的任务,例如视觉图像识别, 语音信号处理和文字处理等等。在这一阶段,计算机科学家为不同的任务发展出不同的算法。例如,为了语音识别,人们发展了隐马尔科夫链模型;为了人脸识别,发展了Gaber滤波器,SIFT滤波,马尔科夫随机场的图模型。因此,在这个阶段,人们倾向于发展专用(task-specific)算法。

但是在2000年后,一系列生物学突破打破了人类对大脑的认识。

  • 2000年,Jitendra Sharma等人发现小鼠的视觉、听觉神经系统是通用的。Sharma把幼年鼬鼠的视觉神经和听觉神经剪断,交换后接合,眼睛接到了听觉中枢,耳朵接到了视觉中枢。鼬鼠长大后,依然发展出了视觉和听觉。
  • 2009年,Vuillerme等人让盲人用舌头掌握了“视觉”。他们将摄像机的输出表示成二维微电极矩阵,放在舌头表面。盲人经过一段时间的学习训练,可以用舌头“看到”障碍物。
  • 2011年,Thaler等研究发现,盲人的视觉中枢经过训练,可以通过回声来探测并规避大的障碍物。

种种研究表明,大脑实际上是一台“万用学习机器”(Universal learning Machine)。那么,神经网络是否也应如此呢?

转载于:https://www.cnblogs.com/RyanXing/p/10482808.html


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

相关文章

GPT2(Language Models are Unsupervised Multitask Learners)论文阅读

1. 论文阅读 论文地址:Language Models are Unsupervised Multitask Learners 1.1 背景介绍 2019年OpenAI发布的模型,OpenAI在2018年的GPT1中给出了一种半监督的训练方法,在GPT2中针对如下问题做了升级: 以前机器学习训练代价大…

#Paper Reading# Language Models are Unsupervised Multitask Learners

论文题目: Language Models are Unsupervised Multitask Learners 论文地址: https://life-extension.github.io/2020/05/27/GPT技术初探/language-models.pdf 论文发表于: OpenAI 2019 论文所属单位: OpenAI 论文大体内容: 本文主要提出了GPT-2(Gener…

【论文阅读】Multitask Prompted Training Enables Zero-shot Task Generalization

前言 本文源自 ICLR 2022 原文地址:Multitask Prompted Training Enables Zero-shot Task Generalization Discussion 中提到的 FLAN 参考博文 【论文阅读】Finetuned Language Models Are Zero-Shot Learners_长命百岁️的博客-CSDN博客 Abstract 大模型在多种…

MultiTask Learning Survey

目录 一、常见Multi-Task 架构 二、MTL的一些优化方法 三、ExperimentConclusion 原文链接:MultiTask Survey 一、常见Multi-Task 架构 Hard和Soft区分:Hard共享底层参数,在高层提取中相互独立;Soft使用十字绣的形式&#xf…

Multitask Learning

参考 Multitask Learning - 云社区 - 腾讯云 1、单任务学习VS多任务学习 单任务学习:一次只学习一个任务(task),大部分的机器学习任务都属于单任务学习。多任务学习:把多个相关(related)的任务…

Multi-Task 多任务学习, 那些你不知道的事

作者 | 三和厂妹 来源 | 文末『阅读原文』处 概念 当在一个任务中要优化多于一个的目标函数[1] ,就可以叫多任务学习 一些例外 「一个目标函数的多任务」:很多任务中把loss加到一起回传,实质优化的是一个目标函数, 但优化的是多个任务&…

多任务学习综述:推荐系统多任务学习(multitask)的实战总结和常见问题(一)

多任务学习算法系列的主要内容是回顾和总结自己2019-2021间在深度学习多任务学习算法(multitask)的工业实践和遇到的常见问题,欢迎更多同学讨论和指正,同时也宣传一波我们组在推荐方向的工作成果——大规模推荐算法库PaddleRec(https://githu…

VS2012下载和安装

1.下载链接 https://pan.baidu.com/s/1YR7Xk9Zlv7zQWCsERdVgIQ 提取码:stvi 2.鼠标右击【Visual Studio2012】压缩包选择【解压到Visual Studio2012】。 3.打开解压后的文件夹,鼠标右击【vs_ultimate】选择【以管理员身份运行】。 4.点击【…】可更改安…

Visual Studio 2013 详细安装教程(安装+注册)

转载自:安装注册:https://jingyan.baidu.com/article/09ea3ede3b2496c0afde3944.html IE10报错解决办法:https://jingyan.baidu.com/article/ff42efa92f79cac19e2202cd.html 1.还是老样子,首先要下载安装文件,这里提供…

使用cubemx工具的STM32对外部flash(W25Q64)的简单编程

SPI SPI简介 SPI通信原理 SPI是串行外设接口(Serial Peripheral Interface)的缩写,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为…

stm32 W25QXX系列驱动 W25Q80 W25Q16 W25Q32 W25Q64 W25Q128 W25Q256

头文件 #ifndef W25QXX__H #define W25QXX__H #include "sys.h"#define W25Q80 0XEF13 #define W25Q16 0XEF14 #define W25Q32 0XEF15 #define W25Q64 0XEF16 #define W25Q128 0XEF17 #define W25Q256 0XEF18#define W25QXX_CS PAout(4)//指令表 #define W25X…

SPI专题(二)——STM32驱动FLASH(W25Q64)

前言: 为了方便查看博客,特意申请了一个公众号,附上二维码,有兴趣的朋友可以关注,和我一起讨论学习,一起享受技术,一起成长。 github:my github 注:博客所涉及的关于 st…

STM32系列(HAL库)——F103C8T6通过SPI方式读写W25Q64—(Flash存储模块)

1.软件准备 (1)编程平台:Keil5 (2)CubeMX (3)XCOM(串口调试助手) 2.硬件准备 (1)W25Q64模块 (2)F1的板子,本例使用经典F103C8T6 (3)ST-link 下载器 (4)USB-TTL模块 (5)杜邦线若干 3.模块资料 (1)模块简介: W25Q64(64M-bit)&#xff0c…

SPI协议学习Cubmx——读写Flash W25Q64

这是最好的时代,这是最坏的时代; 这是智慧的时代,这是愚蠢的时代; 这是信仰的时期,这是怀疑的时期; 这是光明的季节,这是黑暗的季节; 这是希望之春,这是失望之冬&#xf…

STM32使用QUADSPI读写外部Nor Flash(以W25Q64为例)

使用QUADSPI读写W25Q64 QUADSPI介绍硬件连接双闪存模式禁止双闪存模式使能 QUADSPI命令序列指令阶段地址阶段交替字节阶段空指令周期阶段数据阶段 QUADSPI主要信号接口协议模式单线SPI模式双线SPI模式四线SPI模式 使用QUADSPI操作W25Q64发送命令函数状态轮询函数读ID函数QUADSP…

W25Q64内部结构

和STM32片上一样 我们分析 函数接口: 擦除1个扇区 【参数必须是4096的倍数】 void SPI_FLASH_SectorErase(uint32_t SectorAddr) 擦除芯片全部 void SPI_FLASH_BulkErase(void) 写入一页【数据比256小】 pBuffer:待写入数据的指针 WriteAddr&#xff…

基于STM32F401RET6字库烧录(SPIW25Q64驱动)

目录 一、SPI&W25Q64 1-SPI介绍 2-初始化SPI 3-SPI数据接收和发送函数 4-验证SPI是否配置正确(读W25Q64的ID) 二、W25Q64简介与API函数 1 - W25Q64芯片介绍 2- W25Q64芯片管脚说明 3- W25Q64芯片工作原理 4- W25Q64芯片操作时序 三、字库烧…

STM32CubeMx开发之路—13使用SPI读写W25Q64

!!! 本文已同步到码云 - 点击此链接获取最新 - 可进入码云提交修改 !!! 附件 源码已放到码云 ! ! ! ( 请点击文首链接进入仓库 ) 运行环境 Windows10STM32CubeMX Version 5.2.0Keil5(MDK5) Version 5.28.0.0 简介 本例程主要讲解如何使用硬件IIC读写24C02 STM32CubeMx基本配…

STM32CubeMX系列08——SPI通信(W25Q64、NRF24L01无线模块)

文章目录 1. 准备工作1.1. 所用硬件1.2. SPI 简介1.3. 生成工程1.3.1. 创建工程选择主控1.3.2. 系统配置1.3.3. 配置工程目录 2. 读写EEPROM实验(W25Q64)2.1. W25Q64 简介2.2. 代码实现 3. NRF24L01无线模块通信3.1. 模块简介3.2. SPI 配置3.2.1. SPI1 配…

STM32驱动W25Q64读写数据

STM32驱动W25Q64读写数据 一.基本参数二.通信协议1、时序:2、代码: 三.引脚定义与接线1、引脚定义2、对应接线 四.主要代码五.操作步骤与现象六.总结 一.基本参数 1.采用…