*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
- 양이 적은 주황색 데이터를 양이 많은 파란색 데이터에 맞춰주는 방법
- 주황색 데이터의 양을 늘려줄 떄 원본 주황색 데이터를 복사하는 개념이기 때문에 양이 늘어난 주황색 데이터는 양이 적었떤 주황색 원본 데이터의 성질과 동일
'부스트캠프 AI Tech > [Week4] Image classification' 카테고리의 다른 글
[Week4] Image classification - Ensemble (0) | 2021.08.27 |
---|