[ICML 2022] Efficient Test-Time Model Adaptation without Forgetting

안녕하세요.
오늘 작성할 리뷰는 EATA 라고 불리는 TTA 분야의 논문입니다.

기존 TENT 방법론 대비 조금 더 효율성을 증대한, efficient 한 TTA 방법론입니다.
바로 리뷰 시작하겠습니다.


1. Introduction

TTA의 서론에 대해서는 이전 리뷰들에서 자주 설명드렸으므로 생략을 하도록 하겠습니다.

본 논문은 ICLR 2021년에 발표된 TENT 논문의 후속작입니다. (저자는 다릅니다)
TENT와 마찬가지로 Fully Test-Time Adaptation 분야의 논문입니다.

저자는 앞선 TTA 방법론들이 크게 2가지 문제점을 가진다고 언급합니다.

i) TTA 수행 시 모든 test sample들에 대해서backward 과정을 수행합니다. 하지만 TTA 분야 자제가 실시간성 및 application 관점을 주로 고려하는 만큼, 이렇게 모든 test sample에 대해 연산을 수행하는 것은 cost 가 많이 들고 비효율 적이라고 언급합니다.
ii) TTA는 기존 학습 domain과는 다른 새로운 domain 의 데이터가 등장했을 때 성공적으로 adaptation을 수행하기 위한 연구입니다. 즉 기존 in-distribution(ID) 데이터와는 다른 out-of-distribution(OOD) test sample에 대해 adaptation을 잘 수행하는 것이죠.
하지만 기존 연구들에선 모델이 OOD test sample에 대해서만 집중하여 모델 parameter를 update 하다 보니, 기존에 잘 가지고 있던 ID sample들에 대한 지식과 표현력을 잃어버리게 된다고 말합니다. 이를 전문 용어로 (catastrophic) forgetting 이라고 합니다.


저자들은 크게 이렇게 2가지 문제점을 정의하고, 이를 해결하기 위한 contribution을 아래와 같이 제시합니다.

우선 Model의 adaptation관점에서 모든 tseet sample이 도움이 되는 것은 아니라고 합니다. 너무 높은 entropy 값을 가지는 test sample은 noisy gradient를 초래해서 모델을 방해하는 요소로 작용하게 되므로 이에 대한 filtering 이 필요합니다. 따라서 reliable test sample과 non-redundatnt sample (noisy sample)을 구분하는 특정 기준(criterion)을 설계하게 됩니다. 구체적으로 이 criterion을 통해 filtering 되는 것은 i) 높은 entropy를 가지는 sample, ii) 매우 유사한 sample 입니다.

또한 ID(In Distribution) test sample에 대한 성능 및 지식을 유지하기 위해 Fisher regularizer를 설계하여 모델의 forgetting 을 해결하고자 합니다. 이는 모델 parameter의 가중치가 크게 변하지 않게 합니다.

2. Method

본 논문에서 제안하는 기법의 이름은 EATA (Efficient Anti-forgetting Test time Adaptation) 이며, 그 구조는 위와 같습니다. 그리고 이는 위에서 설명드렸듯 효율적인 TTA를 위해 도움이 되는 test sample만을 selection 하여 backward 과정을 수행하는 i) Sample-efficient entropy minimization 과, In-Distribution test sample 에 대한 knowledge forgetting 문제를 완화해주는 ii) Anti-forgetting weight regularization 로 구성되어 있습니다.

2.1. Sample Efficient Entropy Minimization

앞서 설명드렸듯 본 논문에서 설계한 EATA 에서는 모든 test sample 사용하여 backward 계산을 하는것이 아닌, i) reliable 하고 ii) non-redundant 한 test sample만을 골라서 더욱 효율적인 TTA 를 수행해야 한다고 주장합니다.

이를 위해 test sample을 선택하는 criterion인 S(x) 를 설계하게 됩니다. S(x)=0 가 되는 test sample x에 대해서는 backward 연산을 수행하지 않는 것을 의미합니다. S(x) 가 어떻게 동작하는지에 대해서는 아래에서 따로 말씀드리도록 하겠으며, 아래 수식은 S(x) 가 적용된 최종적인 objective fuction 입니다.
기존 TENT 에서 주장한 Entropy Minimization 수식에 S(x) 만 곱해진 형식입니다.
S(x)!=0 인 test sample x 에 대해 Entropy Mimization을 수행하겠다는 뜻입니다.

Reliable Sample Identification (Criterion)

저자들은 각 test sample 별로 최종적인 adaptation 성능에 기여하는 정도가 다를 것이라는 직관적인 생각을 했습니다. 이를 검증하기 위해 전체 test samples 중 entropy 순으로 일부 비율만을 선정해서 TTA를 수행하였고, 이에 따른 성능을 아래와 같은 그래프로 표현하였습니다.

X 축의 %는 전체 test samples 중 adaptation에 관여한 샘플의 비율을 의미합니다. 100% 는 모든 test samples가 adaptation에 관여하였다는 것이고, 40%는 entropy 기준 하위 40% 만이 adaptation에 관여하였다는 것을 의미합니다. 그리고 y축은 이에 따른 성능을 의미합니다.

위 그래프를 통해 얻을 수 있는 결과는 2가지 입니다.
i) entropy 가 낮은 sample은 높은 sample 보다 adaptation 성능에 더 많은 기여를 한다.
ii) x축 %가 일정 수준 이상보다 커진 이후로 전체적인 성능이 하락하는 것으로 보아,
entropy가 높은 test sample은 오히려 adaptation 성능을 저하시킨다.

이와 같은 실험을 통해 저자들은 entropy 를 기반으로 각 test sample x 에 서로 다른 weight 를 주고자 하였고, 이를 나타내는 것이 아래 수식입니다.

entropy E(x) 가 미리 정의된 threshold E_0 보다 작은 test sample x만을 indicator function을 통해 골라서 entropy 기반으로 유동적인 weight를 부여합니다. 이를 통해 entropy 가 낮은 test sample x 에 대해 더 높은 가중치를 할당할 수 있게 됩니다. 수식 및 컨셉적으로는 꽤나 간단합니다.

Non-redundant Sample Identification

위의 수식을 통해서 entropy가 높은 sample, 즉 unreliable한 test sample을 제외할 수는 있었습니다. 다만 나머지 test samples에 대한 redundancy 문제는 해결하지 못한다고 합니다.

예를 들어 entropy가 threshold E_0 보다 작은 매우 유사한 test sample x1과 x2에 대해, 두 sample을 모두 사용해서 backpropagation 과정을 수행하게 되면 효율성 측면에서 좋지 못하다고 합니다. x1과 x2 모두 비슷한 gradient를 생성하게 될 테니, TTA의 효율성을 향상시키기 위해서는 이러한 redundant test sample들을 판단해서 없애버릴 수 있는 criterion을 생성할 필요가 있다고 하네요.

사실 이를 위해 생각할 수 있는 가장 간단한 방법은 이전 time step때 마주한 모든 prediction을 저장해놓은 다음 현재 test sample로 부터 예측된 prediction과의 모든 유사도를 계산하면 됩니다. 하지만 점차적으로 누적될테니 효율성이 매우 떨어지죠.

이를 위해 EMA 기법을 활용해서 모델 adaptation에 관여한 모든 test sample들의 prediction 값을 update 해 나가서 ‘평균 모델 출력’ 을 생성해 나갑니다. 아래 수식을 통해 말이죠.

time step t 가 지남에 따라 m^t는 점차적으로 누적되면서 test sample 예측값들의 평균을 담게 됩니다.
그리고 이를 사용해서 아래의 새로운 criterion을 설계합니다.

현재 time step t 에 들어온 test sample에 대한 예측과 m^{t-1} 과의 cosine 유사도를 구해서 미리 정의된 threshold 보다 작을 시 non-redundant한 test sample 이라고 판별하여 최적화 과정에 반영하게 됩니다.

그리고 앞서 entropy 기반으로 설계한 criterion 과 합쳐서 최종적인 criterion 을 구성하게 됩니다.

다시 정리하자면, efficient한 TTA를 위해 모든 test sample이 TTA에 반영되는 것이 아니라 일정 criterion을 기준으로 사용되게 됩니다. 그리고 이 criterion은 i) 높은 entropy를 가지는 test sample은 제외하고, 나머지들은 entropy에 반비례하도록 weight가 부여되며, ii) similarity가 높은 redundant test sample은 제외하고 adaptation에 반영되게 됩니다.


2.2. Anti-Forgetting with Fisher Regularization

또한 두번째로는 In-Distribution (이하 ID) 에 대한 knowledge를 망각하는 catastrophic forgetting 문제를 해결하기 위한 정규화 기법을 설계합니다.

이를 위해 아래 Regularizer R을 설계하게 됩니다. 그리고 이는 중요한 model parameter가 TTA 수행 과정 속에서 너무 많이 변경되는 것을 방지해 준다고 합니다.

\tilde{\Theta}는 update가 진행되는 모델의 parameter를, \tilde{\Theta}^O 는 기존 원본 모델의 parameter를 의미합니다. 그리고 w(\theta_i)는 각 parameter 별 중요도를 나타내는 weight 수치이며, 이는 Fisher information matrix를 통해 계산된다고 합니다. 이에 대해서는 완벽하게 이해를 못하였지만, 아래 단락에서 따로 설명드리겠습니다.

어쨌든 이러한 제안 사항들을 통해 본 논문에서 사용하는 최종 objective function은 아래와 같습니다.

Measurement of Weight Importance w(\theta_i)

위 Regularization term 속의 w(\theta_i) 를 어떤식으로 계산하는지를 설명하기 위한 단락입니다.

저자들은 기존 TTA 기법에서 forgetting 현상이 발생하는 이유에 대해 OOD samples에 대해서만 맞추어 가다 보니 기존 ID samples 에 대한 정보를 잃어버리기 때문이라고 합니다. 그래서 이를 해결하고자 model parameter 가 TTA 과정 속에서 너무 많이 변경되는 것을 방지하고자 하였고, 이를 위해 Fisher information matrix 라는 개념을 가지고 와서 기법을 설계하였습니다.

Fisher information 계산을 위해서는 labeled ID training samples 를 사용해야 합니다. 하지만 TTA의 특성 상 학습 데이터에 접근할 수 없고, test samples 에 대해서도 gt가 존재하지 않습니다.
그리하여 이에 대한 대안책으로 unlabeled test samples 중 일부분을 샘플링하여 dataset x_q 를 구성합니다. 그리고 TTA가 수행되는 모델인 f_{\Theta} 를 통해 hare pseudo label \hat{y}_q 를 예측해 냅니다. 최종적으로 아래 수식을 통해 weight 를 계산할 수 있게 됩니다. 앞서 구한 hare pseudo label \hat{y}_q 와 base model f_{\Theta}^O 의 예측 사이의 cross entropy loss를 통해서 말이죠. 아래 수식을 통해 구해진 weight 값은 TTA 수행 전 한번 쫙 계산해두고 이후엔 fix 시켜서 사용합니다. 전처리 느낌으로 미리 계산해두는겁니다.

3. Experiment

위 실험은 ImageNet->ImageNet-C 로의 TTA 실험 결과이며, 표기된 성능은 error(%) 입니다. 또한 위 table에서 EATA 는 본 논문의 최종 결과를 의미하며, ETA는 2.2절에서 설명드린 Fisher Regularization 기법을 제외하였을때의 성능입니다.

또한 위 table에 (lifelong) 이라고 하는 표기가 있을겁니다. 이는 TTA 가 수행이 되는 과정 속에서 model의 parameter를 초기 상태로 되돌리지 않겠다는 걸 의미합니다. 최근 연구들은 continual 한 domain shift 상황을 고려하기 때문에 TTA 수행 과정에서 당연히 model의 parameter를 초기 상태로 되돌리지 않습니다.
하지만 TENT, 그리고 본 논문에서 제안하는 EATA는 연속적인 (continual) domain shift 상황은 고려하지 않기 때문에 기본적으로 새로운 domain 으로 변화할 때 model의 parameter를 초기 상태로 되돌리게 됩니다.

즉 (lifelong) 의 의미는 좀 더 실용적인 TTA 라고 볼 수 있으며, continual 한 domain shift 상황에 대해 평가하기 위한 세팅이라고 보시면 됩니다.

위 table에서 ETA(ours) 와 EATA(ours) 의 차이는 forgetting 방지를 위한 Fisher Regularization 기법의 유무입니다. 사실 전체적인 성능으로 봤을 땐 크게 차이가 없어 보이네요. 그리고 EATA(lifelong) 의 경우에는 사실 TTA가 수행됨에 따라 후반부로 갈 수록 성능 하락폭이 꽤나 클 줄 알았는데 기존과 유사한 것을 볼 수 있습니다. forgetting 방지를 위한 Fisher Regularization 기법이 ID samples의 지식을 잘 보존해서 continual 한 상황에 도움이 된 것으로 보여집니다.

위 실험은 ID 와 OOD 각각의 accuracy 성능을 살펴보기 위해 진행한 실험입니다. EATA 에서는 기존 방법론의 문제점으로 ‘OOD 로의 adaptation만을 고려하기 때문에 기존에 가지고 있던 ID 에 대한 지식을 forgetting 한다’ 라고 언급했습니다. EATA 에서 이러한 forgetting 문제를 잘 해결했는지를 보여주기 위한 실험인것이죠.

우선 좌측 그래프는 lifelong을 고려하지 않은 실험 결과입니다. 즉 domain 상황이 변화할 때 마다 다시 model parameter를 초기로 변경하는 것이죠. 반면 우측 결과는 lifelong 을 고려한 것입니다. x축을 따라 adaptation이 진행되는 과정에서 model parameter가 초기로 돌아가지 않고, 끊임없이 TTA로 update 해 나가는 것입니다.
그리고 빨간색 그래프는 source data로 평가한, 즉 In-Distribution(ID) 의 성능이구요, 파랑색 그래프는 corruption이 부여된 상황에서의 Out-Of-Distribution(OOD) 의 성능입니다.

좌측도 좌측이지만 특히 우측의 결과가 인상적입니다. TTA 후반부로 갈 수록 tent 에서는 성능 accuracyy가 0으로 낮아지는 것을 볼 수 있습니다. 물론 TENT 가 이런 연속적인 domain 변화 상황을 타겟으로 한 방법론이 아니긴 합니다만, 아무튼 이 실험을 통해 EATA가 초기 ID data에 대한 정보/지식을 forgetting 하지 않고 잘 유지하고 있는 것을 보여주고 있네요.


네 오늘은 EATA 라고 하는 TTA 논문 리뷰를 해 보았습니다.
효율적인 TTA를 위해 특정 criterion을 설계해서 sample 을 selection 하는 기법, 그리고 forgetting 방지를 위한 regularizer 설계. 최근 2023~2024 논문들에서는 흔히 발견할 수 있는 컨셉이긴 합니다만, 당시 상황에서 꽤나 참신한 문제정의와 직관적인 해결 방안을 잘 제안한 논문인 것 같습니다.

리뷰 마치도록 하겠습니다. 감사합니다.

Author: 권 석준

6 thoughts on “[ICML 2022] Efficient Test-Time Model Adaptation without Forgetting

  1. 안녕하세요. 권석준 연구원님. 좋은 리뷰 감사합니다. TTA라는 task를 처음 보는데, 덕분에 개념을 좀 잡을 수 있었습니다. 일단 실제 디바이스 동작을 많이 고려한게 저에게는 신선합니다. 제가 주로 보는 SSL이나 AL쪽은 계산 코스트 등을 크게 고려하지 않으니까요.
    forgetting 부분에서 질문이 있는데, 일단 기존에 갖고 있던 지식을 너무 잃지 않기 위한 방법으로 본문에서 제시한것과 유사한 regularization을 이용한 방법이 일반적인 방법인지 궁금합니다. DA뿐만 아니라 real-time으로 모델을 업데이트하는 모든 task에는 필연적으로 forgetting 문제가 발생할 것 같은데, 이에 대한 방지책으로 regularization이 자주 사용되는건지 알고 싶습니다.
    또, 아무리 forgetting을 잘 막는다고 해도 업데이트를 계속 하다 보면 언젠가는 기존의 중요한 내용을 많이 잃을 것 같은데, 그럼 어느정도 모델이 shifted 환경에 적응을 하면 업데이트를 그만두게 되는 건가요? 실제 적용 상황에서는 어떻게 하는지 궁금합니다.
    감사합니다!

    1. 예리한 질문이십니다.
      제가 TTA 논문을 매우 많이 읽은것은 아닐 뿐더러, 완벽하게 follow-up 하고 있는 것은 아니지만, 이 TTA 분야에 대해 하나둘씩 읽으면 읽을수록 느끼는 것이 생각보다 forgetting 이라고 하는 문제가 꽤나 모델에게 치명적이라는 것입니다. 그래서 많은 연구들에서도 이 forgetting issue를 해결/완화 하고자 노력을 가하고 있구요.

      첫번째 질문에 대한 답변을 드리자면 regularization을 이용한 방법이 일반적인 방법이라기 보다는, 여러 해결책들 중 하나인 것으로 알고 있습니다. regularization 기법 외에 forgetting issue 를 해결하고자 하는 방식으로는 크게 adaptor , restoring 방식이 있습니다.
      adaptor를 통해 forgetting 을 직접적으로 해결한다기 보다는, 이 adaptor 의 도입으로 인해 나머지 parameter들을 freeze 시키는 것이 핵심적인 사항입니다. 결국 forgetting 이라는 것이 기존 source pre-trained weight 이 심하게 변형/update 되는 경우 발생하게 되는 것인데, adaptor 사용을 통해 나머지 parameter들을 고정하게 되면 앞선 문제는 발생하지 않겠죠.
      또 restore 방식은 말 그대로 복원, 초기 모델로 복원하는 것입니다. 전체 parameter 중 일부만 말이죠. 사실 매우 컨셉/기법적으로 간단한데, tta 수행을 쭉쭉쭉 해 나가다가 forgetting 이 일어났다 싶으면 전체 parameter 중 일부(앞선 CoTTA 에서는 0.01의 비율로) 를 초기 parameter로 restore 하는 것입니다. 물론 ‘고작 이거로 forgetting 해결이 돼?’ 라고 생각하실 수 있겠지만, 제 기억 상 이런 restore 방식을 통해 얻는 성능적 효과가 꽤나 톡톡했었고 그렇기에 restore적관점으로 접근하는 연구들이 하나가 아닌 몇몇 존재했습니다.

      두번째 질문 속 ‘ 어느정도 모델이 shifted 환경에 적응을 하면 업데이트를 그만두게 되는 건가요?’ 에 대해 말씀을 드리자면, 정확히 그런 컨셉으로 contribution 을 제시한 논문이 있습니다. 다만 forgetting 을 해결하기 위함은 아니였고, 한층 더 효율적인 TTA를 위해 어느정도 모델이 adaptation 되었다면 굳이 update 를 수행하지 않고 잠시 fix 시키는 그런 컨셉입니다. 새로운 domain 이 들어온다면 다시 update를 수행하구요.

  2. 안녕하세요 좋은 리뷰 감사합니다.

    1. Criterion을 계산하는 부분에서 질문이 하나 있는데요, 기존 TENT라는 방법론이 테스트 샘플의 예측 entropy를 낮추는 것으로 기억하고 있습니다. Entropy가 높고 낮은 샘플을 얼마나 사용했는지에 따른 성능 표를 보았을 때 왜 entropy가 높은 샘플을 많이 쓰면 낮은 샘플들을 사용할 때보다 성능이 낮아지나요?
    제가 완전히 이해하고있진 못하지만 TENT의 기본 전제는, entropy가 높을수록 domain shift가 커 많이 줄여줘야하는 대상이라고 이해하고 있었는데, 왜 성능 표와 같은 결과가 나오는지에 대한 저자의 설명이 있는지 궁금합니다.

    2. Weight importance를 구하기 위해 테스트 샘플 일부를 가져와 사용한다고 했는데, 이 일부분이 어느정도인가요? TTA는 어떠한 도메인의 테스트 샘플이 들어올지 모르기 때문에 이에 성능 하락 없이 대응하고자 연구되고 있는 것으로 알고 있는데, 이렇게 미리 테스트 샘플에 접근하여 pseudo label을 만드는것이 어떻게 가능한지 궁금합니다.

    1. 각 질문별로 답변드리겠습니다.

      1. TENT에 대해 해주신 말씀들이 맞긴 합니다. TENE는 test sample의 predict entropy를 최소화해 나가는 방법론입니다. test gt 가 없는 상황 속에서 entropy를 통해 self-supervision을 부여한 것이죠. 이것이 가능했던 이유는 실험적으로 entropy와 Error(loss) 가 비례하는 관계임을 밝혔기 때문입니다.
      다만 짚고 넘어가야 할 것은, TENT에서 ‘entropy가 높을 수록 많이 줄여줘야 한다’ 라는 주장은 하지 않았습니다. 모델에게 supervision을 부여하기 위해 어쩔 수 없이 entropy를 도입한 것이지, 각 sample별 entropy를 비교하면서 ‘entropy가 큰 sample은 더 팍팍 줄여야해!’ 라는 식의 비교는 수행하지 않았죠.
      반면 본 논문에선 이 entropy란 개념을 가지고 각 sample별로 비교하면서 entropy가 높은지 낮은지에 따라 최종 성능에 기여하는 정도를 측정하였습니다. 이에 해당하는 figure가 본문 Criterion 부분에 있는 막대그래프 figure 이구요 . 저 figure를 통해 저자가 알아낸 바로는, ‘entropy가 너무 높은 sample은 오히려 uncertainty가 너무 높아서 unreliable한 gradient가 생성될 수도 있다.’ , ‘TENT의 entropy minimization 전략에는 찬성하지만, 각 sample 별로 비교해보니 최종 성능에 더 기여하는 것은 low-entropy sample 이더라~’ 뭐 이런 내용입니다.

      2. 우선 테스트 샘플 일부의 규모를 먼저 말씀드리자면 ImageNet-C dataset 5만장 기준 500개의 sample만으로도 충분하다고 합니다.
      그리고 뒷 문장에서 질문주신 부분에 대해 답변을 드리자면, 저도 Online-TTA 분야 논문을 읽으면서 종종 들었던 의문점이고 아직도 완벽하게 해소가 되지 않았습니다. 말씀하신 대로 Online-TTA 분야는 입력 시 들어오는 test sample에 대해 실시간으로 update가 수행되게 됩니다. 즉 어떤 test sample이 들어올 지 모른다는 것이죠.
      하지만 본 논문을 포함해서 가끔씩 몇몇 논문들을 읽다가 보면 이렇게 test set 중 일부분만을 뽑아서 test domain을 대표하는 값을 추출한다거나 하는 등의 과정들을 수행합니다. 저도 마찬가지로 이 과정이 Online-TTA의 근본적인 가정을 해치치 않았나.. 라는 의문을 조금씩 가지고 있는 상황이긴 했습니다.

      그런데 또 요즘 다른 측면에서 드는 생각은 Online-TTA가 test sample에 접근하지 않는 것은 맞는데, ‘실시간 TTA 수행 시’ 접근하지 않는다는 것입니다. 즉 모델을 보드 위에 employ 해서 TTA를 수행하기 전에, 미리 test sample 중 극히 일부분만 접근해서 TTA 수행을 위한 정보를 뽑는 과정은 Online-TTA의 가정을 해치지 않은 것 같기도 하더군요.

      사실 이에 대한 명쾌한 설명, 언급들이 논문들에서 없었기에 제 스스로 이렇게 추측하는 수 밖에 없었습니다. 빠른 시일 내로 tta 코드를 다루게 되었을 때 만약 이 의문점이 해소가 된다면 말씀드리도록 하겠습니다.

      (답변을 의식의 흐름대로 적은지라 좀 난잡한데,,, 이해하시리라 믿습니다 ㅎ)

  3. 안녕하세요. 좋은 리뷰 감사합니다.

    우선, Entropy를 토대로 Noisy한 Sample을 거른 이외 Non-reducdant한 Sample은 본문에서 언급하신 바와 같이 Non-reliable은 아니고 도움이 되는 Sample은 맞으나, Sample Pool 내에서 비슷한 Gradient를 보이므로 “굳이 한번 더 볼 필요 없는” 샘플이라고 이해함이 맞을까요? 제가 이해한 바가 맞다면 궁금한 점이, 현재 TTA는 Classification 태스크를 위주로 하는데, 이 때 이미지 내 둘 이상의 Classification 대상이 나타난다면 지금의 기준을 기반으로 Reducdant를 계산함이 옳나? 아니면 Image-level이 아닌 Instance-level의 Reducdant를 계산함이 옳은지에 대해 의견이 궁금합니다.

    1. 앞선 질문에서 언급하신 내용들 – 맞습니다.
      한번 더 정리해 드리자면 우선 Entropy를 토대로 Noisy한 Sample을 거르게 됩니다. 그럼 reliable sample들만이 남게 될텐데, reliable함에도 불구하고 만약 두 test sample이 유사한 gradient를 생성한다면 이 둘은 redundant한 sample로 보고 굳이 중복해서 backprop을 하지 않고 한번만 수행합니다. 효율성을 위해서 말이죠.

      음 두번째 질문에 대해서는,,, classification task에서 ‘이미지 내 둘 이상의 Classification 대상’ 이 들어있는 dataset 이 있나요? 보통 object-centric하게 하나의 object만 있지 않나요?
      근데 질문의 요지는 아무래도 detection, segmentation 등의 task 속 이미지 내 여러 object 들이 존재할 때에는 어떤 식으로 redundant 를 계산해 나갈 것인가~ 로 받아들이겠습니다. 그런데 이 질문에 대한 답변은 당연히 image-level 이 아니라 instance-level 로 고려해야 한다고 생각합니다. 직관적으로도 그렇고, 앞선 연구들에서도 그렇죠. 예를들어 근 2년 detection 에서의 AL, TTA 연구들을 보면 contribution 으로 ‘우리는 ‘image level 이 아닌 object-level 을 고려해서 썸띵을 했다~’ 라는 식으로 많이 주장하곤 하죠.

      그런데 저는 개인적으로 이 redundant 에 대해서,, 그냥 같이 학습하면 언젠간 도움이 되지 않을까? 라는 생각이 있긴 합니다. 제가 실험을 가지고 오진 않았는데 이 redundant와 관련된 ablation 성능을 보면 성능은 아주 조금 향상하고, backwards 횟수는 기존 대비 약 80% 만을 수행하게 됩니다. 물론 효율성 측면에서는 도움이 되긴 하겠다만, 뭔가 continual TTA에서의 forgetting 관점에서 본다면 redundant sample이 들어오더라도 한번 쯤 다시 forward-backward 를 수행하는 것이 forgetting 해결에 좋지 않을까? 라는 생각이 듭니다.
      마치 사람도 예전에 공부한 것을 까먹지 않으려고 한번씩 주기적으로 복습을 하는 것 처럼요.
      이런 forgetting 문제는 classification 이 아닌 detection, segmentation 에서 더 심하게 발생할 것이라 생각됩니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 항목은 *(으)로 표시합니다