0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

机器学习中的Multi-Task多任务学习

深度学习自然语言处理 ? 来源:深度学习自然语言处理 ? 作者:三和厂妹 ? 2021-01-07 14:39 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

概念

当在一个任务中要优化多于一个的目标函数[1] ,就可以叫多任务学习

一些例外

「一个目标函数的多任务」:很多任务中把loss加到一起回传,实质优化的是一个目标函数, 但优化的是多个任务,loss相加是多任务学习的一种正则策略,对多个任务的参数起一种类似与均值约束的作用[2],所以也叫multi-task

「多个目标函数的单任务」:一些NLP中用main-task和auxiliary-task 辅助任务,很多辅助任务的loss并不重要,个人觉得这种虽然是多个loss,但是就是为了main-task ,不应该算多任务

动机

应用上节省资源,一个模型跑多个任务,单倍的时间双倍的快乐

感觉上非常的直观,好不容易花了30分钟都出门了,肯定多逛几个个商场,顺便剪个头发做个指甲

从模型的角度,学习得的底层的概率分布通常是对多个任务都是有效的

两种常见方式

参数的硬共享机制:从几十年前开始到现在这种方式还在流行(Multitask Learning. Autonomous Agents and Multi-Agent Systems[3]),一般认为一个模型中任务越多,通过参数共享降低噪声导致过拟合的风险更低,在参数硬共享机制中loss直接相加就是一种最简单的均值约束。

参数的软共享机制:每个任务都由自己的模型,自己的参数。对模型间参数的距离进行正则化来保障参数空间的相似。

混合方式:前两种的混合

为什么会有效

1. 不同任务的噪声能有更好的泛化效果

由于所有任务都或多或少存在一些噪音,例如,当我们训练任务A上的模型时,我们的目标在于得到任务A的一个好的表示,而忽略了数据相关的噪音以及泛化性能。由于不同的任务有不同的噪音模式,同时学习到两个任务可以得到一个更为泛化的表示

2. 辅助特征选择作用

如果主任务是那种,噪音严重,数据量小,数据维度高,则对于模型来说区分相关与不相关特征变得困难。其他辅助任务有助于将模型注意力集中在确实有影响的那些特征上。

3. 特征交流机制

在不同的任务之间的特征交互交流,对于任务B来说很容易学习到某些特征G,而这些特征对于任务A来说很难学到。这可能是因为任务A与特征G的交互方式更复杂,或者因为其他特征阻碍了特征G的学习。

4. 相互强调(监督)机制

多任务学习更倾向于学习到大部分模型都强调的部分。学到的空间更泛化,满足不同的任务。由于一个对足够多的训练任务都表现很好的假设空间,对来自于同一环境的新任务也会表现很好,所以这样有助于模型展示出对新任务的泛化能力(Deep Multi-Task Learning with Low Level Tasks Supervised at Lower Layers[4]、Emotion-Cause Pair Extraction: A New Task to Emotion Analysis in Texts[5]),非常适合迁移学习场景。

5. 表示偏置机制

如归约迁移通过引入归约偏置来改进模型,使得模型更倾向于某些假设,能起到一种正则效果。常见的一种归约偏置是L1正则化,它使得模型更偏向于那些稀疏的解。在多任务学习场景中,这会导致模型更倾向于那些可以同时解释多个任务的解。

为什么无效

先说是不是,再问为什么.

在Identifying beneficial task relations for multi-task learning in deep neural networks[6]中,作者探究到底是什么让multi-task work, 作者使用严格意义上相同的参数用NLP任务做了对比实验,图中分别是两个任务结合时与单任务loss的对比,大部分多任务的效果比不上单任务,作者的结论是单任务的主要特征在起作用,那些多任务结合效果好的情况,是「主任务比较难学(梯度下降比较缓慢),辅助任务比价好学的时候,多任务会有好效果」

73f3b0ce-5036-11eb-8b86-12bb97331649.png

为什么会无效?因为所有有效的原因都有它的负向效果

不同任务的噪声提高泛化,在模型容量小的时候引入的噪声也无法忽视。

特征的选择,交流这些起作用的机制会产生一种负迁移(Negative Transfer),共享的信息交流的信息反而是一种误导信息

...

Muti-task的一些思路

1. 对任务间的不同强制加稀疏性约束的正则化项

如块稀疏正则化,对于不同任务的参数,加l1正则,或者l1/lx, x>1等的正则,起任务参数的选择,让模型自动去选择应该共享哪些参数, 在keras的multi-task框架中,就是多个任务的loss相加后,用一个优化器优化,就是这种思路

2. 对中间层添加矩阵先验,可以学习任务间的关系

3. 共享合适的相关结构

高层次监督(High Supervision),共享大部分结构,后面直接输出分叉那种共享(就是大多数人入手的multi-task),个人觉得除非有很精致的一些调整,感觉效果很难超多个single-task.

低层次监督(Low Supervision),Deep Multi-Task Learning with Low Level Tasks Supervised at Lower Layers中,在NLP中,作者使用deep bi-RNN低层开始对各个任务分别建模,不共享的部分模型更新时不受其他任务影响,效果不错。

4. 建模任务之间的关系

建模任务之间的关系有非常多的方式,如,加各种约束项,这个约束项,让不同任务的参数空间,尽量平均, 有很多方式花式拓展,正则也是一种约束项,loss相加也是一种建立任务之间关系的约束项目,如 Learning Multiple Tasks with Kernel Methods[7]对模型聚类 ,a是任务参数,让各种任务参数空间尽量靠近

a是各个任务的参数

特征交互,在 Emotion-Cause Pair Extraction: A New Task to Emotion Analysis in Texts 中,作者通过不同任务的高层特征交互,同时完成情感向判断和情感向原因提取,这跟有些多模态特征fusion的方式很相似,

74191f6c-5036-11eb-8b86-12bb97331649.png

Cross-Stitch Networks for Multi-Task Learning[8]将两个独立的网络用参数的软共享方式连接起来, 用所谓的十字绣单元来决定怎么将这些任务相关的网络利用其他任务中学到的知识,并与前面层的输出进行线性组合。

74730a0e-5036-11eb-8b86-12bb97331649.png

串行的联合多任务模型(A Joint Many-Task Model)

NLP 领域中,各个任务间经常是有层级关系,A Joint Many-Task Model: Growing a Neural Network for Multiple NLP Tasks[9]中在多任务并行的同时,加了串行结构,例如具体任务:词性分析 POS->语块分析 CHUNK->依存句法分析 DEP->文本语义相关 Relatedness->文本蕴涵 Entailment,每个子任务都偶有自己的loss, 然后又会作为其他任务的输入

74b6845a-5036-11eb-8b86-12bb97331649.png

5. 用loss调整任务之间的关系

Multi-Task Learning Using Uncertainty to Weigh Losses for Scene Geometry and Semantics[10] 用同方差不确定性对损失进行加权(Weighting losses with Uncertainty),作者认为最佳权值与不同任务的衡量规模和噪声相关,而噪声中除了认知不确定性,异方差不确定性,这些取决于数据的不确定性外,作者把同方差不确定性作为噪声来对多任务学习中的权重进行优化,作者根据噪声调整每个任务在代价函数中的相对权重,噪声大则降低权重,反之。

GradNorm: Gradient Normalization for Adaptive Loss Balancing in Deep Multitask Networks[11] 基于不同任务loss的降低速度来动态调整权值, 作者定义了另外一个专门针对权值的优化函数

是每个任务的loss相对第一步loss的优化程度, 是每一步 对 task 任务的梯度,即如果某个任务的优化程度小,这个loss会超那么就调大这个任务的权值优化,达到个loss学习程度的平衡

应用|适用任务

辅助任务,相关性任务,对抗性任务....等[12]

责任编辑:xj

原文标题:Multi-Task 多任务学习, 那些你不知道的事

文章出处:【微信公众号:深度学习自然语言处理】欢迎添加关注!文章转载请注明出处。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • AI
    AI
    +关注

    关注

    88

    文章

    35476

    浏览量

    281271
  • 多任务
    +关注

    关注

    0

    文章

    18

    浏览量

    9231
  • 机器学习
    +关注

    关注

    66

    文章

    8510

    浏览量

    134855

原文标题:Multi-Task 多任务学习, 那些你不知道的事

文章出处:【微信号:zenRRan,微信公众号:深度学习自然语言处理】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    FPGA在机器学习的具体应用

    ,越来越多地被应用于机器学习任务。本文将探讨 FPGA 在机器学习
    的头像 发表于 07-16 15:34 ?1199次阅读

    机器学习模型市场前景如何

    当今,随着算法的不断优化、数据量的爆炸式增长以及计算能力的飞速提升,机器学习模型的市场前景愈发广阔。下面,AI部落小编将探讨机器学习模型市场的未来发展。
    的头像 发表于 02-13 09:39 ?394次阅读

    嵌入式机器学习的应用特性与软件开发环境

    作者:DigiKey Editor 在许多嵌入式系统,必须采用嵌入式机器学习(Embedded Machine Learning)技术,这是指将机器
    的头像 发表于 01-25 17:05 ?704次阅读
    嵌入式<b class='flag-5'>机器</b><b class='flag-5'>学习</b>的应用特性与软件开发环境

    传统机器学习方法和应用指导

    在上一篇文章,我们介绍了机器学习的关键概念术语。在本文中,我们会介绍传统机器学习的基础知识和多种算法特征,供各位老师选择。 01 传统
    的头像 发表于 12-30 09:16 ?1254次阅读
    传统<b class='flag-5'>机器</b><b class='flag-5'>学习</b>方法和应用指导

    如何选择云原生机器学习平台

    当今,云原生机器学习平台因其弹性扩展、高效部署、低成本运营等优势,逐渐成为企业构建和部署机器学习应用的首选。然而,市场上的云原生机器
    的头像 发表于 12-25 11:54 ?485次阅读

    zeta在机器学习的应用 zeta的优缺点分析

    在探讨ZETA在机器学习的应用以及ZETA的优缺点时,需要明确的是,ZETA一词在不同领域可能有不同的含义和应用。以下是根据不同领域的ZETA进行的分析: 一、ZETA在机器
    的头像 发表于 12-20 09:11 ?1191次阅读

    cmp在机器学习的作用 如何使用cmp进行数据对比

    机器学习领域,"cmp"这个术语可能并不是一个常见的术语,它可能是指"比较"(comparison)的缩写。 比较在机器学习的作用 模型
    的头像 发表于 12-17 09:35 ?939次阅读

    傅立叶变换在机器学习的应用 常见傅立叶变换的误区解析

    傅里叶变换在机器学习的应用 傅里叶变换是一种将信号分解为其组成频率分量的数学运算,它在机器学习
    的头像 发表于 12-06 17:06 ?1108次阅读

    什么是机器学习?通过机器学习方法能解决哪些问题?

    计算机系统自身的性能”。事实上,由于“经验”在计算机系统主要以数据的形式存在,因此机器学习需要设法对数据进行分析学习,这就使得它逐渐成为智能数据分析技术的创新源之一,
    的头像 发表于 11-16 01:07 ?1007次阅读
    什么是<b class='flag-5'>机器</b><b class='flag-5'>学习</b>?通过<b class='flag-5'>机器</b><b class='flag-5'>学习</b>方法能解决哪些问题?

    NPU与机器学习算法的关系

    在人工智能领域,机器学习算法是实现智能系统的核心。随着数据量的激增和算法复杂度的提升,对计算资源的需求也在不断增长。NPU作为一种专门为深度学习机器
    的头像 发表于 11-15 09:19 ?1320次阅读

    NPU在深度学习的应用

    设计的硬件加速器,它在深度学习的应用日益广泛。 1. NPU的基本概念 NPU是一种专门针对深度学习算法优化的处理器,它与传统的CPU和GPU有所不同。NPU通常具有高度并行的处理能力,能够高效地执行深度
    的头像 发表于 11-14 15:17 ?2020次阅读

    eda在机器学习的应用

    机器学习项目中,数据预处理和理解是成功构建模型的关键。探索性数据分析(EDA)是这一过程不可或缺的一部分。 1. 数据清洗 数据清洗 是机器学习
    的头像 发表于 11-13 10:42 ?958次阅读

    具身智能与机器学习的关系

    (如机器人、虚拟代理等)通过与物理世界或虚拟环境的交互来获得、发展和应用智能的能力。这种智能不仅包括认知和推理能力,还包括感知、运动控制和环境适应能力。具身智能强调智能体的身体和环境在智能发展的重要性。 2. 机器
    的头像 发表于 10-27 10:33 ?1104次阅读

    人工智能、机器学习和深度学习存在什么区别

    人工智能指的是在某种程度上显示出类似人类智能的设备。AI有很多技术,但其中一个很大的子集是机器学习——让算法从数据中学习
    发表于 10-24 17:22 ?3044次阅读
    人工智能、<b class='flag-5'>机器</b><b class='flag-5'>学习</b>和深度<b class='flag-5'>学习</b>存在什么区别

    【《时间序列与机器学习》阅读体验】+ 时间序列的信息提取

    本人有些机器学习的基础,理解起来一点也不轻松,加油。 作者首先说明了时间序列的信息提取是时间序列分析的一个重要环节,目标是从给定的时间序列数据中提取出有用的信息和特征,以支持后续的分析和预测任务,可以
    发表于 08-14 18:00