概述
本节主要聊聊从单任务到多任务 (Multi-Task) 的机器学习。
那什么是Multi-Task Learning呢?我们又是怎么来做这个Multi-Task Learning的呢?
What is Multi-Task Learning?
首先我们需要知道什么是一个task
呢?在一个task
里面我们会有一个量化的指标,有这个task
生成出来的数据,以及我们会有一个model
去optimize
我们要的指标,base on
这些数据上面。
一个task
是一个single
的input 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-task
会work
,为什么我们要去做这么一件复杂的事情?原因就是我们希望在多个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 learning
和learning 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的时候能够把这个数据表征更加general
的representation
,而不是在某一个task
上特殊的表征。希望能够在很多task
上面做的很好,这项就能帮助其他的task
。
Related Research Fields
再来比较一下Transfer learning
和learning to learn
。
- Transfer learning (TL)
Multi-task
是希望把每个task都做好,而在transfer learning
里面会有primary task
和secondary task
,最后的performance
只看在primary task
上的performance
,其它所有的task
都是辅助型的。主要可以分为以下几点:
- The primary task and auxiliary tasks; can be seen as a special case of MTL, which treats tasks equally
- 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
- 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
这个时候会有一个非常general
的formulation
,先说一下大概的框架,之后再细化:
我们现在有
m
m
m个task
,每一个task
相应地会有
N
m
N_{m}
Nm个数据
X
m
X^{m}
Xm,以及
D
D
D个dimension
的feature
,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} ym∈RNm×1
考虑回归问题 (for regression problem):
y m ≈ X m w m boldsymbol{y}^{m} approx mathbf{X}^{m} boldsymbol{w}^{m} ym≈Xmwm
其中
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=[w1⋯wM]minm=1∑ML(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(∥∥w1∥∥2+∥∥w2∥∥2)+λ2∥∥w1−w2∥∥2
如上公式所示,对于两个task
,有两套参数,分别在两个task
上面做modeling
,loss
函数可以表示为上公式所示。最后加上两套参数的距离
∣
∣
w
1
−
w
2
∣
∣
||boldsymbol{w}^{1}-boldsymbol{w}^{2}||
∣∣w1−w2∣∣做正则化 (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=[w1⋯wM]minm=1∑ML(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 matrix
在task
之家怎么去做正则化,regularizes the weight matrix to garner the relationship among different learning tasks .
- 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) ,因为它是一个
single
的output
。
- Regularization Term
在Regularization
项上面,主要有Feature-level
和 Task-level
上的regularization
。
在feature-level
上面主要包括两种:feature selection
和feature transformation
。
- Feature Selection
- 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=[w1⋯wM]minm=1∑ML(Xm,ym,wm)+λ∣∣W∣∣1
其参数的图形化表示如下所述:
每一列表示一个task的参数,每一行表示每个feature
的位置表示的那个参数。当采用
L
1
L_{1}
L1 regularization 时
∣
∣
w
∣
∣
=
∑
i
j
∣
w
i
,
j
∣
||w|| = sum_{ij}|w_{i,j}|
∣∣w∣∣=∑ij∣wi,j∣,在图形上表示如下:
其参数与目标函数会相切到顶点,使得其
w
1
w_{1}
w1等于0,进而使得某些feature
失活,从而达到feature selection
的目的。但是这种方法并不会找到feature
之间的correspond
,有时候一个feature
对某个task
比较重要,但是从整体上来看,是有可能会把它剔除掉的。
上述过程并没有显示地去选择action
,而是把整个task
看成一个整体,然后去选feature
。
- 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=[w1⋯wM]minm=1∑ML(Xm,ym,wm)+λ∣∣W∣∣p,q
在这里我们希望找到新的task feature
之间的联系。通过定义新的一种regularization
项
∣
∣
W
∣
∣
p
,
q
||boldsymbol{W}||_{p,q}
∣∣W∣∣p,q:
∣ ∣ [ ∣ ∣ w 1 ∣ ∣ p , ⋯ , ∣ ∣ w D ∣ ∣ p ] ∣ ∣ q ||[||boldsymbol{w}_{1}||_{p},cdots,||boldsymbol{w_{boldsymbol{D}}||_{p}}]||_{q} ∣∣[∣∣w1∣∣p,⋯,∣∣wD∣∣p]∣∣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
- 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=1∑ML(Xm,ym,wm)+λ∣∣W∣∣1,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} ∣∣W∣∣p,q=∣∣[∣∣w1∣∣p,⋯,∣∣wD∣∣p]∣∣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
- 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=1∑ML(Xm,ym,(pm+qm))+λ1∥P∥2,1+λ2∥∥QT∥∥2,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} P∈RD×M imposes row (feature) sparsity
Q ∈ R D × M Q in mathbb{R}^{D times M} Q∈RD×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=1∑ML(Xm,ym,Bam)+λ∥A∥2,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} B∈RD×D the orthogonal transformation matrix; a m ∈ R D × 1 a^{m} in mathbb{R}^{D times 1} am∈RD×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
之间相关。
- a bottom-up approach that starts with a thin network ;
- dynamically widens it greedily during training using a criterion that promotes grouping of similar tasks
- 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]
- shared-private part: Bayesian models, matrix priors
- 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呢?可以分为以下三种:
- (Random) round robin
随机选择一个task来学。
- (Anti) curriculum learning
先学习简单地task,之后再学习难的task。有时候会先学难的task,再学简单地task。
- 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)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复