遷移學習之Domain Adaptation
導讀:域適應是遷移學習中最常見的問題之一,域不同但任務相同,且源域數據有標籤,目標域數據沒有標籤或者很少數據有標籤,本文主要介紹了幾篇基於卷積神經網路來處理域適應這個問題的文章。
前一篇文章中的圖2給出了遷移學習中幾種常見的問題,其中一個比較重要的是域適應問題domain adaptation,域不同但任務相同,且源域數據有標籤,目標域數據沒有標籤或者很少數據有標籤。例如下圖四個數據集,它們從不同的方式採集辦公室用品的數據,任務全是做圖片分類,且在做遷移任務時,它們分類的類別數標籤是一致的。本文主要介紹幾篇基於卷積網路的遷移學習文章的大致思路。
圖1 四個辦公室用品分類數據集(圖片來源[1])
解決Domain adaptation問題主要的思路就是將source訓練好的模型能夠用在target上,域適配問題最主要的就是如何減少source和target不同分布之間的差異。域適配包括無監督域適配和半監督域適配,前者的target是完全沒有label的,後者的target有部分的label,但是數量非常的少。這裡主要介紹基於深度學習的方法,在我們已知finetuning之後,其實很容易想到,將在有標籤的域A上訓練好的模型用在無標籤或者少量標籤的域B上,中間的操作只需要改變輸入,但是這種方式就會由於域A和域B數據分布不同導致效果並不一定會非常好,如果有方式能夠減少A和B的差異,那就可以用同一個模型來跑A和B的數據。
DeCAF[2]
現在經常使用的fine-tuning這種trick,實際上最早也用來解決過遷移學習問題,屬於基於特徵遷移的方式。DeCAF[2]是Caffe的前身,文章是想從一個已經訓練好的物體識別深度卷積網路中提取特徵,將特徵用到其他的數據集和問題中看效果如何。文章首先討論了卷積不同層提取的特徵到底表現如何,在ILSVRC-2012訓練集上訓練之後,提取了驗證集不同層的特徵來做t-SNE聚類,對比了兩種演算法提取的特徵可以看到比較深的卷積之後的特徵能夠將不同的類區分開。從這個結果上看,卷積網路高層提取出的特徵確實更加有區分性。
圖2 特徵t-sne聚類(圖片來源[2])
然後作者將在ILSVRC-2012上訓練的網路,提取了數據集SUN-397的高層卷積特徵,同樣可以看到聚成了比較明顯的幾類,說明在Imagenet上訓練好的網路對於SUN-397數據同樣適用。
圖3 SUN-397高層特徵t-sne聚類(圖片來源[2])
接著作者又嘗試了在圖1中的三個數據集Amazon、Webcam、Dslr進行了域適應任務,例如在Amazon上訓練了卷積網路,再將網路用於Webcam提取特徵,這樣的方式比之前的特徵提取方法分類準確率高很多,這裡說明了基於卷積網路提取的特徵在不同的域之間能夠提取出一定的具有共性的特徵。
DDC[3]
上面這種fine-tuning的方法針對已經訓練好的模型在新的數據進行重新訓練訓練雖然能夠起到一定作用,但是由於不同域的數據分布存在不同,如圖4左側圖所示,source訓練好的分類器在target不一定適用,因此Deep Domain Confusion這篇文章出發點是想在訓練的時候能夠同時減小source和target分布的差異,來讓網路學習到更有遷移性的特徵,如圖4右側圖所示,縮小了差異學習到分類器同時適用於兩個域。之前在神經網路中減少不同域差異的一些方法會採用下面的方式,使用一個固定已經有很強表達力的CNN,然後用MMD來決定用哪個層能夠最小化domain差異,再用縮小了差異的特徵表達去做分類。但是這種方式並沒有讓卷積網路起到最大的作用,實際上可以同時優化特徵提取和分類兩個問題。
圖4 源域與目標域數據分布差異(圖片來源[3])
因而DDC具體做法是在神經網路中額外加入一個適配層和域誤差損失來自動的學習一些特徵表達。主要還是利用MMD,假設映射函數為?,可以採用的優化目標如下,第一項是優化監督分類器,第二項是縮小domain之間的差異。
圖5 DDC網路的損失函數(圖片來源[3])
作者從直覺上覺得維數低的層能夠讓分類器更加正則化減少過擬合,所以增加了一個維數較低的適配層,為了增加這個層,就需要解決兩個問題,一是在網路的什麼地方增加一個是這個層維數取多少。第一個經過計算source和target在網路的不同層的特徵表達之間的MMD數值,最後確定放在了fc7。第二個通過網格搜索來解決,在多層網路上用不同維數的層來進行微調然後計算新的低維層之間的MMD數值,最後選擇最小的那個維數。圖6中的網路參數是source和target共享的,分類的loss只有那些有label的數據會計算,所有數據都全部用來計算這個domain confusion loss。經過這樣的優化,網路輸出的特徵不僅分類結果很不錯,特徵還具有了一定的遷移能力,學習到了一些域不變特徵。
圖6 DDC網路的網路結構(圖片來源[3])
採用的數據集還是之前的辦公室用品,分別從三個數據源採集得到31類,每個類利用了20/8/8張數據作為source,3張作為target,針對三個遷移任務進行了研究。比較了卷積網路中三個不同的全連接層的MMD取值以及對應的測試集準確率,其中取fc7時效果最好。還對比了MMD取值和acc隨著加的適配層的維數變化而產生的不同結果,結論就是MMD能夠幫助來選擇放層的位置以及決定層的維數。然後在數據集上做了遷移的驗證,分別是無監督任務和半監督任務,發現結果要遠好於其他演算法。最後還比較了一下從Amazon數據遷移到Webcam的任務中,加不加MMD這一項的結果對比,發現加入了MMD後遷移效果更好。(具體的圖建議去看原文)
這篇文章優勢在於能夠選擇適配層的維數,以及針對一個已經預訓練好的網路找到放這個適配層的地方,且能夠得到更好的特徵表達。個人覺得這個文章的方法還是有點不夠通用不夠智能,換一個網路,可能就要不同的適配層的維數和放置的位置。但是畢竟是14年的文章,且開創了這樣的思路,卷積網路能夠學習到具有普適性和可遷移的特徵,但是在高層的的特徵還是依賴特定的數據集和任務,當減少domain之間的差別之後也的確增加網路高層特徵的可遷移性。
DAN[4]
之前的兩篇文章可以看出深度神經網路能夠用在domain adaptation上,並且遷移的都是高層的特徵,但是在實際的問題中遷移的效果往往會會由於domain的差別過大導致效果銳減,因此減少數據集的bias顯得非常重要。上面的DDC研究出了在深度網路的中間一層加入MMD能夠減少不同domain之間的差異,是否還有方法能更進一步的減少差異?
基於這樣的考慮, Deep Adaptation Networks(DAN)這篇文章採用了兩種改進方法,一是在衡量兩個分布差異時使用多核MMD,二是不只選擇一層網路來減少差異,而是選擇多個全連接層。如圖6中,在alexnet的全連接層fc6、fc7、fc8上來自不同域的數據產生的特徵都進行了一一對齊。
圖7 DAN網路的網路結構(圖片來源[4])
具體實現中採用了多核MMD,根據核技巧和多核的無偏估計,能夠將複雜度變成O(n),且可以正常使用SGD的方式來優化。
文章還是用了圖1中的數據集,表中DAN7表示只用了fc7,DANsk表示用了多個層單核,從表中可以看出DAN方法遠比其他演算法好,同時也可以看出其實適應性在不同的演算法中是不同的,比如DW比較相似所以它們之間進行遷移準確率更高。而且幾種基於卷積網路的都表現的非常好,說明深度學習確實更能夠學習到具有普適性和可遷移的特徵。類似的DDC方法只利用了一個特徵和一種kernel效果都不如多層特徵和多種kernel的效果。其中只用了一層的DAN7也比DDC好也說明多個kernel效果好。後面針對DDC和DAN提取出來的遷移層特徵做了t-SNE的聚類,發現DAN方法在target域上更能將樣本分開,也說明了提取的特徵更有效,這裡就不列出來了。
圖8 DAN網路無監督遷移分類準確率(圖片來源[4])
總的來說,DAN解決了之前說過DDC的問題,如何去高層特徵中選一個層來最小化不同域的差異以及如何選擇適配層的維數,這裡就直接利用了靠近輸出的每個高層,且在最小化MMD時使用了多核表達式,並且不再自己去增加一個適配層,而是直接用了正常網路中的所有全連接層。
JAN[5]
DAN的方法似乎已經將基於卷積網路的遷移加入了足夠的約束,但是深度網路在訓練的過程中所學到的特徵由general變到specific,特徵和label的聯合概率分布的差異在高層的時候仍然存在。在DAN基礎上同一批作者又提出了基於jointMMD將多個依賴domain特徵層的分布進行對齊。如下圖所示,將若干個高層特徵做連乘得到它們的聯合概率分布。橫向表示一個神經網路從底層到高層的變化,中間的z就是每個中間層的特徵表示結果。右邊時候在網路中間加入了一個判模塊絡,這個模塊的作用是對source和target進行二分類,即卷積網路在學習如何減小兩個domain差異的參數,而判別模塊則在盡量分辨出當前數據來源是source還是target,從而能讓CNN學到更具有適配性的特徵。
圖9 JAN網路結構圖(圖片來源[5])
文章的出發點是認為domain的分布)P(Xs,Ys)以及Q(Xt,Yt)可以通過中間層的分布來體現)P(Zs1,…,ZsL)和)Q(Zt1,…,ZtL)。所以可以推導出多層之間的聯合概率分布差異如下。之前的文章還是在單獨的縮小每一層的特徵向量之間的差異,在這篇文章中更進一步,考慮到每一層的聯合分布,來縮小這個聯合分布。
圖10 多層特徵聯合概率分布(圖片來源[5])
JAN的方法在大多數任務上都要優於之前的演算法,且在一些比較困難的任務上,也效果非常好。從圖11結果上來看,深層網路更能提取出有遷移性的特徵,基於resnet的基本上都優於alexnet。基於神經網路提取特徵的方法某些情況下能比傳統方法好某些情況下不行,說明提出出來的特徵確實有減小domain差異的能力,但是沒做到完全去除差異,而這些基於神經網路加上了縮小domain差異的方法又比傳統方法表現的更好,說明加上了縮小差異之後,神經網路能夠學到有遷移性質的特徵,但是這些方法只考慮了單層與單層之間的邊緣概率分布的差異,由於JAN考慮到了全局的聯合概率分布,即採用這樣的聯合分布更能學習到有遷移性的特徵。其他的實驗結果也是從各個方面證明了JAN可以使得源域和目標域分布差異更小。
圖11 JAN網路無監督遷移分類準確率(圖片來源[5])
小結:上面所列出的幾種方法都是基於卷積網路來實現了遷移學習,從實驗結果來看,確實都表現很好,但是從同事的口中卻得知實際工程應用中其實效果並不好。我雖然沒有實際使用遷移學習一些方法,但是從這幾篇文章中也看得出一些端倪,文章所用的數據集主要是辦公室用品那幾個,都是幾千張的樣本,對於現在的很多任務來說算比較小了,所以遷移學習從理論到實踐,還有一段長長的路要走。
今晚8點博士導師直播課
※通俗易懂,買一次西瓜就懂python
※基於區塊鏈的機器學習模型創建方案
TAG:AI講堂 |