遷移學習——入門簡介

1、簡介

背景:現現在數據爆炸:git

  • 對機器學習模型來講要求快速構建,強泛化
  • 對於數據來講,大部分數據沒有標籤

因此收集標籤數據和從頭開始構建一個模型都是代價高昂的,須要對模型和帶有標籤的數據進行重用github

傳統機器學習:假設數據服從相同分佈,但咱們但願針對不一樣分佈的數據,快速構建模型,實現數據標記算法

遷移學習(transfer learning)通俗來說,就是運用已有的知識來學習新的知識,核心是找到已有知識和新知識之間的類似性。在遷移學習中,咱們已有的知識叫作源域(source domain),要學習的新知識叫目標域(target domain),源域和目標域不一樣但有必定關聯,咱們須要減少源域和目標域的分佈差別,進行知識遷移,從而實現數據標定。網絡

  • 源域目標域區別:通常目標域相對於源域,在數據分佈、特徵維度以及模型輸出變化條件有不一樣,有機地利用源域中的知識來對目標域更好地建模。另外,在有目標域標定數據缺少的狀況下,遷移學習能夠很好地利用相關領域有標定的數據完成數據的標定。
  • 負遷移:若是源域和目標域之間類似度不夠,遷移結果並不會理想,出現所謂的負遷移狀況。好比,一我的會騎自行車,就能夠類比學電動車;可是若是類比着學開汽車,那就有點天方夜譚了。如何找到類似度儘量高的源域和目標域,是整個遷移過程最重要的前提。
  • 遷移學習資料庫https://github.com/jindongwan...
  • 爲何要進行遷移學習:架構

    數據的標籤很難獲取
       從頭創建模型是複雜和耗時的

2、遷移學習經常使用概念

  • Domain (域):由數據特徵和特徵分佈組成,是學習的主體
  • Source domain (源域):已有知識的域
  • Target domain (目標域):要進行學習的域
  • Task (任務):由目標函數和學習結果組成,是學習的結果,可理解爲分類器
  • 遷移學習條件:給定源域和源域的任務,目標域和目標域的任務,目標:利用源域和源域任務學習目標域預測函數f(),限制條件:源域和目標域不一樣或源任務和目標任務不一樣
  • domain adaptation(領域自適應):有標籤的源域和無標籤的目標域共享一致的類別和特徵,但分佈不一樣
  • space coding(稀疏編碼):給定一組輸入數據向量 { x1,x2,...,xN },去學習一組基字典(dictionary of bases),將每一個樣本表示爲一組基的線性組合,其中這組基較爲完備,多於輸出,而係數向量則大部分都爲 0,因此稱爲「稀疏」。app

    稀疏編碼過程:
           一、訓練(training):給定一系列的樣本圖片[x1, x 2, …],咱們須要學習獲得一組基[Φ1, Φ2, …],也就是字典,這須要不斷迭代,目標函數表示爲Min |I – O| + u*(|a1| + |a2| + … + |an |)I爲輸入,O爲輸出,其後爲正則化。
               每次迭代分兩步:
                   a)固定字典Φ[k],而後調整a[k],使得上式,即目標函數最小(即解LASSO問題)。
                   b)而後固定住a [k],調整Φ [k],使得上式,即目標函數最小(即解凸QP問題)。
               不斷迭代,直至收斂。這樣就能夠獲得一組能夠良好表示這一系列x的基,也就是字典。
            二、編碼(Coding):給定一個新的圖片x,由上面獲得的字典,經過解一個LASSO問題獲得稀疏向量a。這個稀疏向量就是這個輸入向量x的一個稀疏表達了。

3、遷移學習分類

3.1 按照學習方式分四類:

  1. 基於樣本的遷移:經過對源域中有標記樣本加權利用完成知識遷移,例如類似的樣本就給高的權重框架

    假設:源域中的一些數據和目標域會共享不少共同的特徵
       方法:對源域進行樣本從新加權,篩選出與目標域數據類似度高的數據,而後進行訓練學習
       表明工做:
           • TrAdaBoost [Dai, ICML-07]
           • Kernel Mean Matching (KMM) [Smola, ICML-08]
           • Density ratio estimation [Sugiyama, NIPS-07]
       優勢:
           • 方法較簡單,實現容易
       缺點:
           • 權重選擇與類似度度量依賴經驗
           • 源域和目標域的數據分佈每每不一樣
  2. 基於特徵的遷移:經過將源域和目標域特徵變換到相同的空間(或者將其中之一映射到另外一個的空間中)並最小化源域和目標域的距離來完成知識遷移;目前使用最多也最易於上手完成dom

    假設:源域和目標域僅僅有一些交叉特徵
       方法:經過特徵變換,將兩個域的數據變換到同一特徵空間,而後進行傳統的機器學習
       表明工做:
           • Transfer component analysis (TCA) [Pan, TKDE-11]
           • Spectral Feature Alignment (SFA) [Pan, WWW-10]
           • Geodesic flow kernel (GFK) [Duan, CVPR-12]
           • Transfer kernel learning (TKL) [Long, TKDE-15]
       優勢:
           • 大多數方法採用
           • 特徵選擇與變換能夠取得好效果
       缺點:
           • 每每是一個優化問題,難求解
           • 容易發生過適配
  3. 基於模型的遷移:將源域和目標域的模型與樣本結合起來調整模型的參數;通常來講使用於神經網絡,使用較多機器學習

    假設:源域和目標域能夠共享一些模型參數
       方法:由源域學習到的模型運用到目標域上,再根據目標域學習新的模型
       表明工做:
           • TransEMDT [Zhao, IJCAI-11]
           • TRCNN [Oquab, CVPR-14]
           • TaskTrAdaBoost [Yao, CVPR-10]
       優勢:
           • 模型間存在類似性,能夠被利用
       缺點:
           • 模型參數不易收斂
  4. 基於關係的遷移:經過在源域中學習概念之間的關係,而後將其類比到目標域中,完成知識的遷移。ide

    假設:若是兩個域是類似的,那麼它們會共享某種類似關係
       方法:利用源域學習邏輯關係網絡,再應用於目標域上
       表明工做:
           • Predicate mapping and revising [Mihalkova, AAAI-07],
           • Second-order Markov Logic [Davis, ICML-09]

3.2 按遷移情境分三類:

  1. 概括式遷移 (inductive transfer learning):源域目標域學習任務不一樣但相關
  2. 直推式遷移(transductive transfer learning):源域目標域不一樣但相關,學習任務相同
  3. 無監督遷移(unsupervised transfer learning):源域目標域及任務均不一樣但相關,均沒有標籤

3.3 按特徵空間分兩類:

  1. 同構遷移學習:特徵維度相同分佈不一樣
  2. 異構遷移學習:特徵維度不一樣或特徵自己就不一樣,如圖片到文字

遷移學習分類

4、遷移學習熱門研究領域

4.一、域適配問題 (domain adaptation)

有標籤的源域和無標籤的目標域共享相同的特徵和類別,可是特徵分佈不一樣,如何利用源域標定目標域計算機視覺的一個重要問題
解決思路:

  • 數據分佈角度:最小化機率分佈距離————機率分佈適配(distribution adaptation)

    邊緣分佈適配:目標域數據每類分佈圖形和源域的看起不同
       條件分佈適配:目標域數據每類分佈圖形和源域的看起大體同樣,但類內分佈不同
       聯合分佈適配:目標域數據每類分佈圖形和源域的看起不同,但類內分佈也不同
       方法:
           基礎:大多數方法基於MMD距離進行優化求解
           效果:平衡(BDA)>聯合(JDA)> 邊緣(TCA)> 條件
       使用:數據總體差別大(類似度低),邊緣分佈更重要
             數據總體差別小(協方差漂移),條件分佈更重要
       最新成果:深度學習+分佈適配每每有更好的效果(DDC、DAN、JAN)
  • 特徵選擇角度:選擇源域目標域公共特徵,創建統一模型————特徵選擇法(feature selection)
  • 特徵變換角度:把源域目標域變換到公共子空間內————子空間學習法(subspeace learning)

遷移方法:
一、基於特徵的遷移方法:

  • (TCA)Transfer component analysis [Pan, TKDE-11]

    遷移成分分析:將源域和目標域變換到相同空間,最小化它們的距離

TCA算法

其中優化目標表示最小化源域目標域在高維空間的低維嵌入的距離,其後是正則化
       分佈距離由MMD求出,當源域數據和目標域數據映射在一個高維完備的希爾伯克空間中,其分佈能夠用其平均值表示,
       TCA的擴展:
           ACA:最小化MMD,同時維持遷移過程當中目標域的結構
           DTMKL:多核MMD,原來有一個k如今有多個k求解
           DDC:MMD加入神經網絡(一層)
           DAN:MMD加入神經網絡(三層)
           DME:先進行矩陣變換再映射
           CMD:不僅一階的MMD,k階
  • joint distribution adaptation(JDA)

    直接繼承於TCA,可是加入了條件分佈適配
       聯合分佈的結果廣泛優於單獨適配邊緣或條件分佈
           JDA擴展:
               ARTL:分類器學習+聯合分佈適配
               VDA:加入類間距的類內距比值
               JGSA:加入類間距,類內距,標籤適配(非深度學習效果最好)
               JAN:提出JMMD度量,在深度網絡中進行聯合分佈適配
  • SCL(structural corresponding learning):

    尋找主特徵並把源域和目標域對齊
  • Geodesic flow kernel[Duan, CVPR-12]

    利用流形學習,將數據映射到高維空間中,而後測量其距離,使得源域和目標域差別最大
  • Transfer kernel learning [Long, TKDE-15]

    在再生核希爾伯特空間中學習一個領域不變核矩陣,從而實現源域和目標域的適配
  • TransEMDT [Zhao, IJCAI-11]

    首先經過聚類獲得初始的目標域決策樹模型,而後迭代更新決策樹的參數直到收斂爲止

二、基於實例的遷移方法:

  • Kernel mean matching [Huang, NIPS-06]

    在再生希爾伯特空間中計算源域和目標域的協方差分佈差別,而後用二次規劃求解樣本權重
  • Covariate Shift Adaptation [Sugiyama, JMLR-07]

    採用天然估計法估計源域和目標域的密度比例,而後進行實例權重的分配,最後遷移

三、基於模型的遷移方法:

  • (ASVM)Adaptive SVM [Yang et al, ACM Multimedia-07]

    使用SVM模型,在適配和原始模型之間學習「數據函數」,達到模型遷移效果
  • Multiple Convex Combination (MCC) [Schweikert, NIPS-09]

    對一些域適配的方法作集成學習
  • Domain Adaptation Machine (DAM) [Duan, TNNLS-12]

4.二、多源遷移學習 (multi-source TL)

  • TrAdaBoost [Dai, ICML-07]

    利用Boost的技術過濾掉多個源域中與目標域不類似的樣本,而後進行實例遷移學習
  • MsTL-MvAdaboost [Xu, ICONIP-12]

    不只考慮源域和目標域的樣本類似度狀況,同時,以多視圖學習的目標來進行統一的遷移
  • Consensus regularization [Luo, CIKM-08]

    同時在源域和僞標註的目標域上訓練分類器,利用一致性約束進行知識的遷移

4.三、深度遷移學習 (deep TL)

4.四、異構遷移學習 (heterogeneous TL)

5、機器學習常見框架

AlexNet:基於神經網絡學習(CNN)的框架,解決了圖像分類的問題

  • 輸入:是1000個不一樣類型圖像(如貓、狗等)中的一個圖像,輸出是1000個數字的矢量。輸出向量的第i個元素即爲輸入圖像屬於第i類圖像的機率。所以,輸出向量的全部元素之和爲1。
  • 架構:AlexNet由5個卷積層和3個全鏈接層組成,多個卷積內核(a.k.a過濾器)能夠提取圖像中有趣的特徵。

VGG:在AlexNet網絡的基礎上發展而來的神經網絡模型,能夠應用在人臉識別、圖像分類等方面
ResNet(Residual Neural Network):基於神經網絡學習(CNN)的框架,經過使用ResNet Unit成功訓練出了152層的神經網絡,參數量比VGGNet低,效果突出。ResNet的結構能夠極快的加速神經網絡的訓練,模型的準確率也有比較大的提高。
PyTorch:一個以Python 優先的深度學習框架,不只可以實現強大的GPU 加速,同時還支持動態神經網絡,這是如今不少主流框架好比Tensorflow 等都不支持的。
TensorFlow :是世界上最受歡迎的開源機器學習框架,它具備快速、靈活並適合產品級大規模應用等特色

相關文章
相關標籤/搜索