본문 바로가기
Deep Learning

Domain Adaptation

by 룰루셩 2021. 2. 7.

Domain Adaptation

논문 읽다가 모르는 개념이고 전부터 계속 나오던 것 같아서 이번 기회에 공부해보았다.

유튜브에 정리된 걸 보고 공부하였다. 

 


먼저 Domain Adaptation이라는 것을 왜 쓸까?

- Source(학습데이터)와 Target(평가데이터) domain이 상당히 다를 경우 예측된 label은 domain에 의해서 상당히 다를 수 있다. 예를 들어 아래의 이미지와 같이 MNIST 데이터가 있을 때 학습 데이터는 흑백 이미지인데 테스트 데이터는 컬러인 경우가 있다.

출처: Unsupervised Domain Adaptation by Backpropagation by Yaroslav and Victor

두 개의 도메인에 대한 shift가 최소화 되도록 하는 것이 Domain Adaptation의 목적이다.

Domain Adaptation 방법론을 사용하면 train(Source)와 test(Target)분포를 유사하게 학습할 수 있다고 한다.

 

 

모든 Domain Adaptation의 가정

   - Source Domain 데이터는 Class label이 있다고 가정

   - Target Domain 데이터는 Class label이 없어도 됨

 

   Task classifier는 label이 있어야 하고 Domain classifier는 오른쪽처럼 도메인에 대한 정보에 대한 라벨을 달아준다.   

출처: Youtube (https://www.youtube.com/watch?v=GmqW_v_bXiM)

 

여기까지가 모든 Domain Adaptation 방법론에 대한 기본 가정이다. 

 

 

Domain Adaptation 방법들 중, Backpropagation만 조금 변화시켜서 한 것이 있다. 

Unsupervised Domain Adaptation by Backpropagation에서 설명한 방법이다.

 

출처: Unsupervised Domain Adaptation by Backpropagation by Yaroslav and Victor

 

연두색(f)부분은 feature extractor라고 하는데 encoder라고 생각하면 된다.

파란색(y)부분이 label을 예측하는 Task classifier이다.

분홍색(d)부분이 domain을 구분해주는 Domain classifier이다.

 

y랑 d를 수식 (5)와 (6)을 통해 backpropagation하고 feature extract(연두색) 부분에서는 수식 (4)와 같이 업데이트를 해준다. Domain label을 잘 분류할 수 없도록 업데이트 하는 것이다.

이는 각 라벨에 따라서는 다른건 더 다르게 하고, 도메인의 구분은 없어지도록 한다. 

즉, $\theta_f$는 Task에 대한 목적함수에 대해서는 gradient descent를 하고,

Domain에 대한 목적함수에 대해서는 gradient ascent를 하는 것이다.

 


여기까지가 Domain Adaptation에 대한 간단한 정리이다.

 

지금까지 많은 글을 블로그에 쓰진 않았지만 지금까진 블로그 작성하려면 마음을 단단히 먹고 썼어야하는 부담이 있었다. 

이제부턴 모르는 것을 기록하고 나중에 찾아보는 용도로 블로그를 이용해보려고 한다.

부담없이 짧게라도 기록해야겠다.

 

[참고한 자료]

[1] Youtube([Paper Review] Domain adaptation)

[2] Unsupervised Domain Adaptation by Backpropagation by Yaroslav and Victor

댓글