들어가며

세상에는 많은 데이터가 있다보니 labeling하기에는 시간과 노동이 소요된다. 이를 해결하기 위해서 Doamin Adaptaion(DA)방안이 제안 이 되었으며 label 과 unlabel과 함께 학습하여 unlabel된 doamin에도 유사한 성능이 나올 수 이도록 하는 기법이 많이 연구가 되었다.

하지만 DA의 방식은 개개인의 Device나 환경에서 학습을 할려면 source data와 Weight를 다시 가져서 학습을 해야된다는 단점이 있다.

기존에는 Unsuperivsed DA (UDA)의 문제로 접근을 하여 data를 주면서 학습했던 반면 저자는 source model을 주어서 학습을 하는 방안을 제안을 하였다. 그렇게 되어지면 source domain에 대해서는 privacy를 보존할수 있으며 가볍게 학습을 하여 효과적으로 target | domain에 대해서 사용할수 있도록 만들수 있다.

저자는 soruce model를 data represntation하는 encoding module과 classification을 해주는 Classfier로 나뉘어주었고 target하 는 data에서 encoding module만 represntation을 잘하게 되어지면 classifiter은 잘 동작할 것이라고 가설을 내새웠다.

이에 Source HypOthesis Transfer (SHOT)를 방안을 제시하며 encoder와 classifiter를 freeze한 상태로 target domain에 서 학 습을 하였으며 target represntation learning을 하기 위해서 pesudo label를 방안을 제시하였다.

 

Method

이 방법의 notion으로 정리를 하게되면 아래와 같다.

  • label samples : Sixis, y^i_s\}^(n_x)_{i=1]$ , source domain : $D_s$
  • unlabeld samples : $\{x^i_t\^{n_t)_{i=1}$ , target domain : $D_t$
  • predict label : $\{y^i_t\}^{n_t}_{i=1}$
  • source task :  $X_s \to Y_ s$, target task $X_t \ to Y_t$ 
  • source model : $f_s: X_s \to Y_s$
  • SHOT의 model은 $f_t : X_t \to Y_t$ 로 $\{y^i_t\}^{n_t}_{i=1}$ 로 예측을 한다.
  • closet-set : source, target domain 에서 label space가 같을 경우
  • open-set : source, target domain 에서 몇몇이 unseen classes일때
  • partial-set : source label space가 target domain작을때

UDA에서 사용되었던 3가지 step으로 학습을 하게 되어지며 간략하게 source model을 만든후에 $D_t$ 에 source data 없이 transfer learning을 한다음 adpataion performace를 향상시키는 방안으로 진행이 되어진다.

설명했던 방안에 대해서 그림과 같이 차례대로 보자.

 

source model genetator 

첫째로 $f_s: X_s \to Y_s$ 의 경우 cross entropy로 인하여 데이터를 만들게 되어지며 K개의 class를 가질 경우 

K dimensional vector $a$를 만들게 되어지며 이는 $q$개의 one-of-K의 encdoing이 되어지도록 만든다. (B,C,K 로 만든다는 소리)

이때 $y_s, q_k$랑 같으면 1 다르면 0으로 되어지게 되며 target data의 alignment를 위해서 label smoothing도 넣게 된다. 

이때 $q^{ls}_k = (1-\alpha)q_k + \alpha / K$로 구성되어진다. 

 

Source Hypothesis Transfer with Information Maximization (SHOT-IM)

source model ($f_s$)의 경우에서는 $g_s : X_s \to \mathbb{R}^d$와 $h_s : \mathbb{R}^d \to \mathbb{R}^K$로 구별되어지면 최종적으로 $f_s(x) = h_x(g_s(x))$로 되어진다. 

기존에서는 DA에서는 sharing을 하면서 학습을 하였지만 이 방안에서는 $g_s $만 학습이 되어진다. 

특히나 이 논문에서는 같은 $h_s$를 사용하기 때문에 비슷한 domain끼리 학습에 유용하다.

또한 source data는 활용하지 않다보니 distribution이 다르게 $D_t$에서는 domain gap차이가 적어야 함으로 infomation maximization(IM) loss를 사용하게 된다. 

이는 distribution간의 거리를 최소하게 하는 loss로 자주 사용한다. 

 

Source Hypothesis Transfer Augmented with Self-supervised Pseudo-labeling

이전에 사용되었던 IM loss를 통해서 distribuion간의 cluster가 되지만 밑의 그림에서와 같이 label이 잘못 뭉쳐져있다,

이는 target domain에서 output이 [0.4,0.3,0.1,0.1,0.1]처럼 entropy가 높으며 이를 해결하기 위해서 pesudo label를 넣게 되어진다. 

Deep cluster의 방안을 사용하여서 pesudo label를 만들게 되어지며 이는 k-means clustering을 통해서 만들어진다 .

이떄 $\hat{y}_t 는 cetntroids를 바탕으로 pesudo label를 만들어진다. 

 

최종적으로 정리를 하자면 $f_s(x) = h_x(g_s(x))$ 와 pesudo label를 만들고 hypothesis(classifer)부분은 freeze한 상태로 학습을 진행을 하게 되어진다. 

Network Architecture fo Source Model 

source model에 대해서는 weight norm을 사용하였음. 

 

Experiments

office, office-home, VisDa-C, Digits로 사용하였음.

 

반응형

+ Recent posts