분석시각화 대회 코드 공유 게시물은
내용 확인 후
좋아요(투표) 가능합니다.
[private 13th] model generalization 개선 방법
개인 일정으로 시간이 많이 없어, 좀 더 다양한 모델을 찾아보진 못했지만, 기존에 알고 있었던 모델 일반화 향상 방법들을 적용해 보았습니다.
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를 하였습니다.
데이콘(주) | 대표 김국진 | 699-81-01021
통신판매업 신고번호: 제 2021-서울영등포-1704호
서울특별시 영등포구 은행로 3 익스콘벤처타워 901호
이메일 dacon@dacon.io | 전화번호: 070-4102-0545
Copyright ⓒ DACON Inc. All rights reserved