在前面一節領域自適應(Domain Adaptation)之領域不變特征適配(一)中,我們利用MMD公式來對齊兩個邊緣分布\(P(Z)\)和\(Q(Z)\),學習領域不變特征。本章節通過另一種方法來學習領域不變特征————對抗訓練。
一個例子
假設現在有兩堆數據,一堆是真實的樣本來自MINST數據集,一堆是通過GAN生成的樣本。如何判斷GAN生成樣本的質量呢?
可以使用直接使用MMD來做測試!
也可以使用基於參數估計的方法:
假設MINST數據集\(D_s=\{x_i^s\}\),GAN生成樣本數據集\(D_t=\{x_j^t\}\),現在給這些數據打上標簽,如果\(x\)來自MINST,則打上標簽1,若來自GAN,則打上標簽0,即
- 基於所有的數據\(\{D_S,D_t\}\),訓練一個binary分類器\(h:\mathcal{X}\mapsto [0,1]\),
- 給定一個由GAN生成的測試樣本\(y\),若\(h(y)\)的得分越接近0.5,則說明GAN樣本的質量越好,分類器很難將GAN生成的樣本與真實的MINST數據集作出區分;如果越接近0,則說明生成的質量越差。
- 由此,可以定義一個泛化誤差,
err越大,說明越難以區分,GAN質量越高;相反,則越容易區分,GAN生成的樣本與MINST有明顯差別,生成的質量越差。
4. 由此,我們得到了一個常用的測量工作\(\mathcal{A}\)-distance,
思想:與基於MMD的方法不同,基於對抗訓練的UDA方法就是構建一個額外的判別器\(h\)用於判斷樣本的特征來自哪個域,然后訓練一個統一的特征抽取器去“糊弄”\(h\),讓其\(\mathcal{A}\)-distance盡可能的小,無法分辨出特征來自哪個域,以獲取域間的“共享特征”。
最大均值差異MMD與GAN
在原始的GAN中,其損失函數是
其中判別器\(D\)的作用是判別樣本\(x\)是真實的樣本還是\(G\)生成的樣本,然后促使\(G\)生成更逼真的樣本來糊弄\(D\)。
GAN的真實目的是讓生成樣本分布與真實樣本分布達到一致。這與MMD的作用是一樣的,所以傳統的GAN方法其實是可以用MMD來實現的,以實現兩個分布間的對齊(一致)。
我們利用MMD得到一個新的損失函數(參考工作 Y. Li et al. Generative moment matching networks. ICML2015),
其原理圖是
這樣做的優點是MMD提供了一個closed-form的解,而且理論上與GAN是近似的;避免了對抗訓練帶來的不穩定性。
基於對抗訓練的UDA
(工作來源:Ganin et al. Unsupervised Domain Adaptation by Backpropagation. ICML 2015.)
我們已經介紹了基於MMD的UDA方法,其實可以將MMD換成一個判別器來抽取領域不變的特征。
模型的基本結構
我們構造兩個損失函數,一個是源域的交叉熵,一個是判別器區分特征來自哪個域的binary損失。
訓練的規則如下,
反轉梯度層 Gradient Reversal Layers (GRL)
特征抽取器\(G_f\)即有正向的梯度,又有反向的梯度,這是很難用現有的SGD來解決的。
我們可以定義一種偽函數,其正向傳播是保持不變的,其反向傳播是會變成負向的梯度
基於這樣的設計,
我們把\(L_d\)中的\(d(x)\)作下轉化,得到新的損失函數\(L_{nd}\),
這時的新訓練目標轉換為,
我們通過引入偽函數把一個最大最小問題轉化為一個最小問題
解釋:
反向傳播的時候自然會把負號引入進來。