各位知乎兒大家好,這是<EYD與機器學習>專欄遷移學習系列文章的第六篇文章,在上次的文章中我們介紹了多視角遷移學習(Multi-view transfer learning)。在多視角遷移中我認為關鍵的一點就是不再將目標域的特徵空間看做一個整體,而是從各個角度來尋找目標域和源域的關係。在這次的文章中我向大家介紹的是龍明盛老師的一篇論文:「Transferable Attention for Domain Adaptation」[1], 已經被AAAI收錄。這篇文章的思想和多視角遷移有著異曲同工之妙,它將深度學習中的『注意力機制』引入到了遷移學習中。

一、注意力機制

注意力機制是人類處理外界信息時一項很重要的技能,同樣地,在深度學習中,注意力機制也廣泛被採用。在自然語言處理領域,注意力機制已經成了很多模型的標配;在計算機視覺領域同樣也是應用廣泛,這篇文章我們只關注計算機視覺領域的注意力機制。

人類在處理圖片視頻等視覺信號時,通常會快速掃描整個畫面,能夠迅速鎖定與任務相關的重點區域並且抑制無關區域對大腦的刺激,這樣能夠有效的降低干擾並且提高處理信息的速度和精度。在「Transferable Attention for Domain Adaptation」,作者針對遷移學習任務提出了相似的想法:對於源域的信息(圖像),我們應該有所側重的進行遷移,並不應該像之前的方法那樣全盤接收,而是應該利用注意力機制來重點遷移對目標域任務重要的信息。

二、Transferable Attention for Domain Adaptation

作者在文中提出了Transferable Attention for Domain Adaptation(TADA)方法:通過注意力機制挑選出可遷移的圖像以及圖像中可以重點遷移的區域。因此作者提出了兩個與注意力機制結合的遷移過程:Transferable Local Attention和Transferable Global Attention。TADA的具體結構如下:

圖 1 TADA結構圖

從上圖中我們可以看到TADA採用了對抗網路的結構,和我們之前介紹過的DANN方法的框架相似,不了解的朋友可以參考下面的鏈接:

笨笨:&lt;EYD與機器學習&gt;遷移學習:DANN域對抗遷移網路?

zhuanlan.zhihu.com
圖標

下面我們來分別介紹Transferable Local Attention和Transferable Global Attention的作用和實現。

1、局部注意力遷移:Transferable Local Attention

在TADA中,局部注意力遷移指的是對於每一張源域圖片,我們不應該將上面的信息全盤的遷移到目標域,而應該有所側重。這一思想的出發點就是類比人類的注意力機制,一張圖片上的信息有很多,但是真正需要被關注的卻不一定很多,所以注意力機制指導我們要關注更加重要的區域。同理,對於遷移學習而言,我們不應該將源域的信息全部遷移到目標域,而是應該找到源域中對目標域最重要的信息進行遷移,那些信息也就是網路的注意力所在。

圖 2 TADA局部注意力遷移結構圖
圖 3 DANN結構圖

具體地,TADA與DANN的思想相同,都是通過一個特徵提取器 G_f 來提取特徵,之後會將提取的特徵輸入到域判別器 G_d 。但是TADA不同之處在於它的域判別器有多個,並且每一個域判別器是針對專門的一塊區域的。也就是說,在DANN中域判別器是判斷輸入的所有特徵組合起來是屬於源域還是目標域,而在TADA中每個域判別器只需要判斷當前的這一塊區域是屬於源域還是目標域的。通過這種做法,可以將源域的圖片拆開,找出最有用的區域信息,並且將不可遷移的源域信息過濾掉,減小負遷移的風險。對於局部注意力遷移過程,損失函數如下:

其中 f_i^k=G_f(x_i) 是特徵提取器的輸出, n 為樣本數量。 K 為區域的數量,這裡的區域數量和網路結構有關,它指的是特徵提取器輸出的特徵映射的大小。文中,作者用ResNet-50舉例,最後一個卷積層的輸出是7*7*2048,那麼特徵映射的大小就是7*7,所以 K=7*7=49

每一個域判別器都輸出所負責區域屬於源域的概率: hat{d}_i^k=G_d^k(f_i^k) ,這裡作者通過計算這一概率的熵值來得到對應區域受注意程度:

其中 H(p) = -sum p_j*log(p_j) 。顯然,當 hat{d}_i^k 為 0 或者 1 的時候熵值最小,這時該區域受注意的程度 w_i^k 最大,因此作者這樣計算的話應該是給那些只屬於目標域或者源域賦予了很高的注意力。但是筆者覺得這個公式是有問題的,因為在網路收斂的時候,應該被重點遷移(關注)的區域對應的域判別器應該輸出 hat{d}_i^k=1/2 ,也就是無法判斷出該區域的特徵是對應源域還是目標域,這樣就可以將該區域的特徵進行重點遷移,但是如果是這樣的話上面的公式應該是加號,而不是減號。或許是筆者沒有讀明白作者的意圖,這裡請大家批評指正。

在計算出特徵映射的各個區域的受注意程度(可遷移性)之後,我們利用受注意程度為特徵映射加權:

通過這種辦法,受注意程度高的區域就會有更高的權重,而受注意程度低的區域就會有低權重。在後面作者加上了bottleneck layer用於降維,最後就得到了完整的特徵輸出。

2、全局注意力遷移:Transferable Global Attention

為了使模型能夠在特徵經過各種變換後仍然具有很高的可遷移性,作者又提出了全局注意力遷移機制。具體過程如下圖所示:

圖 2 TADA全局注意力遷移結構圖

這一步驟和DANN的操作更為相似,作者的目的是找出哪些特徵映射更值得遷移,不再將特徵映射劃分為各個區域,而是關注它的整體。其損失函數為:

和局部注意力遷移的過程相同,作者也計算了各個特徵映射整體受注意的程度:

其中 hat{d}_i = G_d(G_b(h_i)) 。由於TADA是針對無監督遷移設計的,目標域沒有帶標記樣本,所以作者利用最小化熵損失來輔助訓練,損失函數為:

其中 p_{i,j} 為樣本 x_i 被預測為第 j 類的概率。

3、總損失和訓練過程

上面的過程中還缺少了對源域樣本的利用,因為源域樣本都是帶標記的,所以可以通過如下損失函數來訓練類別預測器 G_y

因此總損失函數為:

因為是使用對抗網路的框架,所以訓練過程一般都會分為兩步,TADA的訓練過程如下:

4、實驗結果

在這裡就不向大家展示TADA在精度上的提升了,畢竟精度這個標準並不能很真實的說明模型的優越性。下面為大家展示的是TADA在注意力機制這方面的效果:

圖 4 注意力機制效果圖

圖4中紅色的區域就是模型的注意力所在區域,從圖中可以看出,模型對於目標域和源域的同一類事物確實有著相同的注意力區域,這也達到了作者的目的。

三、總結

這次的文章主要向大家介紹了將深度學習的注意力機制引入到遷移學習中,通過注意力機制來對源域的重點信息進行著重遷移,而不是全盤的遷移到目標域,因此可以提高精度,減少負遷移。這篇文章的作者依然使用了對抗網路的框架,從我們介紹的深度遷移學習的這些文章中可以看出,對抗網路的框架已經慢慢成為了深度遷移學習的一種範式,它能夠找到更多的可遷移特徵和變換。

此外,在這裡我要提出自己對遷移學習的看法。從楊強教授的遷移學習綜述論文開始,大家將domain adaptation這一方向劃分到了遷移學習的範疇,但是現在回過去看遷移學習這十幾年的發展,其實大部分人做的就是domain adaptation的工作。我認為大家不妨把思路放寬一些,從一個更高的位置來看遷移學習,不再只專註於某個具體問題的解決,不是僅僅專註於把那幾個用爛了的數據集的精度提高几個百分點,而是先為它搭出一個可以實際落地的框架。我們現在有了很多磚,但是沒有好的工程師來設計遷移學習這座高樓。

以上都是一己之言,筆者深知自己見識短淺,文章有任何錯誤和紕漏大家都可以在評論中指出,後面我還會為大家帶來更多的關於遷移學習的知識和思考。

——Double_D編輯

參考文獻:

[1]

http://ise.thss.tsinghua.edu.cn/~mlong/doc/transferable-attention-aaai19.pdf?

ise.thss.tsinghua.edu.cn


推薦閱讀:
相关文章