[TTA][CLS] Tent: Fully test-time adaptation by entropy minimization
[TTA][CLS] Tent: Fully test-time adaptation by entropy minimization
-
paper : https://arxiv.org/pdf/2006.10726.pdf
-
git: https://github.com/DequanWang/tent
-
Contribution
- 배포된 모델의 상황에서 target dataset에만 접근 가능할 때, target dataset에서의 test-entropy를 최소화하는 방향으로 Test Time Adaptation (TTA)하는 setting을 제안함 → TENT
- 구체적으로, Test환경에서 dataset의 통계 분포(평균, 표준편차)를 계산하고, normalization을 수행하며, test-entropy를 기반으로 scale & bias에 대한 gradient를 학습시켜 준다. (BN과 동일)
- Source-free Domain Adaptation 에서 classification, semantic segmentation task에서 (당시) SOTA를 찍었다.
-
Domain Shift
-
학습 데이터 (Source data)로 학습한 모델이 배포된 시점에서 평가 데이터 (Target data)가 domain shift가 발생했을 경우, entropy는 domain shift를 나타내는 척도가 될 수 있음
-
-
Setting : Fully Test-Time Adaptation
- vs. fine tuning & domain adaptation & test-time training
- Fine-tuning
- Target domain : supervised loss
- domain adaptation
- Source domain : supervised loss
- Target domain : unsupervised loss
- Tet-time training :
- Source domain : supervised loss + self-supervised loss
- Target domain : self-supervised loss (a.k.a unsupervised loss)
- Tent :
- Target domain : Entropy loss (a.k.a unsupervised loss)
- Fine-tuning
- vs. fine tuning & domain adaptation & test-time training
-
TENT
-
test-time 에서 non-linear한 f를 전부 adaptation하면 too sensitive해진다고 함.
- non-linear f 특성 중, linear 한 특성 (scale, bias)만 학습함
-
test-time 에서 parameter theta를 전부 adaptation하면 too sensitive해진다고 함.
-
channel-wise dim으로 scale&bias값을 transformation을 수행함
-
Algorithm
-
Initialization
- l번째 layer, k번째 channel에 대한 scale, bias 값을 제외한 parameter는 fix
-
Iteration
- batch 단위로 normalization 통계 분포와 transformation parameter를 업데이트
- transformation 값 (scale, bias)는 Entropy값을 근거로 back-propagation으로 계산
- next batch에만 영향을 줌
-
Termination
- Online은 Termination이 필수가 아님
- Offline은 adaptation 후 inference를 반
-
-
-