背景:只专注于单个模型可能会忽略一些干系任务中可能提升目标任务的潜在信息,通过进行一定程度的共享不同任务之间的参数,可能会使原任务泛化更好。
广义的讲,只要loss有多个就算MTL,一些别名(joint learning,learning to learn,learning with auxiliary task)

Multi-task Learning(Review)多责任进修概述_模子_相干 智能问答

目标:通过权衡主任务与赞助的干系任务中的演习信息来提升模型的泛化性与表现。
从机器学习的视角来看,MTL可以看作一种inductive transfer(先验知识),通过供应inductive bias(某种对模型的先验假设)来提升模型效果。
比如,利用L1正则,我们对模型的假设模型倾向于sparse solution(参数要少)。
在MTL中,这种先验是通过auxiliary task来供应,更灵巧,见告模型倾向一些其他任务,终极导致模型会泛化得更好。

MTL Methods for DNNhard parameter sharing (此方法已经有26岁了<1993>)

在所有任务中共享一些参数(一样平常底层),在特界说务层(顶层)利用自己独占参数。
这种情形,共享参数得过拟合几率比较低(相对非共享参数),过拟合的几率是O(#tasks)[1].

soft parameter sharing

每个任务有自己的参数,末了通过对不同任务的参数之间的差异加约束,表达相似性。
比如可以利用L2, trace norm等。

优点及利用场景implicit data augmentation: 每个任务多少都有样本噪声,不同的任务可能噪声不同,终极多个任务学习会抵消一部分噪声(类似bagging的思想,不同任务噪声存在于各个方向,终极均匀就会趋于零)一些噪声很大的任务,或者演习样本不敷,维度高,模型可能无法有效学习,乃至无法无法学习到干系特色某些特色可能在主任务不好学习(比如只存在很高阶的干系性,或被其他成分抑制),但在赞助任务上好学习。
可以通过赞助任务来学习这些特色,方法比如hints(预测主要特色)[2]通过学习足够大的假设空间,在未来某些新任务中可以有较好的表现(办理冷启动),条件是这些任务都是同源的。
作为一种正则办法,约束模型。
所谓的inductive bias。
缓解过拟合,降落模型的Rademacher complexity(拟合噪声的能力,用于衡量模型的能力)

传统方法中的MTL (linear model, kernel methods, Bayesian algo),其紧张关注两点:

通过norm regularization使模型在任务之间具有稀疏性对多任务之间关系进行建模

1.1 Block-sparse regularization (mixed l1/lq norm)

目标:逼迫模型只考虑部分特色,条件为不同任务之间必须干系。

假设K个任务有相同的特色,和相同数量的模型参数。
形成一个矩阵A(DxK),D为参数维度,K为任务数,目标为这些任务只利用一些特色,也便是A的某些行也0。
(最大略的想法便是使其变为一个low rank的矩阵;或者利用L1正则,由于L1可以约束某些特色到0,如果我们想使某些行为0,则只要先对行聚合操作,再对聚合后的结果利用L1即可详细可以参考文章 [3]。

常日,利用lq norm 先对行(每个特色)进行约束,之后利用L1 norm再约束,便是mixer l1/lq norm。

发展:

group lasso[4]、 : l1/l2 norm,通过trace norm 办理l1/l2 norm非凸;之后有人对此提出了upper bound for using group lasso in MTL[5]当多个任务公共特色不多时,l1/lq norm可能没有elment-wise norm效果好。
有人提出了却合这两种方法,分解参数矩阵为A = S + B,对S利用lassso,对B利用l1/l_infinite。
[6]distributed version of group-sparse reguarization [7]

2.1 regularization way for learning task relationship

当任务之间干系性较弱,利用上述方法可能导致negative transfer(也便是负向效果)。
在此情景下,我们希望增加的先验知识是,某些任务之间是干系的,但是某些任务之间是干系性较差。
可以通过引入任务clustering来约束模型。
可以通过penalize 不同任务的parameter vectors 和他们的方差。
限定不同模型趋向于不同的各自 cluster mean vector。

类似的,比如SVM中引入bayesian方法,事先指定一些cluster,目标在最大化margin的同时使不同任务趋向于各自的cluster中央;[8]

指定了cluster,可以通过聚类方法(类内,类间,自己的繁芜度)对模型进行约束

有些场景下,任务可能不会涌如今同一个cluster,但存在潜在的相似构造,比如group-lasso在树构造和图构造的任务。

2.2 other methods for learning task relationship

KNN methods for task clustering. [9]semi-supervised learning for learning common structures of some related tasks. [10]多任务BNN,通过先验掌握多任务的相似,模型繁芜度大,可以利用sparse approximation贪心选择样本 [11];高斯过程中通过不同任务之间利用相同的covariance matrix和相同的先验(进而也降落繁芜度)[12]对每个task-specific layers 利用高斯先验,可以利用一个cluster的稠浊分布(事先定好)来匆匆使不同任务的相似 [13]进而,通过一个dirichlet process采样分布,使模型任务之间的相似性和cluster的数目。
相同cluster的任务利用同一个模型 [14]hierarchical Bayesian model,学习一个潜在的任务构造 [15]MTL extension of the regularized Perceptron,encodes task relatedness in a matrix. 之后可以通过不同正则对其限定(比如rank)[16]不同tasks属于不同的独立cluster,每个cluster存在于一个低维空间,每个cluster的任务共用同一个模型。
通过交替迭代学习不同cluster的分配权重和每个cluster的模型权重。
假界说务之间的绝对独立可能不太好 [17]假设两个不同cluster的两个任务之间存在重叠,存在一部分的latent basis tasks。
令每个任务的模型参数是latent basis tasks的线性组合,对latent basis tasks限定为稀疏的。
重叠部分掌握共享程度 [18]学习一小撮shared hypotheses,之后map each task to a single hypothesis [19]

DNN中的MTL

Deep Relation Network[20]

打算机视觉中,一样平常共享卷积层,之后是任务特定的DNN层。
通过对任务层设定先验,使模型学习任务之间的关系。

Fully-Adaptive Feature Sharing[21]

从一个大略构造开始,贪心地动态地加宽模型,使相似的模型聚簇。
贪心方法可能无法学到全局最优构造;每个分支一个任务无法学习任务之间的繁芜关系。

Cross-stitch Networks[22]

soft parameter sharing,通过线性组合学习前一层的输出,许可模型决定不同任务之间的分享程度

Low supervision[23]

探求更好的多任务构造,繁芜任务的底层该当被低级任务目标来监督(比如NLP前几层学习一个NER或POS赞助任务)

A Joint Many-task Model[24]

对多个NLP任务预先设定层级构造,之后joint learning

Weighting losses with uncertainty[25]

不考虑学习共享的构造,考虑每个任务的不愿定性。
通过优化loss(Gaussian likelihood with task-dependant uncertainty),调节不同tasks之间的相似性。

Tensor factorisation for MTL [26]

对每层参数进行分解,为shared和task-specific

Sluice Networks [27]

大杂烩(hard parameter sharing + cross stitch networks + block-sparse regularization + task hierarchy(NLP) ),使得模型自己学习哪些层,哪些子空间来共享,在哪层模型找到了inputs的最优表达。

当不同的任务干系性大,近似服从相同的分布,共享参数是有益的,如果干系性不大或者不干系的任务呢?

早期事情是预先为每对任务指定哪些层来分享,这种方法扩展性差且模型构造严重有偏;当任务干系性低落或须要不同level推理时,hard parameter sharing就弗成了。

目前比较火的是learning what to share(outperform hard parameter sharing);还有便是对任务层级进行学习在任务具有多粒度成分时也是有用的。

Auxiliary task

我们只关注主任务目标,但是希望从其他有效的赞助任务中获利!

目前选择一些赞助任务方法

Related task:常规思路(自动驾驶+路标识别;query classification+web search;坐标预测+物体识别;duration+frequency)Adversarial:在domain adaption,干系的任务可能无法获取,可以利用对抗任务作为negative task(最大化training error),比如赞助任务为预测输入的domain,则导致主任务模型学习的表征不能区分不同的domain。
Hints:前面提到的某些特色在某些任务不好学,选择赞助任务为predicting features(NLP中主任务为情绪预测,赞助任务为inputs是否包含积极或悲观的词;主任务name error detection,赞助任务为句子中是否有name)Focusing attention:使模型把稳到那些在任务中可能不随意马虎被把稳到的部分(自动驾驶+路标检测;面部识别+头部位置识别)Quantization smoothing:某些任务中,演习目标是高度离散化的(人为打分,情绪打分,疾病风险等级),利用离散程度较小的赞助任务可能是有帮助的,由于目标更平滑使任务更好学prediting inputs:有些场景下,可能不会选择某些特色,由于其不利于预估目标,但是这可能这些特色对模型的演习有一定的帮助,这种场景下,这些特色可以作为outputs而不是inputsUsing the future to predict the presnet:有些特色只有在决策之后才会有,比如自动驾驶时,当车途经一些物体才得到这些物体的数据;医疗中只有利用过药物才知此药物的效果。
这些特色不能作为inputs,但是可以用作赞助任务,来给主任务在演习过程中透露信息。
representation learning:auxiliary task大多都是潜在地学习一些特色表达,且一定程度上都利于主任务。
也可以显示地对此学习(利用一个学习迁移特色表达的赞助任务,比如AE)

那么,哪些auxiliary task是有用的呢?

auxiliary task背后的假设是赞助任务该当在一定程度上与主任务干系,利于主任务的学习。

那么如何衡量两个任务是否干系呢?

一些理论研究:

利用相同的特色做决策干系的任务共享同一个最优假设空间(having the same inductive bias)F-related: 如果两个任务的数据是通过一个固定分布经由一些变换得到 [28]分类边界(parameter vectors)靠近

任务是否相似不是非0即1的,越相似的任务,收益越大。
learning what to share许可我们暂时忽略理论上的不敷,纵然干系性不好的任务之间也能有所收益。
但是发展任务之间的相似性对我们在选择赞助任务上也是有绝对的帮助的。

MTL learning Tips紧凑分布均匀的label的赞助任务更好(from POS in NLP)[29]主任务演习曲线更快平稳,赞助任务平稳慢(还未平稳)[30]不同任务尺度不一样,任务最优学习率可能不同某个任务的输出可以作为某些任务的输入某些任务的迭代周期不同,可能须要异步演习(后验信息;特色选择,特色衍生任务等)整体loss可能被某些任务主导,须要全体周期对参数进行动态调度(通过引入一些不愿定性,每个任务学习一个噪声参数,统一所有丢失 [31]某些估计作为特色(交替演习)

总结

20多岁的hard parameter shareing还是很盛行,目前热点learning what to learn也很有代价,我们对tasks的理解(similarity, relationship, hierrarchy, benefit for MTL) 还是很有限的,希望往后有重大发展吧。

可研究方向learning what to sharemeasurement for similarity of tasksusing task uncertainty引入异步任务(特色学习任务),采取交替迭代演习学习抽象子任务;学习任务构造(类似强化里面的hierarchy learning)参数学习赞助任务More...

备注:本文学习资料紧张来自 An Overview of Multi-Task Learning in Deep Neural Networks

https://arxiv.org/abs/1706.05098

Reference

[1] A Bayesian/information theoretic model of learning to learn via multiple task sampling. http://link.springer.com/article/10.1023/A:1007327622663

[2] Learning from hints in neural networks. Journal of Complexity https://doi.org/10.1016/0885-064X(90)90006-Y

[3] Multi-Task Feature Learning http://doi.org/10.1007/s10994-007-5040-8

[4] Model selection and estimation in regression with grouped variables

[5] Taking Advantage of Sparsity in Multi-Task Learninghttp://arxiv.org/pdf/0903.1468

[6] A Dirty Model for Multi-task Learning. Advances in Neural Information Processing Systems https://papers.nips.cc/paper/4125-a-dirty-model-for-multi-task-learning.pdf

[7] Distributed Multi-task Relationship Learning http://arxiv.org/abs/1612.04022

[8] Regularized multi-task learning https://doi.org/10.1145/1014052.1014067

[9] Discovering Structure in Multiple Learning Tasks: The TC Algorithm http://scholar.google.com/scholar?cluster=956054018507723832&hl=en

[10] A Framework for Learning Predictive Structures from Multiple Tasks and Unlabeled Data

[11] Empirical Bayes for Learning to Learn

[12] Learning to learn with the informative vector machine https://doi.org/10.1145/1015330.1015382

[13] Task Clustering and Gating for Bayesian Multitask Learning https://doi.org/10.1162/153244304322765658

[14] Multi-Task Learning for Classification with Dirichlet Process Priors

[15] Bayesian multitask learning with latent hierarchies http://dl.acm.org.sci-hub.io/citation.cfm?id=1795131

[16] Linear Algorithms for Online Multitask Classification

[17] Learning with whom to share in multi-task feature learning

[18] Learning Task Grouping and Overlap in Multi-task Learning

[19] Learning Multiple Tasks Using Shared Hypotheses

[20] Learning Multiple Tasks with Deep Relationship Networks http://arxiv.org/abs/1506.02117

[21] Fully-adaptive Feature Sharing in Multi-Task Networks with Applications in Person Attribute Classification http://arxiv.org/abs/1611.05377

[22] Cross-stitch Networks for Multi-task Learning https://doi.org/10.1109/CVPR.2016.433

[23] Deep multi-task learning with low level tasks supervised at lower layers

[24] A Joint Many-Task Model: Growing a Neural Network for Multiple NLP Tasks http://arxiv.org/abs/1611.01587

[25] Multi-Task Learning Using Uncertainty to Weigh Losses for Scene Geometry and Semantics http://arxiv.org/abs/1705.07115

[26] Deep Multi-task Representation Learning: A Tensor Factorisation Approach https://doi.org/10.1002/joe.20070

[27] Sluice networks: Learning what to share between loosely related tasks http://arxiv.org/abs/1705.08142

[28] Exploiting task relatedness for multiple task learning. Learning Theory and Kernel Machines https://doi.org/10.1007/978-3-540-45167-9_41

[29] When is multitask learning effective? Multitask learning for semantic sequence prediction under varying data conditions http://arxiv.org/abs/1612.02251

[30] Identifying beneficial task relations for multi-task learning in deep neural networks http://arxiv.org/abs/1702.08303

[31] Multitask learning using uncertainty to weigh losses for scene geometry and senantics

作者 | Multi-task Learning(Review)多任务学习概述 - 知乎

版权声明

本文版权归《Anticoder》,转载请自行联系