成都it培訓(xùn)機(jī)構(gòu)優(yōu)化網(wǎng)絡(luò)搜索引擎
1. 什么是遷移學(xué)習(xí)
遷移學(xué)習(xí)(Transfer Learning)是一種機(jī)器學(xué)習(xí)方法,就是把為任務(wù) A 開發(fā)的模型作為初始點(diǎn),重新使用在為任務(wù) B 開發(fā)模型的過程中。遷移學(xué)習(xí)是通過從已學(xué)習(xí)的相關(guān)任務(wù)中轉(zhuǎn)移知識來改進(jìn)學(xué)習(xí)的新任務(wù),雖然大多數(shù)機(jī)器學(xué)習(xí)算法都是為了解決單個任務(wù)而設(shè)計的,但是促進(jìn)遷移學(xué)習(xí)的算法的開發(fā)是機(jī)器學(xué)習(xí)社區(qū)持續(xù)關(guān)注的話題。 遷移學(xué)習(xí)對人類來說很常見,例如,我們可能會發(fā)現(xiàn)學(xué)習(xí)識別蘋果可能有助于識別梨,或者學(xué)習(xí)彈奏電子琴可能有助于學(xué)習(xí)鋼琴。
找到目標(biāo)問題的相似性,遷移學(xué)習(xí)任務(wù)就是從相似性出發(fā),將舊領(lǐng)域(domain)學(xué)習(xí)過的模型應(yīng)用在新領(lǐng)域上。
2. 為什么需要遷移學(xué)習(xí)?
- 大數(shù)據(jù)與少標(biāo)注的矛盾:雖然有大量的數(shù)據(jù),但往往都是沒有標(biāo)注的,無法訓(xùn)練機(jī)器學(xué)習(xí)模型。人工進(jìn)行數(shù)據(jù)標(biāo)定太耗時。
- 大數(shù)據(jù)與弱計算的矛盾:普通人無法擁有龐大的數(shù)據(jù)量與計算資源。因此需要借助于模型的遷移。
- 普適化模型與個性化需求的矛盾:即使是在同一個任務(wù)上,一個模型也往往難以滿足每個人的個性化需求,比如特定的隱私設(shè)置。這就需要在不同人之間做模型的適配。
- 特定應(yīng)用(如冷啟動)的需求。
3. 遷移學(xué)習(xí)的基本問題有哪些?
基本問題主要有3個:
- How to transfer: 如何進(jìn)行遷移學(xué)習(xí)?(設(shè)計遷移方法)
- What to transfer: 給定一個目標(biāo)領(lǐng)域,如何找到相對應(yīng)的源領(lǐng)域,然后進(jìn)行遷移?(源領(lǐng)域選擇)
- When to transfer: 什么時候可以進(jìn)行遷移,什么時候不可以?(避免負(fù)遷移)
4. 遷移學(xué)習(xí)有哪些常用概念?
-
基本定義
- 域(Domain):數(shù)據(jù)特征和特征分布組成,是學(xué)習(xí)的主體
- 源域 (Source domain):已有知識的域
- 目標(biāo)域 (Target domain):要進(jìn)行學(xué)習(xí)的域
- 任務(wù) (Task):由目標(biāo)函數(shù)和學(xué)習(xí)結(jié)果組成,是學(xué)習(xí)的結(jié)果
- 域(Domain):數(shù)據(jù)特征和特征分布組成,是學(xué)習(xí)的主體
-
按特征空間分類
- 同構(gòu)遷移學(xué)習(xí)(Homogeneous TL): 源域和目標(biāo)域的特征空間相同,
- 異構(gòu)遷移學(xué)習(xí)(Heterogeneous TL):源域和目標(biāo)域的特征空間不同,
- 同構(gòu)遷移學(xué)習(xí)(Homogeneous TL): 源域和目標(biāo)域的特征空間相同,
-
按遷移情景分類
- 歸納式遷移學(xué)習(xí)(Inductive TL):源域和目標(biāo)域的學(xué)習(xí)任務(wù)不同
- 直推式遷移學(xué)習(xí)(Transductive TL):源域和目標(biāo)域不同,學(xué)習(xí)任務(wù)相同
- 無監(jiān)督遷移學(xué)習(xí)(Unsupervised TL):源域和目標(biāo)域均沒有標(biāo)簽
-
按遷移方法分類
-
基于樣本的遷移 (Instance based TL):通過權(quán)重重用源域和目標(biāo)域的樣例進(jìn)行遷移
基于樣本的遷移學(xué)習(xí)方法 (Instance based Transfer Learning) 根據(jù)一定的權(quán)重生成規(guī)則,對數(shù)據(jù)樣本進(jìn)行重用,來進(jìn)行遷移學(xué)習(xí)。下圖形象地表示了基于樣本遷移方法的思想源域中存在不同種類的動物,如狗、鳥、貓等,目標(biāo)域只有狗這一種類別。在遷移時,為了最大限度地和目標(biāo)域相似,我們可以人為地提高源域中屬于狗這個類別的樣本權(quán)重。
-
基于特征的遷移 (Feature based TL):將源域和目標(biāo)域的特征變換到相同空間
基于特征的遷移方法 (Feature based Transfer Learning) 是指將通過特征變換的方式互相遷移,來減少源域和目標(biāo)域之間的差距;或者將源域和目標(biāo)域的數(shù)據(jù)特征變換到統(tǒng)一特征空間中,然后利用傳統(tǒng)的機(jī)器學(xué)習(xí)方法進(jìn)行分類識別。根據(jù)特征的同構(gòu)和異構(gòu)性,又可以分為同構(gòu)和異構(gòu)遷移學(xué)習(xí)。下圖很形象地表示了兩種基于特 征的遷移學(xué)習(xí)方法。
-
基于模型的遷移 (Parameter based TL):利用源域和目標(biāo)域的參數(shù)共享模型
基于模型的遷移方法 (Parameter/Model based Transfer Learning) 是指從源域和目標(biāo)域中找到他們之間共享的參數(shù)信息,以實現(xiàn)遷移的方法。這種遷移方式要求的假設(shè)條件是: 源域中的數(shù)據(jù)與目標(biāo)域中的數(shù)據(jù)可以共享一些模型的參數(shù)。下圖形象地表示了基于模型的遷移學(xué)習(xí)方法的基本思想。
-
基于關(guān)系的遷移 (Relation based TL):利用源域中的邏輯網(wǎng)絡(luò)關(guān)系進(jìn)行遷移
基于關(guān)系的遷移學(xué)習(xí)方法 (Relation Based Transfer Learning) 與上述三種方法具有截然不同的思路。這種方法比較關(guān)注源域和目標(biāo)域的樣本之間的關(guān)系。下圖形象地表示了不 同領(lǐng)域之間相似的關(guān)系。
-
5. 遷移學(xué)習(xí)與傳統(tǒng)機(jī)器學(xué)習(xí)有什么區(qū)別?
遷移學(xué)習(xí) | 傳統(tǒng)機(jī)器學(xué)習(xí) | |
---|---|---|
數(shù)據(jù)分布 | 訓(xùn)練和測試數(shù)據(jù)不需要同分布 | 訓(xùn)練和測試數(shù)據(jù)同分布 |
數(shù)據(jù)標(biāo)簽 | 不需要足夠的數(shù)據(jù)標(biāo)注 | 足夠的數(shù)據(jù)標(biāo)注 |
建模 | 可以重用之前的模型 | 每個任務(wù)分別建模 |
6. 遷移學(xué)習(xí)的核心及度量準(zhǔn)則?
遷移學(xué)習(xí)的總體思路可以概括為:開發(fā)算法來最大限度地利用有標(biāo)注的領(lǐng)域的知識,來輔助目標(biāo)領(lǐng)域的知識獲取和學(xué)習(xí)。
遷移學(xué)習(xí)的核心是:找到源領(lǐng)域和目標(biāo)領(lǐng)域之間的相似性,并加以合理利用。這種相似性非常普遍。比如,不同人的身體構(gòu)造是相似的;自行車和摩托車的騎行方式是相似的;國際象棋和中國象棋是相似的;羽毛球和網(wǎng)球的打球方式是相似的。這種相似性也可以理解為不變量。以不變應(yīng)萬變,才能立于不敗之地。
**有了這種相似性后,下一步工作就是, 如何度量和利用這種相似性。**度量工作的目標(biāo)有兩點(diǎn):一是很好地度量兩個領(lǐng)域的相似性,不僅定性地告訴我們它們是否相似,更定量地給出相似程度。二是以度量為準(zhǔn)則,通過我們所要采用的學(xué)習(xí)手段,增大兩個領(lǐng)域之間的相似性,從而完成遷移學(xué)習(xí)。
一句話總結(jié): 相似性是核心,度量準(zhǔn)則是重要手段。
7. 遷移學(xué)習(xí)與其他概念的區(qū)別?
- 遷移學(xué)習(xí)與多任務(wù)學(xué)習(xí)關(guān)系:
- 多任務(wù)學(xué)習(xí):多個相關(guān)任務(wù)一起協(xié)同學(xué)習(xí);
- 遷移學(xué)習(xí):強(qiáng)調(diào)信息復(fù)用,從一個領(lǐng)域(domain)遷移到另一個領(lǐng)域。
- 遷移學(xué)習(xí)與領(lǐng)域自適應(yīng):領(lǐng)域自適應(yīng):使兩個特征分布不一致的domain一致。
- 遷移學(xué)習(xí)與協(xié)方差漂移:協(xié)方差漂移:數(shù)據(jù)的條件概率分布發(fā)生變化。
8. 什么情況下可以使用遷移學(xué)習(xí)?
遷移學(xué)習(xí)最有用的場合是,如果你嘗試優(yōu)化任務(wù)B的性能,通常這個任務(wù)數(shù)據(jù)相對較少。 例如,在放射科中你知道很難收集很多射線掃描圖來搭建一個性能良好的放射科診斷系統(tǒng),所以在這種情況下,你可能會找一個相關(guān)但不同的任務(wù),如圖像識別,其中你可能用 1 百萬張圖片訓(xùn)練過了,并從中學(xué)到很多低層次特征,所以那也許能幫助網(wǎng)絡(luò)在任務(wù)在放射科任務(wù)上做得更好,盡管任務(wù)沒有這么多數(shù)據(jù)。
假如兩個領(lǐng)域之間的區(qū)別特別的大,不可以直接采用遷移學(xué)習(xí),因為在這種情況下效果不是很好。在這種情況下,推薦以上的方法,在兩個相似度很低的domain之間一步步遷移過去(踩著石頭過河)。
9. 什么是finetune?
度網(wǎng)絡(luò)的finetune也許是最簡單的深度網(wǎng)絡(luò)遷移方法。Finetune,也叫微調(diào)、fine-tuning, 是深度學(xué)習(xí)中的一個重要概念。簡而言之,finetune就是利用別人己經(jīng)訓(xùn)練好的網(wǎng)絡(luò),針對自己的任務(wù)再進(jìn)行調(diào)整。從這個意思上看,我們不難理解finetune是遷移學(xué)習(xí)的一部分。
為什么需要已經(jīng)訓(xùn)練好的網(wǎng)絡(luò)?
在實際的應(yīng)用中,我們通常不會針對一個新任務(wù),就去從頭開始訓(xùn)練一個神經(jīng)網(wǎng)絡(luò)。這樣的操作顯然是非常耗時的。尤其是,我們的訓(xùn)練數(shù)據(jù)不可能像ImageNet那么大,可以訓(xùn)練出泛化能力足夠強(qiáng)的深度神經(jīng)網(wǎng)絡(luò)。即使有如此之多的訓(xùn)練數(shù)據(jù),我們從頭開始訓(xùn)練,其代價也是不可承受的。
為什么需要 finetune?
因為別人訓(xùn)練好的模型,可能并不是完全適用于我們自己的任務(wù)??赡軇e人的訓(xùn)練數(shù)據(jù)和我們的數(shù)據(jù)之間不服從同一個分布;可能別人的網(wǎng)絡(luò)能做比我們的任務(wù)更多的事情;可能別人的網(wǎng)絡(luò)比較復(fù)雜,我們的任務(wù)比較簡單。
10. 什么是深度網(wǎng)絡(luò)自適應(yīng)?
深度網(wǎng)絡(luò)的 finetune 可以幫助我們節(jié)省訓(xùn)練時間,提高學(xué)習(xí)精度。但是 finetune 有它的先天不足:它無法處理訓(xùn)練數(shù)據(jù)和測試數(shù)據(jù)分布不同的情況。而這一現(xiàn)象在實際應(yīng)用中比比皆是。因為 finetune 的基本假設(shè)也是訓(xùn)練數(shù)據(jù)和測試數(shù)據(jù)服從相同的數(shù)據(jù)分布。這在遷移學(xué)習(xí)中也是不成立的。因此,我們需要更進(jìn)一步,針對深度網(wǎng)絡(luò)開發(fā)出更好的方法使之更好地完成遷移學(xué)習(xí)任務(wù)。
以我們之前介紹過的數(shù)據(jù)分布自適應(yīng)方法為參考,許多深度學(xué)習(xí)方法都開發(fā)出了自適應(yīng)層(AdaptationLayer)來完成源域和目標(biāo)域數(shù)據(jù)的自適應(yīng)。自適應(yīng)能夠使得源域和目標(biāo)域的數(shù)據(jù)分布更加接近,從而使得網(wǎng)絡(luò)的效果更好。
11. GAN在遷移學(xué)習(xí)中的應(yīng)用
生成對抗網(wǎng)絡(luò) GAN(Generative Adversarial Nets) 受到自博弈論中的二人零和博弈 (two-player game) 思想的啟發(fā)而提出。它一共包括兩個部分:
- 一部分為生成網(wǎng)絡(luò)(Generative Network),此部分負(fù)責(zé)生成盡可能地以假亂真的樣本,這部分被成為生成器(Generator);
- 另一部分為判別網(wǎng)絡(luò)(Discriminative Network), 此部分負(fù)責(zé)判斷樣本是真實的,還是由生成器生成的,這部分被成為判別器(Discriminator) 生成器和判別器的互相博弈,就完成了對抗訓(xùn)練。
GAN 的目標(biāo)很明確:生成訓(xùn)練樣本。這似乎與遷移學(xué)習(xí)的大目標(biāo)有些許出入。然而,由于在遷移學(xué)習(xí)中,天然地存在一個源領(lǐng)域,一個目標(biāo)領(lǐng)域,因此,我們可以免去生成樣本的過程,而直接將其中一個領(lǐng)域的數(shù)據(jù) (通常是目標(biāo)域) 當(dāng)作是生成的樣本。此時,生成器的職能發(fā)生變化,不再生成新樣本,而是扮演了特征提取的功能:不斷學(xué)習(xí)領(lǐng)域數(shù)據(jù)的特征使得判別器無法對兩個領(lǐng)域進(jìn)行分辨。這樣,原來的生成器也可以稱為特征提取器 (Feature Extractor)。