1. 程式人生 > >遷移學習演算法:多工學習說明及相關的例項

遷移學習演算法:多工學習說明及相關的例項

簡介: 
多工學習(Multitask learning)是遷移學習演算法的一種,遷移學習可理解為定義一個一個源領域source domain和一個目標領域(target domain),在source domain學習,並把學習到的知識遷移到target domain,提升target domain的學習效果(performance)。

 

概念解析:

多工學習(Multi-task learning):由於我們的關注點集中在單個任務上,我們忽略了可能幫助優化度量指標的其它資訊。具體來說,這些資訊來自相關任務的訓練訊號。通過共享相關任務之間的表徵,可以使我們的模型更好地概括原始任務。這種方法被稱為多工學習(MTL)。其也是一種歸納遷移機制,主要目標是利用隱含在多個相關任務的訓練訊號中的特定領域資訊來提高泛化能力,多工學習通過使用共享表示並行訓練多個任務來完成這一目標。歸納遷移是一種專注於將解決一個問題的知識應用到相關的問題的方法,從而提高學習的效率。比如,學習行走時掌握的能力可以幫助學會跑,學習識別椅子的知識可以用到識別桌子的學習,我們可以在相關的學習任務之間遷移通用的知識。此外,由於使用共享表示,多個任務同時進行預測時,減少了資料來源的數量以及整體模型引數的規模,使預測更加高效。因此,在多個應用領域中,可以利用多工學習來提高效果或效能,比如垃圾郵件過濾、網頁檢索、自然語言處理、影象識別、語音識別等。 
歸納偏執(inductive bias):歸納遷移的目標是利用額外的資訊來源來提高當前任務的學習效能,包括提高泛化準確率、學習速度和學習的模型的可理解性。提供更強的歸納偏執是遷移提高泛化能力的一種方法,可以在固定的訓練集上產生更好的泛化能力,或者減少達到同等效能水平所需要的訓練樣本數量。歸納偏執會導致一個歸納學習器更偏好一些假設,多工學習正是利用隱含在相關任務訓練訊號中的資訊作為一個歸納偏執來提高泛化能力。歸納偏置的作用就是用於指導學習演算法如何在模型空間中進行搜尋,搜尋所得模型的效能優劣將直接受到歸納偏置的影響,而任何一個缺乏歸納偏置的學習系統都不可能進行有效的學習。不同的學習演算法(如決策樹,神經網路,支援向量機等)具有不同的歸納偏置,人們在解決實際問題時需要人工地確定採用何種學習演算法,實際上也就是主觀地選擇了不同的歸納偏置策略。一個很直觀的想法就是,是否可以將歸納偏置的確定過程也通過學習過程來自動地完成,也就是採用“學習如何去學(learning to learn)”的思想。多工學習恰恰為上述思想的實現提供了一條可行途徑,即利用相關任務中所包含的有用資訊,為所關注任務的學習提供更強的歸納偏置。

 

詳解

1.從機器學習的角度來看,我們將多工學習視為一種歸約遷移(inductive transfer)。歸約遷移(inductive transfer)通過引入歸約偏置(inductive bias)來改進模型,使得模型更傾向於某些假設。舉例來說,常見的一種歸約偏置(Inductive bias)是L1正則化,它使得模型更偏向於那些稀疏的解。在多工學習場景中,歸約偏置(Inductive bias)是由輔助任務來提供的,這會導致模型更傾向於那些可以同時解釋多個任務的解,這樣做會使得模型的泛化效能更好。

2.深度學習中兩種多工學習模式:隱層引數的硬共享與軟共享。 
(1)引數的硬共享機制:引數的硬共享機制是神經網路的多工學習中最常見的一種方式,一般來講,在實際應用中,通常通過在所有任務之間共享隱藏層,同時保留幾個特定任務的輸出層來實現。硬共享機制降低了過擬合的風險。事實上,有文獻證明了這些共享引數過擬合風險的階數是N,其中N為任務的數量,比任務相關引數的過擬合風險要小。直觀來將,這一點是非常有意義的。越多工同時學習,我們的模型就能捕捉到越多工的同一個表示,從而導致在我們原始任務上的過擬合風險越小。 
(2)引數的軟共享機制(基於約束的共享(regularization based)):每個任務都由自己的模型,自己的引數。在共享 Soft 引數時,每個任務都有自己的引數和模型。模型引數之間的距離是正則化的,以便鼓勵引數相似化。我們對模型引數的距離進行正則化來保障引數的相似。如有文獻使用L2距離正則化,而也有文獻使用跡正則化(trace norm)。用於深度神經網路中的軟共享機制的約束很大程度上是受傳統多工學習中正則化技術的影響。約束深度神經網路 Soft 引數共享的思想受到了 MTL 正則化技術的極大啟發,這種思想已經用於其它模型開發。

3.多工學習的有效性: 
由於所有任務都或多或少存在一些噪音,例如,當我們訓練任務A上的模型時,我們的目標在於得到任務A的一個好的表示,而忽略了資料相關的噪音以及泛化效能。由於不同的任務有不同的噪音模式,同時學習到兩個任務可以得到一個更為泛化的表示(As different tasks have different noise patterns, a model that learns two tasks simultaneously is able to learn a more general representations.)。如果只學習任務A要承擔對任務A過擬合的風險,然而同時學習任務A與任務B對噪音模式進行平均,可以使得模型獲得更好表示F; 
若任務噪音嚴重,資料量小,資料維度高,則對於模型來說區分相關與不相關特徵變得困難。多工有助於將模型注意力集中在確實有影響的那些特徵上,是因為其他任務可以為特徵的相關與不相關性提供額外的證據; 
對於任務B來說很容易學習到某些特徵G,而這些特徵對於任務A來說很難學到。這可能是因為任務A與特徵G的互動方式更復雜,或者因為其他特徵阻礙了特徵G的學習。通過多工學習,我們可以允許模型竊聽(eavesdrop),即使用任務B來學習特徵G; 
多工學習更傾向於學習到一類模型,這類模型更強調與其他任務也強調的那部分表示。由於一個對足夠多的訓練任務都表現很好的假設空間,對來自於同一環境的新任務也會表現很好,所以這樣有助於模型展示出對新任務的泛化能力; 
單任務學習時,梯度的反向傳播傾向於陷入區域性極小值。多工學習中不同任務的區域性極小值處於不同的位置,通過相互作用,可以幫助隱含層逃離區域性極小值; 
新增的任務可以改變權值更新的動態特性,可能使網路更適合多工學習。比如,多工並行學習,提升了淺層共享層(shared representation)的學習速率,可能,較大的學習速率提升了學習效果; 
正則化機制:多工學習通過引入歸納偏置(inductive bias)起到與正則化相同的作用。正是如此,它減小了模型過擬合的風險,同時降低了模型的Rademacher複雜度,即擬合隨機噪音的能力。

4.多工學習MTL 有很多形式:聯合學習(joint learning)、自主學習(learning to learn)和帶有輔助任務的學習(learning with auxiliary task)等都可以指 MTL。一般來說,優化多個損失函式就等同於進行多工學習(與單任務學習相反)。這些情況有助於你明確地思考如何在 MTL 方面做嘗試並從中獲得啟發。

5.多工學習與其他學習演算法之間的關係 
遷移學習:自1995年以來,遷移學習吸引了眾多的研究者的目光,遷移學習有很多其他名字:學習去學習(Learning to learn)、終身學習(life-long learning)、推導遷移(inductive transfer)、知識強化(knowledge consolidation)、上下文敏感性學習(context-sensitive learning)、基於知識的推導偏差(knowledge-based inductive bias)、累計/增量學習(increment / cumulative learning)等。在機器學習、深度學習和資料探勘的大多數任務中,會假設training和inference時,採用的資料服從相同的分佈(distribution)、來源於相同的特徵空間(feature space)。但在現實應用中,這個假設很難成立,往往遇到一些問題:

 

a.帶標記的訓練樣本數量有限。比如,處理A領域(target domain)的分類問題時,缺少足夠的訓練樣本。同時,與A領域相關的B(source domain)領域,擁有大量的訓練樣本,但B領域與A領域處於不同的特徵空間或樣本服從不同的分佈。
b.資料分佈會發生變化。資料分佈與時間、地點或其他動態因素相關,隨著動態因素的變化,資料分佈會發生變化,以前收集的資料已經過時,需要重新收集資料,重建模型。12

多工學習是針對資料給出多個監督資訊(標籤)進行學習,例如識別一張影象中的臉是否是人臉、臉部表情、性別、年齡等,識別影象中車的顏色、車型、姿態等,都屬於多工分類。 
多標籤學習(Multilabel learning)是多工學習中的一種,建模多個label之間的相關性,同時對多個label進行建模,多個類別之間共享相同的資料/特徵。 
多類別學習(Multiclass learning)是多標籤學習任務中的一種,對多個相互獨立的類別(classes)進行建模。這幾個學習之間的關係如下圖所示: 

 


6.例項介紹

(1)人臉識別:多工學習給出多個監督資訊(標籤),利用任務之間的相關性互相促進。香港中文大學湯曉鷗組發表在NIPS14的論文《Deep Learning Face Representation by Joint Identification-Verification》,提出了一種聯合訓練人臉確認損失和人臉分類損失的多工人臉識別網路DeepID2(Deep IDentification-verification features)。DeepID2中共有兩個損失函式,分別為人臉分類損失函式和人臉驗證loss。結合兩個損失學習效果會更好,原因是:分類任務旨在區分不同類,理論上,只要類別不同學習到的特徵肯定不同,重點在於擴大類間距離,而驗證這個任務從另一個方面提取特徵:縮小類內距離,擴大類間相對距離!但是後者提取到的特徵不能用於分類,只能做二值區分。所以說兩個任務具有一定的互補性! 


(2)臉部特徵點檢測:臉部特徵點檢測受遮擋和姿勢變化等問題的影響,:通過多工學習具有提高檢測健壯性的可能性,而不是把檢測任務視為單一和獨立的問題。多工學習希望把優化臉部特徵點檢測和一些不同但細微相關的任務結合起來,比如頭部姿勢估計和臉部屬性推斷。臉部特徵點檢測不是一個獨立的問題,它的預測會被一些不同但細微相關的因素影響。比如一個正在笑的孩子會張開嘴,有效地發現和利用這個相關的臉部屬性將幫助更準確地檢測嘴角。  
如下圖,一個TCDCN模型,除了檢測特徵點任務,還有識別眼鏡、笑臉、性別和姿態這四個輔助任務,通過與其它網路的對比,可以看出輔助任務使主任務的檢測更準確。 


TCDCN通過隨機梯度下降進行學習,不同的任務有不同的損失函式和學習難度,因此有不同的收斂速度,網路結構如下圖所示。早期的方法通過探索任務之間的關係,比如學習所有任務權重的協方差矩陣來解決收斂速度不同的問題,但是這種方法只能在所有任務的損失函式相同時才能應用。TCDCN採用一種儘快停止輔助任務的方法,避免這些任務對訓練集過擬合後影響主任務的學習:即在訓練開始時,TCDCD受所有任務的約束,避免陷入不好的區域性最優;隨著訓練的進行,有些輔助任務將不再使主任務受益,它們的學習過程將被停止。 


(3)目標檢測: Fast R-CNN。Fast R-CNN 是一個物體檢測的快速的基於區域的卷積網路,其中也有多工深度學習的應用,圖中展示了Fast R-CNN的網路結構。一張圖片和多個RoI(感興趣區域)輸入到一個全卷積網路,每個RoI會進入一個固定大小的feature map,然後被全連線層對映到一個特徵向量。每個RoI有兩個輸出:softmax概率和每個分類的矩形框迴歸補償。

 
一個Fast R-CNN網路有兩個輸出層:第一個輸出K+1個分類的概率分佈;第二個輸出每個分類的邊框迴歸補償。每個訓練RoI標註為一個參考標準分類u和一個參考標準邊框迴歸物件v,在每個標註的RoI用多工損失函式L來共同訓練分類和矩形框迴歸。

 

總結 
現實世界中很多問題不能分解為一個一個獨立的子問題,即使可以分解,各個子問題之間也是相互關聯的,通過一些共享因素或共享表示(share representation)聯絡在一起。把現實問題當做一個個獨立的單任務處理,忽略了問題之間所富含的豐富的關聯資訊。多工學習就是為了解決這個問題而誕生的。把多個相關(related)的任務(task)放在一起學習。這樣做真的有效嗎?答案是肯定的。多個任務之間共享一些因素,它們可以在學習過程中,共享它們所學到的資訊,這是單任務學習所具備的。相關聯的多工學習比單任務學習能去的更好的泛化(generalization)效果。

多工學習是一種歸納遷移機制,利用額外的資訊來源來提高當前任務的學習效能,包括提高泛化準確率、學習速度和已學習模型的可理解性。在學習一個問題的同時,可以通過使用共享表示來獲得其他相關問題的知識。

能提高泛化能力的可能原因有三:第一,不相關任務對於聚合梯度的貢獻相對於其他任務來說可以視為噪聲,不相關任務也可以通過作為噪聲源來提高泛化能力;第二,增加任務會影響網路引數的更新,比如增加了隱層有效的學習率;第三,多工網路在所有任務之間共享網路底部的隱層,或許更小的容量就可以獲得同水平或更好的泛化能力。因此,我們需要關注如何選擇多個相關任務及資料集使網路更好地泛化,有四種機制可以幫助多工學習網路更好地泛化:統計資料增強、屬性選擇、資訊竊取、表示偏置。

多工學習將會在越來越多的領域作為一種提高神經網路學習能力的手段被廣泛應用。 深度學習網路是具有多個隱層的神經網路,在深度學習網路中應用多工學習是一種很自然的想法。機器視覺領域有廣泛的多工學習應用,主要方式包括: 
多個任務並行輸出; 
同時做分類和迴歸或使用不同的損失函式; 
多個任務如流水線般,輔助任務附加在主任務後面。

 

Reference 
機器之心:https://www.jiqizhixin.com/articles/2017-06-23-5 
[1] T. Evgeniouand M. Pontil. Regularized multi-task learning. In Proceeding of thetenth ACM SIGKDD international conference on Knowledge Discovery and DataMining, 2004.

[2] T. Jebara. MultitaskSparsity via Maximum Entropy Discrimination. In Journal of Machine LearningResearch, (12):75-110, 2011.

[3] A. Argyriou,T. Evgeniou and M. Pontil. Convex multitask feature learning. In MachineLearning, 73(3):243-272, 2008.

[4] T. G. Dietterich, L. Pratt, and S. Thrun, Eds., “Machine Learning – Special issue on inductive transfer,” Mach Learn, vol. 28, no. 1, 1997.

[5] L. Holmstrom and P. Koistinen, “Using additive noise in back-propagation training,” IEEE Trans. Neural Netw., vol. 3, no. 1, pp. 24–38, Jan. 1992.

[6] Z. Zhang, P. Luo, C. C. Loy, and X. Tang, “Facial Landmark Detection by Deep Multi-task Learning,” in Computer Vision – ECCV 2014: 13th European Conference, Zurich, Switzerland, September 6-12, 2014, Proceedings, Part VI, D. Fleet, T. Pajdla, B. Schiele, and T. Tuytelaars, Eds. Cham: Springer International Publishing, 2014, pp. 94–108.

[7] Y. Sun, Y. Chen, X. Wang, and X. Tang, “Deep Learning Face Representation by Joint Identification-Verification,” in Advances in Neural Information Processing Systems 27, Z. Ghahramani, M. Welling, C. Cortes, N. D. Lawrence, and K. Q. Weinberger, Eds. Curran Associates, Inc., 2014, pp. 1988–1996.

[8] G. B. Huang, M. Ramesh, T. Berg, and E. Learned-Miller, “Labeled faces in the wild: A database for studying face recognition in unconstrained environments,” Technical Report 07-49, University of Massachusetts, Amherst, 2007.

[9] R. Girshick, “Fast R-CNN,” in The IEEE International Conference on Computer Vision (ICCV), 2015.