Long-tail Distribution Learning Survey Review

2024. 2. 8. 19:45DL Life

개념 설명

Dataset 의 Distribution 이 Skewed 되어 있는 (한쪽으로 쏠려있는) 상태

  • Head Class : 데이터셋에서 dominant sample 수를 가지고 있는 class
  • Tail Class : 데이터셋에서 scarce sample 수를 가지고 있는 class

특히 Class Imbalance 의 Imbalance Ratio 가 극심한 특수한 경우에 LTD 를 갖는다고 표현

대표적으로 불량 감지, 질병 진단, 자율 주행 차 사고 감지, 사이버 보안 등의 분야에서 관찰가능

문제가 되는 이유

  • 모델이 다양한 Task 에서 좋은 성능을 내기 위해서는 각 Class 의 Representation 을 잘 학습해야하는데, 모델이 head-class 에 편향되게 학습하여 tail-class 에 대해서 심각한 성능저하가 발생

해결 방법

1. Class Re-balancing

Re-sampling

  • data-level의 접근법, 지난 몇십년동안 가장 널리 사용되었던 방법
  • Under-Sampling
    Head class 의 데이터 개수를 Tail class 의 데이터 개수와 맞추는 방식 (Head → Tail)
    Head class sample 각각이 중요한 정보를 가지고 있을 경우 정보 손실 및 Underfitting 가능성 상승
    → One-side selection, Wilson’s Editing 과 같은 방법 제안
  • Over-Sampling
    Tail class 의 데이터를 랜덤으로 복제하여 Head class 의 데이터 개수와 맞추는 방식 (Tail → Head)
    Tail class 의 Robust, Generalizable 한 Feature 추출에는 한계 (왜? tail class 자체가 적다보니 다양성이 적어서?) + Overfitting 가능성 상승
    → Synthetic Minority Over-sampling Technique (SMOTE) 를 활용한 다양한 방법 제시
  • Scheme-oriented re-sampling
  • metric learning 이나 Ensemble learning 등 long-tailed learning 을 위한 Training methods
  • [꼼꼼한 논문 설명] Imbalanced Continual Learning with Partitioning Reservoir Sampling (ECCV 2020) - YouTube
  •  

Cost-sensitive Learning

  • Training 단계에서 각 class 별 loss 값을 다르게 주어 Re-balance 하는 algorithm-level 접근법
  • Loss 설계 시, head-class에 penalty를 주거나, tail-class에 weight를 더 주는 방식으로 일반화 성능 향상
  • Re-writing, Re-margining 등이 있음
  • 미리 Loss weight 를 정하는 것 이외에도 데이터로부터 weight 가 학습될 수 있음
  • Distribution Alignment (DisAlign) : 예측분포와 주어진 균형 reference 분포가 있으면 이들 사이의 kl-divergence값을 최소화하는 함수 사용

Logit Adjustment

  • 고전적인 Idea, 클래스 불균형 문제에서 상대적으로 큰 Margin 을 얻는 방법
  • Logit : 최종 레이어가 내놓는 값, 어떤 클래스인지 예측하는 확률?
  •  

Summary

  • Class Re-balancing 기법들은 단순하지만 괜찮은 성능을 보임
  • Head class 성능이 떨어진다는 단점이 존재 + 정보가 부족하다는 문제를 근본적으로 해결하지 못함

2. Information Augmentation

Transfer Learning

  • source 도메인(e.g. 데이터셋, task, 클래스…)으로부터 정보를 전이하여 타겟 도메인에 대한 모델 훈련을 강화

Head-to-Tail Knowledge Transfer Learning

LTD에서의 Transfer Learning에는 head-class의 정보를 tail-class로 전이하여 모델의 성능을 증대하는 Head-to-tail knowledge Transfer Learning이 있습니다.
Feature Transfer Learning (FTL)은 tail-class 내의 variance가 head-class에 비해 훨씬 작아 decision boundary가 편향되게 형성되는 것을 개선하기 위해, head-class의 variance 정보에 기반한 tail-class feature augmentation을 하도록 합니다. → tail-class 샘플들의 클래스 내부의 variance가 더 작아 특징공간과 결정경계가 편향되어 있는 문제를 head class의 클래스 내부의 분산을 활용하여 tail-class에 대한 성능을 높여 tail-class 특징들이 더 높은 클래스 내부 분산을 가지게하여 해결

Online Feature Augmentation (OFA)는 class activation map에 기반하여 class-specific feature와 class-agnostic feature를 추출합니다. 그다음, tail-class specific feature와 head-class agnostic feature에 기반하여 tail-class sample을 증강합니다.

Rare Class Sample Generator (RSG)는 각 class 별 feature center를 추정한 후 head-class sample feature와 가장 가까운 intra-class feature center 간 feature displacement에 기반하여 tail-class feature를 보강합니다.

→ 이 부분을 제대로 이해하지는 못해서 일단 Reference 자료 삽입

Knowledge Distilation


미리 학습시킨 Teacher network 의 출력을 내가 실제로 사용하고자 하는 작은 모델인 Student network 가 모방하여 학습

Data Augmentation

모델 훈련 시 데이터셋의 양과 질을 향상시키기 위한 증강 기술

  • transfer-based augmentation : Major2minor 방식을 에로 드는데 이는 적대적 공격과 유사한 방법
  • conventional(non-transfer) augmentation : 기존의 데이터 증강기법을 개선하거나 설계

Summary

→ 기존의 Re-balancing 방식과 달리 head class 성능을 희생시키지 않기 떄문에 더 자세히 연구할 가치가 있다.
→ head class 를 더 많이 증강할 수 밖에 없다는 기본적인 문제점은 아직 해결하지 못하였다

3. Module Improvement

Representation Learning

  • Metric Learning : input data 간 거리를 학습하는 것을 의미 / 데이터간의 유사도를 수치화
    → 객체간 유사성/비유사성에 대한 task specific 거리함수 (distance metric)를 설계하는 것이 목표
  • Contrastive Learning : 각 Class 를 명확하게 보여줄 수 있도록 학습하는 방식
  • etc …

Classifier Design

  • 다양한 유형의 Classifier 를 설계
    etc-image-4

Decoupling Training

  • Learning Procedure : Representation Learning + Classfier Training 으로 분리 → 2-stage 학습방식 제안
  • 표현학습을 위한 여러 Sampling strategy 를 평가 → Trained feature extractor 로 Classifer training scheme 평가

[!note] 관찰결과

  1. Random sampling 이 의외로 docoupling 방식에서는 best
  2. Clasifer 를 Re-adjusting 하는 것만으로도 상당한 성능 향상

Ensemble Learning

데이터셋을 다양한 방식으로 샘플링하여 모델들을 학습시키고 ensemble
다양한 모델을 같은 데이터셋으로 학습시키고 Ensemble 등의 방식을 사용

  • Ally complementary experts(ACE) 여러 균형 그룹으로 나누는 대신, 여러 skill-diverse 하위 집합으로 나누는데, 한 집합은 모든 클래스를 포함하고, 하나는 middle, tail 클래스만 포함하고, 다른 하나는 tail 클래스만 포함하는 식으로 학습을 진행, 여러 expert들로 이 다양한 클래스 하위집합을 훈련시는데 이 때, 다양한 하위집합이 서로 다른 샘플 수를 가지고 있다는 것을 고려하여, 다양하게 학습률을 조정하면서 학습을 진행

Summary

  • Network module 을 개선하여 문제를 해결하고자 한다
  • 기존 algorithm, data 적인 측면으로 해결하려고 한 것과는 조금 다른 관점이라고 할 수 있다
  • Data augmentation 과 상호보완적이기 떄문에 같이 사용하면 더 나은 효과를 얻을 수 있다

평가방식

차후 추가 예정
(https://haystar.tistory.com/82) 참고


Reference

LG Research - Long-Tail Distribution
Long-tail Survey 관련 글
https://light-tree.tistory.com/196 [All about:티스토리]

Link


“이 글은 Obsidian 에서 작성되어 업로드 되었습니다”