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로 디자인할 것이라고 한다.