背景:現現在數據爆炸:git
因此收集標籤數據和從頭開始構建一個模型都是代價高昂的,須要對模型和帶有標籤的數據進行重用github
傳統機器學習:假設數據服從相同分佈,但咱們但願針對不一樣分佈的數據,快速構建模型,實現數據標記算法
遷移學習(transfer learning)通俗來說,就是運用已有的知識來學習新的知識,核心是找到已有知識和新知識之間的類似性。在遷移學習中,咱們已有的知識叫作源域(source domain),要學習的新知識叫目標域(target domain),源域和目標域不一樣但有必定關聯,咱們須要減少源域和目標域的分佈差別,進行知識遷移,從而實現數據標定。網絡
爲何要進行遷移學習:架構
數據的標籤很難獲取 從頭創建模型是複雜和耗時的
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的一個稀疏表達了。
基於樣本的遷移:經過對源域中有標記樣本加權利用完成知識遷移,例如類似的樣本就給高的權重框架
假設:源域中的一些數據和目標域會共享不少共同的特徵 方法:對源域進行樣本從新加權,篩選出與目標域數據類似度高的數據,而後進行訓練學習 表明工做: • TrAdaBoost [Dai, ICML-07] • Kernel Mean Matching (KMM) [Smola, ICML-08] • Density ratio estimation [Sugiyama, NIPS-07] 優勢: • 方法較簡單,實現容易 缺點: • 權重選擇與類似度度量依賴經驗 • 源域和目標域的數據分佈每每不一樣
基於特徵的遷移:經過將源域和目標域特徵變換到相同的空間(或者將其中之一映射到另外一個的空間中)並最小化源域和目標域的距離來完成知識遷移;目前使用最多也最易於上手完成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] 優勢: • 大多數方法採用 • 特徵選擇與變換能夠取得好效果 缺點: • 每每是一個優化問題,難求解 • 容易發生過適配
基於模型的遷移:將源域和目標域的模型與樣本結合起來調整模型的參數;通常來講使用於神經網絡,使用較多機器學習
假設:源域和目標域能夠共享一些模型參數 方法:由源域學習到的模型運用到目標域上,再根據目標域學習新的模型 表明工做: • TransEMDT [Zhao, IJCAI-11] • TRCNN [Oquab, CVPR-14] • TaskTrAdaBoost [Yao, CVPR-10] 優勢: • 模型間存在類似性,能夠被利用 缺點: • 模型參數不易收斂
基於關係的遷移:經過在源域中學習概念之間的關係,而後將其類比到目標域中,完成知識的遷移。ide
假設:若是兩個域是類似的,那麼它們會共享某種類似關係 方法:利用源域學習邏輯關係網絡,再應用於目標域上 表明工做: • Predicate mapping and revising [Mihalkova, AAAI-07], • Second-order Markov Logic [Davis, ICML-09]
有標籤的源域和無標籤的目標域共享相同的特徵和類別,可是特徵分佈不一樣,如何利用源域標定目標域計算機視覺的一個重要問題
解決思路:
數據分佈角度:最小化機率分佈距離————機率分佈適配(distribution adaptation)
邊緣分佈適配:目標域數據每類分佈圖形和源域的看起不同 條件分佈適配:目標域數據每類分佈圖形和源域的看起大體同樣,但類內分佈不同 聯合分佈適配:目標域數據每類分佈圖形和源域的看起不同,但類內分佈也不同 方法: 基礎:大多數方法基於MMD距離進行優化求解 效果:平衡(BDA)>聯合(JDA)> 邊緣(TCA)> 條件 使用:數據總體差別大(類似度低),邊緣分佈更重要 數據總體差別小(協方差漂移),條件分佈更重要 最新成果:深度學習+分佈適配每每有更好的效果(DDC、DAN、JAN)
遷移方法:
一、基於特徵的遷移方法:
(TCA)Transfer component analysis [Pan, TKDE-11]
遷移成分分析:將源域和目標域變換到相同空間,最小化它們的距離
其中優化目標表示最小化源域目標域在高維空間的低維嵌入的距離,其後是正則化 分佈距離由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]
對一些域適配的方法作集成學習
TrAdaBoost [Dai, ICML-07]
利用Boost的技術過濾掉多個源域中與目標域不類似的樣本,而後進行實例遷移學習
MsTL-MvAdaboost [Xu, ICONIP-12]
不只考慮源域和目標域的樣本類似度狀況,同時,以多視圖學習的目標來進行統一的遷移
Consensus regularization [Luo, CIKM-08]
同時在源域和僞標註的目標域上訓練分類器,利用一致性約束進行知識的遷移
AlexNet:基於神經網絡學習(CNN)的框架,解決了圖像分類的問題
VGG:在AlexNet網絡的基礎上發展而來的神經網絡模型,能夠應用在人臉識別、圖像分類等方面
ResNet(Residual Neural Network):基於神經網絡學習(CNN)的框架,經過使用ResNet Unit成功訓練出了152層的神經網絡,參數量比VGGNet低,效果突出。ResNet的結構能夠極快的加速神經網絡的訓練,模型的準確率也有比較大的提高。
PyTorch:一個以Python 優先的深度學習框架,不只可以實現強大的GPU 加速,同時還支持動態神經網絡,這是如今不少主流框架好比Tensorflow 等都不支持的。
TensorFlow :是世界上最受歡迎的開源機器學習框架,它具備快速、靈活並適合產品級大規模應用等特色