深度學習之遷移學習

2021-10-12 18:47:46 字數 2820 閱讀 9332

遷移學習(transfer learning)是一種機器學習方法,就是把為任務 a 開發的模型作為初始點,重新使用在為任務 b 開發模型的過程中。遷移學習是通過從已學習的相關任務中轉移知識來改進學習的新任務,雖然大多數機器學習演算法都是為了解決單個任務而設計的,但是促進遷移學習的演算法的開發是機器學習社群持續關注的話題。 遷移學習對人類來說很常見,例如,我們可能會發現學習識別蘋果可能有助於識別梨,或者學習彈奏電子琴可能有助於學習鋼琴。

找到目標問題的相似性,遷移學習任務就是從相似性出發,將舊領域(domain)學習過的模型應用在新領域上。

大資料與少標註的矛盾:雖然有大量的資料,但往往都是沒有標註的,無法訓練機器學習模型。人工進行資料標定太耗時。

大資料與弱計算的矛盾:普通人無法擁有龐大的資料量與計算資源。因此需要借助於模型的遷移。

普適化模型與個性化需求的矛盾:即使是在同乙個任務上,乙個模型也往往難以滿足每個人的個性化需求,比如特定的隱私設定。這就需要在不同人之間做模型的適配。

特定應用(如冷啟動)的需求

基本問題主要有3個:

任務 (task):由目標函式和學習結果組成,是學習的結果

按特徵空間分類

按遷移情景分類

按遷移方法分類

遷移學習

傳統機器學習

資料分布

訓練和測試資料不需要同分布

訓練和測試資料同分布

資料標籤

不需要足夠的資料標註

足夠的資料標註

建模可以重用之前的模型

每個任務分別建模

遷移學習的總體思路可以概括為:開發演算法來最大限度地利用有標註的領域的知識,來輔助目標領域的知識獲取和學習。

遷移學習的核心是:找到源領域和目標領域之間的相似性,並加以合理利用。這種相似性非常普遍。比如,不同人的身體構造是相似的;自行車和電單車的騎行方式是相似的;西洋棋和中國象棋是相似的;羽毛球和網球的打球方式是相似的。這種相似性也可以理解為不變數。以不變應萬變,才能立於不敗之地。

有了這種相似性後,下一步工作就是, 如何度量和利用這種相似性。度量工作的目標有兩點:一是很好地度量兩個領域的相似性,不僅定性地告訴我們它們是否相似,更定量地給出相似程度。二是以度量為準則,通過我們所要採用的學習手段,增大兩個領域之間的相似性,從而完成遷移學習。

一句話總結: 相似性是核心,度量準則是重要手段。

遷移學習與多工學習關係:

遷移學習:強調資訊復用,從乙個領域(domain)遷移到另乙個領域。

遷移學習與領域自適應:領域自適應:使兩個特徵分布不一致的domain一致。

遷移學習與協方差漂移:協方差漂移:資料的條件概率分布發生變化。

遷移學習最有用的場合是,如果你嘗試優化任務b的效能,通常這個任務資料相對較少。 例如,在放射科中你知道很難收集很多射線掃瞄圖來搭建乙個效能良好的放射科診斷系統,所以在這種情況下,你可能會找乙個相關但不同的任務,如影象識別,其中你可能用 1 百萬張訓練過了,並從中學到很多低層次特徵,所以那也許能幫助網路在任務在放射科任務上做得更好,儘管任務沒有這麼多資料。

假如兩個領域之間的區別特別的大,不可以直接採用遷移學習,因為在這種情況下效果不是很好。在這種情況下,推薦以上的方法,在兩個相似度很低的domain之間一步步遷移過去(踩著石頭過河)。

度網路的finetune也許是最簡單的深度網路遷移方法。finetune,也叫微調、fine-tuning, 是深度學習中的乙個重要概念。簡而言之,finetune就是利用別人己經訓練好的網路,針對自己的任務再進行調整。從這個意思上看,我們不難理解finetune是遷移學習的一部分。

為什麼需要已經訓練好的網路?

在實際的應用中,我們通常不會針對乙個新任務,就去從頭開始訓練乙個神經網路。這樣的操作顯然是非常耗時的。尤其是,我們的訓練資料不可能像imagenet那麼大,可以訓練出泛化能力足夠強的深度神經網路。即使有如此之多的訓練資料,我們從頭開始訓練,其代價也是不可承受的。

為什麼需要 finetune?

因為別人訓練好的模型,可能並不是完全適用於我們自己的任務。可能別人的訓練資料和我們的資料之間不服從同乙個分布;可能別人的網路能做比我們的任務更多的事情;可能別人的網路比較複雜,我們的任務比較簡單。

深度網路的 finetune 可以幫助我們節省訓練時間,提高學習精度。但是 finetune 有它的先天不足:它無法處理訓練資料和測試資料分布不同的情況。而這一現象在實際應用中比比皆是。因為 finetune 的基本假設也是訓練資料和測試資料服從相同的資料分布。這在遷移學習中也是不成立的。因此,我們需要更進一步,針對深度網路開發出更好的方法使之更好地完成遷移學習任務。

以我們之前介紹過的資料分布自適應方法為參考,許多深度學習方法都開發出了自適應層(adaptationlayer)來完成源域和目標域資料的自適應。自適應能夠使得源域和目標域的資料分布更加接近,從而使得網路的效果更好。

生成對抗網路 gan(generative adversarial nets) 受到自博弈論中的二人零和博弈 (two-player game) 思想的啟發而提出。它一共包括兩個部分:

transfer learning例子

github:

深度學習 遷移學習

遷移學習 把公共的資料集的知識遷移到自己的問題上,即將已經訓練好的模型的一部分知識 網路結構 直接應用到另乙個類似模型中去 小資料集 利用遷移學習,應用其他研究者建立的模型和引數,用少量的資料僅訓練最後自定義的softmax網路。從而能夠在小資料集上達到很好的效果。例如 imagenet 資料集,它...

深度學習11 為什麼需要遷移學習? 遷移學習簡介

使用深度學習技術解決問題的過程中,最常見的障礙在於,因為模型有大量的引數需要訓練,因此需要海量訓練資料作支撐。在面對某一領域的具體問題時,通常可能無法得到構建模型所需規模的資料。借助遷移學習,在乙個模型訓練任務中針對某種型別資料獲得的關係也可以輕鬆地應用於同一領域的不同問題。遷移學習的應用是近低於有...

機器學習筆記之 遷移學習

關於遷移學習不錯的博文,值得學習 1.2.a survey on transfer learning,sinno jialinpan,qiang yang,ieee trans 個人關於遷移學習的粗淺理解 在機器學習領域,我們的任務是對乙個模型給定充足的資料,對機器學習模型進行訓練 微調和優化,得到...