無監督領域自適應(Unsupervised domain adaptation, UDA)
任務描述
現有兩個數據集,
源域(Source Domain)\(\mathcal{D}_s\)和目標域(Target Domain)\(\mathcal{D}_t\)的數據經驗分布不一樣,但是任務是相同的。
任務是利用源域中已有的知識(標簽信息)去學習目標域的樣本的類別。
直觀感受
如現在有兩堆數據,一堆是真實的動物照片,一堆是手繪動物的照片。兩個數據集的風格是明顯不一樣的,它們的分布也是明顯存在偏差的。如果我們直接在真實的動物照片上訓練一個分類器,然后直接用在手繪動物的照片的分類上,性能必然是比較差的。
每個領域都有自己特有的知識,而這些特有的知識對其它領域反而是一種干擾
在UDA任務中,我們需要尋找一種“共有特征”。如在上面的照片中,對於真實的猴子和手繪的猴子,我們需要提煉出猴子的共有特征,如臉龐的形狀,毛發的顏色等,摒棄一些領域自己特有的特征,如圖片的背景,構圖差異等。
假設我們現在有一個特征抽取器\(f:\mathcal{X}\mapsto \mathcal{Z}\),可以抽取出“共有特征”,則根據這個\(f\),我們可以構建出兩個新的數據集,
\(\mathcal{D}_s\)相當於我們的訓練集,而\(\mathcal{D}_t\)就是我們的測試集。我們在訓練集\(\mathcal{D}_s\)上直接訓練一個分類器,然后用分類器對\(\mathcal{D}_t\)進行分類任務,即可完成UDA任務。
我們把“共有特征”稱作“領域不變特征”。
下面我們回顧一下一個重要的工具叫做最大均值差異,利用它就可以抽取領域不變特征。
最大均值差異(Maximum Mean Discrepancy, MMD)
細節請參考我以前的帖子
核心思想
MMD用於檢驗兩堆數據是否來源於同一個分布,
MMD用於檢驗\(P=Q\)。
MMD的經驗公式為,
用這個公式可以衡量兩個分布之間的“距離”,如果MMD=0,則兩個分布是一樣的,如果MMD很大,說明兩個分布明顯是不一致的。
\(k(x,y)\)是核函數,常見的核包括
高斯核:
拉普拉斯核:
基於MMD的領域自適應方法
模型的基本結構很簡單,包括一個特征抽取器\(G_f:\mathcal{X}\mapsto \mathcal{Z}\)和一個特征分類器\(G_y:\mathcal{Z}\mapsto\mathcal{Y}\)。該模型與傳統的分類模型是一致的,\(f(x)=G_y(G_f(x))\)。
現在我們有兩個數據流,一個是輸入源域數據\(x^s\),經過\(G_f\)變成特征\(z^s\),然后經過\(G_y\)變成類概率\(\hat y^s\)。我們源域有真實的標簽\(y^s\),所有我們可以構建一個分類loss函數,
其中\(L\)是交叉熵損失。這個與傳統的分類任務沒有任何區別。
下面,還有一個更重要的任務,就是尋找“領域不變”的特征。
經過特征抽取器\(G_f\),我們把所有的源域樣本和目標域樣本映射到特征空間,
我們的目標是尋找一種領域不變特征,即讓分布\(P\)和\(Q\)之間的“距離”越來越少,讓兩個分布一樣,即可說明我們找到了源域和目標域一個共同的表示空間。
我們可以用MMD來衡量P和Q之間的距離,並希望在訓練過程中,\(G_f\)能學習這樣一組特征,使得MMD越來越小.
所以我們可以構造這樣一個loss函數,
聯合以上兩個loss,我們可以聯合訓練一個簡單的領域自適應模型,
所存在的問題
這類方法存在一個非常明顯的問題,就是 你很難保證你抽取出來的領域不變特征能夠包含類別信息。如在上面猴子的例子中,抽取出來的領域不變特征可能並不包含猴子的關鍵特征,不能通過這些特征辨別出它是一只猴子還是一只猩猩。這一類能夠“辨識”類別的特征有一個專用的名字叫做 判別特征。
這些領域不變的方法有一個假設前提:
假設\(P(Z)\)和\(Q(Z)\)是相似的,則有\(P(Y|Z)\)和\(Q(Y|Z)\)也是相似的。
實際上,很多時候這個假設前提並不能夠被保證。
因此現在很多UDA方法開始探索對齊條件分布\(P(Y|Z)\)和\(Q(Y|Z)\)來尋找判別特征。我們下面將會詳細的介紹幾種典型的方法。