1. 程式人生 > >多工學習 Multi-task learning

多工學習 Multi-task learning

利用歷史資料中的有用資訊來幫助分析未來資料的機器學習,通常需要大量有標籤資料才能訓練出一個優良的學習器。深度學習模型是一種典型的機器學習模型,因為這類模型是帶有很多隱藏層和很多引數的神經網路,所以通常需要數以百萬計的資料樣本才能學習得到準確的引數。但是,包括醫學影象分析在內的一些應用無法滿足這種資料要求,因為標註資料需要很多人力勞動。在這些情況下,多工學習(MTL)可以通過使用來自其它相關學習任務的有用資訊來幫助緩解這種資料稀疏問題。

MTL 是機器學習中一個很有前景的領域,其目標是利用多個學習任務中所包含的有用資訊來幫助為每個任務學習得到更為準確的學習器。我們假設所有任務(至少其中一部分任務)是相關的,在此基礎上,我們在實驗和理論上都發現,聯合學習多個任務能比單獨學習它們得到更好的效能。根據任務的性質,MTL 可以被分類成多種設定,主要包括多工監督學習、多工無監督學習、多工半監督學習、多工主動學習、多工強化學習、多工線上學習和多工多視角學習。

多工監督學習任務(可能是分類或迴歸問題)是根據訓練資料集(包含訓練資料例項和它們的標籤)預測未曾見過的資料的標籤。多工無監督學習任務(可能是聚類問題)是識別僅由資料構成的訓練資料集中的有用模式。多工半監督學習任務與多工監督學習類似,只是其訓練集中不僅包含有標籤資料,也包含無標籤資料。多工主動學習任務是利用無標籤資料來幫助學習有標籤資料,這類似於多工半監督學習,其差異在於主動學習會選擇無標籤資料來主動查詢它們的標籤從而降低標註開銷。多工強化學習任務是選擇動作以最大化累積獎勵。多工線上學習任務是處理序列資料。多工多視角學習任務是處理多視角資料——其中每個資料例項都有多組特徵。

MTL 可以看作是讓機器模仿人類學習行為的一種方法,因為人類常常將一個任務的知識遷移到另一個相關的任務上。例如,根據作者自身經驗,打壁球和打網球的技能可以互相幫助提升。與人類學習類似,(機器)同時學習多個學習任務是很有用的,因為一個任務可以利用另一個相關任務的知識。

MTL 也與機器學習的某些其它領域有關,包括遷移學習、多標籤學習和多輸出迴歸,但 MTL 也有自己不同的特點。比如說,類似於 MTL,遷移學習的目標也是將知識從一個任務遷移到另一個任務,但不同之處在於遷移學習希望使用一個或多個任務來幫助另一個目標任務,而 MTL 則是希望多個任務彼此助益。當多工監督學習的不同任務使用了同樣的訓練資料時,這就變成了多標籤學習或多輸出迴歸。從這個意義上看,MTL 可以被看作是多標籤學習和多輸出迴歸的一種泛化。

在此,我們給出 MTL 的正式定義。

定義 1(多工學習):給定 m 個學習任務,其中所有或一部分任務是相關但並不完全一樣的,多工學習的目標是通過使用這 m 個任務中包含的知識來幫助提升各個任務的效能。

基於這一定義,我們可以看到 MTL 有兩個基本因素。

第一個因素是任務的相關性。任務的相關性是基於對不同任務關聯方式的理解,這種相關性會被編碼進 MTL 模型的設計中。

第二個因素是任務的定義。在機器學習中,學習任務主要包含分類和迴歸等監督學習任務、聚類等無監督學習任務、半監督學習任務、主動學習任務、強化學習任務、線上學習任務和多視角學習任務。因此不同的學習任務對應於不同的 MTL 設定。包括計算機視覺、生物資訊學、健康資訊學、語音、自然語言處理、網路應用和普適計算在內的很多領域都在使用 MTL 來提升各自的應用的效能。

最近,深度學習在諸多應用領域中廣為流行,並且深度學習十分適用於 MTL。幾乎所有的深層模型都會為不同的任務共享隱藏層;當各種任務非常相似時,這種在任務之間共享知識的方式非常有用,但是一旦這種假設被違背,模型效能則顯著惡化。我們認為,多工深度模型的未來發展方向是設計更加靈活的架構,可以容納不相關的任務甚至異常的任務。此外,深度學習,任務聚類和多層次方法缺乏理論基礎,需要更多的分析來指導這些方面的研究。

[描述來源:多工學習概述論文:從定義和方法到應用和原理分析|機器之心]

發展歷史

在深度學習中,多工學習通常通過隱藏層的 Hard 或 Soft 引數共享來完成。

共享 Hard 引數是神經網路 MTL 最常用的方法,可以追溯1993年Caruana所發表的論文。在實際應用中,通常通過在所有任務之間共享隱藏層,同時保留幾個特定任務的輸出層來實現。共享 Hard 引數大大降低了過擬合的風險。1997年Jonathan Baxter在他的論文中證明過擬合共享引數的風險為 O(N)——其中 N 是任務數——小於過擬合特定任務引數,即輸出層。這很直觀:我們同時學習的工作越多,我們的模型找到一個含有所有任務的表徵就越困難,而過擬合我們原始任務的可能性就越小。

另一方面,在共享 Soft 引數時,每個任務都有自己的引數和模型。模型引數之間的距離是正則化的,以便鼓勵引數相似化。1998年Caruana對早期的MTL的研究進行了總結,並演示了三個領域中的多工學習。他們解釋了多工學習的工作原理,提出了一個基於案例的方法(如k-最近鄰和核迴歸)的多工學習演算法和結果,併為決策樹中的多工學習繪製了一個演算法。目前大部分MTL學習所基於的機制仍然來源於此篇文章。

2000年,針對機器學習中的表徵偏置——如何選擇學習者的假設空間,以便它足夠大以包含所學問題的解決方案,但又足夠小以確保從合理大小的訓練集中可靠地泛化的問題,通常情況下,Jonathan Baxter提出了一種自動學習偏置的模型。該模型的中心假設是學習者被嵌入在相關學習任務的環境中,在這樣的環境中,學習者可以從多個任務中抽樣,因此可以搜尋假設空間,並且該假設空間包含環境中許多問題的良好解決方案。這將有助於模型在將來泛化到新任務,因為在足夠數量的訓練任務上表現很好的假設空間也將很好地用於學習具有相同環境的新任務。

在用於計算機視覺的 MTL 中,通常的方法是共享卷積層,同時學習特定任務的全連線層。2015年,Mingsheng Long等學者提出通過深度關係網路(Deep Relationship Network)來改進這些模型。除了共享卷積和特定任務層的結構之外,他們在全連線層上使用矩陣先驗(matrix priors),這樣可以讓模型學習任務之間的關係。然而,這種方法仍然依賴於預定義的共享結構,這可能對於已經充分研究的計算機視覺問題是可行的,但是對於新任務來說容易出錯。

2016年Yongxi Lu等學者從另一個極端提出了一個從窄網路(thin network)開始的自下而上的方法,並在訓練過程中使用一個促進類似任務分組的標準,貪婪地動態拓寬網路。但是,貪婪方法可能無法發現全域性最優的模型,而將每個分支正好分配給一個任務不允許模型學習更復雜的任務互動。

Ishan Misra等學者則從兩個獨立的模型架構開始,如共享 Soft 引數一樣。然後,他們使用稱為十字繡(cross stitch)的單位,以允許模型通過學習前面層的輸出的線性組合來確定如何使特定任務的網路利用其它任務的知識。即通過端對端的學習來自動決定共享層。

在自然語言處理(NLP)方面,最著名的論文應屬Ronan Collobert和Jason Weston在2008年發表的A unified architecture for natural language processing: deep neural networks with multitask learning,他們使用了一個單一的卷積神經網路架構來完成命名實體識別、輸出語義上相似的單詞等任務。Ruder等學者則於2017年提出了水閘網路(Sluice Network),一種泛化基於深度學習的 MTL 方法(比如 Hard 引數共享和十字繡網路、塊稀疏正則化方法以及最近的任務層次結構的 NLP 方法)的模型。該模型可以學習哪些層和子空間應該共享,以及網路在哪層學到了輸入序列的最佳表徵。

主要事件

年份 事件 相關論文/Reference
1993 Caruana提出共享 Hard 引數 Caruana, R. (1993). Multitask learning: A knowledge-based source of inductive bias. Proceedings of the Tenth International Conference on Machine Learning.
1997 Jonathan Baxter在他的論文中證明過擬合共享引數的風險為 O(N)——其中 N 是任務數——小於過擬合特定任務引數,即輸出層 Baxter, J. (1997). A Bayesian/information theoretic model of learning to learn via multiple task sampling. Machine Learning, 28, 7–39.
1998 Caruana對早期的MTL的研究進行了總結,並演示了三個領域中的多工學習 Caruana R. (1998) Multitask Learning. Learning to Learn.pp 95-133.
2000 Jonathan Baxter提出了一種自動學習偏置的模型 Baxter, J. (2000). A Model of Inductive Bias Learning. Journal of Artificial Intelligence Research, 12, 149–198.
2008 Ronan Collobert和Jason Weston使用了一個單一的卷積神經網路架構來完成命名實體識別、輸出語義上相似的單詞等任務。 Collobert, R.; Weston, J. (2008). A unified architecture for natural language processing: deep neural networks with multitask learning. roceedings of the 25th international conference on Machine learning. pp 160-167.
2015 Mingsheng Long等學者提出通過深度關係網路(Deep Relationship Network)來改進用於計算機視覺的神經網路模型 Long, M., & Wang, J. (2015). Learning Multiple Tasks with Deep Relationship Networks. arXiv Preprint arXiv:1506.02117.
2016 Yongxi Lu等學者從另一個極端提出了一個從窄網路(thin network)開始的自下而上的方法 Lu, Y., Kumar, A., Zhai, S., Cheng, Y., Javidi, T., & Feris, R. (2016). Fully-adaptive Feature Sharing in Multi-Task Networks with Applications in Person Attribute Classification. Retrieved from http://arxiv.org/abs/1611.05377
2016 Ishan Misra等學者提出十字繡網路 Misra, I., Shrivastava, A., Gupta, A., & Hebert, M. (2016). Cross-stitch Networks for Multi-task Learning. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition
2017 Ruder等學者提出了水閘網路(Sluice Network) Ruder, S., Bingel, J., Augenstein, I., & Søgaard, A. (2017). Sluice networks: Learning what to share between loosely related tasks. Retrieved from http://arxiv.org/abs/1705.08142

發展分析

瓶頸

目前我們對多工學習中的任務的理解仍然有限(如,它們的相似性、關係、層次結構和 MTL 的用處),因而對 MTL 泛化能力的理解也有限。另外,使用神經網路進行多工學習時,如何確定網路的共享部分是一個難點,即使我們使用十字繡網路去自動決定共享層,又會帶來如何進行初始化,如何設定學習速率等問題。

未來發展方向

雖然十字繡網路的表現有限,但自動學習共享層仍然是一個研究方向,傳統的引數共享方法仍然是目前的主流。由於NLP和機器視覺目前的研究都涉及到很多相似/相關的任務,多工學習必然是一個重點。