해당 논문은 CVPR'22에 publish된 논문이며 현재 90회의 citation을 기록하고 있다.
closed-set test-time (source-free) adaptation for image classification (길다 길어!) 를 다룬 논문이다.
Introduction
현실적인 상황에서 training data와 test data의 data distribution이 일치하지 않는 domain shift 현상이 자주 나타난다.
Domain Adaptation (DA)은 source domain의 정보를 target domain에 잘 transfer하여 domain shift에 강이한 모델을 학습하는 것을 목표로한다. 이 work은 특히 DA 중에서도 Test-Time (source-free) Adaptation (TTA)를 다루는데, DA를 수행할때 source data를 전혀 사용할 수 없고, unlabeled target data와 pretrained model 만 사용할 수 있는 조건이다.
이런 조건 때문에 TTA는 크게 두가지의 main challenge를 가지는데..
- Label 없이 target-domain의 representation을 학습해아한다.
- Source domain 을 사용하지 않고, source classifier 자체만으로 TTA를 수행해햐한다.
Related works으로는 generative model, entropy minimization, pseudo-labeling 이 있었다고는 하는데 다들 비용이 너무 높거나 성능이 애매했다고 한다. 저자는 이 work에서 AdaContrast라는 TTA 학습 방법을 propose 했다.
AdaContrast 의 가장 큰 특징이라면 self-supervised contrastive learning과 self training (pseudo labeling) 을 동시에 수행하는 multi-task TTA 를 수행한다는 것이다. 조금 더 자세히 들어가면, 1) queue memory로 voting한 credible pseudo label을 사용한다는 것과 2) contrastive learning을 할때 약간 더 개선된 InfoNCEloss를 사용한다는 정도..?
이 논문이 아예 새로운 setting을 제안한 pioneer work인지는 모르겠는데 methodology만 보면 이미 있는 이것저것 짬뽕해 놓은 논문이라 용케 accept을 받았다는 생각이 들었다.
Method
1. Online pseudo label refinement
기존의 pseudo labeling을 사용하는 TTA 논문의 경우 epoch 단위로 pseudo label을 생성했다고 한다. 이 논문에서는 batch 마다 pseudo label을 생성해서 사용하기 때문에 Online pseudo label refinement라고 하는데, 솔직히 이게 그렇게 대단한 건지는 모르겠다. 그리고 refinement를 위해서 memory queue 안에 target image의 feature vector들을 차곡차곡 넣어뒀다가 나중에 pseudo label을 구할때 nearest-neighbor voting을 사용한다 (위의 figure의 (a)에 해당).
이 refinement를 통해서 domain shift로 인한 incorrect decision을 방지하고 more informed estimate를 얻을 수 있다고 했다. (이론적이거나 경험적인 근거가 전혀 없어서 많이 아쉬웠다.)
이 memory queue는 MoCo처럼 momentum encoder를 통과한 feature vector로 만들어진다.
2. Joint self-supervised contrastive learning
기존의 self-supervised learning 에서 많이들 하던 것처럼 memory queue안에 저장된 negative / positive pair를 사용해서 InfoNCE loss를 통한 contrastive learning을 수행한다. 여기서 약간의 novelty가 있다면 원래 원래 InfoNCEloss는 분모에 positive pair도 들어가는데 그냥 negative pair만 쓰겠다는 간단한 아이디어가 추가되었다.
3. Self-training : weak-strong consistency
FixMatch에서 영감을 얻은 학습방식. strongly-augmented sample의 prediction을 weak-augmented sample의 voting-based pseudo label로 supervise한다. 결과적으로, self training을 통해 consistency도 guratntee할 수 있다..!
3: Entropy-maximization : diversity regularization
그냥 기존의 TTA에서 많이들 하던대로, prediction의 shannon entropy를 maximize하는 loss를 준다. False pseudo label에 대해 강인해지는 regularization 기능이 있다고 한다.
최종적으로는 위에 제시된 세 개의 loss를 다 합친 multi-task learning을 수행하게 된다. 여기서 세가지 loss의 mixing coefficient는 $\gamma_1=\gamma_2=\gamma_3=1$로 두고 학습하여도 잘 진행된다고 한다.
Experimental results
이 논문 작성하던 시기에 SoTA가 SHOT 이었던 것 같은데,, SHOT 보다 여러 domain에서 더 좋은 성능을 보였다고 한다.그리고 단순 성능 개선 뿐만 아니라 여러가지 분석이 있었는데..
우선 model calibaration을 비교했을때 AdaContrast가 VisDA-C 에서 더 좋은 ECE/MCE를 보였다고 한다.
다음으로 memory queue와 number of neighbors에 대한 ablation study를 했는데, 둘다 너무 작은 값을 사용하면 모델 성능에 좋지 않았지만, 어느 정도 이상으로 끌어올리니 성능이 일정 수준에 수렴하는 현상을 보였다고 한다.
추가로 hyperparameter insensitivity를 보이기 위해 SHOT과의 lr 차이에 대한 성능 비교를 진행하였다. 많고 많은 baseline 중에 왜 SHOT 만 있고, 많고 많은 hyperparam 중에 왜 lr 만 있는지는 모르겠으나 아무쪼록 insensitivity가 좋다고 했다.