-
遷移學習提出背景
在機器學習、深度學習和數據挖掘的大多數任務中,我們都會假設training和inference時,採用的數據服從相同的分佈(distribution)、來源於相同的特徵空間(feature space)。但在現實應用中,這個假設很難成立,往往遇到一些問題:
- 1、帶標記的訓練樣本數量有限。比如,處理A領域(target domain)的分類問題時,缺少足夠的訓練樣本。同時,與A領域相關的B(source domain)領域,擁有大量的訓練樣本,但B領域與A領域處於不同的特徵空間或樣本服從不同的分佈。
- 2、數據分佈會發生變化。數據分佈與時間、地點或其他動態因素相關,隨着動態因素的變化,數據分佈會發生變化,以前收集的數據已經過時,需要重新收集數據,重建模型。
這時,知識遷移(knowledge transfer)是一個不錯的選擇,即把B領域中的知識遷移到A領域中來,提高A領域分類效果,不需要花大量時間去標註A領域數據。遷移學習,做爲一種新的學習範式,被提出用於解決這個問題。
-
遷移學習發展歷史
遷移學習的研究來源於一個觀測:人類可以將以前的學到的知識應用於解決新的問題,更快的解決問題或取得更好的效果。遷移學習被賦予這樣一個任務:從以前的任務當中去學習知識(knowledge)或經驗,並應用於新的任務當中。換句話說,遷移學習目的是從一個或多個源任務(source tasks)中抽取知識、經驗,然後應用於一個目標領域(target domain)當中去。
自1995年以來,遷移學習吸引了衆多的研究者的目光,遷移學習有很多其他名字:學習去學習(Learning to learn)、終身學習(life-long learning)、推導遷移(inductive transfer)、知識強化(knowledge consolidation)、上下文敏感性學習(context-sensitive learning)、基於知識的推導偏差(knowledge-based inductive bias)、累計/增量學習(increment / cumulative learning)等
-
什麼是遷移學習?
其目標是將某個領域或任務上學習到的知識應用到不同的但相關的領域或問題中。例如學習C++的技能可以用來學習java
-
遷移學習的主要思想?
利用相關領域的知識完成目標領域的任務
-
遷移學習研究的意義?
數據的標籤很難獲取;從頭建立模型是複雜和耗時的
-
遷移學習與傳統機器學習相比的特點?
遷移學習放寬了傳統機器學習訓練數據和測試數據服從獨立同分布這一假設,從而使得參與學習的領域或任務可以服從不同的邊緣概率分佈或條件概率分佈。
遷移學習問題的數學定義?
域(domain)
用D={χ,P(X)}表示,它包含兩部分:特徵空間χ和邊緣概率分佈P(X)其中X={x1,...xn}∈χ
在文本分類任務中,把每一個單詞看作二值的特徵即出現或者不出現,所有檢索詞向量的空間就是χ,xi對應某一文本第i個詞向量的值,X就是特定的學習樣本。如果說兩個數據域不同,表示兩個數據域的特徵空間或者邊緣概率分佈不同。
任務(task)
用T={У,ƒ(X)}表示,它包含兩部分:標籤空間У和目標預測函數ƒ(X),ƒ(X)也可以看作條件概率P(y|x)
在文本分類任務中У是所有標籤的集合。
數學定義:
給出源領域的數據Ds和任務Ts,目標領域的數據Dt和任務Tt,遷移學習旨在使用源領域Ds和Ts中的知識去改進對於目標領域的預測函數ƒt(),其中Ds≠Dt或者Ts≠Tt
由於D={χ,P(X)},在上述的定義中Ds≠Dt意味着χs≠χt或者Ps(X)≠Pt(X)。
在文本分類任務中,這兩種情況分別意味着在源文本集和目標文本集之間,詞特徵不同(兩個文本使用兩種不同語言的情況)以及邊緣分佈不同。
類似的,由於T={У,ƒ(X)},Ts≠Tt意味着Уs≠Уt或者Ps(y|x)≠Pt(y|x)。
在文本分類任務中,這兩種情況分別意味着源領域上的任務要求將文本分爲2類,目標領域的任務要求將文本分爲10類,以及在定義的類別上,源數據和目標數據數量不平衡。
遷移學習示意圖
------------遷移學習分類-----------
根據源領域和目標領域的相似度,可以將情況總結如下:
|
Ds&Dt |
Ts&Tt |
|
傳統機器學習 |
相同 |
相同 |
|
遷移學習 |
歸納式遷移學習 |
相同/相關 |
相關 |
無監督遷移學習 |
相關 |
相關 |
|
直推式遷移學習 |
相關 |
相同 |
根據每一種類型的遷移學習,又可根據標籤數據的多少分情況討論:
- 歸納式遷移學習
- 源數據域包含有大量標籤數據,這時歸納式遷移學習和多任務學習類似。
- 源數據域沒有可用的標籤數據,這時歸納式遷移學習相當於自我學習。
- 直推式遷移學習
a.特徵空間不同χs≠χt
b.特徵空間相同χs=χt但是邊緣分佈不同Ps(X)≠Pt(X),此時可用域適應,樣本選擇偏差和Covariate Shift。
- 無監督遷移學習
總結如下表:
|
相關領域 |
源數據域標籤 |
目標數據域標籤 |
任務 |
歸納式遷移學習
|
多任務學習 |
有 |
有 |
分類迴歸 |
自我學習 |
無 |
有 |
分類迴歸 |
|
直推式遷移學習 |
域適應,樣本選擇偏差和Covariate Shift |
有 |
無 |
分類迴歸 |
無監督遷移學習 |
|
無 |
無 |
聚類降維 |
依據遷移知識的形式可將遷移學習分爲:基於實例的遷移學習;基於特徵的遷移學習;基於模型的遷移學習;基於關係的遷移學習。
遷移學習方法 |
方法描述 |
基於實例的遷移學習 |
基於實例的遷移學習方法適用於源域和目標域相似度較高的情況。主要思想是:通過改變樣本的存在形式來減少源域和目標域的差異。 |
基於特徵的遷移學習 |
基於特徵的遷移學習算法可應用在域間相似度不太高的甚至不相似的情況。主要思想是:通過特徵變換將源於和目標域在某個特徵空間下表現出相似的性質。 |
基於參數的遷移學習 |
基於參數的遷移學習方法從模型的角度出發,共享源域模型與目標域模型之間的某些參數達到遷移學習的效果。 |
基於關係的遷移學習 |
基於關係的遷移學習是通過將兩個域之間的相關性知識建立一個映射來達到遷移學習的效果。 |
根據源與目標的樣本空間和標記空間的一致性可將遷移學習分爲同構遷移學習與異構遷移學習。
當源和目標的樣本空間和標記空間一致時稱爲同構遷移學習;當樣本空間和標記空間中只要有一個不一致時稱爲異構遷移學習。
- 國內外發展現狀
歸納式遷移學習
基於實例的遷移:主要思想就是在目標領域的訓練中,雖然源數據域不能直接使用,但是可以從中挑選部分,用於目標領域的學習。
1.TrAdaBoost算法是AdaBoost的提升版本,用於解決歸納式遷移學習問題。它假設源數據域和目標數據域使用相同的特徵和標籤集合,但是分佈不相同。有一些源數據對於目標領域的學習是有幫助的,但是還有一些是無幫助甚至是有害的。所以它迭代地指定源數據域每一個數據的權重,旨在訓練當中減小“壞”數據的影響,加強“好”數據的作用。
2.使用啓發式的方法,根據條件概率P(Yt|Xt)和P(Ys|Xs)的差異,去除源數據域中“不好”的樣本。
基於特徵表示的遷移:主要思想是尋找一個“好”的特徵表示,最小化域間差異和分類迴歸的誤差。可以分爲有監督和無監督兩種情況。
有監督特徵構造的基本思想是學習一個低維的特徵表示,使得特徵可以在相關的多個任務中共享,同時也要使分類迴歸的誤差最小。此時目標函數如下:
其中S和T表示源域和目標域,U是將高維的數據映射爲低維表示的矩陣。
無監督特徵構造的基本思想包含兩步,第一步在源領域上學習一個基向量b和基於這組基對於輸入x的新的表示a
在得到基向量b之後,第二步在目標領域上根據基向量b來學習其特徵表示
最後通過使用目標領域的新特徵來訓練分類迴歸模型。
基於參數的遷移:參數遷移方法假定在相關任務上的模型應該共享一些參數、先驗分佈或者超參數。
多任務學習中多使用這種方法,通過將多任務學習對於源域和目標域的權值做改變(增大目標域權值,減小源域權值),即可將多任務學習轉變成遷移學習。
基於相關性的遷移:和前三種方式不同,相關知識遷移方法在相關域中處理遷移學習的問題,它不假設每一個域的數據都是獨立同分布的,而是將數據之間的聯繫從源域遷移到目標域。
直推式遷移學習
基於實例的遷移:直推式遷移學習因爲任務相同,所以可以直接使用源域上的損失函數。在源域上最小化目標函數如下
但是由於目標域數據是沒有標籤的,所以取而代之使用源域的數據,如果Ds和Dt分佈相同,可以直接使用
否則,就不能簡單的使用Ds,而是需要通過轉化,對於每一個樣本增加一個權值
此時需要計算
因爲直推式遷移學習任務相同的假設,Ps(y|x)=Pt(y|x),可得出
接下來只要計算就可以解決直推式遷移學習問題。
基於特徵表示的遷移:大多數特徵表示遷移方法都基於非監督學習。SCL算法,使用目標域的無標籤數據提取一些相關特徵從而減小兩個域之間的差異。SCL算法第一步在兩個域的無標籤數據上定義一個pivot特徵集合(包含m個pivot特徵),然後把一個pivot特徵看作一個標籤
最終通過學習得到,第三步將W矩陣做奇異值分解從而形成增廣特徵。
無監督遷移學習
基於特徵表示的遷移:無監督遷移學習的研究工作較少,在無監督遷移問題上通常通過自我聚類以及TDA(Transferred Discriminative Analysis)算法來聚類和降維。
自我聚類的目標是基於源域無標籤數據的幫助,來對目標域無標籤數據聚類,通過學習跨域的共同的特徵空間,幫助目標域的聚類,目標函數如下:
其中Z是共享的特徵空間,I計算兩個量之間的互信息,最終要使得聚類過後損失的互信息最小。
- 多源遷移學習
多源遷移學習是指遷移學習過程中,源域的個數不止一個,通過適量的增加源域的個數可以有效避免負遷移現象的發生。目前多源遷移學習的成熟算法可分爲兩類:基學習器加權法,特徵表示法。圖1.14爲多源遷移學習示意圖。
- 基於實例的多源遷移學習
- 基於特徵的多源遷移學習
- 研究學者
- 未來的發展趨勢
第一,針對領域相似性、共同性的度量,目前還沒有深入的研究成果,未來還需要確定更加準確的度量方法。第二,在算法研究方面,遷移學習的應用範圍很廣。遷移學習多用於分類算法方面,其他方面的應用算法有待進一步研究。比如情感分類、強化學習、排序學習、度量學習、人工智能規劃等。第三,關於可遷移學習條件,獲取實現正遷移的本質屬性還沒有完全摸透,如何避免負遷移,實現遷移的有效性也是方向之一。
- 技術難點
負遷移是一個重要的技術難點。負遷移表示目標域訓練中源域數據的使用不僅沒有提升模型能力,反而降低了識別率的現象。儘管實際當中如何避免負遷移現象是很重要的問題,但是在這個問題上的研究依然很少,經驗表明如果兩個任務太不相似,那麼魯莽的強制遷移會損害性能。目前已有一些對任務和任務之間聚類的探索,旨在對如何自動避免負遷移提供指導。
另外在非簡單分類或者回歸的問題上,如何更好地優化遷移算法,以達到適合任務的最佳效果,也是一個難點。在不同的應用背景下,遷移學習是否適合以及需要做怎樣的改進都是值得去考慮的。