?深度學(xué)習(xí)主要強調(diào)的是特征,強化學(xué)習(xí)主要強調(diào)的是反饋,而遷移學(xué)習(xí)主要強調(diào)的是適應(yīng)。
之前介紹過人工智能之機器學(xué)習(xí)算法有前5大類內(nèi)容,具體請參見相關(guān)文章。今天我們重點探討一下第6類--遷移學(xué)習(xí)(Transfer Learning)。^_^
傳統(tǒng)的機器學(xué)習(xí)是種瓜得瓜,種豆得豆,而遷移學(xué)習(xí)可以舉一反三,投桃報李。
人工智能競爭,從算法模型的研發(fā)競爭,轉(zhuǎn)向數(shù)據(jù)和數(shù)據(jù)質(zhì)量的競爭,這些成功的模型和算法主要是由監(jiān)督學(xué)習(xí)推動的,而監(jiān)督學(xué)習(xí)對數(shù)據(jù)極度饑渴,需要海量數(shù)據(jù)(大數(shù)據(jù))支撐來達(dá)到應(yīng)用的精準(zhǔn)要求。而人工智能發(fā)展更趨向于不要求海量數(shù)據(jù)也能達(dá)到應(yīng)用的精準(zhǔn)要求,因此“小數(shù)據(jù)學(xué)習(xí)”正在成為新的熱點,以遷移學(xué)習(xí),強化學(xué)習(xí)為代表的小數(shù)據(jù)學(xué)習(xí)技術(shù),更能體現(xiàn)人工智能的未來之路。有專家稱,在監(jiān)督學(xué)習(xí)之后,遷移學(xué)習(xí)將引領(lǐng)下一波機器學(xué)習(xí)技術(shù)商業(yè)化浪潮。
遷移學(xué)習(xí)(TL)的概念自從1995年在NIPS5專題討論會上被提出來后,受到學(xué)術(shù)界的廣泛關(guān)注。遷移學(xué)習(xí)定義過于寬泛,相關(guān)研究中曾出現(xiàn)多種專用術(shù)語,比如learning to learn, life-long learn,multi-task learning, meta-learning, inductive transfer, knowledge transfer, context sensitive learning等。其中,遷移學(xué)習(xí)與多任務(wù)學(xué)習(xí)(multi-task learning)關(guān)系最為緊密。多任務(wù)學(xué)習(xí)同時學(xué)習(xí)多個不同的任務(wù),從中發(fā)現(xiàn)隱含的共同特征,以幫助單個任務(wù)的學(xué)習(xí)。
什么是遷移學(xué)習(xí)?
遷移學(xué)習(xí)TL(Transfer Learning)是把已學(xué)訓(xùn)練好的模型參數(shù)遷移到新的模型來幫助新模型訓(xùn)練??紤]到大部分?jǐn)?shù)據(jù)或任務(wù)是存在相關(guān)性的,所以通過遷移學(xué)習(xí),可以將已經(jīng)學(xué)到的模型參數(shù)通過某種方式來分享給新模型從而加快并優(yōu)化模型的學(xué)習(xí)效率。
遷移學(xué)習(xí)的基本動機:
遷移學(xué)習(xí)的基本動機是試圖從一個問題中獲取的知識應(yīng)用到另外一個不同但是相關(guān)的問題中去。比如,一個熟練應(yīng)用C++語言編程的程序員能很快地學(xué)習(xí)和掌握JAVA語言。在某種程度上,機器學(xué)習(xí)中的遷移學(xué)習(xí)跟心理學(xué)上的“學(xué)習(xí)能力遷移”有一定的關(guān)聯(lián)。在人類進(jìn)化中,遷移學(xué)習(xí)這種能力是非常重要。比如說,人類在學(xué)會騎自行車后,再騎摩托車就很容易了,人類在學(xué)會打羽毛球后再學(xué)習(xí)打網(wǎng)球也會容易很多。人類能把過去的知識和經(jīng)驗應(yīng)用到不同的新場景中,這樣就有了一種適應(yīng)的能力。
遷移學(xué)習(xí)主要類別方法:
1)實例加權(quán)方法:通過某種方式對來自源領(lǐng)域的訓(xùn)練樣本進(jìn)行權(quán)重計算,以決定每個樣本在訓(xùn)練過程中的重要性大小。
2)共同特征學(xué)習(xí)方法:通過若干個共同特征在源領(lǐng)域和目標(biāo)領(lǐng)域之間傳遞有用的知識。
遷移學(xué)習(xí)的重要性:
1)從數(shù)據(jù)角度:數(shù)據(jù)為王,計算是核心,但沒有足夠數(shù)據(jù)或收集數(shù)據(jù)很耗時,對數(shù)據(jù)打標(biāo)簽很難,用數(shù)據(jù)訓(xùn)練模型很繁瑣。如何進(jìn)行機器學(xué)習(xí)?遷移學(xué)習(xí)適用于小數(shù)據(jù)量場景;
2)從模型角度:云-端融合的模型被普遍使用,通過需要對設(shè)備、環(huán)境、用戶做具體適配。個性化模型適配很復(fù)雜,需要有不同的用戶隱私處理方式。遷移學(xué)習(xí)適合個性化方面。
3)從應(yīng)用角度:機器學(xué)習(xí)應(yīng)用中的冷啟動問題,推薦系統(tǒng)沒有初始用戶數(shù)據(jù),無法精準(zhǔn)推薦。遷移學(xué)習(xí)可以解決冷啟動問題。
遷移學(xué)習(xí)可減少對標(biāo)定數(shù)據(jù)的依賴,通過和已有數(shù)據(jù)模型之間的遷移,更好地完成機器學(xué)習(xí)任務(wù)。
遷移學(xué)習(xí)實現(xiàn)方法:
1)樣本遷移(Instance-based Transfer Learning):在數(shù)據(jù)集(源領(lǐng)域)中找到與目標(biāo)領(lǐng)域相似的數(shù)據(jù),把這個數(shù)據(jù)放大多倍,與目標(biāo)領(lǐng)域的數(shù)據(jù)進(jìn)行匹配。其特點是:需要對不同例子加權(quán);需要用數(shù)據(jù)進(jìn)行訓(xùn)練。一般就是對樣本進(jìn)行加權(quán),給比較重要的樣本較大的權(quán)重。
2)特征遷移(Feature-based Transfer Learning):通過觀察源領(lǐng)域圖像與目標(biāo)域圖像之間的共同特征,然后利用觀察所得的共同特征在不同層級的特征間進(jìn)行自動遷移。在特征空間進(jìn)行遷移,一般需要把源領(lǐng)域和目標(biāo)領(lǐng)域的特征投影到同一個特征空間里進(jìn)行。
3)模型遷移(Model-based Transfer Learning):利用上千萬的圖象訓(xùn)練一個圖象識別的系統(tǒng),當(dāng)遇到一個新的圖象領(lǐng)域,就不用再去找?guī)浊f個圖象來訓(xùn)練了,可以原來的圖像識別系統(tǒng)遷移到新的領(lǐng)域,所以在新的領(lǐng)域只用幾萬張圖片同樣能夠獲取相同的效果。模型遷移的一個好處是可以區(qū)分,就是可以和深度學(xué)習(xí)結(jié)合起來,可以區(qū)分不同層次可遷移的度,相似度比較高的那些層次被遷移的可能性就大一些。
4)關(guān)系遷移(Relational Transfer Learning):利用源域?qū)W習(xí)邏輯關(guān)系網(wǎng)絡(luò),再應(yīng)用于目標(biāo)域上。如社會網(wǎng)絡(luò),社交網(wǎng)絡(luò)之間的遷移。
遷移學(xué)習(xí)工具:
NanoNets(納米網(wǎng)絡(luò))是一個簡單方便的基于云端實現(xiàn)的遷移學(xué)習(xí)工具,內(nèi)部包含了一組已經(jīng)實現(xiàn)好的預(yù)訓(xùn)練模型,每個模型有數(shù)百萬個訓(xùn)練好的參數(shù)。用戶可以自己上傳或通過網(wǎng)絡(luò)搜索得到數(shù)據(jù),NanoNets將自動根據(jù)待解問題選擇最佳的預(yù)訓(xùn)練模型,并根據(jù)該模型建立一個NanoNets,并將之適配到用戶的數(shù)據(jù)。NanoNets和預(yù)訓(xùn)練模型之間的關(guān)系結(jié)構(gòu)如下圖所示。
遷移學(xué)習(xí)發(fā)展:
1)結(jié)構(gòu)與內(nèi)容分離:當(dāng)面臨一個機器學(xué)習(xí)問題,想要發(fā)現(xiàn)不同問題之間的共性,那么可以把問題的結(jié)構(gòu)和內(nèi)容剝離開。雖然這樣的分離并不容易,但是一旦完成,那么系統(tǒng)舉一反三的能力就非常強。
2)多層次特征學(xué)習(xí):把問題分到不同層次,有些層次就更容易幫助進(jìn)行機器學(xué)習(xí)的遷移。用了這種層次型的遷移學(xué)習(xí),不同的層次具有不同的遷移能力,對于不同層次的遷移能力就有了一個定量的估計。當(dāng)需要處理新任務(wù)時,就可以把某些區(qū)域或某些層次給固定住,把其他的區(qū)域用小數(shù)據(jù)來做訓(xùn)練,這樣就能夠達(dá)到遷移學(xué)習(xí)的效果。
3)多步、傳遞式學(xué)習(xí):從舊領(lǐng)域遷移到新領(lǐng)域,從一個多數(shù)據(jù)的領(lǐng)域遷移到少數(shù)據(jù)的領(lǐng)域,這種稱之為單步遷移。很多場景是需要分階段進(jìn)行多步傳導(dǎo)式的遷移,可以構(gòu)建一個深度網(wǎng)絡(luò),而這個網(wǎng)絡(luò)中間層既能照顧目標(biāo)這個問題領(lǐng)域,又能照顧原來的領(lǐng)域。如果有一些中間領(lǐng)域,那么其可以把原領(lǐng)域和目標(biāo)領(lǐng)域一步步的銜接起來??梢远x兩個目標(biāo)函數(shù),兩個目標(biāo)函數(shù)一同工作時,一個優(yōu)化了最后的目標(biāo),另一個則選擇了樣本。如此迭代,原領(lǐng)域的數(shù)據(jù)就從多步遷移到目標(biāo)領(lǐng)域。
4)學(xué)習(xí)如何遷移:在給定任何一個遷移學(xué)習(xí)問題,系統(tǒng)可以自動在過去所有嘗試過的算法里面,利用經(jīng)驗找到最合適的算法,可以是基于特征的、基于多層網(wǎng)絡(luò)的、基于樣本的或者是基于某種混合。或者把經(jīng)驗總結(jié)起來訓(xùn)練一個新的算法,這個算法的老師就是所有這些機器學(xué)習(xí)算法、文章、經(jīng)歷和數(shù)據(jù)。所以,學(xué)習(xí)如何遷移,就好像常說的學(xué)習(xí)如何學(xué)習(xí),這個才是學(xué)習(xí)的最高境界,也就是學(xué)習(xí)方法的獲取。
5)遷移學(xué)習(xí)作為元學(xué)習(xí):把遷移學(xué)習(xí)本身作為一個元學(xué)習(xí)(Meta Learning)的方法,賦予到不同學(xué)習(xí)的方式上。假設(shè)以前有一個機器學(xué)習(xí)的問題或者是模型,現(xiàn)在只要在上面套一個遷移學(xué)習(xí)的罩子,它就可以變成一個遷移學(xué)習(xí)的模型了。
6)數(shù)據(jù)生成式遷移學(xué)習(xí):對于生成式對抗網(wǎng)絡(luò)來說,圖靈測試外面的裁判是學(xué)生,里面的那個機器也是學(xué)生,兩個人的目的是在對抗中共同成長,兩方不斷互相刺激,形成一種對抗(共同學(xué)習(xí)特點)。通過小數(shù)據(jù)可以生成很多模擬數(shù)據(jù),通過模擬數(shù)據(jù)又來判定它是真的還是假的,用以刺激生成式模型的成長??梢酝ㄟ^小數(shù)據(jù)產(chǎn)生更多的數(shù)據(jù),在新的領(lǐng)域就可以實現(xiàn)遷移學(xué)習(xí)的目的。
最近,遷移學(xué)習(xí)技術(shù)在機器學(xué)習(xí)和數(shù)據(jù)挖掘領(lǐng)域得到了深入的研究。
結(jié)語:
伴隨著最近幾年的機器學(xué)習(xí)熱潮,遷移學(xué)習(xí)也成為目前最炙手可熱的研究方向。機器學(xué)習(xí)的未來發(fā)展在小數(shù)據(jù)、個性化、可靠性上面,那就是遷移學(xué)習(xí)。遷移學(xué)習(xí)體現(xiàn)了人類特有的類比能力,是“舉一反三”式的發(fā)散思維。遷移學(xué)習(xí)已經(jīng)廣泛被使用在各種人工智能機器學(xué)習(xí)應(yīng)用場景中。
評論
查看更多