(2)決定采用什么樣的自適應(yīng)方法(度量準(zhǔn)則),這決定了網(wǎng)絡(luò)的泛化能力。早期的研究者在2014年環(huán)太平洋人工智能大會(huì)(Pacific Rim International Conference on Artificial Intelligence,PRICAI)上提出了名為DANN(Domain Adaptive Neural Networks)的神經(jīng)網(wǎng)絡(luò)[Ghifary et al.,2014]。DANN的結(jié)構(gòu)異常簡單,它只由兩層神經(jīng)元——特征層神經(jīng)元和分類器層神經(jīng)元組成。作者的創(chuàng)新之處在于,在特征層后加入MMD適配層,用來計(jì)算源域和目標(biāo)域的距離,并將其加入網(wǎng)絡(luò)的損失中進(jìn)行訓(xùn)練。但是,由于網(wǎng)絡(luò)太淺,表征能力有限,故無法很有效地解決領(lǐng)域自適應(yīng)問題。因此,后續(xù)的研究者大多都基于其思想進(jìn)行改進(jìn),如將淺層網(wǎng)絡(luò)改為更深層的AlexNet、ResNet、VGG等,將MMD換為多核MMD等。下面將介紹幾種常見的深度網(wǎng)絡(luò)自適應(yīng)方法。▊ 基本方法(1)DDC方法。加州大學(xué)伯克利分校的Tzeng等人首先提出了DDC(Deep Domain Confusion)方法來解決深度網(wǎng)絡(luò)的自適應(yīng)問題[Tzeng et al.,2014]。DDC方法遵循了上面討論過的基本思路,采用了在ImageNet數(shù)據(jù)集上訓(xùn)練好的AlexNet網(wǎng)絡(luò)進(jìn)行自適應(yīng)學(xué)習(xí)[Krizhevsky et al.,2012]。下圖是DDC方法示意圖。DDC方法固定了AlexNet的前7層,在第8層(分類器前一層)上加入了自適應(yīng)的度量。自適應(yīng)度量方法采用了被廣泛使用的MMD準(zhǔn)則。 為什么選擇倒數(shù)第2層?DDC方法的作者在文章中提到,他們經(jīng)過多次實(shí)驗(yàn),在不同的層進(jìn)行了嘗試,最終發(fā)現(xiàn)在分類器前一層加入自適應(yīng)可以達(dá)到最好的效果。這與我們的認(rèn)知也是相符合的。通常來說,分類器前一層即特征,在特征上加入自適應(yīng),也正是遷移學(xué)習(xí)要完成的工作。(2)DAN方法。清華大學(xué)的龍明盛等人于2015年發(fā)表在ICML(Internation Conference on Machine Learning)上的DAN(Deep Adaptation Networks)方法對(duì)DDC方法進(jìn)行了幾個(gè)方面的擴(kuò)展[Long et al.,2015a]。首先,有別于DDC方法只加入一個(gè)自適應(yīng)層,DAN方法同時(shí)加入了3個(gè)自適應(yīng)層(分類器前3層)。其次,DAN方法采用表征能力更好的多核MMD(MK-MMD)度量來代替DDC方法中的單核MMD[Gretton et al.,2012]。最后,DAN方法將多核MMD的參數(shù)學(xué)習(xí)融入深度網(wǎng)絡(luò)的訓(xùn)練中,并且未額外增加網(wǎng)絡(luò)的訓(xùn)練時(shí)間。DAN方法在多個(gè)任務(wù)上都取得了比DDC方法更好的分類效果。為什么適配3層?原來的DDC方法只適配了1層,現(xiàn)在DAN方法基于AlexNet網(wǎng)絡(luò),適配最后3層(第6、7、8層)。因?yàn)镴ason在文獻(xiàn)[Yosinski et al.,2014]中已經(jīng)提出,網(wǎng)絡(luò)的遷移能力從這3層開始就會(huì)有特定的任務(wù)傾向,所以要著重適配這3層。至于別的網(wǎng)絡(luò)(如GoogLeNet、VGG等)是不是適配這3層就需要通過自己的實(shí)驗(yàn)來驗(yàn)證,要注意的是DAN方法只關(guān)注AlexNet。DAN方法示意圖如下。(3)同時(shí)遷移領(lǐng)域和任務(wù)的方法。DDC方法的作者Tzeng在2015年擴(kuò)展了DDC方法,提出了領(lǐng)域和任務(wù)同時(shí)遷移的方法[Tzeng et al.,2015]。他提出網(wǎng)絡(luò)要進(jìn)行兩部分遷移。一是域遷移(Domain Transfer),尤其指適配邊緣分布,但沒有考慮類別信息。域遷移就是在傳統(tǒng)深度網(wǎng)絡(luò)的損失函數(shù)上,再加一個(gè)混淆損失(Confusion Loss)函數(shù),兩個(gè)損失函數(shù)一起計(jì)算。二是任務(wù)遷移(Task Transfer),就是利用類別之間的相似度進(jìn)行不同任務(wù)間的學(xué)習(xí)。舉個(gè)類別之間相似度的例子:杯子與瓶子更相似,而它們與鍵盤不相似。現(xiàn)有的深度遷移學(xué)習(xí)方法通常都只考慮域遷移,而沒有考慮類別之間的信息。如何把域遷移和任務(wù)遷移結(jié)合起來,是一個(gè)需要研究的問題。Tzeng針對(duì)目標(biāo)任務(wù)的部分類別有少量標(biāo)簽,剩下的類別無標(biāo)簽的情況,提出名為域遷移和任務(wù)遷移的聯(lián)合CNN體系結(jié)構(gòu)(Joint CNN Architecture For Domain and Task Transfer)。其最大的創(chuàng)新之處在于,提出現(xiàn)有的方法都忽略了類別之間的聯(lián)系,并提出在現(xiàn)有損失函數(shù)的基礎(chǔ)上還要再加一個(gè)軟標(biāo)簽損失(Soft Label Loss)函數(shù)。意思就是在源域和目標(biāo)域進(jìn)行適配時(shí),也要根據(jù)源域的類別分布情況來調(diào)整目標(biāo)域。相應(yīng)地,他提出的方法就是把這兩個(gè)損失函數(shù)結(jié)合到一個(gè)新的CNN網(wǎng)絡(luò)上,這個(gè)CNN是基于AlexNet修改而來的。總的損失函數(shù)由3部分組成,第1部分是普通訓(xùn)練的損失函數(shù),第2部分是域自適應(yīng)的損失函數(shù),第3部分是目標(biāo)域上的軟標(biāo)簽損失函數(shù)。下圖為同時(shí)遷移領(lǐng)域和任務(wù)的方法示意圖。該網(wǎng)絡(luò)由AlexNet修改而來,前面幾層無變化,區(qū)別是在fc7層后面加入了一個(gè)域分類器,在該層實(shí)現(xiàn)域自適應(yīng),在fc8層后計(jì)算網(wǎng)絡(luò)的損失函數(shù)和軟標(biāo)簽損失函數(shù)。那么什么是軟標(biāo)簽損失?軟標(biāo)簽損失就是不僅要適配源域和目標(biāo)域的邊緣分布,還要把類別信息考慮進(jìn)去。具體做法如下,在網(wǎng)絡(luò)對(duì)源域進(jìn)行訓(xùn)練時(shí),把源域中的每一個(gè)樣本處于每一個(gè)類的概率都記下來,然后,對(duì)于所有樣本,屬于每一個(gè)類的概率就可以通過先求和再求平均數(shù)得到。下為軟標(biāo)簽損失示意圖。這樣做的目的是,根據(jù)源域中的類別分布關(guān)系,來對(duì)目標(biāo)域做相應(yīng)的約束。(4)JAN方法。DAN方法的作者龍明盛2017年在ICML上提出了JAN(Joint Adaptation Networks)方法[Long et al.,2017],在深度網(wǎng)絡(luò)中同時(shí)進(jìn)行聯(lián)合分布的自適應(yīng)和對(duì)抗學(xué)習(xí)。JAN方法將只對(duì)數(shù)據(jù)進(jìn)行自適應(yīng)的方式推廣到了對(duì)類別的自適應(yīng)上,提出了JMMD度量(Joint MMD)。下為JAN方法示意圖。(5)AdaBN方法。與上述研究選擇在已有網(wǎng)絡(luò)層中增加適配層不同,北京大學(xué)的H Li和圖森科技的N Wang等人提出了AdaBN(Adaptive Batch Normalization)方法[Li et al.,2018],其通過在歸一化層加入統(tǒng)計(jì)特征的適配來完成遷移。下圖是AdaBN方法示意圖。
▊ 核心方法(1)DANN方法。Yaroslav Ganin等人首先在遷移學(xué)習(xí)中加入了對(duì)抗機(jī)制,并將他們的網(wǎng)絡(luò)稱為DANN(Domain-Adversarial Neural Networks)方法[Ganin et al.,2016]。在此研究中,網(wǎng)絡(luò)的學(xué)習(xí)目標(biāo)是,生成的特征盡可能幫助區(qū)分兩個(gè)領(lǐng)域的特征,同時(shí)使判別器無法對(duì)兩個(gè)領(lǐng)域的差異進(jìn)行判別。該方法的領(lǐng)域?qū)箵p失函數(shù)表示為:
其中
(2)DSN方法。來自Google Brain的Bousmalis等人提出DSN(Domain Separation Networks)方法對(duì)DANN進(jìn)行了擴(kuò)展[Bousmalis et al.,2016]。DSN方法認(rèn)為,源域和目標(biāo)域都由兩部分構(gòu)成:公共部分和私有部分。公共部分可以學(xué)習(xí)公共的特征,私有部分用來保持各個(gè)領(lǐng)域獨(dú)立的特性。DSN方法進(jìn)一步對(duì)損失函數(shù)進(jìn)行了定義。
其具體含義如下。??為網(wǎng)絡(luò)常規(guī)訓(xùn)練的損失函數(shù)。??為重構(gòu)損失函數(shù),確保私有部分仍然對(duì)學(xué)習(xí)目標(biāo)有作用。??公共部分與私有部分的差異損失函數(shù)。??源域和目標(biāo)域公共部分的相似性損失函數(shù)。如下是DSN方法示意圖。(3)SAN方法。清華大學(xué)龍明盛等人2018年發(fā)表在CVPR(Computer Vision and Pattern Recognition)上的文章提出了部分遷移學(xué)習(xí)(Partial Transfer Learning)。作者認(rèn)為,在大數(shù)據(jù)時(shí)代,通常我們會(huì)有大量的源域數(shù)據(jù)。這些源域數(shù)據(jù)與目標(biāo)域數(shù)據(jù)相比,在類別上通常更為豐富。例如,基于ImageNet訓(xùn)練的圖像分類器,必然是針對(duì)幾千個(gè)類別進(jìn)行的分類。在實(shí)際應(yīng)用時(shí),目標(biāo)域往往只是其中的一部分類別。這樣就會(huì)帶來一個(gè)問題:那些只存在于源域中的類別在遷移時(shí),會(huì)對(duì)遷移結(jié)果產(chǎn)生負(fù)遷移影響。這種情況是非常普遍的,因此,就要求相應(yīng)的遷移學(xué)習(xí)方法能夠?qū)δ繕?biāo)域選擇相似的源域樣本(類別),同時(shí)也要避免負(fù)遷移。但是目標(biāo)域通常是沒有標(biāo)簽的,因此我們并不知道它和源域中哪個(gè)類別更相似。作者稱這個(gè)問題為部分遷移學(xué)習(xí)(Partial Transfer Learning)。Partial即只遷移源域中和目標(biāo)域相關(guān)的那部分樣本。下圖展示了部分遷移學(xué)習(xí)示意圖。作者提出了名為選擇性對(duì)抗網(wǎng)絡(luò)(Selective Adversarial Networks,SAN)的方法來處理選擇性遷移問題[Cao et al.,2017]。在該問題中,傳統(tǒng)的對(duì)抗網(wǎng)絡(luò)不再適用。所以需要對(duì)其進(jìn)行一些修改,使它能夠適用于選擇性遷移問題。