음성 감정 인식 AI 경진대회 월간 데이콘

알고리즘 | 음향 | 감정인식 | 분류 | Accuracy

  • moneyIcon 상금 : 인증서
  • 828명 마감

 

[private 13th] model generalization 개선 방법

2023.06.05 13:09 1,108 조회 language

개인 일정으로 시간이 많이 없어, 좀 더 다양한 모델을 찾아보진 못했지만, 기존에 알고 있었던 모델 일반화 향상 방법들을 적용해 보았습니다.

optimizer : SAM
- Validation Acc와 Test Acc의 차이를 줄여주는 최적화 방법입니다.
- 제 코드로 학습했을 때, Validation Accuracy와 Test Accuracy의 차이가 거의 없었습니다.
- 대신, 학습 시간은 2배 정도 더 소요되었습니다.

Loss : ASLLoss
- Class imbalance와 Mislabeled 문제를 해소해주는 Loss function입니다.

sampler : WeightedRandomSampler
- CrossentropyLoss같은 Loss 함수에는 weights 변수가 있습니다. 각 클래스당 가중치를 계산하여 weights 변수에 할당하여 Class imbalance를 해소하는 방법이 있지만,
   데이터가 적은 Class의 데이터가 재학습되는 문제점이 있습니다.
- sampler를 이용한다면, weights 변수에 할당하는 방법보다 더욱 모델 일반화를 달성할 수 있습니다.

Ensemble : StratifiedKfold + soft Voting
- 5 fold로 Class 비율을 동등하게 데이터셋을 분할하여 각각 학습하였습니다.
- Inference 할 때, hard voting을 한다면, 빈도가 가장 높은 Class가 2개일 경우 잘못된 데이터를 최종 예측값으로 도출하는 경우가 있을 수 있어, soft voting으로 Inference를 하였습니다.

코드