在機器學習的領域中,多任務學習(MTL)
已成為一個備受矚目的研發方向。這種方法的主要理念是同時解決多個學習任務,並利用任務間的共性與差異。與單獨訓練模型相比,MTL能顯著提高學習效率及預測準確度。早期的多任務學習版本被稱為“提示”(hints),該概念最早由Rich Caruana於1997年提出,其論文中描述了MTL如何通過並行學習並共享表示來改善一般化能力。
“多任務學習是一種改進推理的方法,它通過利用相關任務的訓練信號中的域信息作為推斷偏見來提升學習效果。”
在分類的背景下,多任務學習旨在通過聯合學習改善多個分類任務的表現。例如,對於不同用戶的垃圾郵件過濾器來說,每個用戶可能在識別垃圾郵件的特徵上有不同的分佈。對於英語使用者來說,所有俄語郵件可能都被視為垃圾郵件,而這並不適用於俄語使用者。然而,在這一分類任務中,仍存在著明顯的共性特徵,例如與金錢轉移相關的文字符號。通過MTL共同解決各用戶的垃圾郵件分類問題,可以讓解決方案相互影響,由此提升性能。
然而,多任務學習的關鍵挑戰在於如何將來自多個任務的學習信號整合為一個單一的模型。這一部分在很大程度上取決於不同任務之間的一致性或矛盾性。在MTL範疇內,可以根據任務的相關性選擇性地分享信息。
“通過任務的組合和重疊來提取信息,能夠根據任務相關性的結構來選擇性地分享數據。”
具體來說,任務可以根據某種一般指標進行分組或存在於一個層級結構中。例如,每個任務的參數向量可以被建模為某個基礎的線性組合。與此相關的任務重疊會顯示任務之間的共性,根據這一根據,任務組合可以在某個基礎元素所生成的子空間內進行。在這樣的結構中,不同任務之間可以是互不相交的,也可以是相互重疊的。
除了關聯任務,MTL還能挖掘無關任務的潛力。通過使用無關的輔助任務,無論其本質如何,仍能在應用中獲得聯合學習的好處。這背後的原因在於,關於任務之間相關性的先前知識能導致對每個任務組合更稀疏且信息豐富的表示。
“在合成及真實數據的實驗中,包含無關任務的模型在性能上顯著優於標準的多任務學習方法。”
與多任務學習密切相關的是知識轉移的概念。傳統的多任務學習意味著在任務間並行開發共享表示,而知識轉移則暗示著一種序貫共享的表示。實際應用中,像深度卷積神經網絡GoogLeNet這類大型機器學習項目,可以開發出強健的表示,這對進一步學習相關任務的算法會有很大的幫助。
例如,預訓練模型可作為特徵提取器,為其他學習算法執行預處理。或預訓練的模型可用來初始化具有相似結構的模型,然後進行微調以學習不同的分類任務。
在某些情況下,同時訓練看似相關的任務可能會妨礙與單任務模型相比的性能。為了解決這些衝突,需要利用各種MTL優化方法來最小化此問題的影響。一般來說,對每個任務來說,所計算的梯度最終會通過各種聚合算法或啟發式方法合併為一個聯合更新方向。
隨著技術的進步及對多任務學習的深入研究,我們不禁要問:未來多任務學習將如何進一步提升我們的機器學習模型的準確性與應用範疇?