데알못정을

Domain Adaptation in Computer Vision: Everything You Need to Know - Korean Version 본문

Research

Domain Adaptation in Computer Vision: Everything You Need to Know - Korean Version

쩡을이 2023. 8. 6. 02:05
728x90

이 글은 Rohit Kundu가 작성한  "Domain Adaptation in Computer Vision: Everything You Need to Know"를 읽고서, 한글 번역 및 핵심 정리(요약) + 추가 정리를 위해 작성되었습니다. 또한, BOAZ ADV project를 위한 팀 세미나를 위해 정리했기 때문에, 원래 출처의 내용 중 일부 내용이 생략되었습니다. 

Introduction

딥러닝 알고리즘은 classification task 부터, object detection까지 다양한 Computer Vsion 분야에서 사용되었다. 하지만 이는 두 가지 문제점이 있었는데,

- 첫째, neural network를 효과적으로 학습하기 위해 label이 있는 많은 데이터를 학습해야한다.(데이터에 label을 부여하기 위해 높은 수준의 노동이 필요)

- 둘째, 훈련이 완료된 neural network를 test data를 입력했을 때 성능이 잘 나오기 위해서는 test data의 분포가 train data의 분포와 비슷해야한다.(현실적으로 불가능하다. 스마트폰으로 찍은 사진을 학습한 모델은 DSLR 카메라로 찍은 사진을 효과적으로 추론하기 어렵다.)

특히, 둘째의 경우(domain shift 라고 한다.)를 해결하기 위해서 새로운 데이터를 일일이 라벨링 작업을 해주고, 모델을 다시 학습(re-train) 하면 해결이 되지만, 이러한 방식은  infeasible 하다.(애초에 학습된 모델이 매우 무겁기 때문에)

이런 domain shift를 해결할 수 있는 method는 Domain Adaptation(DA) 이다. DA를 활용하면 새로운 데이터셋에 대해 재학습 할 필요가 없으며, 사전 학습된 모델만으로 최적에 가까운 성능을 기대할 수 있다.  심지어는 unsupervised DA의 경우엔 unseen data가 labeling 되어 있을 필요도 없다. 

  본 포스팅에서는 다음과 같은 순서로 내용을 전개한다.

1. What is Domain Adaptation

2. Types of Domain Adaptation

3. Four algorithmic Domain Adaptation principles

4. Domain Adaptation Techniques

5. Conclusion

 

1. What is Domain Adaptation

 DA란 label이 있는지 보장할 수 없는 어떤 target domain(test or unseen data)을 source domain(완전히 라벨링 된)으로 훈련된 내가 가지고 있는 model로도 잘 추론할 수 있도록 하는 method이다.  

DA는 본질적으로 transfer learning의 special case이다. DA의 일반적인 메커니즘은 input space가 아니라, feature(혹은 latent) space 상에서 두 도메인 간의 불일치들을 조정해주는 방향으로 표현해주는 것이다. 이런 느낌으로 DA는 다양하게 발전되었다.

 Domain Adaptation: Key definitions

본격적으로 시작하기에 앞서, DA에 관한 중요한 개념을 정리하였다. 이를 위해 상황을 가정했다.: Classification model은 스마트폰 카메라로 촬영된 사진으로 훈련이되었고, 이 모델을 가지고 DSLR camera로 찍은 사진을 적용해 분류 문제를 풀고자한다.

Source Domain: source domain이란 model 훈련에 사용되는 labeled sample의 data distribution이다. 위 상황에서는 스마트폰으로 촬영한 사진들의 distribution이 되겠다.

Target Domain: DSLR 카메라로 촬영된 사진의 distribution이며, Souce domain으로 훈련된 모델이 이 데이터를 가지고 비슷한 task를 수행한다.

Domain Translation: 두 도메인사이에 의미있는 대응 관계를 찾는 문제이다.

Domain Shift: 서로 다른 도메인 사이의 distribution의 변화를 의미한다. 

 

Types of Domain Adaptation

DA method는 target data의 label을 이용 가능한지, source 및 target 도메인 feature space의 특성, DA가 달성되는 경로 등의 요인에 따라 여러 유형으로 분류할 수 있다. 

1. Supervised DA

2.Semi-Supervised DA

3. Weakly Supervised DA

4. Unsupervised DA

 

1. Supervised DA

Supervisd DA(SDA)는  target domain의 데이터가 완전히 labeling 되어 있는 상황을 가정한다.

관련 논문: Unified deep supervised domain adaptation and generalization(CCSA) [2]

이 논문은 CCSA loss 라는 것을 도입해서 하나의 SDA 접근 방법을 소개했다. input image는 deep learning model을 통해 latent(embedding) space에 매핑되고, 이것에 기반해서 classification prediction이 수행된다.

classification loss와 semantic alignment loss를 사용해서 서로 다른 두 도메인으로부터 나온 sample을 latent space에 같은 category에 해당하면 가깝게 매핑하고, 그렇지 않은 경우는 멀게 매핑한다. 

 

2. Semi-Supervised DA

Semi-Supervised DA(SSDA)는 target doamin의 데이터가 어떤 샘플은 라벨링이 되어있고, 또 어떤 샘플은 라벨링이 되어있지 않은 상황을 가정한다.

  target doamin의 label이 많이 없는 상황에서 unsupervised domain adaptation method가 성능이 안좋았기 때문에 SSDA 방식은 unsupervised 방법과 크게 다른 경향이 있다.

관련 논문: Semi-supervised Domain Adaptation via Minimax Entropy [3]

본 논문은 'K' 개의 클래스별 가중치 벡터와 특징 추출기(하위 계층)의 출력 사이의 코사인 유사도를 계산하여 K-way class probability vector를 예측하는 코사인 유사도 기반 분류기 아키텍처를 고안했다.

 

이 논문의 핵심 방법을 class가 2인 분류 문제를 가정하고 정리하면 다음과 같다.

1. Fully labeled source data, labeled target data를 가지고 클래스를 잘 분류하도록 학습한다 = 2개의 클래스별 가중치벡터를 학습한다.(k=2)  

가중치 벡터라고 하니까 잘 와닿지 않는데, 가중치 벡터는 neural network가 내뱉는 feature vector를 f 일때, 이 f를 받아서 2개의 노드를 배출하는 classifier C의 weight들이다. 근데, 이 weight matrix에서 class 1에 관여하는 벡터는 W1, class 2에 관여하는 벡터는 W2가 된다.

 Classifier는 노드를2개 배출하는데, 여기다가 softmax를 취해 class를 잘 맞추도록 train하면 W1과 W2는 각각 class 1에 해당하는 feature vector를 대표하는 값,  class 2에 해당하는 feature vector를 대표하는 값이 된다.(아래 그림에서 검정색 동그라미, 엑스)

Classifier의 softmax(T는 temperature), 논문에서는 L2 norm이 있어서 사실은 f1의 norm으로 또 나눠줘야함

 

2. 이 상태에서 Target domain의 unlabeld 데이터를 입력하고, 이들이 feature vector로 변환된 상태에서(그림에서 연한 분홍색) 아까 학습했던 W1, W2를 활용하여 Classifier에 입력하면 Softmax의 결과로 두 확률 값이 나오게된다. 그럼 이 두 확률 값을 최대한 같아지도록 학습한다.

(즉,  두 확률 값이 동일 = 불확실성 최대화 = 엔트로피가 최대화 =  각각의 W가 unlabeled data의 feature vector를 보고 어떤 vector와 유사한지 모르도록 = W가 모든 unlabeled feature와 유사해지도록)

두 확률 값이 같아지도록 학습한다는 것은 곧 Classifier의 entropy를 maximize한다는 뜻

(가방 안에 빨강, 녹색 공이 50개, 50개 들어있을 때 가방에서 공을 꺼냈을 때 어떤 공이 더 자주 관찰될지 불확실하다 = 두 사건의 확률이 동일하다 = entropy가 최대이다)  

3. 2의 결과로 클래스를 대표하는 W1, W2는 도메인에 invariant 한 position에 매핑이 되는데, 이때 다시 entropy를 최소화 한다.(아래 그림처럼)

entropy를 최소화 한다는 의미는 unlabeled feature vector가 거리적으로 가까운 W와 유사해지도록 즉,  F의 entropy를 minimize 한다는 뜻

Loss를 다시쓰면

$$Loss = CrossEntropy + minmax(entropy)$$

$$Objective Function = minimize   L_{ce} - \lambda entropy$$

 

3. Weakly-Supervised

Target domain에 ground truth는 masking 되어 있지만 물체의 카테고리 정보는 segmented 되어 있는 상황을 가정한다.

이는 하고자 하는 것과 거리가 조금 있어서 이 부분에 대한 정리는 생략한다. 

 

4. Unsupervised

UnSupervised DA(UDA)는 target doamin의 데이터의 label이 완전히 missing인 상황이다. source data로 훈련된 model은 target domain을 독립적으로 adapt해야 한다.

관련 논문: Unsupervised Domain Adaptation with Residual Transfer Networks [4]

이 논문은 이전에 제안됬던 shared-classifier 가정을 완화하고, source domain을 분류하는 classifier와 target domain을 분류하는 classifier의 차이를 잔차로 조정할 수 있음을 가정했다.

 source domain으로 학습된 classifier는 target domain에 대해서 직접적으로 적용될 수 없다고 말하며, 이는 source domain distribution과 target domain distrbution 사이의 distribution discrepancy 때문이라고 설명하고 있다.

그렇기에, 이 distribution discrepancy는 feature vector(in latent space)와 classifier의 공동 조정(joint adaptation)을 통해 해결가능하며, distribution discrepancy를해결 할 수만 있다면 domain adaptation이 가능하다. 

 

이 논문은 feature adaptation과 classifier adaptation 과정을 거쳐 두 도메인 간의 discrepancy를 해결했다.

1. Feature adaptation

CNN layer의 feature vector를 bottleneck layer를 거처 일정 사이즈로 만들어 준다음, Target에서 나온 것과 Source에서 나온 것의 평균 사이의 거리를 최소화하는 방향으로 수행한다. (Minimize MMD), 이때 분포의 첨도 차이를 고려하기 위해 Kenel method를 사용하여 고차원으로 매핑하는 트릭을 사용했다.(가우시안 커널)

2. Classifier adaptation 

classifier adaptation의 가정은 source classifier($f_{s}(x)$)와 target classifier($f_{t}(x)$)가 오직 small perturbation(작은 변동)에 의해 다르다라는 것이다. 따라서 small perturbation을 모델링할 수 있는 $\Delta f(x)$ 를 학습하여 두 classifier 간의 discrepancy를 모델링했다.

$f_{s}, f_{t)$는모두 softmax를 태우기 전의 값

 

전체 아키텍처

 

 

5. Homogeneous DA vs. Heterogeneous DA

DA는 domain간의 divergences에 따라 Homogeneous DA, Heterogeneous DA로 나눌 수 있다. 두 가지 카테고리 모두 각각 supervised, semi-supervised, unsupervised로 또 나뉘게 된다.

Homogeneous DA

Homogeneous DA란, 이는 Source domain 데이터와 Target domain 데이터가 동일한 차원을 갖고 있는데, feature space 상 분포의 차이가 있는 경우이다. (단순히 distribution shift가 일어난 경우) 

Heterogeneous DA

Heterogeneous DA는 두 도메인이 동일하지 않고, 서로 동등하지 않고 상이한 feature space 차원을 갖는경우이다. (상이한 해상도를 갖는 훈련 및 테스트 이미지 데이터 ) 이는 Homogeneous DA보다 훨씬 더 어려운 문제에 해당한다.

련 논문: Learning Cross-Domain Landmarks for Heterogeneous Domain Adaptation [5]

 

이 논문에서 제안한 CDLS model은 adaptation 과정 중에, 단순히 두 도메인의 중요도를 동등하게 두는 것이 아니라 두 도메인 데이터를 연관시키기 위한 domain-invariant subspace를 표현하는 이질적인 특징 변환을 도출한다. 또한 source 및 target 도메인 데이터의 representative는 CDLS의 adaptation 능력을 향상시키기 위해 공동으로 활용된다. Adaptation process가 완료되면 labeled, un labeled target domain 데이터를 도출된 subspace에 투영하여 Task를 수행할 수 있다.

6. One-Step vs Multi-Step DA

 

DA가 어떻게 구현되는지에 따라서 One Step DA, Multi Step DA로 나뉠 수 있다.

대부분의 DA 설정은 source와 target 도메인이 직접적으로 관련되어 있다고 가정하므로 transfer learning 같은 방식으로 지식을 전달할 수 있다.: 이 방식이 One Step

그러나 현실에서는 이 가정을 사용할 수 없는 경우가 있다. 두 도메인 사이에 중복이 거의 없으면 One step DA를 수행하는 것은 효과적이지 않을 것이다. (One step DA가 잘 작동하려면 두 도메인의 distribution 어느 정도 유사해야한다는 뜻-overlapped) 

source 도메인과 target 도메인의 분포를 원래 거리보다 더 가깝게 표현 할 수 있는 intermediate 도메인이 있으면 이를 일련의 중간 다리로 사용하여 관련이 없어 보이는 두 도메인을 연결한 다음 이 중간 다리를 통해 One step DA를 수행하는방식이 Multi Step DA이다.

예를 들어, 동그라미 이미지와 마름모 이미지는 모양이나 특징이 서로 다르기 때문에 One Step DA가 실패하지만, 세모 이미지와 같은 일부 중간 이미지는 중간 도메인이며 원활한 지식 전달을 위해 도입될 수 있다.   

2. Four algorithmic Domain Adaptation principles Reweighting Algorithms/Instance-based Adaptation

Reweighting algorithms은 source data의 가중치를 재조정한 후, 가중치를 재조정한 source data에 대한 classifier를 훈련함으로써 분포 차이를 최소화하는 원리로 작동된다. 이는 source only class에 속하는 데이터의 중요성을 감소시킨다.

target data 및 reweighted source data는 분포를 정렬하기 위한 adversarial training 또는 kearnel mean matching에 의해 feature extractor를 훈련하는데 사용된다. 이러한 방법은 instance based adaptation이라고도 한다.

관련 논문: Adversarial Reweighting for Partial Domain Adaptation [6]

이 논문에서 저자는  source domain과 target domain의 분포를 조정하기 위해 source domain의 데이터의 가중치를 재조정하는 adversarial reweigjtimg(AR) 접근 방식을 제안했다. source domain과 target domain의 분포 사이의 Wassertein 거리를 최소화한다.

그림을 보고 이해한 바로는, source domain에 의존하여 클래스를 분류하는 것을 막기 위해 적대적으로 target domain과 feature space 상에서 거리가 가까운 source domain에는 큰 가중치를 부여하고, 그렇지 않은 source domain에는 낮은 가중치를 부여하는 방식으로 학습되는 것 같다.(아닐 수도 있다.)  

3. Iterative Algorithms

Iterative adaptation method는 target domain 데이터를 반복적으로 "자동 라벨링"하는 것이 목표이다. 그러나 이러한 방법들은 일반적으로 라벨이 있는 target sample을 필요로 하므로, 이는 supervised 및 semi supervised DA 상황에 적합하다. 모델은 source domain의 라벨이 지정된 데이터로 학습하고, 라벨이 없는 target sample에 annotation을 달게 된다.(target data이면 1) 그런 다음 새로운 모델이 새로운 target domain의 라벨이 지정된 샘플에서 학습된다.(결국 re-train 인가?)

관련 논문: Co-Training for Domain Adaptation [7]

이 논문의 경우 co-learning에서 영감을 얻어 Train set을 source domain에서 target domain으로 천천히 adaptation하는 알고리즘을 제안했다. 자세한 알고리즘은 아직 이해하지 못했다.(팀원들의 도움이 필요하다.. ㅎㅎ)

4. Feature-based Adaptation

Feature-based adaptation이란 도메인에 강건한 일반적인 invariant feature를 추출해서 source domain의 데이터를 target domain의 데이터에 매핑하는 기술이다. 즉 feature space상에서 표현되는 두 도메인을 새로운 feature space 상에서 도메인간 gap이 minimize하도록 transform하는 것이다.  이 방식은 3가지 방법으로 나뉜다.

  1. Subspace-based Adaptation: 두 도메인사이에서 공유할 수 있는 intermediate representation을 학습하는 것(Multi Step DA와 비슷하다고 생각했다.)  

  2. Transformation-based Adaptation: Original source domain의 특징은 유지하되, new representation feature space 상에서 target domain data representation 과의 discrepancy를 최소화하는 방식.

  3. Reconstruction-based Adaptation: feature reconstruction-based methods는 중간 feautre space에서 다시 sample을 reconstruction하면서 도메인 분포 간의 차이를 줄이는 방식 

 

 

5. Hierarchical Baysian Model

이해하지 못했습니다.

 

 

6. Domain Adaptation Techniques

6-1. Domain Invariant Feature Learning

가장 최근의 Domain adaptation 방법은 일반적으로 feature extractor nerural network의 형태로 Domain invariant feature vector representation을 생성함으로써 source 도메인과 target도메인을 align했다. feature representation은 입력 데이터가 source 도메인의 것인지 target도메인의 것인지에 관계없이 특징이 동일한 분포를 따르게 해서 domain invariant 특성을 만들어 낸다. domain invariant 특징을 사용하여 source 데이터에서 다시 task를 잘 수행하도록 classifier를 훈련시킨다. 이 경우, target 데이터의 특징이 classifier를 훈련시킨 것과 일치하므로 classifier는 target 도메인에도 잘 일반화할 수 있다.

feature 상에서 두 도메인의 공통적인 feature를 학습하는 방법은 Divergence-based DA, Reconstruction-based DA, Adversarial-based DA가 있다.

첫 번째, 두 번째 방식은 위에서 정리한 논문에서 사용한 메커니즘이다. 세 번째인 Adversarial based DA는 사실 첫 번째 방식과 두 번째 방식 같은 것을 도입해서 한쪽으로는 minimize, 한쪽으로는 maximize 하는 방향으로 학습되는 것인데, 내가 지금까지 알고 있던 DA는 모두 이런 방식이었다.

출처 블로그에서 소개한 논문은 GAN network를 도입해서 제안한 CyCADA인데, semantic consistency를 강화하면서 pixel-level과 feature-level 모두에서 표현을 조정하는 방법이다. 저자는 특정 시각적 인식 작업을 기반으로 cycle-consistency loss (즉, source는 target에 매핑된 source와 다시 source에 매핑된 source를 일치시켜야 함)과 semantic losses를 사용하여 adaptation 중에 의미를 보존한다. 

*블로그 글로는 잘 이해가 안되기도 하고, GAN 구조는 되도록이면 피하고 싶다.(학습 불안정성을 같이 잡아야하기 때문에 부담이 크다) 

6-2. Domain Mapping

거리가 멀다

6-3. Ensemble Methods

블로그에서 teacher-student 구조의 논문을 소개했다. 이는 사실 self-ensembling(단일 모델의 앙상블)이라 불리는 방법의 일종이다.

관련 논문: SELF-ENSEMBLING FOR VISUAL DOMAIN ADAPTATION [8]

teacher network- student network 구조는 연구실 세미나때(knowledge distillation) 본적이 있어서 기억이나지만, DA에 적용된 사례는 잘 모른다. 이 논문은 teacher network의 가중치가 student network의 가중치의 지수 이동 평균(EMA)로 조정되는 것이 특징이다.(teacher와 student의 역할이 달라진건가..?)

 

6-4. Target Discriminative Methods

작성 중입니다.

 

 

 

[1] https://www.v7labs.com/blog/domain-adaptation-guide

[2] Motiian, Saeid, et al. "Unified deep supervised domain adaptation and generalization." Proceedings of the IEEE international conference on computer vision. 2017.

[3] Saito, Kuniaki, et al. "Semi-supervised domain adaptation via minimax entropy." Proceedings of the IEEE/CVF international conference on computer vision. 2019.

[4] Long, Mingsheng, et al. "Unsupervised domain adaptation with residual transfer networks." Advances in neural information processing systems 29 (2016).

[5] Tsai, Yao-Hung Hubert, Yi-Ren Yeh, and Yu-Chiang Frank Wang. "Learning cross-domain landmarks for heterogeneous domain adaptation." Proceedings of the IEEE conference on computer vision and pattern recognition. 2016.

[6] Gu, Xiang, et al. "Adversarial reweighting for partial domain adaptation." Advances in Neural Information Processing Systems 34 (2021): 14860-14872.

[7] Chen, Minmin, Kilian Q. Weinberger, and John Blitzer. "Co-training for domain adaptation." Advances in neural information processing systems 24 (2011).

[8] French, Geoffrey, Michal Mackiewicz, and Mark Fisher. "Self-ensembling for visual domain adaptation." arXiv preprint arXiv:1706.05208 (2017).

 

728x90
Comments