多任務學習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)”的思想。多任務學習恰恰為上述思想的實現提供了一條可行途徑,即利用相關任務中所包含的有用信息,為所關注任務的學習提供更強的歸納偏置。

由於我們的關注點集中在單個任務上,我們忽略了可能幫助優化度量指標的其它信息。具體來說,這些信息來自相關任務的訓練信號。通過共享相關任務之間的表征,可以使我們的模型更好地概括原始任務。這種方法被稱為多任務學習(MTL)。

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 中看到。

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM