筆記:unsupervised domain adaptation by backpropagation

這篇文章是結合對抗網絡框架與深度學習技術解決domain adaptation應用的一個工作。具體而言,在這個框架中對三個部分進行訓練:一個是feature extractor,這個是用於提取特徵的,一般由卷積層與pooling層組成;另一個是label classifier,使用全連接層+邏輯斯蒂分類器;第三個在一般的分類器中不會出現,也就是和feature extractor構成對抗網絡框架的分類器domain classifier,它也是一個分類器,由全連接層+交叉熵分類器構成。其中全連接層的激活函數都是relu函數。對抗體現在對於domain classifier損失在訓練階段兩個相反的要求。具體而言:對於domain adaptation應用,我們希望網絡學到的特徵表示具有領域不變(domain invariant)的特徵,那麼就要求dimain classifier不能正確進行領域分類,也就是要求domain classifier的分類損失最大;另一方面在對domain classifier訓練時,我們肯定要求分類器能儘可能的正確分類,也就是domain classifier的分類損失最小。這種對抗的框架最早出現在Goodfellow的文章Generative adversarial networks,它針對的應用是圖像生成,爲了訓練一個生成模型學習樣本的分佈,在框架中引入了一個判別模型用於區分樣本是由模型生成還是來源於真實分佈,感興趣的可以仔細看那篇文章的框架。下面給出這篇文章的框架。
architecture
其中綠色部分是feature extractor;藍色部分是label classifier;紅色部分是domain classifier
下面從模型以及優化算法兩個方面來介紹這篇文章。
一、模型
首先來介紹模型的構成及其關係。
domain adaptation的應用中有兩個域:一個包含大量的標籤信息,稱爲源域(source domain);另一個只有少量的甚至沒有標籤,但是卻包含我們要預測的樣本 ,稱爲目標域(target domain)。所以,按照常理,我們可以在源域上通過一般的機器學習方法來訓練得到判別模型。但是由於源域和目標域上的dataset bias,這個判別模型不能直接移植到目標域。如何在儘量不損失判別模型的條件下將判別模型由源域遷移到目標域,就是domain adaptation要解決的問題,也稱爲遷移學習(transfer learning)。關於這個問題,一般有shared-classifier假設:如果可以在源域和目標域上,學習到一個公共的特徵表示空間,那麼在這個特徵空間上,源域特徵上學到的判別模型也可以用到目標域的特徵上。所以domain adaptation問題往往轉換爲尋找公共特徵表示空間的問題,也就是學習域不變特徵(domain invariant feature)。本文就是利用對抗網絡的框架來學習域不變特徵。
具體而言,如果學習得到一個domain classifier,它能對不同域進行區分。學習不變特徵的假設就是,在訓練好的domain classifier上,如果不同域上的特徵在這個分類器上不能區分,也就是這個分類器的分類損失很大, 那麼這個特徵就可以看作是不變特徵。一個極端的例子是如果源域和目標域在這個空間上完全重合,那麼所有的domain classifier按照常理都會失效,都相當於一個隨機分類器的效果。
另一方面,對於label classification,我們要讓學到的特徵儘可能具有label的分類判別信息,也就是最小化label classifier的分類損失。
實際上在訓練domain classifier的時候要求它的分類損失最小化,而要求得到不變特徵,要求分類損失最大化,這是一個互相對抗的要求,可以表示如下:
adversarial net
其中:
loss function
其中theta_f表示特徵提取的參數,theta_y表示label classifier的分類器,theta_d表示domain classifier的參數,L_y表示label classifier的分類器,L_d表示domain classifier的分類器。N代表所有樣本的數目,d_i代表域標籤,0代表源域。
下面介紹如何在標準的梯度下降法中優化這個函數。
二、優化
針對上面(2)和(3)中的問題,可以用下面的方法對網絡參數進行更新:
update
這個區別於對抗網絡中的固定一個更新另一個的過程,在一個循環裏面對網絡參數同時進行更新。其中mu是學習的速度,lambda表示一個超參數。如果不使用lambda參數,作者表明會使得訓練得到的特徵最小化domain classifier loss,也就是不能學到域不變的特徵。
爲了使上面的式子符合標準的方向傳播的表示,作者定義了一箇中間函數,它在前向和反向過程中有兩個不等價的表現形式:
Gradient Redversal Layer
對應的損失函數表示爲:
adjust
這樣就可以用標準的SGD方法進行反向傳播。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章