▌一. 了解遷移學(xué)習(xí)
遷移學(xué)習(xí)(Transfer Learning)目標(biāo)是將從一個(gè)環(huán)境中學(xué)到的知識(shí)用來幫助新環(huán)境中的學(xué)習(xí)任務(wù)。
> The ability of a system to recognize and apply knowledge and skills learned in previous tasks to novel tasks。
入門推薦一篇公認(rèn)的比較好的 【Survey】:A Survey on Transfer Learning,Sinno JialinPan, Qiang Yang,IEEE Trans
http://www.cse.ust.hk/faculty/qyang/Docs/2009/tkde_transfer_learning.pdf
另外,戴文淵的碩士學(xué)位論文也可以看一下:基于實(shí)例和特征的遷移學(xué)習(xí)算法研究
https://download.csdn.net/download/linolzhang/9872535
Survey 作者歸納了 Transfer Learning 相關(guān)的知識(shí)域,有必要了解一下這些名詞:
● Learning學(xué)習(xí) - learning to learn
●終身學(xué)習(xí) - life-long learning
●知識(shí)轉(zhuǎn)移 -knowledge transfer
●歸納遷移 - inductive transfer
●多任務(wù)學(xué)習(xí) -multi-task learning
●知識(shí)的鞏固 -knowledge consolidation
●上下文相關(guān)學(xué)習(xí) -context sensitive learning
●基于知識(shí)的歸納偏差 -knowledge-based inductive bias
●元學(xué)習(xí) -meta learning
●增量學(xué)習(xí) -and incremental/cumulative learning
另外,進(jìn)展及 Open Source Toolkit 可以參考:
http://www.cse.ust.hk/TL/index.html
▌二. 遷移學(xué)習(xí)分類
遷移學(xué)習(xí)(Transfer Learning)根據(jù)領(lǐng)域 和 任務(wù)的相似性,可以這樣劃分:
我們根據(jù) 源Domain和目前Domain 之間的關(guān)系,源Task 和 目標(biāo)Task之間的關(guān)系,以及任務(wù)方法更詳細(xì)的整理為下表:
實(shí)際上,歸納式遷移學(xué)習(xí) 是應(yīng)用最廣泛的一種方法,從這點(diǎn)上看,遷移學(xué)習(xí)更適合 有標(biāo)簽的應(yīng)用域。
根據(jù)技術(shù)方法,我們將遷移學(xué)習(xí)的方法劃分為:
遷移學(xué)習(xí)方法雖然在學(xué)術(shù)有很多研究工作,實(shí)際上在應(yīng)用領(lǐng)域并不算成熟,這本身就是一個(gè)很大的命題,關(guān)于遷移學(xué)習(xí)的條件 和 本質(zhì)也并未形成一套正統(tǒng)的體系來引領(lǐng)研究方向,更多的也是在實(shí)驗(yàn)摸索。
遷移學(xué)習(xí) 目前面臨如下幾個(gè)問題:
1. 哪種情況適合做遷移學(xué)習(xí)? - What
這里先給個(gè)自己的理解:分類和回歸問題是比較適合做遷移學(xué)習(xí)的場(chǎng)景,有標(biāo)簽的源數(shù)據(jù)是最好的輔助。
2. 該選擇哪種方法? - Which
簡(jiǎn)單而行之有效的方法是首選,領(lǐng)域在快速發(fā)展,也不必拘泥算法本身,改善結(jié)果才是硬道理。
3. 如何避免負(fù)遷移? - How
遷移學(xué)習(xí)的目標(biāo)是改善目標(biāo)域的 Task效果,這里面負(fù)遷移(Negative Transfer)是很多研究者面臨的一個(gè)問題,如何得到行之有效的改進(jìn),避免負(fù)遷移是需要大家去評(píng)估和權(quán)衡的。
▌三. 經(jīng)典算法 TrAdaBoost
TrAdaBoost 算法是基于 樣本遷移的 開山之作,由戴文淵提出,有著足夠的影響力放在第一位來進(jìn)行講解。
論文下載:Boosting for Transfer Learning
http://home.cse.ust.hk/~qyang/Docs/2007/tradaboost.pdf
算法的基本思想是從源 Domain 數(shù)據(jù)中篩選有效數(shù)據(jù),過濾掉與目標(biāo) Domain 不match的數(shù)據(jù),通過 Boosting方法建立一種權(quán)重調(diào)整機(jī)制,增加有效數(shù)據(jù)權(quán)重,降低無效數(shù)據(jù)權(quán)重,下圖是 TrAdaBoost 算法的示意圖(截圖來自于 莊福振 -遷移學(xué)習(xí)研究進(jìn)展):
TrAdaBoost 算法比較簡(jiǎn)單,用一句話概括就是 從過期數(shù)據(jù)里面 找出和目標(biāo)數(shù)據(jù)最接近的樣本數(shù)據(jù)。
來看 TrAdaBoost 的算法步驟:
這里需要說明的一點(diǎn)就是 權(quán)重的更新方式,對(duì)于輔助樣本來講,預(yù)測(cè)值和標(biāo)簽越接近,權(quán)重越大;而對(duì)于目標(biāo)數(shù)據(jù)則是相反,預(yù)測(cè)值和標(biāo)簽差異越大,權(quán)重越大。這種策略狠容易理解,我們想找到輔助樣本中 和 目標(biāo)數(shù)據(jù)分布最接近的樣本,同時(shí)放大目標(biāo)樣本Loss的影響,那么理想的結(jié)果就是:
目標(biāo)樣本預(yù)測(cè)值與標(biāo)簽盡量匹配(不放過一個(gè)沒匹配好的數(shù)據(jù)),輔助樣本在前面的基礎(chǔ)上篩選出最 match(權(quán)重大的) 的部分。
作者在后面給出了理論證明,這里有兩個(gè)公式(來證明算法收斂):
因篇幅問題,這里就不再展開了(和作者說的一樣),有興趣可以參考原Paper,看下實(shí)驗(yàn)結(jié)果:
實(shí)驗(yàn)發(fā)現(xiàn),當(dāng) 同分布數(shù)據(jù)(目標(biāo)數(shù)據(jù))占比當(dāng)?shù)陀?.1時(shí),算法效果明顯,當(dāng)比例超過 0.1時(shí),TrBoost 退化為 SVM 的效果。
這又是一個(gè)顯而易見的結(jié)論,我們認(rèn)為大于0.1時(shí),僅僅依靠 目前數(shù)據(jù)就足夠完成樣本訓(xùn)練,這種情況下,輔助樣本的貢獻(xiàn)可以忽略。
另外,當(dāng) 目標(biāo)數(shù)據(jù) 和 輔助數(shù)據(jù) 差別比較大時(shí),該方法是不 Work的,印證了最初的假設(shè),這里不再展開證明。
最后,給出網(wǎng)友提供的C代碼:【下載地址】
https://download.csdn.net/download/linolzhang/9880438
▌四. 多任務(wù)學(xué)習(xí)
多任務(wù)學(xué)習(xí)(Multi-Task Learning, MTL)是一種同時(shí)學(xué)習(xí)多個(gè)任務(wù)的機(jī)器學(xué)習(xí)方法,該方法由來已久,和深度學(xué)習(xí)沒什么關(guān)系。
如果非要把它 和深度學(xué)習(xí)加上一個(gè) link,我們可以這樣來表示:
input1->Hidden1->H1->Out1input1->Out1input2->Hidden2->H2->Out2==>input2->Hidden123->H123->Out2input3->Hidden3->H3->Out3input3->Out3
也比較好理解,相當(dāng)于把多個(gè) Task網(wǎng)絡(luò)進(jìn)行合并,同時(shí)訓(xùn)練多個(gè)任務(wù),這種情況并不鮮見,比如以下2個(gè)方向:
1)目標(biāo)檢測(cè) - 復(fù)合多任務(wù)
目標(biāo)檢測(cè)是 分類問題+回歸問題的組合,這是一個(gè)典型的 Multi-Task,比如:
Detection=Classification+Location
Mask RCNN =Classification+Location+Segmentation
檢測(cè)問題前面描述的比較多了,這里就不再貼圖了。
2)特征提取
多任務(wù)特征提取,多個(gè)輸出,這一類問題代表就是 數(shù)據(jù)結(jié)構(gòu)化,特征識(shí)別。
下圖是香港中文大學(xué)湯曉鷗組發(fā)表的TCDCN(Facial Landmark Detection by Deep Multi-task Learning),很多講 Multi-Task的軟文都拿出來說,我們也借用一下。
在這里 Multi-Task 被同時(shí)用作 人臉關(guān)鍵點(diǎn)定位、姿態(tài)估計(jì)和屬性預(yù)測(cè)(比如性別、年齡、人種、微笑?戴眼鏡?)
多任務(wù)學(xué)習(xí)適用于這樣的情況:
1)多個(gè)任務(wù)之間存在關(guān)聯(lián),比如行人和車輛檢測(cè),對(duì)于深度網(wǎng)絡(luò)也可以理解為有部分共同的網(wǎng)絡(luò)結(jié)構(gòu);
2)每個(gè)獨(dú)立任務(wù)的訓(xùn)練數(shù)據(jù)比較少,單獨(dú)訓(xùn)練無法有效收斂;
3)多個(gè)任務(wù)之間存在相關(guān)性信息,單獨(dú)訓(xùn)練時(shí)無法有效挖掘;
可以看一下這篇 Tutorial:
www.public.asu.edu/~jye02/Software/MALSAR/MTL-SDM12.pdf
關(guān)于多任務(wù)學(xué)習(xí)的應(yīng)用,比如分類任務(wù)下的二級(jí)分類、人臉識(shí)別等,大家可以更進(jìn)一步了解。
-
數(shù)據(jù)
+關(guān)注
關(guān)注
8文章
6909瀏覽量
88849 -
算法
+關(guān)注
關(guān)注
23文章
4601瀏覽量
92673 -
遷移學(xué)習(xí)
+關(guān)注
關(guān)注
0文章
74瀏覽量
5558
原文標(biāo)題:一文了解遷移學(xué)習(xí)經(jīng)典算法
文章出處:【微信號(hào):rgznai100,微信公眾號(hào):rgznai100】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論