背景:只專注于單個(gè)模型可能會(huì)忽略一些相關(guān)任務(wù)中可能提升目標(biāo)任務(wù)的潛在信息,通過(guò)進(jìn)行一定程度的共享不同任務(wù)之間的參數(shù),可能會(huì)使原任務(wù)泛化更好。廣義的講,只要loss有多個(gè)就算MTL,一些別名(joint learning,learning to learn,learning with auxiliary task)
目標(biāo):通過(guò)權(quán)衡主任務(wù)與輔助的相關(guān)任務(wù)中的訓(xùn)練信息來(lái)提升模型的泛化性與表現(xiàn)。從機(jī)器學(xué)習(xí)的視角來(lái)看,MTL可以看作一種inductive transfer(先驗(yàn)知識(shí)),通過(guò)提供inductive bias(某種對(duì)模型的先驗(yàn)假設(shè))來(lái)提升模型效果。比如,使用L1正則,我們對(duì)模型的假設(shè)模型偏向于sparse solution(參數(shù)要少)。在MTL中,這種先驗(yàn)是通過(guò)auxiliary task來(lái)提供,更靈活,告訴模型偏向一些其他任務(wù),最終導(dǎo)致模型會(huì)泛化得更好。
MTL Methods for DNN
- hard parameter sharing (此方法已經(jīng)有26歲了<1993>)
在所有任務(wù)中共享一些參數(shù)(一般底層),在特定任務(wù)層(頂層)使用自己獨(dú)有參數(shù)。這種情況,共享參數(shù)得過(guò)擬合幾率比較低(相對(duì)非共享參數(shù)),過(guò)擬合的幾率是O(#tasks). [1]
- soft parameter sharing
每個(gè)任務(wù)有自己的參數(shù),最后通過(guò)對(duì)不同任務(wù)的參數(shù)之間的差異加約束,表達(dá)相似性。比如可以使用L2, trace norm等。
優(yōu)點(diǎn)及使用場(chǎng)景
- implicit data augmentation: 每個(gè)任務(wù)多少都有樣本噪聲,不同的任務(wù)可能噪聲不同,最終多個(gè)任務(wù)學(xué)習(xí)會(huì)抵消一部分噪聲(類似bagging的思想,不同任務(wù)噪聲存在于各個(gè)方向,最終平均就會(huì)趨于零)
- 一些噪聲很大的任務(wù),或者訓(xùn)練樣本不足,維度高,模型可能無(wú)法有效學(xué)習(xí),甚至無(wú)法無(wú)法學(xué)習(xí)到相關(guān)特征
- 某些特征可能在主任務(wù)不好學(xué)習(xí)(比如只存在很高階的相關(guān)性,或被其他因素抑制),但在輔助任務(wù)上好學(xué)習(xí)。可以通過(guò)輔助任務(wù)來(lái)學(xué)習(xí)這些特征,方法比如hints(預(yù)測(cè)重要特征)[2]
- 通過(guò)學(xué)習(xí)足夠大的假設(shè)空間,在未來(lái)某些新任務(wù)中可以有較好的表現(xiàn)(解決冷啟動(dòng)),前提是這些任務(wù)都是同源的。
- 作為一種正則方式,約束模型。所謂的inductive bias。緩解過(guò)擬合,降低模型的Rademacher complexity(擬合噪聲的能力,用于衡量模型的能力)
傳統(tǒng)方法中的MTL (linear model, kernel methods, Bayesian algo),其主要關(guān)注兩點(diǎn):
- 通過(guò)norm regularization使模型在任務(wù)之間具有稀疏性
- 對(duì)多任務(wù)之間關(guān)系進(jìn)行建模
1.1 Block-sparse regularization (mixed l1/lq norm)
目標(biāo):強(qiáng)制模型只考慮部分特征,前提為不同任務(wù)之間必須相關(guān)。
假設(shè)K個(gè)任務(wù)有相同的特征,和相同數(shù)量的模型參數(shù)。形成一個(gè)矩陣A(DxK),D為參數(shù)維度,K為任務(wù)數(shù),目標(biāo)為這些任務(wù)只使用一些特征,也就是A的某些行也0。(最簡(jiǎn)單的想法就是使其變?yōu)橐粋€(gè)low rank的矩陣;或者使用L1正則,因?yàn)長(zhǎng)1可以約束某些特征到0,如果我們想使某些行為0,則只要先對(duì)行聚合操作,再對(duì)聚合后的結(jié)果使用L1即可,具體可以參考文章 [3]。通常,使用lq norm 先對(duì)行(每個(gè)特征)進(jìn)行約束,之后使用L1 norm再約束,就是mixer l1/lq norm。
發(fā)展:
- **group lasso [4] **: l1/l2 norm,通過(guò)trace norm 解決l1/l2 norm非凸; 之后有人對(duì)此提出了upper bound for using group lasso in MTL [5]
- 當(dāng)多個(gè)任務(wù)公共特征不多時(shí),l1/lq norm可能沒(méi)有elment-wise norm效果好。有人提出了結(jié)合這兩種方法,分解參數(shù)矩陣為A = S + B,對(duì)S使用lassso,對(duì)B使用l1/l_infinite。[6]
- distributed version of group-sparse reguarization [7]
2.1 regularization way for learning task relationship
當(dāng)任務(wù)之間相關(guān)性較弱,使用上述方法可能導(dǎo)致negative transfer(也就是負(fù)向效果)。在此情景下,我們希望增加的先驗(yàn)知識(shí)是,某些任務(wù)之間是相關(guān)的,但是某些任務(wù)之間是相關(guān)性較差。可以通過(guò)引入任務(wù)clustering來(lái)約束模型。可以通過(guò)penalize 不同任務(wù)的parameter vectors 和他們的方差。限制不同模型趨向于不同的各自 cluster mean vector。
類似的,比如SVM中引入bayesian方法,事先指定一些cluster,目標(biāo)在最大化margin的同時(shí)使不同任務(wù)趨向于各自的cluster中心;[8]
指定了cluster,可以通過(guò)聚類方法(類內(nèi),類間,自己的復(fù)雜度)對(duì)模型進(jìn)行約束
有些場(chǎng)景下,任務(wù)可能不會(huì)出現(xiàn)在同一個(gè)cluster,但存在潛在的相似結(jié)構(gòu),比如group-lasso在樹(shù)結(jié)構(gòu)和圖結(jié)構(gòu)的任務(wù)。
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]
- 多任務(wù)BNN,通過(guò)先驗(yàn)控制多任務(wù)的相似,模型復(fù)雜度大,可以使用sparse approximation貪心選擇樣本 [11];高斯過(guò)程中通過(guò)不同任務(wù)之間使用相同的covariance matrix和相同的先驗(yàn)(進(jìn)而也降低復(fù)雜度)[12]
- 對(duì)每個(gè)task-specific layers 使用高斯先驗(yàn),可以使用一個(gè)cluster的混合分布(事先定好)來(lái)促使不同任務(wù)的相似 [13]
- 進(jìn)而,通過(guò)一個(gè)dirichlet process采樣分布,使模型任務(wù)之間的相似性和cluster的數(shù)目。相同cluster的任務(wù)使用同一個(gè)模型 [14]
- hierarchical Bayesian model,學(xué)習(xí)一個(gè)潛在的任務(wù)結(jié)構(gòu) [15]
- MTL extension of the regularized Perceptron,encodes task relatedness in a matrix. 之后可以通過(guò)不同正則對(duì)其限制(比如rank)[16]
- 不同tasks屬于不同的獨(dú)立cluster,每個(gè)cluster存在于一個(gè)低維空間,每個(gè)cluster的任務(wù)共用同一個(gè)模型。通過(guò)交替迭代學(xué)習(xí)不同cluster的分配權(quán)重和每個(gè)cluster的模型權(quán)重。假定任務(wù)之間的絕對(duì)獨(dú)立可能不太好 [17]
- 假設(shè)兩個(gè)不同cluster的兩個(gè)任務(wù)之間存在重疊,存在一部分的latent basis tasks。令每個(gè)任務(wù)的模型參數(shù)是latent basis tasks的線性組合,對(duì)latent basis tasks限制為稀疏的。重疊部分控制共享程度 [18]
- 學(xué)習(xí)一小撮shared hypotheses,之后map each task to a single hypothesis [19]
DNN中的MTL
Deep Relation Network [20]
計(jì)算機(jī)視覺(jué)中,一般共享卷積層,之后是任務(wù)特定的DNN層。通過(guò)對(duì)任務(wù)層設(shè)定先驗(yàn),使模型學(xué)習(xí)任務(wù)之間的關(guān)系。
Fully-Adaptive Feature Sharing [21]
從一個(gè)簡(jiǎn)單結(jié)構(gòu)開(kāi)始,貪心地動(dòng)態(tài)地加寬模型,使相似的模型聚簇。貪心方法可能無(wú)法學(xué)到全局最優(yōu)結(jié)構(gòu);每個(gè)分支一個(gè)任務(wù)無(wú)法學(xué)習(xí)任務(wù)之間的復(fù)雜關(guān)系。
Cross-stitch Networks [22]
soft parameter sharing,通過(guò)線性組合學(xué)習(xí)前一層的輸出,允許模型決定不同任務(wù)之間的分享程度
Low supervision [23]
尋找更好的多任務(wù)結(jié)構(gòu),復(fù)雜任務(wù)的底層應(yīng)該被低級(jí)任務(wù)目標(biāo)來(lái)監(jiān)督(比如NLP前幾層學(xué)習(xí)一個(gè)NER或POS輔助任務(wù))
A Joint Many-task Model [24]
對(duì)多個(gè)NLP任務(wù)預(yù)先設(shè)定層級(jí)結(jié)構(gòu),之后joint learning
Weighting losses with uncertainty [25]
不考慮學(xué)習(xí)共享的結(jié)構(gòu),考慮每個(gè)任務(wù)的不確定性。通過(guò)優(yōu)化loss(Gaussian likelihood with task-dependant uncertainty),調(diào)節(jié)不同tasks之間的相似性。
Tensor factorisation for MTL [26]
對(duì)每層參數(shù)進(jìn)行分解,為shared和task-specific
Sluice Networks [27]
大雜燴(hard parameter sharing + cross stitch networks + block-sparse regularization + task hierarchy(NLP) ),使得模型自己學(xué)習(xí)哪些層,哪些子空間來(lái)共享,在哪層模型找到了inputs的最優(yōu)表達(dá)。
當(dāng)不同的任務(wù)相關(guān)性大,近似服從相同的分布,共享參數(shù)是有益的,如果相關(guān)性不大或者不相關(guān)的任務(wù)呢?
早期工作是預(yù)先為每對(duì)任務(wù)指定哪些層來(lái)分享,這種方法擴(kuò)展性差且模型結(jié)構(gòu)嚴(yán)重有偏;當(dāng)任務(wù)相關(guān)性下降或需要不同level推理時(shí),hard parameter sharing就不行了。
目前比較火的是learning what to share(outperform hard parameter sharing);還有就是對(duì)任務(wù)層級(jí)進(jìn)行學(xué)習(xí)在任務(wù)具有多粒度因素時(shí)也是有用的。
Auxiliary task
我們只關(guān)注主任務(wù)目標(biāo),但是希望從其他有效的輔助任務(wù)中獲利!
目前選擇一些輔助任務(wù)方法
- Related task:常規(guī)思路(自動(dòng)駕駛+路標(biāo)識(shí)別; query classification+web search;坐標(biāo)預(yù)測(cè)+物體識(shí)別;duration+frequency)
- Adversarial:在domain adaption,相關(guān)的任務(wù)可能無(wú)法獲取,可以使用對(duì)抗任務(wù)作為negative task(最大化training error),比如輔助任務(wù)為預(yù)測(cè)輸入的domain,則導(dǎo)致主任務(wù)模型學(xué)習(xí)的表征不能區(qū)分不同的domain。
- Hints:前面提到的某些特征在某些任務(wù)不好學(xué),選擇輔助任務(wù)為predicting features(NLP中主任務(wù)為情感預(yù)測(cè),輔助任務(wù)為inputs是否包含積極或消極的詞;主任務(wù)name error detection,輔助任務(wù)為句子中是否有name)
- Focusing attention:使模型注意到那些在任務(wù)中可能不容易被注意到的部分(自動(dòng)駕駛+路標(biāo)檢測(cè); 面部識(shí)別+頭部位置識(shí)別)
- Quantization smoothing:某些任務(wù)中,訓(xùn)練目標(biāo)是高度離散化的(人為打分,情感打分,疾病風(fēng)險(xiǎn)等級(jí)),使用離散程度較小的輔助任務(wù)可能是有幫助的,因?yàn)?strong>目標(biāo)更平滑使任務(wù)更好學(xué)
- prediting inputs:有些場(chǎng)景下,可能不會(huì)選擇某些特征,由于其不利于預(yù)估目標(biāo),但是這可能這些特征對(duì)模型的訓(xùn)練有一定的幫助,這種場(chǎng)景下,這些特征可以作為outputs而不是inputs
- Using the future to predict the presnet:有些特征只有在決策之后才會(huì)有,比如自動(dòng)駕駛時(shí),當(dāng)車路過(guò)一些物體才得到這些物體的數(shù)據(jù);醫(yī)療中只有使用過(guò)藥物才知此藥物的效果。這些特征不能作為inputs,但是可以用作輔助任務(wù),來(lái)給主任務(wù)在訓(xùn)練過(guò)程中透露信息。
- representation learning:auxiliary task大多都是潛在地學(xué)習(xí)一些特征表達(dá),且一定程度上都利于主任務(wù)。也可以顯示地對(duì)此學(xué)習(xí)(使用一個(gè)學(xué)習(xí)遷移特征表達(dá)的輔助任務(wù),比如AE)
那么,哪些auxiliary task是有用的呢?
auxiliary task背后的假設(shè)是輔助任務(wù)應(yīng)該在一定程度上與主任務(wù)相關(guān),利于主任務(wù)的學(xué)習(xí)。
那么如何衡量?jī)蓚€(gè)任務(wù)是否相關(guān)呢?
一些理論研究:
- 使用相同的特征做決策
- 相關(guān)的任務(wù)共享同一個(gè)最優(yōu)假設(shè)空間(having the same inductive bias)
- F-related: 如果兩個(gè)任務(wù)的數(shù)據(jù)是通過(guò)一個(gè)固定分布經(jīng)過(guò)一些變換得到 [28]
- 分類邊界(parameter vectors)接近
任務(wù)是否相似不是非0即1的,越相似的任務(wù),收益越大。learning what to share允許我們暫時(shí)忽略理論上的不足,即使相關(guān)性不好的任務(wù)之間也能有所收益。但是發(fā)展任務(wù)之間的相似性對(duì)我們?cè)谶x擇輔助任務(wù)上也是有絕對(duì)的幫助的。
MTL learning Tips
- 緊湊分布均勻的label的輔助任務(wù)更好(from POS in NLP)[29]
- 主任務(wù)訓(xùn)練曲線更快平穩(wěn),輔助任務(wù)平穩(wěn)慢(還未平穩(wěn))[30]
- 不同任務(wù)尺度不一樣,任務(wù)最優(yōu)學(xué)習(xí)率可能不同
- 某個(gè)任務(wù)的輸出可以作為某些任務(wù)的輸入
- 某些任務(wù)的迭代周期不同,可能需要異步訓(xùn)練(后驗(yàn)信息;特征選擇,特征衍生任務(wù)等)
- 整體loss可能被某些任務(wù)主導(dǎo),需要整個(gè)周期對(duì)參數(shù)進(jìn)行動(dòng)態(tài)調(diào)整(通過(guò)引入一些不確定性,每個(gè)任務(wù)學(xué)習(xí)一個(gè)噪聲參數(shù),統(tǒng)一所有損失 [31]
- 某些估計(jì)作為特征(交替訓(xùn)練)
總結(jié)
20多歲的hard parameter shareing還是很流行,目前熱點(diǎn)learning what to learn也很有價(jià)值,我們對(duì)tasks的理解(similarity, relationship, hierrarchy, benefit for MTL) 還是很有限的,希望以后有重大發(fā)展吧。
可研究方向
- learning what to share
- measurement for similarity of tasks
- using task uncertainty
- 引入異步任務(wù)(特征學(xué)習(xí)任務(wù)),采用交替迭代訓(xùn)練
- 學(xué)習(xí)抽象子任務(wù);學(xué)習(xí)任務(wù)結(jié)構(gòu)(類似強(qiáng)化里面的hierarchy learning)
- 參數(shù)學(xué)習(xí)輔助任務(wù)
- More...
備注:本文學(xué)習(xí)資料主要來(lái)自 An Overview of Multi-Task Learning in Deep Neural Networkshttps://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