논문 읽기/Long tailed Learning

[논문 리뷰] Test-Agnostic Long-Tailed Recognition by Test-Time Aggregating Diverse Experts with Self-Supervision

Hyuk42 2022. 9. 28. 21:36

0. Abstract

- 기존의 long-tailed recognition method는 모델의 퍼포먼스를 uniform test class distribution에서 측정하는 것을 가정한다. 이 블로그의 long-tailed learning 카테고리에 있는 논문들 뿐만이 아니라 대부분이 다 그렇게 한다. 그러나 실제 test class distribution은 이러한 가정을 위반할 때가 많고, (데이터가 본질적으로 long-tailed or inversely long-tailed 분포 따르는 경우) 이는 기존 방법들의 real-world application을 실패하게하는 원인이 되곤 한다.

 

- 이에 이 논문의 저자들은 좀 더 실용적인 task setting을 제안한다: Test-agnostic long-tailed recognition

이는 training class distribution은 long-tailed 이지만, test class distribution은 그 형태가 알려지지 않았고, 임의적으로 skewed된 경우를 의미하는데, 이 경우 training과 test sample 간 distribution shift를 알 수 없다는 추가적인 어려움이 발생한다. 따라서 이를 다루기 위해 새로운 method를 제안한다: Test-time Aggregating Diverse Experts

 

- Proposed method는 두 가지의 전략을 가지고 있다.

  1. 하나의 long-tailed training distribution에서 다른 class distribution을 잘 처리하도록 expert를 학습시키는 skill-diverse expert learning strategy
  2. 다양한 unknown test distribution을 처리하기 위해 여러 expert를 집계하기 위해 self-supervision을 활용하는 새로운 test-time expert aggregation

- 저자들은 위 방법이 테스트 클래스 분포를 시뮬레이션할 수 있는 입증 가능한 능력을 가지고 있음을 이론적으로 보여주었다.

- 실험을 통해 위 방법이 vanila / test-agnostic long-tailed recognition에서 SOTA 퍼포먼스를 보인 것을 확인했고, 도잇에 임의의 다양한 test class distribution을 다루는 데에는 3개의 expert로도 충분하다는 것을 발견하였다.


1. Introduction

- 기존의 long-tailed method들은 test class distribution이 uniform일 것이라 가정하기 때문에 서로 다른 class 간 퍼포먼스를 비슷하게 맞춰주려고 하지만 이 가정사항이 real world application에서는 유효하지 않을수도 있기 때문에, (실제 데이터셋은 training data 처럼 long-tailed 일수도 있고, uniform일수도 있고, inversely long-tailed 일 수도 있다.) 기존 방법들은 아래 그림에서 처럼 좋지 않은 퍼포먼스를 보일 수 있다.

 

Top-1 accuracy of existing methods on ImageNet-LT with different test class distributions

 

- 위 표를 보면 기존 방법들로 학습된 모델들이 simulation bias에 시달리고 있는 것을 확인할 수 있다.

   = 모델들의 예측값이 실제 test 클래스 분포가 아닌 사전에 설정된 특정 클래스 분포를 따르게 하려 한다.
   ex) 일반 softmax loss로 학습한 모델 → 예측값들이 long-tailed training distribution을 따르도록 할 것
          기존 long-tailed method로 학습한 모델 → uniform class distribution을 따르도록 할 것

 

- 더 중요한 것은 실제 test class distribution이 가정된 uniform 분포에서 벗어날 때도 기존 long-tailed 방법의 simulation bias가 여전히 존재하고, test class distribution에 적응하지 못해 결과 모델이 제대로 일반화되지 않는다는 것이다. (Uniform에서는 잘 되지만 그 외 분포에서는 좋지 않은 성능) 이에 저자들은 다음과 같은 좀더 실용적인 task를 제안한다:

 

# Test-agnostic long-tailed recognition

   : Training data는 long-tailed / test data의 클래스 분포는 임의적이고 알수 없는 경우

 

- 이를 다루기 위해 저자들은 '다양한 접근법에 의해 학습된 모델이 다른 왜도를 가진 테스트 클래스 분포를 처리하는 데 탁월하다'는 기존 방법의 시뮬레이션 특성에 대해 추가로 탐구한다. 그 결과 어떤 방법을 제시했는지는 밑에서 보도록 하겠다.

 

# 미리보는 contribution

  • (저자들이 아는 한에서는) 최초로 test-agnostic long-tailed recognition 연구 (test class distribution에 대한 아무 사전 정보 이용하지 않고)

  • 위 task 처리하기 위해 Test-time Aggregating Diverse Experts (TADE) 제안
    → 이 방법이 unknown test class distribution을 시뷸레이션할 수 있다는 것을 이론적으로 보였고, empirical하게 (test-agnostic) long-tailed recognition에서 SOTA급 성능을 보였다.

2. Related Work

  • Long-tailed recognition
  • Test-time learning
    : Training / test data 간 distribution shfit를 다루는 문제
    : 이 논문에서는 이 파라다임을 이용하여 새로운 self-supervised learning strategy를 통해 test-agnostic long-tailed recognition을 다룸

3. Problem Formulation

  • Test-agnostic Long-tailed Recognition
    : Long-tailed training data에서 recognition model 학습한 후, 이 모델을 서로 다른 클래스 분포를 따르는 여러 가지의 test set에서 그 퍼포먼스를 평가하는 것

  • 이 task가 특히 더 어려운 이유는 다음과 같다:
    1) Training data 내에 존재하는 심각한 class 불균형은 모델 학습을 어렵게 만든다 (일반적인 long-tailed learning의 어려움)

    2) Training과 test data 사이의 clas distribution shift를 모른다. 
        이는 모델의 일반화를 더욱 어렵게 한다.


4. Method

Illustration of test-agnostic long-tailed recognition.

 

- 위에서 설정한 task를 다루기 위해, Test-time Aggregating Diverse Experts (TADE)라는 방법을 제안한다. TADE는 크게 두 파트로 구성되어 있고 이를 하나씩 볼 예정이다.

 

4.1 Skill-diverse Expert Learning

The scheme of TADE with three experts

Skill-diverse multi-expert framework

- 기존의 ensemble-based long-tailed method: uniform test class distribution 다루도록 expert 학습
  → 학습된 expert들이 여러 class distribution 다루도록 충분히 차별화되지 않음

 

- 위와 같은 상황을 방지하기 위해 TADE는 다른 framework를 제안한다: 서로 다른 expert들이 각각 다른 class distribution에 특화되도록 한다.

 

- 위 그림을 보면 알 수 있듯이 TADE는 three-expert model이다. 구조는 크게 두 부분으로 나눌 수 있는데,

  1. Expert간 공유하는 backbone 
  2. 독립적인 expert networks

- 모델은 ResNet을 이용하였는데, 얕은 층은 비교적 일반적인 feature를 뽑아내고, 깊은 층일수록 보다 task-specific feature를 뽑아낸다는 특성을 이용하여, ResNet의 첫 두 스테이지를 backbone으로 이용하고, ResNet의 나머지 부분과 fully connected layer를 각 expert로 이용하였다.

 

- 마지막 prediction은 각 expert들의 prediction mean의 산술평균 값을 softmax에 넣은 것을 이용하였다. 서로 다른 전문분야를 가진 expert를 학습시키기 위해 TADE는 expert들을 서로 다른 objective function으로 학습시킨다.

 

Expertise-guided losses

  1. Forward expert 
    → Training data와 같은 long-tailed distribution 잘 처리하도록 (many-shot class에 대해 잘 예측하도록)
    → Cross-entropy loss 이용 → Simulate original long-tailed training distribution 

  2. Uniform expert
    → Uniform distribution 잘 처리하도록
    → Balanced softmax loss 이용 (logit adjusted loss가 long-tailed recognition에 효과적이었던 점을 이용 - 나중에 읽어볼 예정이다.) (Balanced softmax loss에 대한 논문도 나중에 읽어볼 예정)
    → Class-balanced prediction을 출력하게 하여 uniform distribution을 simulate

  3. Backward expert
    → Inversely long-tailed distribution 잘 처리하도록 (few-shot class에 대해 잘 예측하도록)
    → Logit-adjusted loss 이용 → simulate inversely long-tailed distribution

  Forward/Backward expert는 가능한 class distribution의 광범위한 스펙트럼에 걸쳐 있기 때문에 필요하다고 한다. (test set이 uniform 분포가 아닐때 이를 잘 처리할 수 있도록)

 

 

4.2 Test-time Self-supervised Aggregation Based

- 방금까지 TADE에서 각 expert가 서로 다른 class에 전문가가 되도록 학습시킨다는 것을 보았다. 그러나 문제는 test 분포를 모를 때 각 expert의 output을 어떻게 합치냐는 것이다.

 

- Expert aggregation의 기본 원칙은 각 expert는 자기가 전문 분야인 상황일때 남들보다 더 큰 역할을 가져야한다는 것이다. (전문가가 자신의 전문분야에서 발언권이 더 큰 것과 같다고 이해하면 좋을 것 같다.) 그러나 여러 형태의 test class distribution에 대해 strong expert를 찾는 방법을 알지 못한다.

 

- 저자들의 key insight: strong expert는 (샘플이 교란되었더라도) 숙련된 클래스의 샘플을 예측하는 데 더 안정적이어야 한다. 이를 검증하기 위해 샘플의 두 augmented view에 대한 예측 간의 코사인 유사성을 비교하여 전문가의 예측 안정성을 추정한다. (augmentation - MoCo V2에서 쓰인 augmentation technique)

 

- 아래 표는 expertise와 예측 안정성 사이의 양의 상관관계를 보여주는데, 더 강한 전문가는 선호하는 계층에서 서로 다른 view에 대한 예측 간 유사도가 더 높다. 이에 따라, 저자들은 알려지지 않은 test 클래스 분포에 대한 strong expert, weight expert를 찾기 위해 상대적 예측 안정성을 탐구할 것을 제안하였다.

 

 

Prediction stability maximization

 

- 이에 저자들은 prediction stability maximization이라는 self-supervised method를 제안하는데, 이는 unlabeled test sample에 대해 model prediction stability를 최대화함으로써 expert들의 aggregation weight를 학습하는 것이다. 이 방법의 핵심요소는 다음과 같다.

  • Data view generation
    : Given sample x에 대해 두 랜덤한 augmentation 적용하여 두개의 view를 생성한다. (MoCo V2에서 이용한 augmentation들 이용)

  • Learnable aggregation weight
    : 각 expert들의 output logit을 learnable aggregation weight을 이용하여 가중결합함으로써 세 expert를 aggregation 한다. 그리고 이를 softmax()에 넣어 최종 output을 얻게 된다. 이때 learnable aggregation weight의 합은 1이다. (w1+w2+w3=1)

  • Objective function
    : Unlabled test data에 대해 view prediction을 얻었을 때, view prediction 간 코사인 유사도 기반의 prediction stability를 최대화 한다.

 

- Test-time training에서는 aggregation weigth w만 학습의 대상이 된다. Strong expert는 숙련된 클래스에 대해 더 높은 예측 유사성을 가지므로, 예측 안정성을 최대화하면 알려지지 않은 테스트 클래스 분포에 대해 더 강한 전문가의 가중치를 학습할 수 있습니다. -- 무슨 말일까... 정리해보겠습니다....


6. Conclusion

- Test class distribution이 unknown & arbitary한 경우인 test-agnostic long-tailed recognition에 대해 연구한 논문이고, 이를 처리하기 위해 Test-time aggregating Diverse Expert (TADE)라는 방법을 제시하였다.

 

- TADE는 그냥 long-tailed recognition / test-agnostic long-tailed recognition 모두에서 SOTA를 달성하였다.


# Paper - NeurIPS 2022

https://arxiv.org/abs/2107.09249

 

Test-Agnostic Long-Tailed Recognition by Test-Time Aggregating Diverse Experts with Self-Supervision

Existing long-tailed recognition methods, aiming to train class-balanced models from long-tailed data, generally assume the models would be evaluated on the uniform test class distribution. However, practical test class distributions often violate this ass

arxiv.org

# Code

https://github.com/Vanint/TADE-AgnosticLT 

 

GitHub - Vanint/SADE-AgnosticLT: This repository is the official Pytorch implementation of Self-Supervised Aggregation of Divers

This repository is the official Pytorch implementation of Self-Supervised Aggregation of Diverse Experts for Test-Agnostic Long-Tailed Recognition (NeurIPS 2022). - GitHub - Vanint/SADE-AgnosticLT:...

github.com

'논문 읽기 > Long tailed Learning' 카테고리의 다른 글

Long-tailed Learning Method 정리  (1) 2022.08.23