「自然語言處理」多任務學習綜述

翻譯一下一篇多任務學習的綜述

https://arxiv.org/abs/1706.05098

大家好,我是老周,歡迎閱讀我的文章。


上一篇文章說了微軟的MT-DNN,裡面用到了多任務學習。這篇文章主要想說清楚多任務學習,多任務學習是機器學習中的一個子領域,而學習一個領域的最好辦法是閱讀它的綜述。於是我翻譯了一下由Sebastian Ruder小哥寫的一篇綜述,裡面很好的講述了多任務學習的發展過程。


「自然語言處理」多任務學習綜述

論文鏈接:https://arxiv.org/abs/1706.05098


1、引言

在機器學習(ML)中,我們通常關心針對特定指標的優化,無論這是某個基準的分數還是業務關鍵績效指標。為了做到這一點,我們通常訓練一個模型或一組模型來執行我們所期望的任務。然後我們對這些模型進行微調,直到它們的性能不再提高。雖然我們通常可以通過這種方式獲得可接受的性能,但通過專注於我們的單一任務,我們忽略了可能幫助我們在我們關心的指標上做得更好的信息。具體來說,這些信息來自於相關任務的訓練信號。通過在相關任務之間共享表示,我們可以使我們的模型能夠更好地對原始任務進行泛化。這種方法被稱為多任務學習(MTL),並將成為本文的主題。


多任務學習已經成功地應用於機器學習的所有應用,從自然語言處理[1]和

語音識別[2]到計算機視覺[3]和藥物發現[4]。MTL有很多猜想:聯合學習、學習學習輔助任務學習只是一些用來引用它的名字。一般來說,一旦你發現自己優化了不止一個損失函數,你就可以有效地進行多任務學習(與單任務學習相比)。在這些場景中,它有助於思考你試圖明確地用MTL來做什麼,並從中獲得靈感。


即使你只是優化一個損失,這是典型的情況下,有可能是一個輔助任務,將有助於您改進您的主要任務。Rich Caruana[5]簡潔地總結了MTL的目標:“MTL通過利用相關任務的訓練信號中包含的**領域特定信息**來改進泛化”。


在這篇博文的過程中,我將試圖對多任務學習的現狀做一個概述,特別是當涉及到使用深度神經網絡的MTL時。我將首先從不同的角度解釋多任務學習。然後,我將介紹兩個最常用的方法,在深入學習的MTL。隨後,我將描述共同說明MTL在實踐中工作的機制。在研究更先進的基於神經網絡的MTL方法之前,我將通過討論MTL中的文獻提供一些背景。然後,我將介紹一些更強大的最近提出的方法。最後,我將討論常用類型的輔助任務,並討論MTL如何做一個好的輔助任務。


2、動機解釋

我們可以用不同的方式解釋多任務學習的動機:從生物學上講,我們可以看到多任務學習是由人類學習所激發的。為了學習新的任務,我們經常運用我們從學習相關任務中獲得的知識。例如,嬰兒首先學會識別面部,然後可以應用這些知識來識別其他物體。


從教育學的角度來看,我們通常想學習一些任務,這些任務為我們掌握更復雜的技術提供了必要的技能。這對於學習正確的武術摔倒方式是正確的,例如柔道和學習編程。

以流行文化為例,我們還可以考慮空手道小子(1984年)(感謝瑪格麗特·米切爾和阿德里安·本頓的啟發)。在電影中,Miyagi先生教空手道小孩看似無關的任務,如打磨地板和打蠟汽車。然而,事後看來,這些技能使他具備了學習空手道的寶貴技能。


最後,我們可以從機器學習的角度來看多任務學習:我們可以將多任務學習視為

歸納遷移(inductive transfer)的一種形式。歸納轉移可以通過引入一個歸納偏差(inductive bias)來幫助改進模型,這使得模型更喜歡一些假設。例如,一種常見的歸納偏差是L1正則化,導致偏好稀疏解。在MTL的情況下,歸納偏差輔助任務提供,這使得模型更傾向於解釋多個任務的假設。正如我們將很快看到的,這通常會導致更好概括的解決方案。


3、深度學習下兩種MTL

到目前為止,我們關注的是MTL的理論動機。為了使MTL的思想更加具體,我們現在來看兩種在深層神經網絡中執行多任務學習最常用的方法。在深度學習的背景下,多任務學習通常是通過共享隱藏層的硬參數或軟參數來完成的。


  • 3.1 硬參數共享

硬參數共享是神經網絡中最常用的MTL方法,可以追溯到[6]。它通常通過在所有任務之間共享隱藏層來應用,同時保留幾個特定於任務的輸出層。

「自然語言處理」多任務學習綜述

硬參數共享大大降低了過度擬合的風險。實際上,[7]表明,過度擬合共享參數的風險是N階(其中N是任務數),小於過度擬合特定任務參數(即輸出層)。這在直覺上是有道理的:我們同時學習的任務越多,我們的模型就越需要找到一個能夠捕獲所有任務的表示,而我們在原始任務上過度擬合的機會就越小。


  • 3.2 軟參數共享

另一方面,在軟參數共享中,每個任務都有自己的模型和參數。然後對模型參數之間的距離進行正則化,以鼓勵參數相似。[8] 例如,使用L2正則化,而[9]使用trace norm


「自然語言處理」多任務學習綜述

深度神經網絡中用於軟參數共享的約束很大程度上受到了MTL正則化技術的啟發,我們將很快討論這些技術。


4、為什麼多任務學習work?

儘管通過多任務學習獲得的歸納偏差在直覺上似乎是合理的,但為了更好地理解MTL,我們需要研究其背後的機制。其中大多數是由Caruana(1998)首先提出的。對於所有的例子,我們假設我們有兩個相關的任務A和B,他們共同依賴一個公共的隱藏層表示F。


  • 4.1 隱式數據增強

MTL有效地增加了我們用來訓練模型的樣本量。因為所有的任務至少都有點嘈雜,所以在訓練一個模型執行某項任務時,我們的目標是學習一個好的任務表示法,一種理想的忽略數據相關噪聲的方法。由於不同任務具有不同的噪聲模式,同時學習兩個任務的模型能夠學習更一般的表示。


  • 4.2 Attention focusing

如果一個任務是非常嘈雜的,或者數據是有限的和高維的,那麼模型很難區分相關和不相關的特徵。MTL可以幫助模型將注意力集中在那些實際重要的特性上,因為其他任務將為這些特性的相關性或不相關性提供額外的證據。


  • 4.3 竊聽機制(Eavesdropping)

如果一個任務是非常嘈雜的,或者數據是有限的和高維的,那麼模型很難區分相關和不相關的特徵。MTL可以幫助模型將注意力集中在那些實際重要的特性上,因為其他任務將為這些特性的相關性或不相關性提供額外的證據。


  • 4.3 表示偏差(Representation bias)

MTL將模型偏向於其他任務也喜歡的表徵。這也將有助於該模型推廣到未來的新任務,因為假設空間在足夠多的訓練任務中表現良好,只要它們來自相同的環境,也將在學習新任務中表現良好


  • 4.4 正則化

最後,MTL通過引入感應偏置來充當正則化器。因此,它降低了過度擬合的風險以及模型的Rademacher複雜性,即它擬合隨機噪聲的能力。


分享到:


相關文章: