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 만 추가된) 단순한 구조
- feature extractor (초록) : 이미지 데이터의 feature mapping 수행.
- label predictor (파랑) : 이미지의 label을 잘 구별하도록 학습함.
- 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 했을 때도 성능을 유지하도록)
학습과정
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의 비중을 조절하는 역할을 한다.
'Deep Learning > CV' 카테고리의 다른 글
[paper review] Unsupervised pixel-level Domain Adaptation with GAN (0) | 2021.05.28 |
---|---|
[paper review] Adversarial Discriminative Domain Adaptation (0) | 2021.04.12 |
[paper review] Domain Separation Networks (0) | 2021.04.03 |