我是靠谱客的博主 体贴路灯,最近开发中收集的这篇文章主要介绍多任务学习(Multi-Task Learning),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

  本节主要聊聊从单任务到多任务 (Multi-Task) 的机器学习。

  那什么是Multi-Task Learning呢?我们又是怎么来做这个Multi-Task Learning的呢?

What is Multi-Task Learning?

  首先我们需要知道什么是一个task呢?在一个task里面我们会有一个量化的指标,有这个task生成出来的数据,以及我们会有一个modeloptimize我们要的指标,base on 这些数据上面。

  一个task是一个singleinput source,希望learn an output target,也就是输入一个向量,输出一个y,去做一个正常的拟合。

  Multi-task Learning (MTL) 可以表示为:

  • single input source → rightarrow multiple output targets

  比如输入一段文本,输出这段文本的类别是什么,分类问题 (这段文本属于什么题材、感情色彩怎么样等等这些方面)。

  • multiple input sources → rightarrow single output target.

  这种多个输入source,单个输出source的情况有:输入各种题材的文章(新闻类别、淘宝评论等等这些) 需要输出文章情感是positive还是negative的。

  • or a mixture of both

  当然也可以是上述两种情况的混合。

Why it Works?

  为么multi-taskwork,为什么我们要去做这么一件复杂的事情?原因就是我们希望在多个task上面去找到一些共性,或者说找到一些区别,我们利用这些共性,就相当于我们会多了一些数据。或者说task之间有一些协同,能够获得更好的performance,或者说是对于每一个task我们需要更少的数据就能达到较好的效果。

  • 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.

  在multi-task中,往往是多个task一起学习,而在transfer learninglearning to learn里面,在是否一起学习这个问题上会有点不一样。

  我们希望在所有task上面的performance得到保证,但是有于整体的performance上升,可能会有小部分的task性能牺牲。

  • This can result in improved learning efficiency and prediction accuracy for the task-specific models, when compared to training the models separately.

  上述multi-task能做成功的假设是希望部分task之间具备相关性。数据之间具备共性,能够相互参考。

  • All the tasks in learning, or at least a subset of them, are associated with each other

  • Implicit data augmentation

  这些数据之间可以做个implicit data augmentation (隐式数据增强),使得我们获得更多的训练数据。那我们如何从其它task上面借鉴数据过来,做数据增强呢?

  • Eavesdropping

  直接从pattern上面做,比如某些feature G G G,它在B task上面能够很容易地去学出来,但在A task上面很难去学出来,所以我们可以通过B task学出来的一些特征去用在A task,能够improve A task上的performance。

  some features G G G are easy for task B but difficult for A,through MTL, we can allow A to learn G G G from B.

  • Representation bias

  prefer more general representations,希望每个model在学习每个task的时候能够把这个数据表征更加generalrepresentation,而不是在某一个task上特殊的表征。希望能够在很多task上面做的很好,这项就能帮助其他的task

Related Research Fields

  再来比较一下Transfer learninglearning to learn

  • Transfer learning (TL)

  Multi-task是希望把每个task都做好,而在transfer learning里面会有primary tasksecondary task,最后的performance只看在primary task上的performance,其它所有的task都是辅助型的。主要可以分为以下几点:

  1. The primary task and auxiliary tasks; can be seen as a special case of MTL, which treats tasks equally
  2. Assumption: the associated secondary task can provide extra information to the primary task, and improves the generalization of the main task; almost same as MTL
  3. Asymmetric MTL: a new task is arrived when multiple tasks have been learned jointly (当一个新的task来了之后怎么快速去学习?)
  • Learning-to-learn(LTL)

  元学习 (Learning-to-learn)说的是在一次一次地学习过程中积累了很多经验,当碰到一个新的task,如何利用这些已有的经验快速学习。

  LTL aims to perform a new task by exploiting the knowledge acquired when solving previous tasks

Multi-Task Formulation

  这个时候会有一个非常generalformulation,先说一下大概的框架,之后再细化:

  我们现在有 m m mtask,每一个task相应地会有 N m N_{m} Nm个数据 X m X^{m} Xm,以及 D D Ddimensionfeature,input matrix of the m-th task 可以表示为如下形式:

X m = R N m × D mathbf{X}^{m} = mathbb{R}^{N_{m} times D} Xm=RNm×D

  label y m y^{m} ym N m × 1 N_{m} times 1 Nm×1的这样一个向量 (corresponding output vector ):

y m ∈ R N m × 1 boldsymbol{y}^{m} in mathbb{R}^{N_{m} times 1} ymRNm×1

  考虑回归问题 (for regression problem):

y m ≈ X m w m boldsymbol{y}^{m} approx mathbf{X}^{m} boldsymbol{w}^{m} ymXmwm

  其中 w m w^{m} wm是一个 D D D 维的feature vector所对应的参数vector,我们会在每一个task上面得到一个loss function L L L,以及我们最后会performer一个regularization在整个weight matrix上面,weight matrix就是每一个task上的 D D D 维的feature vector所对应的weight vector w i w^{i} wi,总共会有 [ w 1 , ⋯   , w M ] [w^{1},cdots ,w^{M}] [w1,,wM]这个多个vector,把他排在一起变成一个矩阵。loss function L L L表示为:

min ⁡ W = [ w 1 ⋯ w M ] ∑ m = 1 M L ( X m , y m , w m ) + λ Reg ⁡ ( W ) min _{mathbf{W}=left[boldsymbol{w}^{1} cdots boldsymbol{w}^{M}right]} sum_{m=1}^{M} Lleft(mathbf{X}^{m}, boldsymbol{y}^{m}, boldsymbol{w}^{m}right)+lambda operatorname{Reg}(mathbf{W}) W=[w1wM]minm=1ML(Xm,ym,wm)+λReg(W)

   N m N_{m} Nm 表示 number of samples, D D D 表示number of features, M M M 表示number of tasks。

  为了让上述的multi-task框架更加general,可以应用于不同的场景,假设每一个task都是Homogeneous的 (Feature and parameter spaces of these tasks are the same),每个task的feature都是一样的,因此参数的space也是一样的,取值不同而已。这种情况我们可以去做比较general的case,如果不一样的话,也能做,但是这些方法就没有共通性,去apply到其它的场景上去。

Questions in MTL

  那我们如何perform Multi-task learning?那到底什么时候我们要去做multi-task learning?

  • When to share knowledge?

  也就是什么时候做single-task or multi-task? 就是每个task 独立学习还是做multi-task joint learning?很多时候会依赖与domain expert,这种场景下其他的task会不会帮到你?一起成长?或者perform一些model selection,道理哪些model适合去做multi-task improvement?这看起来好像都是一些experts的knowledge。或者use multi-task models which can degenerate to the single-task model,比如multi-task 发现合起来训练还不如每个task 单独拿出来learn的效果好。

  • What to share?(sharing through which approach)

  那到底可以去share什么呢?比如某些重要的feature (feature-level (feature-based) ) 去share,或者哪些instance非常重要 (instance-level (instance-based) ),以及这个task和另外一个task存在什么样的关系 (task-level (parameter-based))?

An Typical Example of MTL

  The most common multi-task learning objective 举一个具体的例子来说明一下,For two tasks, regularize on the task parameters:

min ⁡ w 1 , w 2 α L ( Y 1 , f w 1 ( X 1 ) ) + ( 1 − α ) L ( Y 2 , f w 2 ( X 2 ) ) + λ 1 ( ∥ w 1 ∥ 2 + ∥ w 2 ∥ 2 ) + λ 2 ∥ w 1 − w 2 ∥ 2 begin{aligned} min _{boldsymbol{w}^{1}, boldsymbol{w}^{2}} & alpha Lleft(mathbf{Y}^{1}, f_{boldsymbol{w}^{1}}left(mathbf{X}^{1}right)right)+(1-alpha) Lleft(mathbf{Y}^{2}, f_{boldsymbol{w}^{2}}left(mathbf{X}^{2}right)right) \ &+lambda_{1}left(left|boldsymbol{w}^{1}right|^{2}+left|boldsymbol{w}^{2}right|^{2}right)+lambda_{2}left|boldsymbol{w}^{1}-boldsymbol{w}^{2}right|^{2} end{aligned} w1,w2minαL(Y1,fw1(X1))+(1α)L(Y2,fw2(X2))+λ1(w12+w22)+λ2w1w22

  如上公式所示,对于两个task,有两套参数,分别在两个task上面做modelingloss函数可以表示为上公式所示。最后加上两套参数的距离 ∣ ∣ w 1 − w 2 ∣ ∣ ||boldsymbol{w}^{1}-boldsymbol{w}^{2}|| w1w2做正则化 (Soft parameter sharing),比如说先学task 1再学task 2,那么task 1的参数可以用于辅助task 2的参数进行学习。

Non-Neural Models

  在Neural Methods里面更多的是参数方面的共享,在非参数层面可以做一些难的case,更多时候我们用linear model去做一些尝试。

  • Formulation

min ⁡ W = [ w 1 ⋯ w M ] ∑ m = 1 M L ( X m , y m , w m ) + λ Reg ⁡ ( W ) min _{mathbf{W}=left[boldsymbol{w}^{1} cdots boldsymbol{w}^{M}right]} sum_{m=1}^{M} Lleft(mathbf{X}^{m}, boldsymbol{y}^{m}, boldsymbol{w}^{m}right)+lambda operatorname{Reg}(mathbf{W}) W=[w1wM]minm=1ML(Xm,ym,wm)+λReg(W)

  上式中的 ∑ m = 1 M L ( X m , y m , w m ) sum_{m=1}^{M} Lleft(mathbf{X}^{m}, boldsymbol{y}^{m}, boldsymbol{w}^{m}right) m=1ML(Xm,ym,wm)是data fidelity term:computes how well the target predictions match with the ground truth targets. 表示fitdata的精准度。第二项是Regularization term,表示weight matrixtask之家怎么去做正则化,regularizes the weight matrix to garner the relationship among different learning tasks .

  1. Data Fidelity Term

  multi-task有很多种形式,具体可以分为以下几种情况:

在这里插入图片描述

  • SIMO: 这种情况can be reduced to single-task learning (multi-class learning),可以把loss看成是多个single-task相加,在regularization上面需要处理一些参数共享。
  • MISO: 在这种多输入单输出的情形下cannot be simply reduced to single-task learning (other data sources maybe not available while predicting) ,因为它是一个singleoutput
  1. Regularization Term

  在Regularization项上面,主要有Feature-levelTask-level上的regularization

  在feature-level上面主要包括两种:feature selectionfeature transformation

  • Feature Selection
  1. Lasso

min ⁡ W = [ w 1 ⋯ w M ] ∑ m = 1 M L ( X m , y m , w m ) + λ ∣ ∣ W ∣ ∣ 1 min _{mathbf{W}=left[boldsymbol{w}^{1} cdots boldsymbol{w}^{M}right]} sum_{m=1}^{M} Lleft(mathbf{X}^{m}, boldsymbol{y}^{m}, boldsymbol{w}^{m}right)+lambda ||boldsymbol{W}||_{1} W=[w1wM]minm=1ML(Xm,ym,wm)+λW1

  其参数的图形化表示如下所述:

在这里插入图片描述

  每一列表示一个task的参数,每一行表示每个feature的位置表示的那个参数。当采用 L 1 L_{1} L1 regularization 时 ∣ ∣ w ∣ ∣ = ∑ i j ∣ w i , j ∣ ||w|| = sum_{ij}|w_{i,j}| w=ijwi,j,在图形上表示如下:

在这里插入图片描述

  其参数与目标函数会相切到顶点,使得其 w 1 w_{1} w1等于0,进而使得某些feature失活,从而达到feature selection的目的。但是这种方法并不会找到feature之间的correspond,有时候一个feature对某个task比较重要,但是从整体上来看,是有可能会把它剔除掉的。

  上述过程并没有显示地去选择action,而是把整个task看成一个整体,然后去选feature

  1. Group sparsity constraint

min ⁡ W = [ w 1 ⋯ w M ] ∑ m = 1 M L ( X m , y m , w m ) + λ ∣ ∣ W ∣ ∣ p , q min _{mathbf{W}=left[boldsymbol{w}^{1} cdots boldsymbol{w}^{M}right]} sum_{m=1}^{M} Lleft(mathbf{X}^{m}, boldsymbol{y}^{m}, boldsymbol{w}^{m}right)+lambda ||boldsymbol{W}||_{p,q} W=[w1wM]minm=1ML(Xm,ym,wm)+λWp,q

  在这里我们希望找到新的task feature之间的联系。通过定义新的一种regularization ∣ ∣ W ∣ ∣ p , q ||boldsymbol{W}||_{p,q} Wp,q

∣ ∣ [ ∣ ∣ w 1 ∣ ∣ p , ⋯   , ∣ ∣ w D ∣ ∣ p ] ∣ ∣ q ||[||boldsymbol{w}_{1}||_{p},cdots,||boldsymbol{w_{boldsymbol{D}}||_{p}}]||_{q} [w1p,,wDp]q

  对每个参数 w 1 , ⋯ w D boldsymbol{w}_{1}, cdots boldsymbol{w}_{D} w1,wD先求 p p p范数,之后再组成一个向量求 q q q范数。

在这里插入图片描述

  注意这里是脚标,表示每一个feature在每一个task上的weight w i w_{i} wi,之后再做 q q q范数的时候相当于是均衡不同的task之间的关系(比如删掉某一个特征 w i w_{i} wi,而实现feature selection)。

  enforces row-wise sparsity, i.e., encourages all-zero-value rows

   equivalent to joint feature selection for all the learning tasks

  1. Exclusive lasso [Zhou et al.]

min ⁡ W = ∑ m = 1 M L ( X m , y m , w m ) + λ ∣ ∣ W ∣ ∣ 1 , 2 2 min_{boldsymbol{W}} = sum_{m=1}^{M} Lleft(mathbf{X}^{m}, boldsymbol{y}^{m}, boldsymbol{w}^{m}right)+lambda ||boldsymbol{W}||_{1,2}^{2} Wmin=m=1ML(Xm,ym,wm)+λW1,22

   每一个feature 只是在部分task上面发挥作用,不是在所有task上面发挥作用,使得某些feature只是在某些task上面会有作用。

   其中:

W = [ w 1 , ⋯   , w M ] boldsymbol{W} = [w^{1},cdots , w^{M}] W=[w1,,wM]

∣ ∣ W ∣ ∣ p , q = ∣ ∣ [ ∣ ∣ w 1 ∣ ∣ p , ⋯   , ∣ ∣ w D ∣ ∣ p ] ∣ ∣ q ||boldsymbol{W}||_{p,q} = ||[||boldsymbol{w}_{1}||_{p},cdots,||boldsymbol{w_{boldsymbol{D}}||_{p}}]||_{q} Wp,q=[w1p,,wDp]q

   squared l 1 , 2 mathcal {l_{1,2}} l1,2 -norm :可以encourages useful features in different tasks don’t overlap ;assumes #useful features in tasks are close

  1. Robust multi-task feature learning

min ⁡ P , Q ∑ m = 1 M L ( X m , y m , ( p m + q m ) ) + λ 1 ∥ P ∥ 2 , 1 + λ 2 ∥ Q T ∥ 2 , 1 min _{mathbf{P}, mathbf{Q}} sum_{m=1}^{M} Lleft(mathbf{X}^{m}, boldsymbol{y}^{m},left(boldsymbol{p}^{m}+boldsymbol{q}^{m}right)right)+lambda_{1}|mathbf{P}|_{2,1}+lambda_{2}left|mathbf{Q}^{mathrm{T}}right|_{2,1} P,Qminm=1ML(Xm,ym,(pm+qm))+λ1P2,1+λ2QT2,1

   把feature weight看成两个两个matrix相加 W = P + Q boldsymbol{W} = boldsymbol{P} +boldsymbol{Q} W=P+Q,在第一个matrix P boldsymbol{P} P 上面perform 2,1这样一个regularization,每一个feature对所有的task做一个selection,要么这个feature都要,要么都不要。

   在第二个matrix Q boldsymbol{Q} Q 上面去做一个转置先,再做2,1的操作,相当于是在列(Colum)上面做selection。
在这里插入图片描述

   这种操作意思是有些task根本就不重要,它对于其它任何的task没有任何帮助,不需要它去帮助其它task

   P ∈ R D × M P in mathbb{R}^{D times M} PRD×M imposes row (feature) sparsity

   Q ∈ R D × M Q in mathbb{R}^{D times M} QRD×M imposes column (task) sparsity, which identifies outlier tasks

   上述方法不仅做了feature selection,还做了task selection,使得整体效果更加robust一些。

参考文献:Gong, Pinghua, JiepingYe, and ChangshuiZhang. "Robust multi-task feature learning."KDD 2012.

  • Feature Transformation

   做feature需要feature比较独立,能够较好地表征data。比如两个feature相关性比较高的话,它其实应该被设计成一个feature

   In our previous discussion, we mainly assume that tasks are related in the original feature space ,However, it might be better to first transform the original features into another feature space .

min ⁡ A , B ∑ m = 1 M L ( X m , y m , B a m ) + λ ∥ A ∥ 2 , 1  s.t.  B T B = I min _{mathbf{A}, mathbf{B}} sum_{m=1}^{M} Lleft(mathbf{X}^{m}, boldsymbol{y}^{m}, mathbf{B} boldsymbol{a}^{m}right)+lambda|mathbf{A}|_{2,1} text { s.t. } mathbf{B}^{mathrm{T}} mathbf{B}=mathbf{I} A,Bminm=1ML(Xm,ym,Bam)+λA2,1 s.t. BTB=I

  所以我们可以先去perform transformation matrix B B B,相当于先做一个线性变换,然后基于这个transform的新的space,再去perform之前的一个操作。 A A A 表示transform之后的空间。

  其中 B ∈ R D × D B in mathbb{R}^{D times D} BRD×D the orthogonal transformation matrix; a m ∈ R D × 1 a^{m} in mathbb{R}^{D times 1} amRD×1 the model parameters for the m-th task after feature transformation.

Comparison

  • Feature selection

    • a special case of feature transformation
    • better interpretation
  • Feature transformation

    • usually can fit the training data better, more capacity
    • better performance if there is no overfitting

  对于Task-level,就相当于是对一列做操作,feature是对一行做操作。

Deep MTL

  在Deep MTL中我们的每个model都是一个neural network,在深度多任务学习中更多是做一种参数share

在这里插入图片描述

  比如第一种是hard parameter sharing,前几层神经网络参数share在一起,soft parameter sharing,比如建立额外的高斯函数,使得参数之间尽可能靠经一些,不要让他们完全相等,但是让他们之间的距离接近一些;shared-private method中每个task自己在学习,然后与主干网络做一些交互、对比等等。

Hard Parameter Sharing

  • Fully-adaptive feature sharing [Lu et al., 2016]

在这里插入图片描述

  上述图片流程就是学习过程,可以学出来哪些task之间相关。

  1. a bottom-up approach that starts with a thin network ;
  2. dynamically widens it greedily during training using a criterion that promotes grouping of similar tasks
  3. however, the greedy method might not be able to discover a model that is globally optimal
  • A joint many-task model [Hashimoto et al., 2016]
    在这里插入图片描述

Soft Parameter Sharing

  • Dynamic Multi-Level Multi-Task Learning [Guo et al., ACL 2018]

在这里插入图片描述

Shared-Private Method

  • Deep relation networks [Long and Wang et. al., 2015]

在这里插入图片描述

  1. shared-private part: Bayesian models, matrix priors
  2. relies on a pre-defined structure for sharing

Comparison

  • Hard parameter sharing

    • greatly reduces the risk of overfitting
    • but may reduce the multi-task model capacity
  • Soft parameter sharing

    • parameters of models are regularized in order to encourage knowledge sharing
    • Shared-private method

Training Strategies

  那是如何来训练这些task呢?可以分为以下三种:

  1. (Random) round robin

  随机选择一个task来学。

  1. (Anti) curriculum learning

  先学习简单地task,之后再学习难的task。有时候会先学难的task,再学简单地task。

  1. Dynamic allocation

  根据当前task的学习情况再去决定下一个task学什么。

  还有一些其它的方法:

  • Weighting losses with uncertainty [Kendall et al., 2017]

在这里插入图片描述

  dynamically adjust each task’s relative weight in the cost function with task-dependent uncertainty (variance).

  比如有些task学习出来的model variance会特别大,performance经常变,于是将其在最后multi-task上的weight变小,学出来的task没有什么意义,不能够可依赖。

Conclusions

  • Feature-level

    • feature selection
    • feature transformation
  • Task-level

    • task clustering
    • low-rank
    • task relation learning
  • MTL for deep learning

    • hard parameter sharing
    • soft parameter sharing
    • shared-private method
    • neural architecture search, etc.

Future Work

  • Outlier tasks

  • there lacks principled ways and theoretical analyses to study the resulting negative effects

  • asymmetric MTL

  • Non-supervised learning

    • semi-supervised, activate, unsupervised learning
    • multi-view learning
    • reinforcement learning
    • other areas in AI: logic and planning

最后

以上就是体贴路灯为你收集整理的多任务学习(Multi-Task Learning)的全部内容,希望文章能够帮你解决多任务学习(Multi-Task Learning)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(46)

评论列表共有 0 条评论

立即
投稿
返回
顶部