簡介 - Open Set Domain Adaptation by Backpropagation

Kuniaki Saito, Shohei Yamamoto, Yoshitaka Ushiku, Tatsuya Harada. “Open Set Domain Adaptation by Backpropagation”. In ECCV’18.

ECCV 2018 Paper

Paper link : https://arxiv.org/abs/1804.10427

簡介

此文針對 Open Set Domain Adaptation 問題進行研究,

以往 DA 的設定都是針對兩個資料集中相同/共有的類別(Closed-set)去做適應,

而本文的設定是採用 Open-set,

以往的 Open-set 的定義為 Source 及 Target Domain 都包含著未知的類別,

而本文的 Open-set 只考量 Target Domain 有著未知的類別(unknown)。

上圖左方為之前 Busto 提出的 Open-set 設定,Source domain 以及 Target domain 都有 Unknown。

上圖右方為此論文提出之設定,Source domain 並沒有 unknown 類別。

提出以往 Close-set DA 沒辦法很好的作用至 Open-set DA 的設定,

因此作者認為無法確定 Unknown 類別特徵是能夠貼近 Source Domain 的分佈,

希望在特徵萃取時,能夠將 Unknown 類別的特徵分佈遠離原有的類別(兩個資料集中相同/共有的類別)。

其論文主要想法是透過訓練一個分類器輸出 K + 1 個類別(+1 是指 Unknown),

我們會透過 Objective Function 讓 Feature exactor 與 Classifier 做對抗式的學習,

Classifier 目標是讓 Unknown 這類別的輸出機率符合我們所定義的 t(threshold),鼓勵猜測 Unknown。

Feature exactor 目標是讓 Unknown 的分佈遠離既有的 K 的類別,讓 Classifier 無法推估是否為 Unknown。

藉由兩者的對抗式學習使 Feature extractor 分離已知類別以及 Unknown 的類別(下圖 c),

(a) Closed set domain adaptation ,兩資料集類別一樣,希望集中相同類別的特徵分佈

(b) Open set domain adaptation,有未知的類別,希望未知的類別也能對應至類似的類別。

(c) Open set domain adaptation - 本文方法,有未知的類別,希望將未知的類別遠離既有之類別。

本文貢獻

  • 提出一個 Open-set DA 的方法,即便沒有提供 unknown 在 source domain,也能夠將 unknown 類別分開。
  • 提出新的對抗式學習方法,可讓 Feature generator 分離已知及未知類別的特徵分佈。
  • 在各種 DA 的資料集都證明了此方法可行

問題設定

通常 Unsupervised domain adaptation (UDA) 的任務中的定義如下

  • Source Domain:圖片 Xs,有標注正解的圖片 Ys
  • Target Domain:圖片 Xt,沒標注正解圖片

Closed set:兩者的類別相同

而此文特別的部分是 Open-set,

而此部分的 Open-set 定義如下

Source Domain 沒有 unknown 類別,

而 Target Domain 有 unknown 的類別,

因為作者認為在 Source Domain 收集 Unknown 的資料是非常麻煩的,

收集 Unknown 類別需要一定的資料量還要考量是否有多樣性。

架構

模型架構有兩個部分

  • G : Generator(Feature exactor)
  • C : Classification

架構很簡單,特別的地方是分類器是分出 K + 1 個類別(+1 指的是 Unknown 類別)

訓練時主要是經由 Source domain dataset 去做訓練,

使用 Source Domain 的 GT 去做 cross-entropy loss,

而 Target Domain dataset 被用作訓練未知類別 - Ladv,

其想法是使用分類器來辨別是否為 Unknown label,

透過 binary cross entropy function 來訓練 C 能將 Unknown 類別靠近邊界(0.5),

Note: t = 0.5

Ladv 當分類器的輸出 p 為 t 時, Ladv 才會最小。

Objective Function

上述的 Ladv 透過 binary cross entropy function 來將訓練 Unknown 類別靠近邊界(0.5),

但我們換個想法,這樣算出來是算出 gradient 靠近邊界,

因此我們只要把 gradient 反向,就是遠離邊界。

其概念為讓 C -> Classifier 努力將 Unknown 輸出 p 趨近於 t 的機率(t 設為 0.5 作為邊界),

讓 G -> Feature exactor 朝著 loss_adv 的反方向訓練(即為遠離邊界,拉開已知以及未知類別的分佈),

透過這樣的訓練達到對抗式學習的目的,

最終期望 G 可達成拉開已知以及未知類別的分佈。

整體的訓練演算法如下,

最終整體的分佈會像下圖,

綠點為 Unknown,

我們希望綠點可以盡量的遠離其他群體,

上圖 (b) 測試 boundary t 應該要設定在哪個值,

當 t = 0.5 時,有個黃金交叉。

此時 Source domain(OS) / Target domain(OS * ) / Unknown 的準確度都不錯。

只是說撇開 Unknown 這個類別的話,

當 t = 0 時, OS 和 OS * 的準確度都最高,

至於這特性,可以想一下可以用在哪。

上圖 (c, d) 可發現訓練到後來,可以準確地將 Source domain 的資料分在 Unknown < 0.5 的部分,

但還是有些 Unknown 的資料被誤分在了 < 0.5。

成果

參考資料:

Open Set Domain Adaptation by Backpropagation


© 2018-2024 XiaoSean. All rights reserved.

Powered by Hydejack v9.1.6