Deep Learning/CV

[paper review] Unsupervised Domain Adaptation by Backpropagation

zooyeonii 2021. 3. 29. 14:48

Domain Adaptation 이란?

Domain Adaptation은 Transfer learning의 일종으로, train data (Source domain)와 test data(Target domain)의 분포가 다르지만, 두 도메인에 같은 task를 적용할 때 사용되는 방법론이다.

출처 : 위키피디아

Domain Adaptation의 목표는 Source domain과 Target domain 사이의 domain shift를 줄이는 것이다.

Unsupervised Domain Adaptation

이 중에서도 Unsupervised DA는 타겟 도메인의 데이터가 라벨이 전혀 없을 때에도 task를 수행할 수 있다. 이 페이퍼에서 강조하는 특징은 discriminativeness , domain-invariance이다. 각각 구별성과 도메인 불변성이고 이는 다른 도메인의 데이터이지만 label을 잘 구분하며, 도메인의 간격을 줄여 Source와 Target distribution을 비슷하게 만든다는 의미이다.

Model Architecture

출처 : 해당 논문

모델의 가장 큰 특징 :
1) 타겟도메인의 라벨 없이도 학습이 가능함
2) End-to-end learning 이 가능함
3) Backpropagation만 조금 바뀐(Gradient reversal layer 만 추가된) 단순한 구조

  1. feature extractor (초록) : 이미지 데이터의 feature mapping 수행.
  2. label predictor (파랑) : 이미지의 label을 잘 구별하도록 학습함.
  3. domain classifier (핑크) : 이미지가 Source domain에서 왔는지, Target domain에서 왔는지 구별하도록 학습함.

    → 각각 label predict (f→y) (input data : label이 있는 source domain data)와 domain classify (f→d)(input data : Source domain data(label :0), Target domain data(label :1))는 loss를 줄이는 방향으로 학습을 진행.

Goal : 모델을 Source domain data를 통해 학습시킨 후 테스트 과정에서 Target domain data를 입력했을 때 label을 잘 구분하도록 하는 것. (Source domain 때랑 같은 task 했을 때도 성능을 유지하도록)

학습과정

출처 : zooyeonii

feature extractor의 파라미터 theta_f 는 label은 잘 구분하도록, domain은 잘 구분하지 못하도록 학습되어야 함.

그러므로 encoder에 해당하는 파라미터의 gradient update는 두 개로 나뉜다. Ly/theta_f는 label predictor의 loss에 대한 theta_f 편미분 값이고, Ld/theta_f는 domain classifier의 loss에 대한 theta_f 편미분 값인데, 여기에 -lambda를 곱하는, gradient ascent 형태를 보인다. 이는 encoder parameter f가 domain classifier의 loss가 커지도록 학습함을 의미한다.

lambda는 hyper-parameter로, domain classifier의 비중을 조절하는 역할을 한다.