本文僅為一些學(xué)習(xí)筆記白話總結(jié)牲迫,具體遷移相關(guān)內(nèi)容可參考下面鏈接:
綜述論文:四大類深度遷移學(xué)習(xí)
《小王愛遷移》系列文章匯總目錄
遷移學(xué)習(xí)中的領(lǐng)域自適應(yīng)方法
MMD :maximum mean discrepancy
領(lǐng)域自適應(yīng)(Domain Adaptation)方法綜述
深度遷移學(xué)習(xí)綜述
在諸多機器學(xué)習(xí)和深度學(xué)習(xí)方法中疯兼,都有一個默認(rèn)的假設(shè):訓(xùn)練數(shù)據(jù)和測試數(shù)據(jù)是獨立同分布的。但在實際中级乍,這種條件是很難滿足的,也因此常常會出現(xiàn)模型在訓(xùn)練集上收斂,驗證集上表現(xiàn)良好,但在測試集上翻車的情況杜漠。而遷移學(xué)習(xí)正是嘗試解決訓(xùn)練集和測試集數(shù)據(jù)分布不一致、訓(xùn)練集數(shù)據(jù)量不夠的問題的方法察净。
遷移學(xué)習(xí)將數(shù)據(jù)集分為源域和目標(biāo)域:
- 源域可理解為所有可以加以利用的訓(xùn)練集驾茴,如圖像分類中預(yù)訓(xùn)練使用的ImageNet數(shù)據(jù)集,NLP中的wiki數(shù)據(jù)集等氢卡。某些時候也指與測試集分布不一致的訓(xùn)練集锈至;
- 目標(biāo)域也即我們的測試集。
遷移學(xué)習(xí)的目標(biāo)便是考慮如何使訓(xùn)練集和測試集的數(shù)據(jù)特征分布更為一致(基于特征的遷移) OR 如何利用更多的數(shù)據(jù)來提升我們模型的效果(預(yù)訓(xùn)練)译秦。
遷移學(xué)習(xí)的類別
遷移學(xué)習(xí)可分為四類:
(1)基于實例的遷移學(xué)習(xí)
基于實例的遷移學(xué)習(xí)主要應(yīng)用于源域(可用訓(xùn)練集)數(shù)據(jù)較多但訓(xùn)練集與測試集特征分布又不一致的情況峡捡。
基于實例的遷移學(xué)習(xí)思想非常簡單——與測試集更為相似的訓(xùn)練集樣本在訓(xùn)練時給與更高的權(quán)重,不相似的樣本則權(quán)重較小筑悴。
傳統(tǒng)的基于實例的遷移學(xué)習(xí)方法有TrAdaBoost以及其各類變型们拙。也有一些利用深度學(xué)習(xí)來學(xué)習(xí)權(quán)重的方法。
(2)基于映射的遷移學(xué)習(xí)
基于映射的遷移學(xué)習(xí)通過將源域和目標(biāo)域的特征映射到同一空間來使得他們具有相同的數(shù)據(jù)分布阁吝。它基于假設(shè):「盡管兩個原始域之間存在差異砚婆,但它們在精心設(shè)計的新數(shù)據(jù)空間中可能更為相似⊥挥拢」
(3)基于網(wǎng)絡(luò)的深度遷移學(xué)習(xí)
基于網(wǎng)絡(luò)的深度學(xué)習(xí)是指復(fù)用在源域中預(yù)先訓(xùn)練好的部分網(wǎng)絡(luò)装盯,包括其網(wǎng)絡(luò)結(jié)構(gòu)和權(quán)重參數(shù),常見的應(yīng)用如利用ImageNet來預(yù)訓(xùn)練VGG網(wǎng)絡(luò)然后再進行fine-tuning甲馋,利用大規(guī)模的wiki數(shù)據(jù)集來進行預(yù)訓(xùn)練bert埂奈,然后再利用任務(wù)相關(guān)數(shù)據(jù)集進行fine-tuning 等。
它基于假設(shè):「神經(jīng)網(wǎng)絡(luò)類似于人類大腦的處理機制摔刁,它是一個迭代且連續(xù)的抽象過程挥转。網(wǎng)絡(luò)的前面層可被視為特征提取器,提取的特征是通用的共屈“笠ィ」
因此在很多圖像任務(wù)中會先利用ImageNet訓(xùn)練網(wǎng)絡(luò),然后固定網(wǎng)絡(luò)前N層特征提取層拗引。僅fine-tuning或重新訓(xùn)練那些離分類層較近的網(wǎng)絡(luò)層借宵。
(4)基于對抗的深度遷移學(xué)習(xí)
基于對抗的遷移學(xué)習(xí)受GAN啟發(fā),在網(wǎng)絡(luò)的某些層間中加入了對抗層矾削,通過對抗層來使網(wǎng)絡(luò)學(xué)習(xí)訓(xùn)練集和測試集的通用特征(或稱共有特征)壤玫。
對抗網(wǎng)絡(luò)的作用是區(qū)分來自訓(xùn)練集和測試的特征豁护,若能很好地區(qū)分訓(xùn)練集和測試集特征,說明源域和目標(biāo)域特征分布不一樣欲间,對抗網(wǎng)絡(luò)會返回較大的loss楚里,從而使網(wǎng)絡(luò)學(xué)習(xí)到共有特征。
一些遷移學(xué)習(xí)方法
本部分主要是對《小王愛遷移》系列文章匯總目錄的一些白話簡單總結(jié)猎贴。
遷移成分分析(TCA班缎,Transfer Component Analysis)
TCA通過將源域與目標(biāo)域映射到一個再生核希爾伯特空間(reproducing kernel Hilbert Spaces)中,并使用MMD(最大平均差異她渴,maximum mean discrepancy)來衡量兩個映射后的域數(shù)據(jù)分布差異达址。因此將目標(biāo)轉(zhuǎn)換為尋找一個映射空間(OR變換?)趁耗,這個變換使得兩個分步的MMD最小沉唠。
關(guān)于MMD可以參考MMD :maximum mean discrepancy。
TCA可以看作是一個特征預(yù)處理苛败,在找到映射函數(shù)后满葛,將源域與目標(biāo)域一起經(jīng)過這個映射便可以將他們的原始特征分布差減小。
聯(lián)合分布適配(JDA著拭,joint distribution adaption)
與TCA不同纱扭,JDA通過適配源域與目標(biāo)域的聯(lián)合分布來使得源域與目標(biāo)域的數(shù)據(jù)表現(xiàn)更為一致,或者說至少對于模型來說兩者更為相似了儡遮。
聯(lián)合概率的簡單解釋:
- 對于數(shù)據(jù)X, y(X表示特征向量<x1, x2, ..., xn>,y表示label):
- 邊緣概率即僅考慮單個變量出現(xiàn)的概率暗赶,P(x) 表示 數(shù)據(jù)集中x的概率鄙币,如P(x1)表示x1的出現(xiàn)概率;
- 條件概率即在某個變量出現(xiàn)特定值的前提下另一個變量出現(xiàn)的概率蹂随,如P(y|X1)表示在特征為X1時候label為y的概率十嘿;
- 聯(lián)合概率,即兩個變量特定值一起出現(xiàn)的概率岳锁,換句話說绩衷,就是在某個變量先出現(xiàn)(P(X1))的情況下另一個變量一起出現(xiàn)(P(y=1|X1))的概率,因此聯(lián)合分布就可以用邊緣概率和條件概率來進行表示:P(X, y) = P(y|X)*P(X) = P(X|y)*P(y)激率。
JDA的假設(shè)有兩點:
- 1)源域和目標(biāo)域邊緣分布不同咳燕;
- 2)源域和目標(biāo)域條件分布不同。
因此乒躺,要使得源域(source招盲,后面用下標(biāo)s表示)和目標(biāo)域(target,后面用下標(biāo)t表示)更為接近嘉冒,只需要適配他們的邊緣分布和條件分布即可曹货。也即聯(lián)合分布適配(注意這里適配的并非聯(lián)合分布P(X, y)咆繁,題目非常具有迷惑性)。
適配邊緣概率(P(X)也即特征適配)
可以利用TCA中的方法顶籽,也即通過找到一個映射(A)將源域與目標(biāo)域映射到這個空間來使得其差別最小:
|| P(Xs) - P(Xt) || => || P(ATXs) - P(ATXt) ||
適配條件分布(P(y|X))
適配條件分布即是要使得P(ys|Xs) 和 P(yt|Xt)之間的距離要小玩般,但是在目標(biāo)域(也即測試集)中,yt 常常是沒有的礼饱,因此也就沒法求目標(biāo)域的條件分布坏为。
《小王愛遷移》系列之二:聯(lián)合分布適配(JDA)方法簡介中提到用P(Xt|yt)來近似P(yt|Xt),也即消去了貝葉斯公式中的P(Xt)慨仿。
對于上面為什么能消去P(Xt)來進行近似久脯,目前沒看懂,同樣取上面博客的一些解釋:
在統(tǒng)計學(xué)上镰吆,有一個東西叫做充分統(tǒng)計量帘撰,它是什么意思呢?大概意思就是說万皿,如果樣本里有太多的東西未知摧找,樣本足夠好,我們就能夠從中選擇一些統(tǒng)計量牢硅,近似地代替我們要估計的分布蹬耘。為近似找到了理論依據(jù)。
但是到了現(xiàn)在依然沒有yt减余,文中提到使用偽標(biāo)簽的方法综苔,即利用源域數(shù)據(jù)訓(xùn)練一個模型然后對目標(biāo)域進行預(yù)測以得到y(tǒng)t。這樣一來位岔,類與類之間的MMD距離就變成了如下:
在學(xué)習(xí)時將條件分布與概率分布適配loss加到一起就可以了如筛。另外,上面我們用的是偽標(biāo)簽作為目標(biāo)域的標(biāo)簽抒抬,因此這里會有一個迭代的過程杨刨。而在TCA中是沒有迭代過程的,一次即求出了目標(biāo)映射函數(shù)擦剑。
深度學(xué)習(xí)遷移
在論文《How transferable are features in deep neural networks?》中作者利用AlexNet對深度網(wǎng)絡(luò)的可遷移性進行了解釋妖胀,即網(wǎng)絡(luò)中那些學(xué)習(xí)到通用特征的部分參數(shù)是可以遷移的,可以在目標(biāo)域直接使用惠勒,而那些高層的與特定任務(wù)相關(guān)的網(wǎng)絡(luò)層參數(shù)則難以遷移赚抡,需要重新學(xué)習(xí)。例如捉撮,在利用ImageNet進行預(yù)訓(xùn)練后再在目標(biāo)域進行訓(xùn)練時怕品,一般會將前面幾層參數(shù)給固定僅學(xué)習(xí)后面的分類層。
因此巾遭,在適配深度學(xué)習(xí)網(wǎng)絡(luò)時肉康,一般是對上層的靠近分類任務(wù)的層參數(shù)進行適配闯估。
DaNN(Domain Adaptive Neural Network)
論文名字:Domain adaptive neural networks for object recognition
DaNN的結(jié)構(gòu)異常簡單,它僅由兩層神經(jīng)元組成:特征層和分類器層吼和。作者的創(chuàng)新工作在于涨薪,在特征層后加入了一項MMD適配層,用來計算源域和目標(biāo)域的距離炫乓,并將其加入網(wǎng)絡(luò)的損失中進行訓(xùn)練刚夺。所以,整個網(wǎng)絡(luò)的優(yōu)化目標(biāo)也相應(yīng)地由兩部分構(gòu)成:在有l(wèi)abel的源域數(shù)據(jù)上的分類誤差(Lc)和兩個域數(shù)據(jù)的判別誤差(Ld)末捣,Ld表示源域與目標(biāo)域的距離侠姑,因此最小化Ld即是最小化源域與目標(biāo)域的距離。
但是箩做,由于網(wǎng)絡(luò)太淺莽红,表征能力有限,故無法很有效地解決domain adaptation問題(通俗點說就是精度不高)邦邦。因此安吁,后續(xù)的研究者大多數(shù)都基于其思想進行擴充,如將淺層網(wǎng)絡(luò)改為更深層的AlexNet燃辖、ResNet鬼店、VGG等;如將MMD換為多核的MMD等黔龟。
DDC (Deep domain confusion)
論文名字:Deep domain confusion: Maximizing for domain invariance.
DDC針對預(yù)訓(xùn)練的AlexNet(8層)網(wǎng)絡(luò)妇智,在第7層(也就是feature層,softmax的上一層)加入了MMD距離來減小source和target之間的差異氏身。這個方法簡稱為DDC俘陷。下圖是DDC的算法插圖。
從上面可以看出观谦,DCC僅是在第七層后加了一層適配層用來優(yōu)化拉近源域與目標(biāo)域的距離。若domain adapter 無法區(qū)別源域與目標(biāo)域桨菜,說明學(xué)習(xí)到的特征是源域與目標(biāo)域共有的特征豁状。
DAN
論文名字:Learning transferable features with deep adaptation networks
DAN主要對DCC進行了兩方面的改進:
- (1)在多層遷移層中加入了適配器,以更好地進行適配倒得;
-
(2)使用了多核MMD(DCC使用的單核)泻红。