저해상도 조류 이미지 분류 AI 경진대회

알고리즘 | 월간 데이콘 | Vision | 분류 | Macro F1 Score

  • moneyIcon 상금 : 인증서 + 데이스쿨
  • 891명 마감

 

[Private 5위 0.98221]RandomSampler +LabelSmoothing + Ensemble

공동작성자

stroke
2024.05.06 18:28 845 조회 language

[Summary]
1) Data Augmentation 실험
     - 일반적인 이미지 증강 적용 (RandomVerticalFlip 적용시 성능 하락)
2) RandomSampler 적용 (성능 급 상승)
3) Loss Function 실험
     - CrossEntropyLoss (label_smoothing = 0.11) 적용
4) 모델 Fine-Tuning 실험
     - 모델 1 : timm/eva_large_patch14_196.in22k_ft_in22k_in1k ➢ Public LB : 0.9778923597
     - 모델 2 : timm/beitv2_large_patch16_224.in1k_ft_in22k_in1k ➢ Public LB : 0.9743078139
     - 모델 3 : microsoft/swinv2-large-patch4-window12to16-192to256-22kto1k-ft ➢ Public LB : 0.973297775
5) 최종 Ensemble 제출(Submit)
     - 최종 모델 Top 3 Hard Voting 제출
      (최종 : Public LB: 0.97912, Private LB : 0.98221)
※ Base Code 참조 : 파이썬초보만님 – SwinV2 baseline (https://dacon.io/competitions/official/236251/codeshare/10371?page=1&dtype=recent)
※ 아래 코드는 "eva_large" 대표 코드이며, 아래 주석 2개를 교체하여 학습한 후 나온 결과 submission file 3개를 하드 포팅한 결과 Private LB 5위 Score 임
[소견]
 "Transformer" 계열의 모델에서 좋은 성능을 확인할 수 있었고 다양한 Image Patch 처리 방안의 효과를 분석하며 최적의 모델을 찾는 실험을 반복하였습니다.
마지막까지 실험 및 앙상블을 시도한게 주요하게 먹힌 대회였습니다. 한달 동안 고생하셨습니다 :)

PDF
코드
로그인이 필요합니다
0 / 1000
DM_MSI
2024.05.06 20:22

좋은 코드 공유 감사합니다!!

hyun5ooo
2024.05.06 21:01

감사합니다

co1dtype
2024.05.07 01:55

코드 잘 읽었습니다. RandomSampler가 성능에 대해 어떻게 영향을 끼쳤는지가 좀 궁금하네요.
소수의 몇 개 label을 제외하고 대부분 balanced되어 있는 상태지만 Stratified sampling을 해야한다고 생각했거든요.
왜 성능차이가 발생했는지에 대해 어떻게 생각하시나요

byc3230
2024.05.07 11:11

윗단에 StratifiedKFold 를 shuffle = True 로 이미 균형있게 클래스 별로 Train / Valid Data Set 은 이미 나눠진 상태로 Dataloader 시점시 반복적으로 배치 데이터를 뽑아낼때 한번더 랜덤하게 데이터를 뽑아내서 학습시킨다는 표현이 맞아 보입니다.

basslibrary
2024.05.07 10:47

저는 DataLoader 의 shuffle = True 옵션만 사용했는데, 확인해보니 내부적으로 RandomSampler를 사용하도록 구현되어 있네요.
byc3230님 덕분에 torch에 다양한 Sampler가 구현되어 있는 것도 알았습니다.
WeightedRandomSampler는 어떨지 나중에 한번 사용해 봐야겠습니다.

비비드백
2024.05.07 19:00

좋은 코드 공유 감사합니다!! :) 

dokpin
2024.05.08 01:11

코드 공유 감사드립니다. 고생많으셨습니다~