【論文筆記】Exploiting the Intrinsic Neighborhood Structure for Source-free Domain Adaptation

Harden
8 min readDec 19, 2022

--

論文網址:https://arxiv.org/pdf/2110.04202.pdf (NeurIPS 2021)

Abstract

在先前的 DA 方法大部分都需要用到 Source 數據,但是有些數據是無法被公開使用的,如醫學數據,於是本篇提出使用 Source-Free 的方法,解決了需要 Source 才能訓練的問題、也解決了 Source model 在 Target 表現不好的問題。本篇方法使用 Intrinsic Neighborhood Structure ,將 Target data通過局部親和力(距離)給予全權重,讓最鄰近的 Target data 的 label 一致,並且提出 self-regularization 降低 Noise 的影響。

Intriduction

很多深度學習的訓練方法都需要大量的 Label,但沒有辦法用在不同的 domain 上,在不同的 domain 問題上有一個議題叫做 Domain Adaptation(DA),將 Source 學習的知識遷移至 Target 上。然而有些 Source data 是無法公開(隱私醫學數據)或無法獲取(數據量大)的,所以我們探討 Source-Free 的方式,只需要訓練好的 source model,我們將 Source data訓練一個 pre-train model ,在作 adaptation 時只用 Target data 進行fine-tune。論文(Do We Really Need to Access the Source Data? Source Hypothesis Transfer for Unsupervised Domain Adaptation) 是早期的方法,此方法目前被論文當作 baseline。

在之前的方法上作者發現都沒有利用 Target 內在鄰域結構,本篇將關注於內在鄰域結構的方法。在 domain 上會有不可避免的 domain gap 存在,雖然有 domain gap 的存在,但作者觀察到,他們使用 source model 輸出的 target data 特徵,在 t-SNE 上的特徵都相當聚合在一起,表明保留了重要的群聚結構,如下圖:

source model on target

作者認為在高維度空間結構中,最鄰近的會是同一個 class ,但也不是完全正確,作者實驗大約有75%的最鄰近是正確的 label ,如下圖:

K = 最鄰近個數 / ratio=正確率

其 RNN 為 reciprocal nearest neighbors,可以找到每個點的最鄰近的點(鄰居)。接著作使用 nRNN 的方式把非最鄰近的點找出,提高預測最鄰近 class 的機率。如下圖:

可以看到編號 ‘0’ 是 misclassified samples ,通過 RNN 找到最鄰近的 ‘1’, ’2’,通過 nRNN找到非鄰近的 ‘4’, ‘5’, ‘6’,透過互為最鄰的 ‘0’, ‘2’ 拉再一起成為同一個 ‘2’ 的 class 修正被預測為 ‘4’ 的 class 的錯誤。

在此篇論文作者使用上述方法改良成 NRC(Neighborhood Reciprocity Clustering),作者定義 affinity values 描述每一個數據點與最鄰近點的連接程度(class),以及 self-regularization 減少負面的 noise 影響。

Method

Encouraging Class-Consistency with Neighborhood Affinity

為了實現 source-free ,我們利用最鄰近方法,然而,鄰近但不同點的 class 會帶來模型的負面影響,我們希望能用最鄰近法預測 class 得到 class 的一致性。在訓練之前我們先分兩個 memory bank :

F = Target feature , S = 預測class分數

利用 memory bank 探索最近鄰近點,並計算 instance discrimination loss ,在每一次進入 train 的 min-batch 之前,都會重新計算並替換低維度陣列來更新 memory bank ,藉由鄰近預測的 affinity values 去監督訓練權重,而 affinity value 計算如下圖:

其利用 RNN 與 nRNN 來分出兩個群體後,如果第 i 與第 j 是鄰近的點,我們設定此 feature 的 affinity value = 1 ,不是的話 r = 0.1。也就將語意相似的鄰居具有較強的 affinity value ,在 feature bank 中找到它的k個最近鄰,最大化它們score的加權(Aik)內積,使它們的輸出相似或者說具有一致性。

object adapted
k is the index of the k-th nearest neighbors of z
Sk is the k-th item in memory bank S
Aik is the affinity value of k-th nearest neighbors of feature zi
Nik is the index set2 of the K-nearest neighbors of feature zi

為了減少潛在不同類別的 noise 鄰居的影響(仍在RNN中),作者提出 self-regularization 即不忽略當前 feature 的預測,在每次訓練之前都會更新 memory bank,且這裡 loss 只對 pi 反向傳播。

Si means the stored prediction in the memory bank and identical to Pi

最後為了避免退化模型預測結果,或者再 Target data 上都是預測同一個數值,作者想要在預測上取得平衡,於是使用 prediction diversity loss 可以在群聚中更加多元:(也常用在 adaptation works)達到預測類別與 label 類別平均數量上越近越好。

pc is score of c-th class and  p¯c is the empirical label distribution
predicted possibility of class c and q is a uniform distribution

Expanded Neighborhood Affinity

我們在上述提及的方法,藉由更多的最鄰近點會有更多的聚合資訊,然而有一個缺點,當考慮越多鄰近點就會包含更多的不同的類別,違反了類別一致性的原則。作者提出最好的方法就是在 target feature 上考慮 Nk個鄰近點中 M個最鄰近的點來擴展鄰居,這樣 target feature 會比通過考慮更多鄰近的點且多樣的類別還來的更接近。在計算上我們直接給 affinity value=0.1,因為它們都比一開始鄰近的點還遠且可能會帶點 noise,我們利用擴展鄰居的預測來進行訓練。

EM(zi) is an index set and i (ego frature) 不屬於EM(zi)
where Ek M contain the M-nearest neighbors of neighbor k in NK.

作者提及,雖然擴大的用同樣的 affinity value 不一定有同等的重要性,在擴展鄰居的時候看見的鄰居不只一次,例如 zm 是zh 和 zj 之間最鄰近的鄰居,且最鄰近的鄰居也可以當作擴展的鄰居,在隱藏中影響了聚集,我們可以斷定 ego-feature 中重複擴展鄰居有潛在性語意近似,因此我們不會移除重複 EM(zi)的特徵,且可以導致擴展鄰居有更大的 affinity value, 這是利用擴展鄰居而不是更多近的鄰居所帶來的優點,以下實驗會帶出重複特徵的重要性。

Source-free

Results

從實驗來看, source-free 的 DA 比傳統的 UDA (有 source 訓練) 表現的竟然還來的好,即使限制了條件也能獲得更好的性能。

--

--

Harden

I am Harden. A university student. major:EE Study: AI and IOT and soft engineering