본문 바로가기

Study/Paper Review

[CV] M2m: Imbalanced Classification via Major-to-minor Translation

  • 원문 주소
  • 저자
    • Jaehyung Kim, Jongheon Jeong, Jinwoo Shin
    • Korea Advanced Institute of Science and Technology (KAIST)
  • 게재 학회
    • CVPR 2020
  • 개요
    • 2024/07/26 UOS MLAlab 세미나 자료를 정리함
    • 클래스 불균형 데이터셋에 대한 데이터 증강 기법을 다룸
  •  목차
    • Introduction
    • Method
      • Rejection criterion
      • Optimal seed sampling
    • Experiments
    • Conclusion
    • Limitation considered

 

컴퓨팅 자원과 빅데이터의 발전에 따라

잘 만들어진 데이터셋으로 딥러닝 모델 학습과 검증이 용이해졌으나,
실제로는 데이터 수집과 라벨링 비용 등에 의해
클래스가 불균형한 long-tailed distribution을 가진 데이터셋을 접하게 됩니다.


이러한 문제는 클래스가 균형 잡힌 테스트셋이 주어진 상황에서
기존 방법론에 대한 일반화 성능이 매우 떨어지게 됩니다.


 

이를 해결하기 위한 방법으로 클래스 당 샘플 사이즈를 인공적으로 학습 목적에 맞게 조절할 수 있습니다.

 


 

특히 re-sampling 방법론은 소수 클래스에 대해 오버 샘플링을 하거나
다수 클래스에 대한
언더 샘플링을 통해 학습 시 샘플링 분포를 조정해줄 수 있습니다.


 

그러나 이러한 방식으로는 주로 소수 클래스에 대해 과적합 발생할 수 있어
여전히 일반화에 어려움이 존재합니다.


 

이에 대해 본 논문에서는 클래스 불균형 데이터셋에 대해 다수 클래스의 샘플을 변형하여

소수 클래스에 대한 샘플을 생성하고 이를 모델 학습에 사용하는

오버 샘플링 방식의 M2m 방법론을 제안하고 있습니다.

 

그림은 전체적인 학습 흐름을 보여주고 있습니다.


 

또한, 해당 방법론에서는 샘플 퀄리티를 향상시키기 위해 크게 세 가지 요소를 고려하였는데

이에 대해 method 파트에서 하나씩 살펴보겠습니다.


 

먼저 notation을 확인하겠습니다.

 

학습에 주어진 오리지날 불균형 데이터셋 D는 총 라지 K개의 클래스로 이루어져 있으며

각 클래스의 샘플 사이즈를 Nk로 나타내고 이들의 총 합이 N입니다.

 

모두 input output 라벨이 갖춰져 있고, N1이 가장 많은 샘플 사이즈를 가지고

차례로 Nk가 가장 적은 샘플 사이즈를 가지는 클래스입니다.

 

논문에서는 이러한 표기를 사용해도 데이터의 특성이 달라지지 않는다고 가정하고 있습니다.

 

학습 목표는 기존 학습과 비교했을 때 트레인셋에서 학습한 모델 f

테스트셋에서도 잘 작동하길 기대하는 것인데

이는 모든 분류/예측 문제에서의 궁극적 목표와 다르지 않습니다.

 

그 식은 아래와 같으며 앞으로 M2m 방법론이 이를 달성하는 과정을 보일 것입니다.


 

M2m은 소수 클래스의 데이터 샘플을 증강함으로써

클래스가 균형 잡힌 가상의 새로운 데이터셋 D bal을 생성합니다.

 

증강 데이터 샘플의 개수는 N1-Nk로써,

예시를 보면 가장 큰 샘플 사이즈를 가지는 N1의 크기에 맞추어

각 클래스에서 부족한 샘플 사이즈를 보강합니다.

 

그리고 새로운 데이터셋을 통해 모델 f 학습하게 될 것입니다.


 

그렇다면 소수 클래스 데이터를 어떻게 증강시킬 것인지를 살펴보겠습니다.

 

먼저 augment를 위한 소수 클래스 k를 설정하고

그보다 샘플 사이즈가 많은 다수 클래스 k0를 하나 선택합니다.

 

그리고 선택한 k0로부터 샘플 x0샘플링합니다.

 

이에 대해 다음과 같은 식에 따라 새로운 데이터 샘플 x*를 생성할 것입니다.

 

선택된 x0그래디언트 델만큼을 더한 x baseline 모델 g에 주어지면

소수 클래스 k에 할당되도록 loss function줄여나가고

동시에 이 x가 다수 클래스인 k0에 속하지 않도록 0보다 큰 람다를 곱한 제약항을 더해줍니다.


 

x*를 증강하는 것이 정말 효과적인지 확인하기 위해

해당 논문에서는 baseline 모델 g

true decision boundary 가지고 있는 oracle classifier라고 가정합니다.

 

g를 통해,

(g가 그런 출력을 한다는게 아니라 x* 최적화 과정에서 k 클래스에 포함될 수 있도록 유도하는 것)

즉 첫번째 term을 통해 소수 클래스 k가 증강된 데이터 샘플 x*를 포함하도록 만들어줄 수 있습니다.

 

그렇게 되면 이 g x0의 변형인 x* true feature를 갖도록 학습을 유도할 것입니다.

 

, x* k에 대한 특징 정보를 새롭게 구성할 수 있도록 유도한다고 볼 수 있습니다.

 

G true decision boundary를 가지니 그림처럼 각 클래스가 겹치는 부분이 없을테고

그러면 변형된 데이터는 소수 클래스 k에서 샘플링하여

데이터를 얻는 것과 완전히 동일하다고 할 수 있습니다.


 

하지만 실제로 baseline model g 역시 학습 대상이므로 oracle의 성질을 가질 수는 없을 것입니다.

 

그렇다면 g를 통해 x0에서 다수 클래스 k0 feature information을 잘 제거하는 것이 목표가 될겁니다.

 

이는 모델 g의 학습이 잘 이루어져야 한다는 것인데

증강 데이터를 생성할 다수 클래스의 샘플 사이즈 N_k0

너무 작으면 K0의 소수 데이터에 과적합되고

이는 애초에 g가 가진 k0의 특성 값 = 결정경계가 가진 정보의 정확성이 떨어질 수 있음을 의미합니다.

 

논문에서는 이 문제를 rejection criterion을 통해 극복하고 있는데

주어진 식에서 Nk0-Nk의 차이가 크면 소수의 지수승이므로 rejection 확률이 낮아지게 되고

반대로 차이가 적다면 베타 값에 가까운 확률로 x* reject하게 되므로

그래프와 같이 샘플 사이즈의 차이가 작을수록 reject 확률이 증가하게 됩니다.

 

즉, Nk0의 값이 작을 때 발생할 수 있는 문제를 수식에 그대로 적용한 것으로 판단할 수 있습니다.


 

다음으로 이 x0를 어떻게 고를까 즉 다수 클래스 k0를 어떻게 고를까에 대한 M2m의 설계입니다.

 

이 식을 만족하는 확률분포 Q에서 k0를 선택하여 선택된 k0에서 x0를 뽑을 것이라고 말합니다.

 

첫번째 term은 증강된 샘플을 학습에 사용할 확률을 높이는 방향으로 선택할 것임을 보입니다.

 

또한, 두번째 term은 가능한 다양한 클래스에서 x0를 선택할 수 있도록 설정한다는 것인데

H entropy로서 수식이 위와 같이 나타나고

기댓값 내부에서 모든 k0에 대해 Q(k0|k)를 최소화하여

특정 k0가 선택될 확률이 집중되지 않도록 설계했습니다.

 

이는 다양한 k0가 뽑힐 확률이 비슷하며 곧 다양한 class가 선택될 것임을 보여주고 있습니다.

 

H를 최대화할수록 확률분포 Q하늘색 분포에서

class가 뽑힐 확률이 비슷한 붉은색 분포를 보일 것입니다.

 

그럼 전체 식의 해는 이와 같이 구할 수 있는데

이를 통해 Q x* accept할 확률로 근사함을 도출하였습니다.


 

첫번째에서 네번째 줄은 증강 사이즈를 정의하고 그 이후부터 단일 샘플 x*를 얻는 과정을 나타냅니다.

 

(델타가 부족한 샘플 사이즈인데 각 클래스마다 그 델타만큼 반복문을 돈다!)


 

 

평가지표로는 bACC GM을 사용하였습니다.

 

이는 전체 정확도보다 소수 클래스의 성능도 충분히 반영하여

모든 클래스의 성능을 균형있게 고려하기 위해 채택되었습니다.

 

또한, long-tailed distribution을 가진 여섯가지 데이터셋에 대한 학습 결과를 비교하였습니다.


 

학습 성능이 기존 방법론들만큼, 그보다 높게 나왔음을 확인할 수 있습니다.


 

특히 라우터와 같이 극단적인 불균형 데이터셋에서 높은 성능을 보였습니다.


 

Ablation study에 따른 실험 결과들을 보여주고 있습니다.

먼저 시드 샘플 사이즈 풀이 다양해질수록 소수 클래스에 대한 정확도가 증가하였다고 합니다.


 

그 다음은 제약항 lambda의 포함 여부에 따른 학습 결과의 비교입니다.

 

0 이상의 람다를 포함하는 것이 성능 향상에 도움이 되었음을 보이고 있습니다.

 

식에서 의도한 k0의 특성을 잘 제거하였다고 해석할 수 있습니다.


 

표준 ERM 훈련 후 M2m을 적용하는 지연 스케줄링을 사용했을 때가

처음부터 M2m을 적용했을 때보다 더 좋은 성능을 보인다고 합니다.


 

M2m-rs-rand는 생성 샘플을 임의의 클래스로 라벨링하였을 때의 학습 결과입니다.

 

이는 모델 g가 소수 클래스에 잘 일반화되지 않아도 괜찮다는 가설을 토대로 하는데

성능 저하가 나타난 것으로 보아 증강의 효과가 잘 나타났음을 알 수 있습니다.


 

적대적 예제를 사용하는 것이 해당 방법론에서 중요하게 작동함을 보여주는 결과입니다.

 

적대적 예제를 사용하지 않은 clean 모델의 균형 정확도가 떨어졌음을 확인할 수 있습니다.

 

그 이유로는 x* 대신 x0가 사용되는 과정에서 소수 클래스에 x0 데이터가 쌓이게 되고

이는 x0의 특징이 남아있어 모델이 혼동을 가지게 되어 곧 성능 저하로 이어지기 때문입니다.

 

또한, x0와 가까운 x*adversarial input으로 작용하여 모델의 강건성을 더 높여주는 역할을 했는데

이러한 데이터의 부재로 인해 모델의 일반화 성능이 더 떨어진 것으로 판단됩니다.


 

학습 결과 임베딩을 시각적으로 나타낸 그림입니다.

 

각 클래스에 대해 잘 분류되었음을 확인할 수 있습니다.


 

각 모델에서 클래스별 합산된 False positive 샘플 수를 비교한 그래프입니다.

 

M2m이 클래스를 비교적 잘 할당하고 더 균일하게 분포하였음을 보여줍니다.


 

M2m의 오버 샘플링 방식이 클래스 불균형 문제를 효율적으로 해결하고

소수 클래스 데이터를 증강함으로써 과적합을 잘 방지하고 있다고 할 수 있습니다.

 

다음으로 실험을 통해 제약항 lambda가 증강 샘플의 적절한 클래스로 유도함을 보였습니다.

 

또한, 소수 클래스에 대한 학습에 adversarial examples이 중요하게 작동함을 보였습니다.

 

논문에서는 M2m의 일반화 성능 평가를 위해 더욱 다양한 실험이 필요하며

제약항과 샘플링 전략을 발전시킬 가능성이 있다며 정리하고 있습니다.


 

X*를 증강하는 방식으로는 k 클래스의 경계 근처에서만 증강되는 경향이 발생할 것입니다.

 

x0와 가까운 feature 값 갖는 x* 위주로 증강되는 경향이 있습니다.

 

따라서 만약 어떤 데이터가 k 클래스의 반대쪽 더 먼 경계 근처의 데이터라면

제대로 분류하지 못할 가능성이 있을 것으로 판단됩니다.

 

이에 대한 해결방안으로 증강되는 일부 데이터들에 대해 기존 k 클래스의 Center 값과

평균을 내어 증강될 데이터를 클래스 k의 중앙으로 이동시키는 방법을 고려해보았습니다.

 

물론 여전히 클래스 kcenter와 평균을 냄으로

증강된 데이터 또한 클래스 전체의 중앙에 분포시킨다고 하기는 어려울 것이라 판단됩니다.


여기까지 읽어주셔서 감사합니다.

설명 오류 지적 혹은 반박, 아이디어가 있다면 언제든 공유주세요!

(~˙∇˙)~📣

반응형