1. 程式人生 > >Simultaneous Deep Transfer Across Domains and Tasks 域和任務同時深度遷移

Simultaneous Deep Transfer Across Domains and Tasks 域和任務同時深度遷移

文中提到:現有的遷移學習方法很多都只做了一步:域適應,也就是減少邊緣概率(marginal distribution)差異----使兩個域儘可能重疊、融合,但是當邊緣分佈得到對齊之後,並不能保證每個域之間的類別能夠對齊,類別沒有對齊有什麼影響呢?論文中並沒有很好的說明,那就根據我的理解強行解釋一波,比如分類器對源域中的一張圖片識別出是一個瓶子的概率最大,是一個馬克杯的概率次之,在目標域中有瓶子和玻璃杯這兩個類別,但是沒有馬克杯這個類別怎麼辦,不好用源域輔助目標域判別了呀。同時,在目標域中識別出瓶子的概率最高(與源域一樣),識別是玻璃瓶的概率次高(與源域中馬克杯類似),那麼通過類別對齊,我們想讓源域中馬克杯這個類別近似看做是目標域中的玻璃杯,並且將瓶子–馬克杯這兩個源域之間的類別關係(識別出瓶子概率最高,馬克杯次之)也對映到目標域中的瓶子–玻璃杯中。另外,網路學習的目的之一是將資料與標籤(類別)完成一種對映,在遷移學習中,我們希望能夠通過源域與目標域儘可能的相似(域適應),然後通過源域和目標域完成與標籤的對映,因為用到的絕大部分資料是來自源域的,但是目標域中標籤之間的關係並不一定和源域的相似,就像域適應一樣—源域和目標域資料之間並不一定相似,域適應通過邊緣對齊讓源域和目標域之間的資料儘可能相似,而任務遷移則可以通過類別對齊,將源域中的類別及類別之間關係(各類別的判別概率)也遷移到目標域的任務空間中,文章提出的深度遷移網路就是基於這一點,期望於同時遷移域、任務,來幫助對目標域的任務判別。邊緣對齊好說,之前這麼多方法都是邊緣對齊,那如何類別對齊呢?作者提出了一個叫做"soft label"的東西來幫助目標分類器優化,而這個"soft label"則是根據源域分類器產生的。好了,文中框架的主要工作也是這兩個:  

  • 通過域融合完成域對齊
  • 通過soft labels對齊源域和目標域類別

通過域融合完成域對齊

提出的框架如下:

框架是在Alexnet的基礎上改動而成,前7層是一個標準的卷積神經網路,而需要做的第一步就是將在源域資料上搭建的卷積網路根據源域有標籤資料訓練好,這是一個正常的有監督卷積網路訓練過程,其損失函式優化如下:

LC(x,y;θrepr,θC)=k1[y=k]logpk\mathcal{L}_C(x,y;\theta_{repr},\theta_C)=-\sum_k \mathbb{1} [y=k]logp_k

pk

其中θrepr\theta_{repr}表示的是模型引數,p是分類器中的softmax層的輸出:p=softmax(θCTf(x;θrepr))p=softmax(\theta_C^Tf(x;\theta_{repr}))

那怎麼完成域對齊呢?所基於的思想是啥?----運用生成對抗網路的一種思想,如果一個分類器無法分辨出輸入是來自源域還是來自來自目標域的時候,就認為二者已經達到域對齊了。思路已經很清晰了,作者在框架第7層後加了一個域分類器—fcD,用於判別第七層出來的特徵表示是屬於源域還是目標域,當fcD無法分辨的時候,他們就已經到達了那個傳說中的境界----雌雄同體(域對齊,也是域融合,也是域適應),哈哈。還有一個細節就是,fcD是個典型的二分類器,標籤就是域標籤(例如1表示源域,0表示目標域),分類器的損失函式如下:

LD(xS,xT,θrepr;θD)=d1[yD=d]logqd\mathcal{L}_D(x_S,x_T,\theta_{repr};\theta_D)=-\sum_d \mathbb{1} [y_D=d]logq_d

其實與上面那個損失函式類似,只不過是把標籤換成了域標籤。 q和上面的p類似,是域分類器fcD的softmax輸出。為了讓兩個域達到最大融合,提取到更好的域不變(domain invariance)特徵以致於最好的域分類器在這些特徵上都變現的很差,作者又加了一個損失函式:

Lconf(xS,xT,θD;θrepr)=d1Dlogqd\mathcal{L}_{conf}(x_S,x_T,\theta_{D};\theta_{repr})=-\sum_d \frac{1}{D} logq_d

啥意思呢?就是在上一步優化了分類器D的基礎上,再去優化引數θrepr\theta_{repr},這就是一個典型的交叉熵形式。1/D是域概率,qdq_d是預測概率。

好了,域對齊OK了,接下來就是作者提出來的用soft label進行任務對齊了。

通過soft labels對齊源域和目標域類別

上面提到soft labels由源域分類器產生,然後通過soft labels優化目標任務空間,而不是像正常的影象標籤。那麼soft label怎麼來呢?上面提到了將源域的類別即類別之間的關係遷移到目標域中,當然是用源域的類別資訊來做為soft label最合適不過,文中將soft label定義為源分類器對源域中類別k的樣本的softmax結果取均值,如下圖所示:

如原圖中所示,假設共有5類(Bottle、Mug、Chair、Laptop、keyboard),對模型識別所有屬於瓶子類別的樣本的softmax值(5個概率)進行平均,像圖中得到這個平均值(圖中最右邊)就是得到的一個soft label(一種關係的衡量,比如在這裡是瓶子的概率最高,馬克杯的概率次之,其他幾種基本不是)。好了,現在soft label也得到了,怎麼優化呢?首先,需要給出優化函式,如下:

Lsoft(xT,yT;θrepr,θC)=ili(yT)logpi\mathcal{L}_{soft}(x_T,y_T;\theta_{repr},\theta_{C})=-\sum_i l_i^{(y_T)} logp_i

其實也是和上面的損失函式類似的,同樣是交叉熵形式,通過資料和標籤優化特徵表示和分類器,其中ll表示soft label,因為資料集中目標域也存在部分帶標籤資料,所以這裡和有監督的優化類似,無標籤的就用上soft label,為了讓類別之間的聯絡更好的影響到微調,作者在pip_i中加入了一個權重引數,pi=softmax(θCTf(xT;θrepr)/τ)p_i=softmax(\theta_C^T f(x_T;\theta_{repr})/\tau),其中τ\tau是一個權重引數。

如上圖所示,通過源分類器得到soft label,然後使用soft label以及目標域自身的標籤求得交叉熵損失,通過後向傳播優化目標網路。這也與最上面那個網路框架圖中最後一坨對應。然後總結一下所有的損失函式:

其中lambdavlambda、v是權重引數。和上面一樣,θrepr\theta_{repr}表示1-7層的特徵引數,θC\theta_C對應的第8層的分類器引數。θD\theta_D對應fcD域分類器引數。

通過這樣,就達到了作者關於域對齊和任務對齊的目的。實驗感興趣的可以另外檢視論文。

參考

Hoffman J, Tzeng E, Darrell T, et al. Simultaneous Deep Transfer Across Domains and Tasks[J]. 2015, 30(31):4068-4076.