Unsupervised Domain Adaptation by Backpropagation
Unsupervised Domain Adaptation by Backpropagation
頂級性能的深層體系結構是在大量標記數據上訓練的。在某項任務沒有標記數據的情況下,域適配(domain adaptation)通常提供了一個有吸引力的選擇,因為具有相似性質但來自不同domain的標記數據(例如合成圖像)是可用的。在這里,我們提出了一種新的深度體系結構domain adaptation方法,該方法可以訓練來自source domain的大量標記數據和來自target domain的大量未標記數據(不需要標記的target domain數據)。
隨著訓練的進行,這種方法促進了“深層”特征的出現,這些特征(i)對source domain上的主要學習任務具有區分性,并且(ii)對域之間的轉換保持不變。我們證明了這種自適應行為幾乎可以在任何feed-forward model中實現,只需增加幾個標準層和一個簡單的新梯度反轉層gradient reversal layer。由此產生的增強體系結構可以使用標準的反向傳播進行訓練。
總的來說,使用任何深度學習軟件包都可以輕松實現該方法。該方法在一系列的圖像分類實驗中取得了很好的效果,在存在較大的域偏移(big domain shifts)的情況下取得了很好的自適應效果,在Office數據集上的性能優于以往的水平。
1. Introduction
對于缺少標記數據的問題,仍然有可能獲得足夠大的訓練集來訓練大規模的深度模型,但是這些訓練集的數據分布與測試時遇到的實際數據發生了變化。
深度前饋體系結構為各種機器學習任務和應用程序帶來了令人印象深刻的最新進展。然而,目前,只有在有大量標記的訓練數據可用時,才能實現這些性能飛躍。同時,對于缺少標記數據的問題,仍然有可能獲得足夠大的訓練集來訓練大規模的深度模型,但是這些訓練集的數據分布與測試時遇到的實際數據發生了變化。一個特別重要的例子是合成的或半合成的訓練數據,這些數據可能非常豐富,并且被完全標記,但是它們不可避免地具有與真實數據不同的分布(Liebelt & Schmid, 2010; Stark et al., 2010; Vazquez et al. , 2014; Sun & Saenko, 2014)。
在訓練分布和測試分布之間存在遷移的情況下學習判別分類器或其他預測器被稱為域適應(DA)。在淺層學習的背景下,已經提出了一些領域適應的方法,例如在給定和固定了數據表示/特征的情況下。然后,這些方法構建源(訓練時間)域和目標(測試時間)域之間的映射,這樣,當使用域之間的學習映射組合時,為源域學習的分類器也可以應用于目標域。域適應方法的吸引力在于,當目標域數據要么完全無標記(無監督域注釋),要么標記樣本很少(半監督域適應)時,能夠學習域之間的映射。下面,我們將重點討論較難的無監督情況,盡管所提出的方法可以相當直接地推廣到半監督情況。
與以往大多數使用固定特征表示的領域適應相關論文不同,我們側重于將領域適應和深度特征學習結合在一個訓練過程中(深度領域適應deep domain adaptation)。我們的目標是將領域自適應嵌入到訓練的過程中,使最終的分類器的決策基于對領域變化既具有區別性又不變性的特征,即在源域和目標域中具有相同或非常相似的分布。(so that the final classification decisions are made based on features that are both discriminative and invariant to the change of domains, i.e. have the same or very similar distributions in the source and the target domains.)這樣,得到的前饋網絡可以應用于目標域,而不受兩個域之間shift的影響。
因此,我們關注結合(i)辨別力和(ii)領域不變性的學習特性。這是通過聯合優化underlying features以及two discriminative classifiers operating on these features來實現的:(i)用于預測類標簽的標簽預測器,在訓練期間和測試時都使用,(ii)用于在訓練過程中區分源域和目標域的domain classifier。當對分類器參數進行優化,使其在訓練集上的誤差最小時;對底層深度特征映射參數進行優化,使標簽分類器的損失最小,使域分類器的損失最大。后者鼓勵在優化過程中出現域不變的特性。(While the parameters of the classifiers are optimized in order to minimize their error on the training set, the parameters of the underlying deep feature mapping are optimized in order to minimize the loss of the label classifier and to maximize the loss of the domain classifier. The latter encourages domain-invariant features to emerge in the course of the optimization.)
圖1所示。該結構包括一個深特征提取器(綠色)和一個深標簽預測器(藍色),它們共同構成一個標準的feed-forward結構。在基于反向傳播的訓練過程中,通過梯度反轉層將梯度乘以一個負常數(a certain negative constant),將一個域分類器(紅色)連接到特征提取器,實現無監督域自適應。否則,訓練將以標準的方式進行,并最小化標簽預測損失(對于源示例)和域分類損失(對于所有示例)。梯度反轉Gradient reversal確保了兩個域上的特征分布是相似的(對于域分類器來說,盡可能難以區分),從而產生域不變的特征。
關鍵的是,我們證明了這三個訓練過程都可以嵌入到一個適當組成的使用標準層和損失函數的深度前饋網絡中(圖1),并且可以使用基于隨機梯度下降或其修改的標準反向傳播算法(例如帶動量的SGD)進行訓練。實際上,所提議的體系結構的唯一非標準組件是一個相當簡單的梯度反轉層,它在正向傳播期間保持輸入不變,并在反向傳播期間通過將其乘以一個負標量來反轉梯度。
下面,我們詳細介紹了所提出的深度架構中的領域適應方法,并介紹了在傳統深度學習圖像數據集(如MNIST(Le-Cun等人,1998)和SVHN(Netzer等人,2011))以及OFFICE基準(Saenko等人,2010)上的結果,所提出的方法比之前最先進的精度有很大提高。
2. Related work
近年來,人們提出了大量的領域自適應方法,這里我們將重點介紹相關的領域自適應方法。多種方法通過匹配源域和目標域的特征分布來實現無監督域自適應。有些方法通過重新權衡或從源域中選擇樣本來實現這一點(Borgwardt et al., 2006; Huang et al., 2006; Gong et al., 2013);而其他人則尋求一種明確的特征空間轉換,將源分布映射到目標分布(Pan et al., 2011; Gopalan et al., 2011; Baktashmotlagh et al., 2013)。分布匹配方法的一個重要方面是度量分布之間相似性的方法。在這里,一個流行的選擇是匹配核再生希爾伯特空間中的分布方式 (Borgwardt et al., 2006; Huang et al., 2006),而(Gong et al., 2012; Fernando et al., 2013)繪制與每個分布相關的主軸。我們的方法也嘗試匹配特征空間分布,但是這是通過修改特征表示本身來實現的,而不是通過重新加權或幾何變換。此外,我們的方法(隱式地)使用了一種非常不同的方法來測量分布之間的差異,該方法基于分布的可分性,采用了一種經過深度判別訓練的分類器。
有幾種方法從源領域逐漸過渡到目標領域(Gopalan et al., 2011; Gong et al., 2012)通過訓練分布的逐步變化。在這些方法中(S. Chopra & Gopalan, 2013)通過對一系列深層自動編碼器進行分層訓練,逐步將源域樣本替換為目標域樣本,實現了這一目標。相對于(Glorot et al., 2011)的類似方法,這種方法只需要為兩個域訓練一個深層的自動編碼器,這是一種改進。在這兩種方法中,實際的分類器/預測器都是使用自動編碼器學習的特征表示在單獨的步驟中學習的。與(Glorot et al., 2011; S. Chopra & Gopalan, 2013),我們的方法在統一的體系結構中,使用單一的學習算法(反向傳播),共同進行特征學習、領域自適應和分類器學習。因此,我們認為我們的方法更簡單(無論是在概念上還是在實現上)。我們的方法在流行的OFFICE基準測試上也取得了相當好的結果。雖然上述方法執行無監督域自適應,但也有一些方法通過利用目標域的標記數據來執行監督域自適應。在深度前饋體系結構的上下文中,這些數據可用于對源域(Zeiler & Fergus, 2013; Oquab et al., 2014; Babenko et al., 2014)。我們的方法不需要標記目標域數據。同時,它可以很容易地在可用時合并這些數據。(Goodfellow et al., 2014)描述了一個與我們相關的想法。雖然他們的目標是完全不同(建筑生成深層網絡,可以合成樣品),他們測量的方式,減少訓練數據的分布之間的差異和合成數據的分布非常類似于我們的架構方式措施和最小化兩個域之間的差異特征分布。
最后,(Tzeng et al., 2014)最近的一份并發報告也關注了前饋網絡中的域適應。他們的技術集度量并最小化跨域數據手段的距離。這種方法可以看作是我們的方法的一階近似,它尋求分布之間更緊密的對齊。
3. Deep Domain Adaptation
3.1. The model
我們假設模型輸入為x∈X\mathbb x\in Xx∈X,其中X是某個輸入空間和來自標簽空間Y的某些標簽。
下面,我們假設分類問題中Y是一個有限集(Y={1,2,...,L})(Y=\{1,2,...,L\})(Y={1,2,...,L}),但是我們的方法是通用的,可以處理其他輸出標簽空間。
我們進一步假設在X?YX\bigotimes YX?Y上存在兩個分布S(x,y)andT(x,y)\mathcal S(x,y)\ and\ \mathcal T(x,y)S(x,y)?and?T(x,y),分別稱為源分布和目標分布(或源域和目標域)。這兩種分布都假定為復雜和未知的,而且相似但不同。
我們的最終目標是給定目標分布的輸入x能夠預測標簽y。在訓練時,我們可以訪問來自源和目標域的大量訓練樣本{x1,x2,...,xn}\{x_1,x_2,...,x_n\}{x1?,x2?,...,xn?}通過邊際分布S(x,y)andT(x,y)\mathcal S(x,y)\ and\ \mathcal T(x,y)S(x,y)?and?T(x,y)。我們用二進制變量di表示(域標簽)i的樣本,這表明xi來是否自源分布(xi~S(x)ifdi=0)(\mathbb x_i\sim\mathcal S(x)\ if\ d_i=0)(xi?~S(x)?if?di?=0)或從目標分布(xi~T(x)ifdi=1)(\mathbb x_i\sim\mathcal T(x)\ if\ d_i=1)(xi?~T(x)?if?di?=1)。對于源分布(di=0d_i=0di?=0)中的示例,在訓練時已知對應的標簽yi∈Yy_i\in Yyi?∈Y。對于來自目標域的樣本,我們不知道訓練時的標簽,我們希望在測試時預測這些標簽。
現在,我們定義一個深度模型的結構,對于每個輸入x,它預測其類標簽y和域標簽di∈{0,1}d_i\in\{0,1\}di?∈{0,1}。我們將這種映射分解為三個部分。我們假設輸入x是第一次由一個映射器GfG_fGf?映射為特征向量f∈RDf\in\mathbb R^Df∈RD。我們用參數向量θf\theta_fθf?表示,即f=Gf(x,θf)\mathbf f = G_f(\mathbf x,\theta_f)f=Gf?(x,θf?)。然后,映射器GyG_yGy?(標簽預測器)將特征向量f映射標簽到y,我們用θy\theta_yθy?表示參數。最后,由一個參數為θd\theta_dθd?的映射器GdG_dGd?(域分類器)映射特征向量f到域標簽d(圖1)。
在學習階段,我們的目標是將訓練集中標注部分(即源部分)的標簽預測損失最小化,因此對特征提取器和標簽預測器的參數都進行了優化,以最小化源域樣本的經驗損失。這樣就保證了特征f的判別能力,保證了特征提取器和標簽預測器組合對源域的整體良好預測性能。
同時,我們希望使特征f域不變domain-invariant。也就是說,我們想讓分布S(f)={Gf(x,θf)∣x~S(x)}S(\mathbf f)=\{G_f(\mathbf x,\theta_f)|\mathbf x\sim S(x)\}S(f)={Gf?(x,θf?)∣x~S(x)}和T(f)={Gf(x,θf)∣x~T(x)}T(\mathbf f)=\{G_f(\mathbf x,\theta_f)|\mathbf x\sim T(x)\}T(f)={Gf?(x,θf?)∣x~T(x)}是相似的。
在covariate shift假設下,這將使目標域上的標簽預測精度與源域上的相同(Shimodaira, 2000)。
然而,測量分布S(f)andT(f)S(\mathbf f)\ and\ T(\mathbf f)S(f)?and?T(f)的不同并不容易,因為f是高維的,而且分布本身隨著訓練而不斷變化。一種方法是看域分類器GdG_dGd?的損失,前提是域分類器的參數θd\theta_dθd?已經被訓練成可以很好的區分兩種特征分布。
這一觀察結果引出了我們的想法。在訓練時,為了獲得域不變特性,我們尋求使域分類器的損失最大化的參數θf\theta_fθf?(通過讓兩個特征分布盡可能相似),同時尋求域分類器的損失最小化的參數θd\theta_dθd?。此外,我們尋求最小化標簽預測器的損失。
其中,Ly(?,?)L_{y}(\cdot, \cdot)Ly?(?,?)為標簽預測的損失,Ld(?,?)L_ze8trgl8bvbq(\cdot, \cdot)Ld?(?,?)為域分類的損失(如logistic),而Lyiand?LdiL_{y}^{i} \text { and } L_ze8trgl8bvbq^{i}Lyi??and?Ldi?表示第i個訓練樣本相應的損失函數。根據我們的想法,我們正在尋求參數θ^f,θ^y,θ^d\hat{\theta}_{f}, \hat{\theta}_{y}, \hat{\theta}_ze8trgl8bvbqθ^f?,θ^y?,θ^d?
在鞍點處,域分類器的參數θd\theta_dθd?最小化域分類損失,標簽預測器的參數θy\theta_yθy?最小化標簽預測損失。特征提取器參數θf\theta_fθf?最小化標簽預測損失(即特征是可區分的),且最大化域分類損失(即特征域不變)。參數λ控制兩個目標之間的權衡。下面,我們證明了標準隨機梯度求解器(SGD)可用于搜索鞍點(2)-(3)。
3.2. Optimization with backpropagation
(2)-(3)的鞍點可以通過找到以下隨機更新的靜止點。
μ\muμ是學習率(可能隨時間而變化)。更新(4)-(6)非常類似于前饋深度模型的隨機梯度下降(SGD)更新,該模型由特征提取器提取特征作為標簽預測器和域分類器的輸入。(4)的區別是λ因子(區別很重要,因為沒有這樣的因子,隨機梯度下降法試圖使特征在不同域間不相似,從而使域分類損失最小化)。雖然直接實現(4)-(6)作為SGD是不可能的,但我們非常希望將更新(4)-(6)減少到某種形式的SGD(it is highly desirable to reduce the updates (4)-(6) to some form of SGD),因為SGD(及其變體)是大多數用于深度學習的包中實現的主要學習算法。
幸運的是,可以通過引入定義如下的特殊梯度反轉層(GRL)來實現。梯度逆轉層沒有與之關聯的參數(除了meta-parameter λ,不通過反向傳播更新)。在正向傳播過程中,GRL作為一個恒等變換。在反向傳播,GRL將后續層的梯度,乘以?λ-\lambda?λ并傳遞給前一層。使用現有的面向對象包實現這樣的層來進行深度學習非常簡單,比如為forwardprop(identity transform),backprop(乘以常量)和參數更新(沒什么)定義過程非常簡單。
上面定義的GRL插入到特征提取器和域分類器之間,得到圖1所示的體系結構。
因此,在生成的模型中運行SGD實現了更新(4)-(6),并收斂到(1)的鞍點。在數學上,我們可以將梯度逆轉層的偽函數Rλ(x)R_{\lambda}(\mathbf{x})Rλ?(x)為定義為兩個方程描述其向前和反向傳播:
其中I是一個單位矩陣(identity matrix)。我們可以定義objective “pseudo-function” ,(θf,θy,θd)(\theta_{f}, \theta_{y}, \theta_ze8trgl8bvbq)(θf?,θy?,θd?) 通過objective “pseudo-function”被隨機梯度下降優化:
運行更新(4)-(6)可以實現為(9)做SGD,并導致同時出現域不變和discriminative特性。學習后,標簽預測因器y(x)=Gy(Gf(x;θf);θy)y(\mathbf{x})=G_{y}\left(G_{f}\left(\mathbf{x} ; \theta_{f}\right) ; \theta_{y}\right)y(x)=Gy?(Gf?(x;θf?);θy?)可以用來預測標簽樣本目標域(以及從源域)。
上文概述的簡單學習程序可以沿著(Goodfellow等人,2014)中建議的思路重新推導/概括(見附錄A)。
4. Experiments
4. Experiments
剩下的看論文,或者鏈接https://www.pianshen.com/article/7790354566/
總結
以上是生活随笔為你收集整理的Unsupervised Domain Adaptation by Backpropagation的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2018至2021年新春挡电影票房分析
- 下一篇: 避暑“圣地”窑洞