세 직교 전략, 자주 결합
대부분 real-world classification 문제가 skewed class distribution: 99% normal transaction, 1% fraud. naive train 하면 model 이 'always predict normal' 학습 — 완벽 accuracy, 0 utility. 세 도구, 점점 공격적:
- Weighted sampling — DataLoader 가 어떤 sample pick 하는지 변경. rare class oversample; model 이 더 자주 봐.
- Loss 의 class weight — sampling 비례 유지하지만 rare-class 실수 더 count.
nn.CrossEntropyLoss(weight=...). - Focal loss — extreme imbalance (1:1000+) 위, easy example down-weight 하게 loss 수정. RetinaNet 원조.
자유롭게 결합. class weight 시작 (가장 쉬움, hyperparameter 가장 적음); 부족하면 weighted sampling 추가; 진짜 extreme case 위 focal loss 잡기.
피할 함정
rare class oversample AND class weight 적용하면 double-weight. 하나 고르거나 둘 다 신중히 tune. focal loss 도 같은 logic — α parameter 자체가 class weight.