본문 바로가기

부스트캠프 AI Tech/[Week4] Image classification

[Week4] Image classification - Class imbalance

*Class imbalance

  • Class imbalance : 어떤 데이터에서 각 클래스(주로 범주형 변수)가 갖고 있는 데이터의 양에 차이가 큰 경우
  • class imbalance는 어떤 문제를 발생시킬까?
    • 데이터가 적은 소수의 클래스의 의견에 귀를 기울이지 못하면 일반적인 경우를 예측하는데에 한계가 있음
    • 따라서 overfitting을 막고, generalization gap을 줄이기 위해서는 Class imbalance 문제를 해결 해야함
    • ex) class imbalance - 4번 클래스는 4000개의 데이터가 있는 반면 8, 11, 14, 17번 클래스는 약 100개에도 못미친다. 따라서 small data에 대한 bias를 가질 수 밖에없고, 일반적인 경우를 예측해내기 힘듦


 

*여러가지 Solution

 

1. Weight balancing 

  • Weight balancing은 Train 데이터에서 각 loss를 계산할 때 특정 클래스에 대해서는 더 큰 loss를 계산해주는 것
  • 또 다른 방법으로는 클래스의 비율에 대해 가중치를 두는 방법. ex) 두개의 클래스 비율이 1:9라면 가중치를 9:1로 줌으로써 전체 클래스의 loss에 동일하게 기여하도록 함
  • Focal loss
    • 딥러닝 분류 모델 A,B,C라는 다중 클래스가 존재하고, A클래스로 분류하기 쉽지만 상대적으로 B,C 클래스는 분류하기 힘들다고 가정.
    • 100번의 Epoch를 실시할 것이고 10번의 Epoch만에 99%의 정확도를 얻었다고 가정
    • 아무런 조치가 없다면 나머지 90번의 Epoch를 시행하는 동안 이미 A클래스를 쉽게 분류할 수 있음에도 계속적으로 A클래스 데이터에 대한 loss값이 기여할 것임
    • 그렇다면 A클래스의 loss가 기여하는 시간동안 B,C 클래스 데이터에 더 집중을 하면 전체적인 분류 정확도가 높아지지 않을까?
    • 즉 1번의 Epoch를 실시하고 loss에 의한 역전파를 통해 파라미터를 업데이트 하는데 이 순간에 loss를 계산할 때 현재까지 클래스별 정확도를 고려하여 가중치를 준다
    • 위 그림처럼 한번의 epoch가 시행된 후 모든 클래스에 똑같은 가중치값을 부여하는 것이 아닌 분류성능이 높은 클래스에 대해서는 Down-weighting(가중치를 낮게 부여)을 함
    • 감마값이 Down-weighting 값을 의미 -> Down-weighting 방법은 분류가 힘든 클래스를 더욱 훈련시키는 효과

 

 

2. Oversampling & Undersampling

 

  •  Undersampling
    • 현저히 양이 많은 파란색 데이터를 양이 적은 주황색 데이터에 맞춰주는 것
    • 이 때 양을 줄여버린 파란색 데이터들은 양이 많았떤 원본 파란색 데이터의 대표성을 잘 지니는것이 중요
  • Oversampling
    • 양이 적은 주황색 데이터를 양이 많은 파란색 데이터에 맞춰주는 방법
    • 주황색 데이터의 양을 늘려줄 떄 원본 주황색 데이터를 복사하는 개념이기 때문에 양이 늘어난 주황색 데이터는 양이 적었떤 주황색 원본 데이터의 성질과 동일