本文首發(fā)于公眾號“我AI”,歡迎關(guān)注,共同進步。
本篇文章從自動駕駛中的多任務開始講起,引出多任務學習問題的定義、挑戰(zhàn)以及研究方向。
金庸先生的《射雕英雄傳》中塑造了一個“老頑童”周伯通的角色,天性愛玩。在被黃藥師困于桃花島的十五年里,為了打發(fā)無聊的時間,萌生出“左手與右手”打架的想法,遂創(chuàng)出“左右互搏術(shù)”這一精妙且有趣的武學。
左右互搏的本質(zhì)上是一心二用,左手與右手能夠同時做不同的任務,例如一手畫圓、一手畫方。
如果讓我形象解釋多任務學習的話:左右互搏便是一個非常經(jīng)典的多任務學習。
雖然普通人不經(jīng)過訓練,很難做到左右手互搏,但是“一心二用”甚至“一心多用”這件事情卻是在普通人的日常生活中再稀疏平常不過了:比如我現(xiàn)在就是在一邊寫這篇文章一邊聽著歌。
在開車的任務中,我們更是要“眼觀六路、耳聽八方”:同時處理跟前車保持車距、觀察其他車輛、保持車道、觀察紅綠燈/道路標志牌等多個任務。
基于視覺的自動駕駛,需要的不僅僅是一個深度神經(jīng)網(wǎng)絡,而是多個深度神經(jīng)?絡各司其職的組合體。在駕駛場景中,需要以視覺系統(tǒng)完成不同物體的檢測與分類,包括感知道路上的車輛、行人、交通燈(不分辨狀態(tài))和路標;對交通燈的狀態(tài)進行分類(紅色、黃色或綠色);識別路標類型(停車/限速/單行道等);檢測識別車輛必須停車和等待的情況,例如交叉路口/大型停車場……
對于這些目標,它們都對應同等重要的識別任務,必須以最高效的方式得到并行感知和處理。
為了完成對復雜環(huán)境的感知,Tesla設計了一個多任務的深度學習模型HydraNet:包括了48個神經(jīng)網(wǎng)絡、1000個不同的輸出,完整的訓練一次需要70000個GPU小時(一臺有8塊GPU的訓練服務器需要耗費一年時間完成一次訓練)。[1]
多任務學習(Multi-task learning)是機器學習中的一種重要方法,它是指給定一批學習任務,通過對這批任務的聯(lián)合學習,達到以下一個或多個目的:
1. 降低模型大小和復雜度,提升運算速度,減小計算開銷;
2. 利用任務之間的相關(guān)性,提升各個任務的性能;
3. 減少某些任務對樣本數(shù)量的依賴,減輕因樣本稀少造成的過擬合。
多任務學習與遷移學習有異曲同工之妙,都涉及到不同學習任務之間的相互幫助,但差別在于遷移學習的幫助是單向的(從A任務遷移知識到B任務上),而多任務學習往往是雙向的(A與B互相促進)。
盡管多任務學習能夠帶來上面提到的3點優(yōu)點,但在具體的算法實現(xiàn)上,面臨的挑戰(zhàn)極大:
??? 1. 任務間干擾:有些任務在訓練過程中可能是正相關(guān)的,能夠彼此促進,有些則可能彼此干擾。因此需要甄別任務的相關(guān)性,避免出現(xiàn)由于任務之間干擾導致訓練過程中出現(xiàn)Negative transfer的現(xiàn)象(多任務訓練結(jié)果差于任何一個單任務訓練)。本想“一心二用”,結(jié)果成了“三心二意”;
? ? 2. 訓練難度大:對同一個神經(jīng)網(wǎng)絡,不同任務的訓練難易度也會不同。訓練難易度可能體現(xiàn)在所需數(shù)據(jù)量上,往往會導致一個任務已經(jīng)過擬合(Overfitting)需要停止訓練而另一個任務還在欠擬合(Underfitting),需要繼續(xù)訓練;
??? 3. 模型的訓練和推理可能具有時變性:以自動駕駛視覺系統(tǒng)為例,隨著時間的推移,系統(tǒng)需要根據(jù)當前的車輛自動駕駛需求,靈活地、分批次地、甚至同時并發(fā)地激活多任務網(wǎng)絡的子網(wǎng)絡。
針對這些挑戰(zhàn),在多任務學習的領(lǐng)域中,可以從以下幾個研究方向考慮能做一些工作:
????1. 多任務網(wǎng)絡結(jié)構(gòu)設計
????2. 多任務損失函數(shù)設計
????3. 輔助學習(任務的篩選方法)
????4. 多任務網(wǎng)絡的訓練方法
對這些研究方向的展開,以后會以論文解讀的形式逐步展開,進一步和大家分享。
參考資料:
[1]?Multi-task learning in the wildness. https://slideslive.com/38917690/multitask-learning-in-the- wilderness
- END -
新朋友們可以看看我過往的相關(guān)文章
?
【相關(guān)推薦閱讀】