새소식

반응형
Vision AI/Paper review

[논문 읽기] Decoupling Representation and Classifier for Long-Tailed Recognition

  • -
반응형

Decoupling Representation and Classifier for Long-Tailed Recognition

https://arxiv.org/abs/1910.09217

https://github.com/facebookresearch/classifier-balancing

이 프레임워크는 https://github.com/zhmiao/OpenLongTailRecognition-OLTR 을 베이스로 한다. 사용방법도 비슷함.

 

작성 중.. 논문이 너무 길다..

 

INTRODUCTION

저자는 Long-tail 데이터 분류를 end-to-end 학습(feature extractor, classifier 동시에 학습)으로 진행하면 classifier의 결정경계가 잘 형성된 것인지 더 좋은 representation을 학습해서인지 불분명하다는 의문을 제기한다.

학습을 2-stage로 나누어 stage 1에서는 기존의 방식대로 end-to-end 학습을 하고, stage 2에서 feature extractor를 고정한 후, downstream task(classifier) 모델을 재학습하는 것이 훨씬 더 좋은 성능을 낸다고 제안했다. stage 1은 통상 representation learning이라고 하며 stage 2는 classifier만 학습하는 과정이라고 볼 수 있다.

ImageNet-LT, Places-LT, iNaturalist 세 가지 데이터셋으로 연구를 한 결과 세 가지의 재밌는 관찰을 했다.

  1. instance-balanced sampling이 가장 일반화된 representation과 가장 좋은 성능을 보였다.
  2. classifier의 결정경계를 다시 조정하는 것이 long-tailed recognition에 유리하다.
  3. ResNeXt 같은 표준적인 네트워크에 decoupled learning을 적용함으로써, 세 가지 LT 데이터셋에 대해 다른 최신방법(새로운 loss, 샘플링 전략, 복잡한 모듈) 보다 훨씬 더 높은 정확도를 달성한다.

Decoupled learning 학습 방식, stage 1은 end-to-end 학습, stage 2는 classifier만 학습

RELATED WORK

관련연구는 아래 3가지로 볼 수 있다.

  1. Data distribution re-balancing : 샘플이 적은 클래스는 over-sampling, 샘플이 많은 클래스는 under-sampling 하는 방법. 각 클래스의 샘플 수에 초점이 맞춰져 있다.
  2. Class-balanced Losses : 클래스의 데이터 분포를 일치시키고 tail 클래스의 일반화를 개선하기 위해 클래스에 따라 loss가 다른 방법, 더 세밀하게 샘플의 수준에 따라 loss를 컨트롤 하는 방법, 클러스터의 중심들의 distance를 같은 수준로 만들어 주는 loss 같은 방법들이 있다.
  3. Transfer learning from head- to tail classes : 샘플이 풍부한 head 클래스의 feature를 under-representation 되어 있는 tail 클래스로 transfer하는 방법이다.

LEARNING REPRESENTATIONS FOR LONG-TAILED RECOGNITION

Representation learning은 4가지 방법으로 실험했다. 사실 아래의 식에서 q=1이면 1번, q=0이면 2번, q=1/2이면 3번이다.

 

j는 클래스

C는 클래스 수

분모는 모든 클래스의 샘플

분자는 특정 클래스의 샘플

q는 0~1 범위의 값이며 q에 따라 샘플링 확률이 달라진다.

Pj는 샘플링 확률

  1. Instance-balanced sampling : 모든 학습 샘플을 동일한 확률로 선택하는 방법
  2. Class-balanced sampling : 클래스 불균형을 완화하기 위해 모든 클래스를 동일한 확률로 선택하는 방법
  3. Square-root sampling : 1번과 2번의 중간방법
  4. Progressively-balanced sampling : 처음 몇 epoch 동안 instance-balanced sampling 진행 후 class-balanced sampling을 진행하는 방식

CLASSIFICATION FOR LONG-TAILED RECOGNITION

이 섹션에서는 long-tailed recognition의 classifier로부터 representation을 분리하는 방법을 고려한다.

다양한 샘플링 전략 또는 nearest class mean classifier 같은 non-parametric 방법으로 fine-tuning을 진행하여 head class와 tail class의 결정경계 수정을 목표로 하는 학습방법을 3가지 제시한다.

  1. Classifier Re-training (cRT) : representation (feature extractor)는 고정하고 classifier의 W, b를 랜덤하게 다시 초기화 후 class-balanced sampling, 적은 epoch을 사용하여 재학습한다.
  2. Nesrest Class Mean classifier (NCM) : NCM은 학습하는 동안 각 클래스의 평균 feature representation을 계산하고, L2-norm 평균 feature를 계산 후 유클리드 거리 또는 cosine 유사도를 사용하여 nearest neighbor search를 진행한다.
  3. τ -normalized classifier (τ -normalized)
    1. 경험적 발견
      1. instance-balanced sampling을 사용해 representation+classifier 학습 후 각 weight의 norm이 class들이 보유한 샘플의 수와 관련이 있다.
      2. class-balanced sampling을 사용해 classifier만 fine-tuning 했을 때 (cRT) classifier의 weight들이 norm들이 서로 더 유사한 경향이 있다.
      3. τ -normalization으로 classifier의 weight norm을 직접 조정하여 결정 경계의 불균형 교정을 고려했다. >> 재학습을 하지 않고 τ 정규화로 weight만 조정할 수 있다τ -normalized classifier (τ -normalized)

ImageNet-LT 데이터셋으로 샘플링 전략 및 학습 전략에 따른 정확도를 비교, Instance-based sampling과 τ -normalization 을 해준 방법이 Medium, Few와 종합 성능에서 가장 좋음을 보여주고 있다.

 

 

반응형
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감과 광고 클릭 부탁드립니다~