迁移学习(一)
遷移學習綜述(一)(學習筆記)
A Survey of Recent Adances in Transfer leanning
1.引言
傳統機器學習方法只有在一個共同的假設下才能很好地工作:訓練和測試數據都來自相同的特征空間和相同的分布。當分布發生變化時,大多數統計模型需要使用新收集的訓練數據從頭開始重建。在許多現實的應用程序中,回憶所需的訓練數據和重建模型是昂貴的或不可能的。如果能減少重新收集訓練數據的需要和工作,那就太好了。在這種情況下,知識轉移或任務域之間的遷移學習是可取的。
在現實世界中,我們觀察到許多遷移學習的例子。例如,我們可能會發現,學會辨認蘋果可能有助于辨認梨。同樣,學習彈奏電子琴可能有助于學習鋼琴。遷移學習的研究是基于這樣一個事實:人們可以智能地應用之前學到的知識,更快地或更好地解決新問題。機器學習領域遷移學習的基本動機在“學會學習”的NIPS-95研討會上進行了討論,該研討會關注終身機器學習方法的需求,該方法可以保留和重用以前學習過的知識。
上圖可看出傳統學習技術與遷移學習技術的學習過程差異。我們可以看到,傳統的機器學習技術嘗試從頭開始學習每個任務,而遷移學習技術則嘗試在目標任務擁有較少高質量訓練數據時,將之前的一些任務中的知識轉移到目標任務中
2.符號說明
域(Domain):包含特征空間(feature space) 和 邊緣概率分布(marginal probability distrubution) 兩部分。
D=(X,P(X))D =(X,P(X)) D=(X,P(X))
任務(Task):包含標簽(label) 和 映射函數(mapping function) 兩部分。
T=(Y,f(?))T =(Y,f(\cdot)) T=(Y,f(?))
注釋:f(?)f(\cdot)f(?)是不能直接觀測到的,是通過訓練數據學習得到的,是在XXX和YYY中xix_ixi?和yiy_iyi?的對應關系。從概率角度出發可以寫成P(y∣x)P(y|x)P(y∣x)。
源域 (Source Domain):Ds={(xs1,ys1),...,(xsn,ysn)}D_s=\{ (x_{s1},y_{s1}),...,(x_{sn},y_{sn})\}Ds?={(xs1?,ys1?),...,(xsn?,ysn?)}
目標域 (Target Domain):Dt={(xt1,yt1),...,(xtn,ytn)}D_t=\{ (x_{t1},y_{t1}),...,(x_{tn},y_{tn})\}Dt?={(xt1?,yt1?),...,(xtn?,ytn?)}
0≤nS?nT0 \leq n_S \ll n_T0≤nS??nT?
定義:給定一個源域DsD_sDs?和源域任務TsT_sTs?,一個目標域DtD_tDt?和目標域任務TtT_tTt?。遷移學習的目標就是在Ds=?DtD_s\not=D_tDs??=Dt?或Ts=?TtT_s\not=T_tTs??=Tt?的情況下用DsD_sDs?和TsT_sTs?的知識幫助目標域DtD_tDt?學習得到一個效果更好的函數f(?)f(\cdot)f(?)
根據上述定于我們可以知道,Ds=?DtD_s\not=D_tDs??=Dt?有兩種情況:
(1)Xs=?XtX_s\not=X_tXs??=Xt?
(2)Ps(X)=?Pt(X)P_s(X)\not=P_t(X)Ps?(X)?=Pt?(X)
Ts=?TtT_s\not=T_tTs??=Tt?也有兩種情況:
(1)Ys=?YtY_s\not=Y_tYs??=Yt?
(2)fs(?)=?ft(?)f_s(\cdot)\not=f_t(\cdot)fs?(?)?=ft?(?)
3.遷移學習分類
遷移學習三大靈魂問題
何時遷移?(When?)
詢問在什么情況下,遷移技能應該被使用。源域數據是否與目標與數據相關
【1】如果原訓練樣本已經足夠并且能夠實現較好的效果,再用遷移學習就會因為源域冗余等限制使得目標域任務效果不好。
【2】各種不用散度的訓練樣本,直接從源域遷移到目標域,源域樣本和目標域樣本巨大分歧即,當源域和目標域之間沒有關聯時,可能會導致蠻力傳遞失敗。在最壞的情況下,它甚至可能損害在目標領域的學習性能,這種情況通常被稱為負遷移。目前關于遷移學習的研究主要集中在
遷移什么?(What?)
哪些知識可以跨領域或任務轉移。有些知識是特定于單個領域或任務的,有些知識可能是不同領域之間的共同知識,從而有助于提高目標領域或任務的性能。在發現哪些知識可以轉移后,需要開發相應的學習算法進行知識轉移。
(1)Instance-based TL(樣本遷移)
盡管源域數據不可以整個直接被用到目標域里,但是在源域中還是找到一些可以重新被用到目標域中的數據 **instance reweighting(樣本重新調整權重)和importance sampling(重要性采樣)**是instance-based TL里主要用到的兩項技術。
(2)Feature-representation-transfer(特征遷移)
找到一些好的有代表性的特征,通過特征變換把源域和目標域的特征變換到同樣的空間,使得這個空間中源域和目標域的數據具有相同的分布,然后進行傳統的機器學習就可以了。
(3)Parameter-transfer(參數/模型遷移)
假設源域和目標域之間共享一些參數,或者共享模型hyperparameters(超參數)的先驗分布。這樣把原來的模型遷移到新的域時,也可以達到不錯的精度。
(4)Relational-knowledge-transfer(關系遷移)
把相似的關系進行遷移。
根據域和任務的不同組合可以分為以下四大類(根據遷移學習遷移什么知識可以分為三類。)
(1)Ds=DtD_s=D_tDs?=Dt? 且 Ts=TtT_s=T_tTs?=Tt? (傳統機器學習)
(2)Ds=DtD_s=D_tDs?=Dt? 且 Ts=?TtT_s\not=T_tTs??=Tt? (歸納式學習或轉換式學習 (ITL/TTL))
(3)Ds=?DtD_s\not=D_tDs??=Dt? 且 Ts=TtT_s=T_tTs?=Tt? (轉換式學習 Transductive Transfer learning)
(4)Ds=?DtD_s\not=D_tDs??=Dt? 且 Ts=?TtT_s\not=T_tTs??=Tt? (無監督學習 Unsupervised Transfer Learning
| Instance-transfer | ?\checkmark? | ?\checkmark? | |
| Feature-representation-transfer | ?\checkmark? | ?\checkmark? | ?\checkmark? |
| Parameter-transfer | ?\checkmark? | ||
| Relational-knowledge-transfer | ?\checkmark? |
按照源域目標域標簽可用情況劃分
| 可用 | 可用 | Inductive | Self-taught learning |
| 可用 | 不可用 | Inductive | Multi-task learning |
| 不可用 | 不可用 | Transductive | Domain adaptation |
| 不可用 | 不可用 | Unsupervised |
如何遷移?(How?)
遷移學習技術方法。
4.歸納式遷移學習方法( Inductive Transfer Learning)
4.1 實例遷移(instance-transfer)
盡管源域數據不能直接重用,但仍然有某些部分的數據可以與目標領域中的少數標記數據一起重用。
TrAdaBoost:Yt=Ys,Pt(X)=?Ps(X)Y_t=Y_s,P_t(X)\not=P_s(X)Yt?=Ys?,Pt?(X)?=Ps?(X)
假設源域和目標域的數據使用完全相同特征和標簽的集合,但是數據在兩個域中的分布是不同的。由于源域和目標域之間分布的差異,一些**源域數據(instance)**可能對學習目標域有用,但一些可能不會有用,甚至可能有害。它嘗試迭代地重新加權源域數據,以減少“壞的”源數據的影響,同時鼓勵“好的”源數據為目標域貢獻更多。對于每一輪迭代,TrAdaBoost都會在加權源數據和目標數據上訓練基分類器。錯誤只在目標數據上計算。TrAdaBoost使用與AdaBoost相同的策略來更新目標域中分類錯誤的示例,而使用與AdaBoost不同的策略來更新源域中分類錯誤的源示例。
4.2 傳遞特征表示的知識(Transferring Knowledge of Feature Representations)
尋找“好的”特征表示,以減少領域差異和分類或回歸模型誤差。如果源域中有大量的標記數據,可以使用監督學習方法來構造特征表示。如果源域中沒有可用的標記數據,使用無監督學習方法來構造特征表示。其基本思想是學習一種跨相關任務共享的低維表示(稀疏特征學習方法)。
4.2.1 監督特征構造方法
argminA,U∑t∈{T,S}∑i=1niL(yti,<at,UTxti>)+γ∥A∥2,12s.t.U∈Od.argmin_{A,U}\sum_{t\in\{T,S\}}\sum_{i=1}^{n_i}L(y_{t_i},<a_t,U^Tx_{t_i}>)+\gamma \begin{Vmatrix}A\end{Vmatrix}_{2,1}^2 \\s.t. \space \space \space U\in O^d.argminA,U?t∈{T,S}∑?i=1∑ni??L(yti??,<at?,UTxti??>)+γ∥∥?A?∥∥?2,12?s.t.???U∈Od.
4.2.2無監督特征構造方法
argmina,b∑i∥xSi?∑jaSijbj∥22+β∥aSi∥1s.t.∥bj∥2≤1,?j∈1,...,s.argmin_{a,b}\sum_{i}\begin{Vmatrix}x_{S_i}-\sum_ja_{S_i}^jb_j \end{Vmatrix}_{2}^2 +\beta \begin{Vmatrix} aS_i\end{Vmatrix}_1 \\s.t. \space \space \space \begin{Vmatrix} b_j\end{Vmatrix}_2\leq1, \space \space \forall j\in 1,...,s. argmina,b?i∑?∥∥∥?xSi???∑j?aSi?j?bj??∥∥∥?22?+β∥∥?aSi??∥∥?1?s.t.???∥∥?bj??∥∥?2?≤1,???j∈1,...,s.
aSija_{S_i}^jaSi?j?是輸入xSix_{S_i}xSi??在基底bjb_jbj?下的新表示;β\betaβ是一個平衡特征構造項和正則化項的系數。學習基向量bbb后,對目標域數據應用下屬模型優化,學習得到基于基向量bbb更高層次的特征。
aTi?=argminaTi∥xTi?∑jaTijbj∥22+β∥aTi∥1a_{T_i}^*=argmin_{a_{T_i}}\begin{Vmatrix}x_{T_i}-\sum_ja_{T_i}^jb_j \end{Vmatrix}_{2}^2 +\beta \begin{Vmatrix} aT_i\end{Vmatrix}_1 aTi???=argminaTi???∥∥∥?xTi???∑j?aTi?j?bj??∥∥∥?22?+β∥∥?aTi??∥∥?1?
最后,可以對aTi?{a_{T_i}^*}aTi???使用相應標簽的判別算法訓練分類或回歸模型,以便在目標領域中使用。這種方法的一個缺點是,優化bbb時在源域學習到的所謂高階基向量可能不適合在目標域使用。
4.3 參數知識轉移 (Transferring Knowledge of Parameters)
假設相關任務的個體模型應該共享一些參數或超參數的先驗分布
多任務學習試圖同時完美地學習源任務和目標任務,而遷移學習的目的只是利用源域數據來提高目標域的性能。因此,在多任務學習中,源數據和目標數據的損失函數的權值是相同的。相反,在遷移學習中,不同領域的損失函數的權重是不同的。直觀地說,我們可以給目標域的loss function分配一個更大的權重,以確保我們在目標域中可以獲得更好的性能。
- eg1.Evgeniou和Pontil[48]假設支持向量機中每個任務的參數w可以分為兩項。一個是針對任務的常見術語,另一個是特定于任務的術語。
wS=w0+vSandwT=w0+vTw_S=w_0+v_S \space \space \space and \space \space \space w_T=w_0+v_TwS?=w0?+vS????and???wT?=w0?+vT? 將支持向量機擴展到多任務學習案例可以寫成這樣: minw0,vt,ξtiJ(w0,vt,ξti)=∑t∈{S,T}∑i=1ntξti+λ12∑t∈{S,T}∥vt∥2+λ2∥w0∥2s.t.yti(w0+ut)?xti≥1?ξt+i,ξti≥0,i∈{1,2,...,n}andt∈{S,T}.min_{w_0,v_t,\xi _{t_i} }J(w_0,v_t,\xi _{t_i}) \\ = \sum_{t\in{\{S,T\}}}\sum_{i=1}^{n_t}\xi _{t_i}+ \cfrac{\lambda _1}{2}\sum_{t\in \{S,T\}}\begin{Vmatrix}v_t \end{Vmatrix}^2+\lambda_2\begin{Vmatrix}w_0 \end{Vmatrix}^2 \\s.t. \space \space \space y_{t_i}(w_0+u_t)\cdot x_{t_i}\ge 1-\xi _{t+i} ,\\ \xi _{t_i} \ge 0,i\in\{1,2,...,n\} \space \space and \space \space t\in\{S,T\}. minw0?,vt?,ξti???J(w0?,vt?,ξti??)=t∈{S,T}∑?i=1∑nt??ξti??+2λ1??t∈{S,T}∑?∥∥?vt??∥∥?2+λ2?∥∥?w0??∥∥?2s.t.???yti??(w0?+ut?)?xti??≥1?ξt+i?,ξti??≥0,i∈{1,2,...,n}??and??t∈{S,T}.
eg2.局部加權集成學習框架,將多個模型結合起來進行遷移學習,根據模型對目標域內每個測試例的預測能力動態分配權重。
eg3.MT-IVM過共享相同的GP先驗來學習多個任務的高斯過程參數
eg4.使用自由形式協方差矩陣來建模任務間依賴關系,其中GP先驗用于誘導任務之間的相關性。
eg5.分層貝葉斯框架(HB)
4.4 知識轉移關系(Transferring Relational Knowledge)
關系-知識遷移方法處理的是關系領域的遷移學習問題,其中數據是不同分布。并且可以用多種關系來表示,如網絡數據和社交網絡數據。這種方法不假設從每個域提取的數據是獨立的和同分布的,這是傳統的假設。它嘗試將數據之間的關系從源域轉移到目標域。在此背景下,統計關系學習技術被提出來解決這些問題。
- eg: Mihalkova等人[50]提出了一種利用馬爾可夫邏輯網絡(MLNs)跨關系域轉移關系知識的算法TAMAR MLNs[56]是一個強大的形式主義,它結合了一階邏輯的緊湊表達和概率的靈活性,用于統計關系學習。在mln中,關系域中的實體用謂詞表示,它們的關系用一階邏輯表示。
TAMAR的動機是,如果兩個域彼此相關,那么可能存在連接源域到目標域的實體及其關系的映射。例如,教授可以被認為在學術領域扮演類似于在工業管理領域的經理的角色。此外,教授和學生之間的關系類似于經理和員工之間的關系。因此,可能存在從教授到經理的映射,以及從教授-學生關系到經理-工人關系的映射。
5.轉換式遷移學習方法( Transductive Transfer Learning)
轉導遷移學習一詞最早由Arnold等人提出,他們要求源和目標任務相同,盡管領域可能不同。在這些條件之上,他們進一步要求在訓練時目標域中所有未標記的數據都是可用的,但我們認為這個條件可以放寬;相反,在我們對轉導遷移學習設置的定義中,我們只要求在訓練時看到部分未標記的目標數據,以獲得目標數據的邊際概率。
ps:(1)Xs=?XtX_s\not=X_tXs??=Xt?(2)Ps(X)=?Pt(X)P_s(X)\not=P_t(X)Ps?(X)?=Pt?(X)
希望通過最小化預期風險來學習目標域的最優模型。
5.1 轉移實例的知識(Transferring the Knowledge of Instances)
實例遷移方法的動機是重要抽樣。為了了解基于重要性的抽樣方法在這種情況下可能有何幫助要進行概率評估,ERM評估
θ?=argminθ∈Θ1n∑i=1n[l(xi,yi,θ)]\theta ^*=argmin_{\theta\in \Theta}\cfrac{1}{n}\sum_{i=1}^n[l(x_i,y_i,\theta)]θ?=argminθ∈Θ?n1?i=1∑n?[l(xi?,yi?,θ)]
-
如果Ps(X)=Pt(X)P_s(X)=P_t(X)Ps?(X)=Pt?(X),從源域數據中學習模型P(XS)P(X_S)P(XS?)
θ?=argminθ∈Θ∑(x,y)∈DSP(DS)l(x,y,θ)\theta ^*=argmin_{\theta\in \Theta}\sum_{(x,y)\in D_S}P(D_S)l(x,y,\theta)θ?=argminθ∈Θ?(x,y)∈DS?∑?P(DS?)l(x,y,θ) -
如果Ps(X)=?Pt(X)P_s(X)\not=P_t(X)Ps?(X)?=Pt?(X),修改上述優化問題,學習一個對目標域泛化能力高的模型
θ?=argminθ∈Θ∑(x,y)∈DSP(DT)P(DS)l(x,y,θ)?argminθ∈Θ∑i=1nSPT(XTi,yTi)PS(XSi,ySi)l(xSI,ySI,θ)\theta ^*=argmin_{\theta\in \Theta}\sum_{(x,y)\in D_S}\cfrac{P(D_T)}{P(D_S)}l(x,y,\theta)\\ \simeq argmin_{\theta\in \Theta}\sum_{i=1}^{n_S}\cfrac{P_T(X_{T_i},y_{T_i})}{P_S(X_{S_i},y_{S_i})}l(x_{S_I},y_{S_I},\theta) θ?=argminθ∈Θ?(x,y)∈DS?∑?P(DS?)P(DT?)?l(x,y,θ)?argminθ∈Θ?i=1∑nS??PS?(XSi??,ySi??)PT?(XTi??,yTi??)?l(xSI??,ySI??,θ)
通過PT(XTi,yTi)PS(XSi,ySi)\cfrac{P_T(X_{T_i},y_{T_i})}{P_S(X_{S_i},y_{S_i})}PS?(XSi??,ySi??)PT?(XTi??,yTi??)?對每一個(XSi,ySi)(X_{S_i},y_{S_i})(XSi??,ySi??)添加懲罰值可以學習目標域的精確模型。又因為P(YT∣XT)=P(YS∣XS)P(Y_T|X_T)=P(Y_S|X_S)P(YT?∣XT?)=P(YS?∣XS?),所以PT(XTi,yTi)PS(XSi,ySi)=P(xSi)P(xTi)\cfrac{P_T(X_{T_i},y_{T_i})}{P_S(X_{S_i},y_{S_i})}=\cfrac{P(x_{S_i})}{P(x_{T_i})}PS?(XSi??,ySi??)PT?(XTi??,yTi??)?=P(xTi??)P(xSi??)?,我們就只需要評估
P(xSi)P(xTi)\cfrac{P(x_{S_i})}{P(x_{T_i})}P(xTi??)P(xSi??)?即可。
5.1 傳遞特征表示的知識(Transferring Knowledge of Feature Representations)
利用目標域的未標記數據提取一些相關的特征,可以減少域之間的差異。
6.無監督遷移學習( UnsupervisedTransfer Learning)
在訓練的源域和目標域沒有觀察到標記的數據。自學聚類是無監督遷移學習的一個實例,其目的是利用源域中大量的無標記數據對目標域中的少量無標記數據進行聚類。STC嘗試學習跨領域的公共特征空間,這有助于在目標領域進行聚類。
應用省略
7.總結(2010年)
在未來的研究中,有幾個重要的問題亟待解決。首先,如何避免負遷移是一個開放的問題。許多提出的遷移學習算法都假定源域和目標域在某種意義上是相互關聯的。然而,如果這一假設不成立,負遷移可能會發生,這可能會導致學習者的表現不如沒有遷移。因此,如何保證遷移學習中不發生負遷移是遷移學習的關鍵問題。為了避免負遷移學習,我們需要首先研究源域或任務與目標域或任務之間的可遷移性。基于合適的可遷移性度量,我們可以選擇相關的源領域或任務,從中提取知識,用于學習目標任務。為了定義領域和任務之間的可轉移性,我們還需要定義標準來度量領域或任務之間的相似性。基于距離度量,我們可以對域或任務進行集群,這可能有助于度量可轉移性。一個相關的問題是,當一個完整的域不能用于遷移學習時,我們是否還可以在目標域中遷移部分域來進行有用的學習。
此外,現有的遷移學習算法主要集中在改進源域和目標域或任務之間不同分布的泛化。在這樣做的過程中,他們假設源域和目標域之間的特征空間是相同的。然而,在許多應用程序中,我們可能希望跨具有不同特征空間的領域或任務轉移知識,并從多個這樣的源領域轉移知識。我們把這種遷移學習稱為異質遷移學習
PS:個人學習筆記,僅供參考!
總結
- 上一篇: java 创建ssh用户秘钥,安装Jav
- 下一篇: 学习笔记(一)——图像的灰度级和动态范围