一文讀懂遷移學習(附學習工具包)
1. 前言
遷移學習(Transfer Learning,TL)對於人類來說,就是掌握舉一反三的學習能力。比如我們學會騎腳踏車後,學騎摩托車就很簡單了;在學會打羽毛球之後,再學打網球也就沒那麼難了。對於計算機而言,所謂遷移學習,就是能讓現有的模型演算法稍加調整即可應用於一個新的領域和功能的一項技術。
不久前,香港科技大學的楊強教授在機器之心GMIS大會中回顧AlphaGo和柯潔的圍棋大戰時曾說,AlphaGo 看上去像神一樣的存在,好像是無懈可擊,而我們如果從機器學習的角度來看,它還是有弱點的,而且這個弱點還很嚴重。這個弱點即,AlphaGo不像人類一樣有遷移學習的能力。它不能在學會圍棋後,遷移到擁有下象棋的能力,這一侷限性需要遷移學習來攻破。另一位大牛吳恩達在NIPS 2016 tutorial中也曾表示非常看好遷移學習的應用前景。他認為遷移學習將是監督學習之後的,在ML的商業應用中得到成功的下一波動力。現實世界紛繁複雜,包含眾多場景。遷移學習可以幫助我們透過現象抓住問題共性,巧妙處理新遇到的問題。
傳統機器學習通常有兩個基本假設,即訓練樣本與測試樣本滿足獨立同分布的假設和必須有足夠可利用的訓練樣本假設。然而,現實生活中這兩個基本假設有時往往難以滿足。比如,股票資料的時效性通常很強,利用上個月資料訓練出來的模型,往往很難順利地運用到下個月的預測中去;比如公司開設新業務,但愁於沒有足夠的資料建立模型進行使用者推薦。近年來在機器學習領域受到廣泛關注的遷移學習恰恰解決了這兩個問題。遷移學習用已有的知識來解決目標領域中僅有少量有標籤樣本資料甚至沒有資料的學習問題,從根本上放寬了傳統機器學習的基本假設。由於被賦予了人類特有的舉一反三的智慧,遷移學習能夠將適用於大資料的模型遷移到小資料上,發現問題的共性,從而將通用的模型遷移到個性化的資料上,實現個性化遷移。
2. 遷移學習的一般化定義
- 條件:給定一個源域Ds和源域上的學習任務Ts,目標域Dt和目標域上的學習任務Tt
- 目標:用Ds和Ts學習目標域上的預測函式f(·)
- 限制條件:Ds≠Dt,Ts≠Tt
3 遷移學習的分類
3.1 按特徵空間分
- 同構遷移學習(Homogeneous TL): 源域和目標域的特徵空間相同,XS=XT
- 異構遷移學習(Heterogeneous TL):源域和目標域的特徵空間不同,XS≠XT
3.2 按遷移情景分
- 歸納式遷移學習(Inductive TL):源域和目標域的學習任務不同
- 直推式遷移學習(Transductive TL):源域和目標域不同,學習任務相同
- 無監督遷移學習(Unsupervised TL):源域和目標域均沒有標籤
4. 遷移學習的基本方法
- 樣本遷移(Instance based TL)
在源域中找到與目標域相似的資料,把這個資料的權值進行調整,使得新的資料與目標域的資料進行匹配。下圖的例子就是找到源域的例子3,然後加重該樣本的權值,使得在預測目標域時的比重加大。優點是方法簡單,實現容易。缺點在於權重的選擇與相似度的度量依賴經驗,且源域與目標域的資料分佈往往不同。
- 特徵遷移(Feature based TL)
假設源域和目標域含有一些共同的交叉特徵,透過特徵變換,將源域和目標域的特徵變換到相同空間,使得該空間中源域資料與目標域資料具有相同分佈的資料分佈,然後進行傳統的機器學習。優點是對大多數方法適用,效果較好。缺點在於難於求解,容易發生過適配。
- 模型遷移(Parameter based TL)
假設源域和目標域共享模型引數,是指將之前在源域中透過大量資料訓練好的模型應用到目標域上進行預測,比如利用上千萬的圖象來訓練好一個圖象識別的系統,當我們遇到一個新的圖象領域問題的時候,就不用再去找幾千萬個圖象來訓練了,只需把原來訓練好的模型遷移到新的領域,在新的領域往往只需幾萬張圖片就夠,同樣可以得到很高的精度。優點是可以充分利用模型之間存在的相似性。缺點在於模型引數不易收斂。
- 關係遷移(Relation based TL)
- 假設兩個域是相似的,那麼它們之間會共享某種相似關係,將源域中邏輯網路關係應用到目標域上來進行遷移,比方說生物病毒傳播到計算機病毒傳播的遷移。
5. 遷移學習的應用場景
5.1 遷移學習的理論研究價值
- 解決標註資料稀缺性
大資料時代億萬級別規模的資料導致資料的統計異構性、標註缺失問題越來越嚴重。標註資料缺失會導致傳統監督學習出現嚴重過擬合問題。目前解決資料稀缺性的方法有傳統半監督學習、協同訓練、主動學習等,但這些方法都要求目標域中存在一定程度的標註資料,而在標註資料稀缺的時候額外獲取人工標註資料的代價太大。這時需要遷移學習來輔助提高目標領域的學習效果。
- 非平穩泛化誤差分享
經典統計學習理論給出了獨立同分布條件下模型的泛化誤差上界保證。而在非平穩環境(不同資料域不服從獨立同分布假設)中,傳統機器學習理論不再成立,這給異構資料分析挖掘帶來了理論風險。從廣義上看,遷移學習可以看做是傳統機器學習在非平穩環境下的推廣。因此在非平穩環境下,遷移學習是對經典機器學習的一個重要理論補充。
5.2 遷移學習的實際應用
- 訓練機械臂
在真實的機器人上訓練模型太慢,而且非常昂貴。解決辦法是先進行模擬學習,將模擬學習學到的知識遷移到現實世界的機器人訓練中,這裡源域和目標域之間的特徵空間是相同的。近年來該領域的研究又引發了許多人的興趣。下圖是谷歌DeepMind的工作:圖左是在模擬環境下訓練機械臂的移動,訓練好之後,可以把知識遷移到現實世界的機械臂上,真實的機械臂稍加訓練也可以達到非常好的效果,如下圖右。
影片參見:
- 輿情分析
遷移學習也可應用在輿情分析中的使用者評價上。以電子產品和影片遊戲產品使用者評價為例,圖中綠色為好評標籤,而紅色為差評標籤。從圖左的電子產品評價(源域)中抽取特徵,建立電子產品評價領域的模型,然後將其應用到右圖的影片遊戲領域(目標域)中,實現輿情大規模的遷移,並且在新的領域不需要標籤。
- 推薦系統
遷移學習也可以用在推薦系統中,在某個領域做好一個推薦系統,然後應用在稀疏的、新的垂直領域。比如已成熟完善的電影推薦系統可以應用在冷啟動中的書籍推薦系統中。
- 個性化對話
先訓練一個通用型的對話系統,然後再根據特定領域的小資料修正它,使得這個對話系統適應該特定領域的任務。比如,一個使用者想買咖啡,他並不想回答所有繁瑣的問題,例如是問要大杯小杯,熱的冷的?
- 資料生成式的遷移學習-GAN
生成式對抗網路(GAN)是一個新的機器學習的思想。GAN模型中的兩位博弈方分別由生成式模型(generative model)和判別式模型(discriminative model)充當。生成模型G捕捉樣本資料的分佈,用服從某一分佈(均勻分佈,高斯分佈等)的噪聲z生成一個類似真實訓練資料的樣本,追求效果是越像真實樣本越好;判別模型 D 是一個二分類器,估計一個樣本來自於訓練資料(而非生成資料)的機率,如果樣本來自於真實的訓練資料,D輸出大機率,否則,D輸出小機率。GAN的最佳化是一個極小極大博弈問題,最終的目的是generator的輸出給discriminator時很難判斷是真實or偽造的。
如果我們有一個很好的生成式模型,在某個資料集上已經訓練好了,如果有一些新的資料,和前一個資料集有明顯的區別,那麼我們可以利用“GAN+邊界條件”,把生成式模型遷移到新的資料分佈上。比方說,我們寫字的時候,每個人簽名都是不同的,我們不會用印刷體來簽名,因為我們每個人都有自己的寫字的特點。那麼,如果用大量的印刷體字作為第一部分的訓練樣本,來訓練一個不錯的通用模型,而用某個人手寫的斜體字做第二部分的訓練樣本,就可以利用Wasserstein GAN把印刷體的模型遷移到個人的簽名。也就是說,這樣的簽名也就更具個性化特點。
6. 遷移學習相關競賽
- [Unsupervised and Transfer Learning Challenge] ()
- [2007 IEEE ICDM Data Mining Contest Overview] (~qyang/ICDMDMC07/)
7. 遷移學習代表性研究學者
開展遷移學習的研究可以從跟蹤遷移學習代表性研究學者的成果著手。國內外遷移學習方面的代表人物有:
- 香港科技大學的楊強教授
- 第四正規化的CEO [戴文淵] ()
- 南洋理工大學的助理教授[Sinno Jialin Pan] ()
- 中科院計算所副教授[莊福振] ()
8. 遷移學習工具包
- [Boosting for Transfer Learning] (TL/code/C_TraDaBoost.rar), Wenyuan Dai,Qiang Yang, et al., C語言
- [Selective Transfer Between Learning Tasks Using Task-Based Boosting] (~eeaton/TransferBoost/TransferBoostExp.java), Eric Eaton and Marie desJardins, Java
- [Domain Adaptation in Natural Language Processing] (http://www.mysmu.edu/faculty/jingjiang/software/DALR.html), Jiang Jiang,C++
- [Triplex Transfer Learning: Exploiting both Shared and Distinct Concepts for Text Classification] (code&data_TriTL.rar), Fuzhen Zhuang , Ping Luo, et al.,Matlab
- [Heterogeneous Transfer Learning for Image Classification] (~yinz/htl4ic.zip), Yin Zhu, Yuqiang Chen, et al.,Matlab
- [Domain Adaptation Toolbox] (), Ke Yan,Matlab
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29829936/viewspace-2653343/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 深度學習很難?一文讀懂深度學習!深度學習
- 一文讀懂最近流行的CNN架構(附學習資料)CNN架構
- 獲贊2萬,一文讀懂深度學習深度學習
- 遷移學習系列---基於例項方法的遷移學習遷移學習
- 深度學習+深度強化學習+遷移學習【研修】深度學習強化學習遷移學習
- 什麼是遷移學習?什麼時候使用遷移學習?遷移學習
- 一文讀懂深度學習中的矩陣微積分深度學習矩陣
- 一文讀懂深度學習與機器學習的差異深度學習機器學習
- 一文看懂遷移學習:怎樣用預訓練模型搞定深度學習?遷移學習模型深度學習
- 【深度學習系列】遷移學習Transfer Learning深度學習遷移學習
- 一文讀懂人工智慧、機器學習、深度學習、強化學習的關係(必看)人工智慧機器學習深度學習強化學習
- 讀懂深度學習,走進“深度學習+”階段深度學習
- 一文讀懂深度學習:從神經元到BERT深度學習
- 深度學習之遷移學習介紹與使用深度學習遷移學習
- 遷移學習(Transfer Learning)遷移學習
- 深度學習之PyTorch實戰(4)——遷移學習深度學習PyTorch遷移學習
- 【遷移學習】大資料時代下的遷移學習--- 機器學習的下一個前沿遷移學習大資料機器學習
- 遷移學習基本原理遷移學習
- 深度學習趣談:什麼是遷移學習?(附帶Tensorflow程式碼實現)深度學習遷移學習
- 帶你用深度學習虛擬機器進行文字遷移學習(附程式碼)深度學習虛擬機遷移學習
- 簡述遷移學習在深度學習中的應用遷移學習深度學習
- 深度學習不得不會的遷移學習Transfer Learning深度學習遷移學習
- 深度學習助力資料壓縮,一文讀懂相關理論深度學習
- 一文讀懂強化學習:RL全面解析與Pytorch實戰強化學習PyTorch
- 遷移學習時間序列分類遷移學習
- [譯] TensorFlow 教程 #08 – 遷移學習遷移學習
- Laravel 學習之資料庫遷移Laravel資料庫
- 站在巨人的肩膀上:遷移學習遷移學習
- 基於VGG的遷移學習遷移學習
- 遷移學習中的BN問題遷移學習
- 數字資訊化之遷移學習遷移學習
- [譯] TensorFlow 教程 #08 - 遷移學習遷移學習
- 再無需從頭訓練遷移學習模型!亞馬遜開源遷移學習資料庫 Xfer遷移學習模型亞馬遜資料庫
- 楊強:深度學習、強化學習、遷移學習的結合及應用進展深度學習強化學習遷移學習
- 影像分類學習:X光胸片診斷識別----遷移學習遷移學習
- 遷移學習(Transfer),面試看這些就夠了!(附程式碼)遷移學習面試
- 一文讀懂:何為嵌入式?如何學習嵌入式系統?
- 圖解BERT(NLP中的遷移學習)圖解遷移學習