본문 바로가기

Test-Time Adaptation

Meta-DMoE: Adapting to Domain Shift byMeta-Distillation from Mixture-of-Experts 논문 공부

알고리즘 소개

이 논문은 Meta-learning을 사용해서 TTA를 해결한 논문이다.

Meta-learning은 다른말로 learning-to-learn 이라고도 부르는데 실질적인 main task이외에 (main task의 성능을 향상시킬 수 있는) auxiliary meta task 동시에 학습한다. 이 논문에서 meta task는 neural network을 transformer를 사용하여 new domain에 적응시키는 작업이다. 이 경우 meta task를 수행하는 transformer가 meta model이 되며 이 transformer를 학습하는 과정이 meta-update, main task를 수행하는 model을 학습하는 과정이 그냥 update가 되겠다.

이 학습과정은 주로 bi-level optimization 형태로 나타나는데, 그냥 update가 inner loop, meta-update가 outer loop가 된다.

meta learning은 각각의 모델 업데이트를 위하여 데이터셋을 두 종류 (Support set, Query set)로 분할하는데 main model의 update에는 Support set이 사용되고, meta model의 meta-update를 위해서는 Query set이 사용된다. 

 

이 논문의 핵심은 아래와 같은데 TTA 에서 new domain으로 적응하는 과정을 meta learning으로 해석할 수 있는 것이다. 근데 자세히 보니 이 논문이 처음으로 제시한 아이디어인 것 같지는 않고, ARM[1] 이라는 work이 먼저 있던것 같기도 하다.

[1] Marvin Zhang, Henrik Marklund, Nikita Dhawan, Abhishek Gupta, Sergey Levine, and Chelsea Finn. Adaptive risk minimization: Learning to adapt to domain shift. In Advances in Neural Information Processing Systems, 2021.

 

 

이 알고리즘의 구체적인 학습과정 (overview figure)와 알고리즘은 아래를 참고하시길..!!

제안된 모델의 overview
제안된 모델의 알고리즘.

 

한가지 신경쓰이는것은 이 알고리즘은,,, meta-test 를 위해 meta-training 과정을 거쳐야한다는 것.. 그리고 meta training을 source model 훈련할때 같이 해야한다는 것.. TTT(Test-time training) 같은 방법들도 뭐 이렇게 하긴하지만, 내 생각엔 이런 알고리즘들은 진짜 TTA 라고 부르기는 애매한 것 같다.

 

실험 결과

흠.. 아래 실험결과를 보면, Tent, shot, TTT 같은 친숙한 baseline을 찾아볼 수 없다. setting이 크게 다른 것 같지는 않은데 왜 없나 모르겠다... 어쨌든 실험 세팅은 여타 TTA works 처럼 같은 클래스에 다른 domain을 기본으로 하는 것 같다.

실험 결과

 

Q1) few-shot learning 세팅과는 다르게,, TTA에서는 adapt하는 data와 evaluate하는 data가 동일함. 이건 여기서 어떻게 해결했는지?

A1) meta-test 때에도 알고리즘대로 adaptation 했다고 한걸 봐서는, 데이터셋이 support와 query로 쪼개져있을 확률이 높음. (흠 그럼 support data에 대해서는 성능을 안재는건가...?) (논문만 봐서는 잘 모르겠음 ㅎㅎ)