領域自適應(Domain Adaptation)之領域不變特征適配(一)


無監督領域自適應(Unsupervised domain adaptation, UDA)

任務描述

現有兩個數據集,

\[\mathcal{D}_s=\{(x^s_i,y^s_i)\}_{i=1}^{m} \]

\[\mathcal{D}_t=\{x^t_j\}_{j=1}^{n} \]

源域(Source Domain)\(\mathcal{D}_s\)和目標域(Target Domain)\(\mathcal{D}_t\)的數據經驗分布不一樣,但是任務是相同的。
任務是利用源域中已有的知識(標簽信息)去學習目標域的樣本的類別

直觀感受


如現在有兩堆數據,一堆是真實的動物照片,一堆是手繪動物的照片。兩個數據集的風格是明顯不一樣的,它們的分布也是明顯存在偏差的。如果我們直接在真實的動物照片上訓練一個分類器,然后直接用在手繪動物的照片的分類上,性能必然是比較差的。
每個領域都有自己特有的知識,而這些特有的知識對其它領域反而是一種干擾

在UDA任務中,我們需要尋找一種“共有特征”。如在上面的照片中,對於真實的猴子和手繪的猴子,我們需要提煉出猴子的共有特征,如臉龐的形狀,毛發的顏色等,摒棄一些領域自己特有的特征,如圖片的背景,構圖差異等。
假設我們現在有一個特征抽取器\(f:\mathcal{X}\mapsto \mathcal{Z}\),可以抽取出“共有特征”,則根據這個\(f\),我們可以構建出兩個新的數據集,

\[\mathcal{D}_s=\{(z^s_i=f(x^s_i),y^s_i)\}_{i=1}^{m} \]

\[\mathcal{D}_t=\{z^t_j=(x^t_j)\}_{j=1}^{n} \]

\(\mathcal{D}_s\)相當於我們的訓練集,而\(\mathcal{D}_t\)就是我們的測試集。我們在訓練集\(\mathcal{D}_s\)上直接訓練一個分類器,然后用分類器對\(\mathcal{D}_t\)進行分類任務,即可完成UDA任務。

我們把“共有特征”稱作“領域不變特征”。

下面我們回顧一下一個重要的工具叫做最大均值差異,利用它就可以抽取領域不變特征。

最大均值差異(Maximum Mean Discrepancy, MMD)

細節請參考我以前的帖子

  1. 淺談Maximum Mean Discrepancy (MMD)
  2. 核均值嵌入(KME, kernel mean embeddings)
  3. 再生核Hilbert空間(RKHS)

核心思想

MMD用於檢驗兩堆數據是否來源於同一個分布,

\[\mathcal{D}_s=\{x_i\}_{i=1}^{m}\sim P \]

\[\mathcal{D}_t=\{y_j\}_{j=1}^{n} \sim Q \]

MMD用於檢驗\(P=Q\)

MMD的經驗公式為,

\[\widehat{\text{MMD}}(P,Q)^2=\frac{1}{m^2}\sum_{i,j} k(x_i,x_j)+\frac{1}{n^2}\sum_{i,j} k(y_i,y_j)-\frac{2}{mn}\sum_{i,j}k(x_i,y_j) \]

用這個公式可以衡量兩個分布之間的“距離”,如果MMD=0,則兩個分布是一樣的,如果MMD很大,說明兩個分布明顯是不一致的。
\(k(x,y)\)是核函數,常見的核包括
高斯核:

\[k(x,y)=\exp \left(-\frac{\|x-y\|^2}{\delta} \right) \]

拉普拉斯核:

\[k(x,y)=\exp \left(-\frac{\|x-y\|}{\delta} \right) \]

基於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_y=\frac{1}{m}\sum_{i=1}^{m}L(f(x_i^s),y_i^s) \]

其中\(L\)是交叉熵損失。這個與傳統的分類任務沒有任何區別。

下面,還有一個更重要的任務,就是尋找“領域不變”的特征。
經過特征抽取器\(G_f\),我們把所有的源域樣本和目標域樣本映射到特征空間,

\[Z^s=\{z^s_1,z^s_2,\cdots,z^s_m\}\sim P \]

\[Z^t=\{z^t_1,z^t_2,\cdots,z^t_n\}\sim Q \]

我們的目標是尋找一種領域不變特征,即讓分布\(P\)\(Q\)之間的“距離”越來越少,讓兩個分布一樣,即可說明我們找到了源域和目標域一個共同的表示空間。

我們可以用MMD來衡量P和Q之間的距離,並希望在訓練過程中,\(G_f\)能學習這樣一組特征,使得MMD越來越小.
所以我們可以構造這樣一個loss函數,

\[L_A = MMD(Z^s,Z^t) \]

聯合以上兩個loss,我們可以聯合訓練一個簡單的領域自適應模型,

\[L=\frac{1}{m}\sum_{i=1}^{m}L(f(x_i^s),y_i^s) + \lambda MMD(Z^s,Z^t) \]

所存在的問題

這類方法存在一個非常明顯的問題,就是 你很難保證你抽取出來的領域不變特征能夠包含類別信息。如在上面猴子的例子中,抽取出來的領域不變特征可能並不包含猴子的關鍵特征,不能通過這些特征辨別出它是一只猴子還是一只猩猩。這一類能夠“辨識”類別的特征有一個專用的名字叫做 判別特征


這些領域不變的方法有一個假設前提:
假設\(P(Z)\)\(Q(Z)\)是相似的,則有\(P(Y|Z)\)\(Q(Y|Z)\)也是相似的。
實際上,很多時候這個假設前提並不能夠被保證。

因此現在很多UDA方法開始探索對齊條件分布\(P(Y|Z)\)\(Q(Y|Z)\)來尋找判別特征。我們下面將會詳細的介紹幾種典型的方法。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM