새소식

반응형
Vision AI/Paper review

[논문 읽기] LONG-TAILED FOOD CLASSIFICATION

  • -
반응형

https://arxiv.org/pdf/2210.14748.pdf

 

 

이 논문은 제목 그대로 Long-tail 분포를 가지는 food 데이터셋을 분류할 때 어떤 문제가 있고, 그 문제를 해결하기 위해 방법을 제안한 논문입니다. 핵심은 아래 그림입니다.

Phase-1에서 vanilla training을 진행하고, Phase-2에서 Phase-1에서 학습한 모델의 feature extractor를 이용합니다.

 

Phase-2는 head class를 herding selection 방법을 이용하여 undersampling, tail class를 visual-aware CutMix 방법을 이용해 oversampling 하여 Phase-1의 모델을 knowledge distillation 하는 방식으로 학습합니다.

 

결과는 대부분이 그렇지만 이전 long-tail 문제를 해결하기 위한 어떤 방법보다 좋다고 합니다. 물론 좋은 아이디어지만 엄청나게 향상이 된 것 같지는 않습니다😅 좋은 논문이고, 적용해보고 싶습니다.

 

 

Abstract

  • Real world에서의 food image 예측은 보통 다양한 클래스가 long-tail 분포를 가지게 되어, 심각한 클래스 불균형 문제와 안좋은 성능을 야기한다. >> 인기 많은 메뉴가 잘 팔리기 때문
  • 기존의 long-tailed 분류 방법들은, 클래스간 유사성이 낮고 클래스내 유사성이 높은 food data에 초점을 맞춘 방법이 없다.
  • 먼저, 이 논문에서는 Food101-LT, VFN-LT 벤치마크 데이터셋을 소개한다.
    • LT 데이터셋은 original dataset에서 파레토 분포를 따르는 데이터셋이다.
  • 그리고 class-imbalance를 해결하기 위한 두단계의 프레임워크를 제안한다. 각 단계는 다음과 같다.
    • knowledge distillation으로 배운 정보를 유지하고, 중복데이터 제거를 위해 head classes를 undersampling
    • tail class를 augmentation 하여 oversampling

Introduction

  • Class-imbalance 문제를 해결하는 직관적인 방법은 head class를 undersampling하고, tail class를 oversampling해서 balanced-dataset를 만드는 것이지만, 두 가지의 major challenge가 있다.
    • 1번 문제 : Head class에서 undersampling을 할 때, 어떻게 원래 성능을 유지하면서 불필요한 샘플을 제거할 것인가?
    • 2번 문제 : Tail class에서 oversampling을 할 때 어떻게 모델의 일반화 성능을 높일 수 있는가? (단순 oversampling은 과적합 문제를 발생시킴)
  • 논문에서는 두 단계 프레임워크를 도입하여 앞서말한 두 가지 문제를 모두 해결한다.
    • Phase-1 에서는 모든 클래스의 모든 이미지를 단순하게 학습한다.
    • Phase-2 에서는 phase-1에서 학습한 모델을 feature extractor로 사용하고, 1번 문제를 해결하기 위해 knowledge distillation을 적용한다.
    • Tail class를 visual-aware oversampling 하는 방법을 제안하고, 하나의 이미지 대신 여러 이미지를 mixing 하는 것을 허용한다.
  • 이 논문은 다음과 같이 요약할 수 있다.
    • Food-101 LT, VFN-LT 두 벤치마크 데이터셋을 소개한다.
    • 불필요한 head class를 undersampling 하고, visual-aware multi-image mixing을 통해 tail class를 oversampling 함으로써 class-imbalance 문제를 해결하는 2-Phase 프레임워크를 소개한다.
    • 이 방법을 Food101-LT, VFN-LT 데이터셋을 이용해 현존하는 SOTA 방법과 비교하기 위해 여러 방법을 수행한다.

Method

  • 위 그림에서 Phase-1은 모든 클래스의 이미지를 그냥 학습하며 Phase-2의 feature extractor 및 teacher model로 활용한다.
  • Phase-2에서는 head class의 가장 대표적인 데이터를 선택한다. 그리고 balanced training set을 만들기 위해 visual-aware CutMix 방법으로 tail class의 이미지들을 augmentation 하고, head class의 정보를 보존하기 위해 knowledge distillation을 적용한다.

  • Undersampling과 Knowledge Transfer (1번 식)
    • D : 모든 학습 샘플
    • F1 : D 샘플을 이용해 Phase-1에서 학습한 모델 (feature extractor 부분 freeze)
    • Ds : 선택된 샘플 (selected samples)
    • Dr : 제거될 샘플 (removed samples)
    • n : 클래스의 총 개수
    • F2 : Phase-2에서 학습한 모델
    • T : distillation의 temperature 값, 논문에서는 효율적으로 knowledge transfer를 하기 위해 T=0.5 를 사용
    • F1의 Feature extractor 파라미터를 freeze하고, 하위 레이어에서 feature embedding을 추출한다. 그리고 herding 알고리즘을 이용하여 클래스 평균에 기반한 각 head class의 대표적인 샘플을 선택한다. >> 클래스 평균에 기반한 각 head class가 herding selection의 핵심인듯

  • Oversampling of Tail classes (2번 식)
    • 목표는 oversampling으로 더 좋은 일반화를 하는 것임.
    • 최근 연구에서는 head class의 풍부한 정보를 활용하고 CutMix로 tail class의 샘플과 혼합하여 문제를 해결함.
    • 그러나 head class가 랜덤으로 선택되고 시각적으로 비슷하지 않은 음식 이미지를 혼합 할 경우 성능이 제한적이며 원래 클래스의 중요한 의미를 잃을 수 있음.
    • Phase-II 학습 과정에서, head class 샘플의 배치 Br은 제거된 샘플 Dr에서 무작위로 선택된다. 그리고 각 tail 클래스 데이터 x는 Equation 2와 같이 변형된다. 여기서 ㅇ안에 점 있는 기호는 element-wise 곱을 나타낸다.
    • Ms : 두 이미지를 자르고 붙일 위치를 나타내는 binary mask
    • Ms에서 s : 랜덤 샘플링된 mixing 비율, 0 < s < 1 범위이다.
    • x1, x2, ...xk : 가장 높은 cosine similarity를 가진 head class 이미지 top-k이다. 논문에서는 k=1 부터 증가시키면서 성능을 관찰함. 너무 높으면 성능이 좋지 않다고 함.

Result

  • Baseline, HFR은 vanilla 학습이고, tail class 샘플 수가 적어 tail class에 대한 일반화 성능이 좋지 않았다.
  • ROS, RUS는 head class를 랜덤으로 undersampling 한 방법이다. tail class 정확도가 상승하지만 head class 정확도가 감소하며 전체적인 성능은 비슷하다.
  • CMO, LDAM, BS, IB, Focal은 현존하는 long-tail classification 방법이다. 전체적인 성능 향상이 있지만 food image가 더 까다로워 성능이 제한적이다.
  • Ours (이 논문) 방법은 성능이 가장 좋고 2-Phase 방법과 sampling 전략이 더 효과적이라는 것을 보여준다.

Ablation study

  • 이 섹션에서는 먼저 기존의 RUS라는 head class undersampling 방법과 undersampling시에 random으로 선택했던 방법을 Herding selection (HUS)으로 대체한 방법, HUS 대체 + knowledge distillation을 적용한 방법(HUS+KD)과 비교한다.
  • 이후에 기존의 CMO라는 tail class oversampling 방법과 CMO + 시각적 유사도를 고려한 방법(CMO+Visual), 위에서 설명했듯이 top-k에서 k를 증가시킨 방법을 비교한다.
  • RUS에서 herding selection을 쓰면 성능이 더 좋아지고, KD를 사용하면 오히려 head class 더 성능이 좋아진다.
  • 시각적으로 유사한 food image로 CutMix를 사용하면 tail class의 성능이 향상됨을 확인했다.
  • k를 약간 증가시키면 모델의 성능 향상에 도움이 되고, k를 너무 크게 늘리면 augmentation된 tail class의 이미지 분포가 변화하여 모델 성능에 부정적 영향을 미치게 된다.

Conclusion and future work

  • Long-tail 문제를 가진 음식데이터셋인 Food101-LT, VFN-LT 데이터셋에서 head class undersampling, tail class oversampling 전략과 2-Phase framework를 사용하여 성능이 가장 좋았다고 한다.
  • Future work로는 2-phase framework를 single-phase로 디자인할 것이라고 한다.
반응형
Contents

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

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