多任務學習Multi-task-learning MTL

https://blog.csdn.net/chanbo8205/article/details/84170813算法

多任務學習(Multitask learning)是遷移學習算法的一種,遷移學習可理解爲定義一個一個源領域source domain和一個目標領域(target domain),在source domain學習,並把學習到的知識遷移到target domain,提高target domain的學習效果(performance)。網絡

多任務學習(Multi-task learning):因爲咱們的關注點集中在單個任務上,咱們忽略了可能幫助優化度量指標的其它信息。具體來講,這些信息來自相關任務的訓練信號。經過共享相關任務之間的表徵,可使咱們的模型更好地歸納原始任務。這種方法被稱爲多任務學習(MTL)。其也是一種概括遷移機制,主要目標是利用隱含在多個相關任務的訓練信號中的特定領域信息來提升泛化能力,多任務學習經過使用共享表示並行訓練多個任務來完成這一目標。概括遷移是一種專一於將解決一個問題的知識應用到相關的問題的方法,從而提升學習的效率。好比,學習行走時掌握的能力能夠幫助學會跑,學習識別椅子的知識能夠用到識別桌子的學習,咱們能夠在相關的學習任務之間遷移通用的知識。此外,因爲使用共享表示,多個任務同時進行預測時,減小了數據來源的數量以及總體模型參數的規模,使預測更加高效。所以,在多個應用領域中,能夠利用多任務學習來提升效果或性能,好比垃圾郵件過濾、網頁檢索、天然語言處理、圖像識別、語音識別等。架構

概括偏執(inductive bias):概括遷移的目標是利用額外的信息來源來提升當前任務的學習性能,包括提升泛化準確率、學習速度和學習的模型的可理解性。提供更強的概括偏執是遷移提升泛化能力的一種方法,能夠在固定的訓練集上產生更好的泛化能力,或者減小達到同等性能水平所須要的訓練樣本數量。概括偏執會致使一個概括學習器更偏好一些假設,多任務學習正是利用隱含在相關任務訓練信號中的信息做爲一個概括偏執來提升泛化能力。概括偏置的做用就是用於指導學習算法如何在模型空間中進行搜索,搜索所得模型的性能優劣將直接受到概括偏置的影響,而任何一個缺少概括偏置的學習系統都不可能進行有效的學習。不一樣的學習算法(如決策樹,神經網絡,支持向量機等)具備不一樣的概括偏置,人們在解決實際問題時須要人工地肯定採用何種學習算法,實際上也就是主觀地選擇了不一樣的概括偏置策略。一個很直觀的想法就是,是否能夠將概括偏置的肯定過程也經過學習過程來自動地完成,也就是採用「學習如何去學(learning to learn)」的思想。多任務學習偏偏爲上述思想的實現提供了一條可行途徑,即利用相關任務中所包含的有用信息,爲所關注任務的學習提供更強的概括偏置。app

因爲咱們的關注點集中在單個任務上,咱們忽略了可能幫助優化度量指標的其它信息。具體來講,這些信息來自相關任務的訓練信號。經過共享相關任務之間的表徵,可使咱們的模型更好地歸納原始任務。這種方法被稱爲多任務學習(MTL)。dom

MTL 有不少形式:聯合學習(joint learning)、自主學習(learning to learn)和帶有輔助任務的學習(learning with auxiliary task)等均可以指 MTL。通常來講,優化多個損失函數就等同於進行多任務學習(與單任務學習相反).分佈式

在深度學習中,多任務學習MTL一般經過隱藏層的 Hard 或 Soft 參數共享來完成。函數

Hard 參數共享
共享 Hard 參數是神經網絡 MTL 最經常使用的方法,能夠追溯到 [2]。在實際應用中,一般經過在全部任務之間共享隱藏層,同時保留幾個特定任務的輸出層來實現。
共享 Hard 參數大大下降了過擬合的風險。實際上,[3] 代表過擬合共享參數的風險爲 O(N)——其中 N 是任務數——小於過擬合特定任務參數,即輸出層。這很直觀:咱們同時學習的工做越多,咱們的模型找到一個含有全部任務的表徵就越困難,而過擬合咱們原始任務的可能性就越小。
性能

Soft 參數共享
另外一方面,在共享 Soft 參數時,每一個任務都有本身的參數和模型。模型參數之間的距離是正則化的,以便鼓勵參數類似化。例如使用 L2 距離進行正則化 [4],而 [5] 使用跡範數(trace norm)。
學習

約束深度神經網絡 Soft 參數共享的思想受到了 MTL 正則化技術的極大啓發,這種思想已經用於其它模型開發.優化

爲何 MTL 有效?

即便多任務學習得到的概括偏置看起來是可信的,爲了更好地瞭解 MTL,咱們仍須要闡述它所基於的機制。其中大部分最初都是由 Caruana(1998)提出的。對於全部例子,假設咱們有兩個相關的任務 A 和 B,它們依賴於一個共同的隱藏層表徵 F。

隱式數據增長
MTL 有效地增長了咱們用於訓練模型的樣本大小。因爲全部任務不一樣程度地存在噪聲,當在某些任務 A 上訓練模型時,咱們的目標是爲任務 A 學習一個很好的表徵,理想狀況下,這個表徵能忽略與數據相關的噪聲並具備良好的泛化性。因爲不一樣的任務具備不一樣的噪聲模式,因此同時學習兩個任務的模型可以學習更通常的表徵。只學習任務 A 有可能過擬合任務 A,而聯合地學習 A 和 B 使模型可以經過平均噪聲模式得到更好的表徵。

注意力機制
若是一個任務很是嘈雜或數據量有限而且高維,模型可能難以區分相關與不相關的特徵。MTL 能夠幫助模型將注意力集中在重要的特徵上,由於其它任務將爲這些特徵的相關性或不相關性提供額外的證據。

竊聽(eavesdroping)
某特徵 G 很容易被任務 B 學習,可是難以被另外一個任務 A 學習。這多是由於 A 以更復雜的方式與特徵進行交互,或者由於其它特徵阻礙了模型學習 G 的能力。經過 MTL,咱們能夠容許模型「竊聽」,即經過任務 B 學習 G。最簡單的方法是經過提示(hint)[6],即直接訓練模型來預測最重要的特徵。

表徵偏置
MTL 任務偏好其它任務也偏好的表徵,這形成模型誤差。這將有助於模型在未來泛化到新任務,由於在足夠數量的訓練任務上表現很好的假設空間也將很好地用於學習具備相同環境的新任務 [7]。

正則化
最後,MTL 經過引入概括偏置做爲正則化項。所以,它下降了過擬合的風險以及模型的 Rademacher 複雜度(即適合隨機噪聲的能力)。

非神經模型中的 MTL
爲了更好地瞭解深度神經網絡中的 MTL,咱們將研究關於 MTL 在線性模型、核函數方法和貝葉斯算法方面的論文。特別地,咱們將討論一直以來在多任務學習的歷史中廣泛存在的兩個主要思想:經過範數正則化製造各任務間的稀疏性;對任務間的關係進行建模。 請注意,許多 MTL 的論文具備同構性假設:它們假設全部任務與單個輸出相關,例如,多類 MNIST 數據集一般被轉換爲 10 個二進制分類任務。最近的方法更加接近實際,對問題進行異構性假設,即每一個任務對應於一組惟一的輸出。

塊稀疏(block-sparse)正則化

許多現有的方法對模型的參數作了稀疏性假設。例如,假設全部模型共享一小組特徵 [8]。對咱們任務的參數矩陣 A 來講,這意味着除了幾行以外,全部數據都是 0,對應於全部任務只共同使用幾個特性。爲了實現這一點,他們將 L1 範數推廣到 MTL。回想一下,L1 範數是對參數之和的約束,這迫使除幾個參數以外的全部參數都爲 0。這也被稱爲 lasso(最小絕對收縮與選擇算子)。

能夠看到,根據咱們但願對每一行的約束,咱們可使用不一樣的 Lq。通常來講,咱們將這些混合範數約束稱爲 L1/Lq 範數,也被稱爲塊稀疏正則化,由於它們致使 A 的整行被設置爲 0。[9] 使用 L1/L∞ 正則化,而 Argyriou 等人(2007)使用混合的 L1/L2 範數。後者也被稱爲組合 lasso(group lasso),最先由 [10] 提出。 Argyriou 等人(2007)也代表,優化非凸組合 lasso 的問題能夠經過懲罰 A 的跡範數(trace norm)來轉化成凸問題,這迫使 A 變成低秩(low-rank),從而約束列參數向量 a_{.,1},...,a_{.,t} 在低維子空間中。[11] 進一步使用組合 lasso 在多任務學習中創建上限。 儘管這種塊稀疏正則化直觀上彷佛是可信的,但它很是依賴於任務間共享特徵的程度。[12] 顯示,若是特徵不重疊太多,則 Ll/Lq 正則化可能實際上會比元素通常(element-wise)的 L1 正則化更差。 所以,[13] 經過提出一種組合了塊稀疏和元素通常的稀疏(element-wise sparse)正則化的方法來改進塊稀疏模型。他們將任務參數矩陣 A 分解爲兩個矩陣 B 和 S,其中 A=B+S。而後使用 L1/L∞ 正則化強制 B 爲塊稀疏,而使用 lasso 使 S 成爲元素通常的稀疏。最近,[14] 提出了組合稀疏正則化的分佈式版本。

學習任務的關係
儘管組合稀疏約束迫使咱們的模型僅考慮幾個特徵,但這些特徵大部分用於全部任務。全部以前的方法都基於假設:多任務學習的任務是緊密相關的。可是,不可能每一個任務都與全部任務緊密相關。在這些狀況下,與無關任務共享信息可能會傷害模型的性能,這種現象稱爲負遷移(negative transfer)。 與稀疏性不一樣,咱們但願利用先驗信息,指出相關任務和不相關任務。在這種狀況下,一個能迫使任務聚類的約束可能更適合。[15] 建議經過懲罰任務列向量 a_{.,1},...,a_{.,t} 的範數與它們具備如下約束形式的方差來強加聚類約束:

深度關係網絡
在用於計算機視覺的 MTL 中,一般的方法是共享卷積層,同時學習特定任務的全鏈接層。[34] 經過提出深度關係網絡(Deep Relationship Network)來改進這些模型。除了圖 3 中能夠看到的共享和特定任務層的結構以外,他們在全鏈接層上使用矩陣先驗(matrix priors),這樣可讓模型學習任務之間的關係,相似於一些以前看過的貝葉斯模型。然而,這種方法仍然依賴於預約義的共享結構,這可能對於已經充分研究的計算機視覺問題是可行的,可是其證實對於新任務來講容易出錯。

加權損失與不肯定性
與學習共享的結構不一樣,[39] 經過考慮每一個任務的不肯定性應用正交方法(orthogonal approach)。而後,他們經過基於最大化任務決定的不肯定性的高斯似然估計,求導多任務損失函數,並以此來調整成本函數中的每一個任務的相對權重。每一像素的深度迴歸(per-pixel depth regression)、語義和實例分割的架構能夠在圖 7 中看到。

機器視覺領域有普遍的多任務學習應用,主要方式包括: 多個任務並行輸出; 同時作分類和迴歸或使用不一樣的損失函數; 多個任務如流水線般,輔助任務附加在主任務後面。

相關文章
相關標籤/搜索