TASK
: 마스크 착용여부, 성별, 나이를 기준으로 총 18개의 클래스 분류- 진행 기간: 2021.03.29 ~ 2021.04.08
f1-score
: 0.7372accuracy
: 79.3651%등수
: 74
- 1) 마스크 착용 여부
아키텍처
: resnext50d_32x4dtraining time augmentation
: HueSaturationValue, center crop (380, 350)img_size
: 512, 384loss
: cross-entropyoptimizer
: AdamW(weight_decay=1e-2)sheduler
: CosineAnnealingWarmRestarts(T_0=10, T_mult=1, eta_min=1e-3)
- 2) 성별 구분, male age, female age
아키텍처
: tf_efficientnet_b3_nstraining time augmentation
: RandomBrightnessContrast, HueSaturationValue, CLAHE, center crop (380, 350)img_size
: 512, 384loss
: (cross-entropy)x0.3 + (f1-score)x0.7optimizer
; Adam(lr=1e-5, weight_decay=1e-5)sheduler
: CosineAnnealingWarmRestarts(eta_min=1e-7)
- 피어세션을 진행하면서 여러 아이디어들이 있음을 알게 되었고
협업
의 중요성을 알게 되었습니다.
- 인상깊었던 아이디어 : 세 개의 클래스를 각각 나누어 진행하는 방법에 대해 마지막 layer에서 8개의 결과값(마스크 유무 3개, 성별 2개, 나이 3개)으로 각각 loss를 적용시켜주는 방법
- U-stage 팀원들과 계속 소통을 하는데 좋은 자료나 아이디어를 적극적으로 공유를 해주어 많은 도움이 되었습니다.
- 여러가지 augmentation 방법 (CLAHE, IAAPerspective)
- loss (cross-entropy + f1-score)
- data labeling (60세 이상의 data의 boundary를 낮추는 방법)
- 경험을 통해 공유했던 내용
- 리더보드의 채점 기준이 f1-score이므로 f1-score에 가중치를 주는 방법 ex) (cross-entropy)x0.3 + (f1-score)x0.7
- 여자, 남자의 나이를 따로 분류하는 방법
- 여자와 남자 나이를 분류할 때 3개의 class가 아닌 5개의 class로 나눈 뒤 3개로 합치는 방법 ex) 20이하 / 29이하 / 45이하 / 57이하 / 나머지
- 다양한 아이디어를 시도해보지 못해 아쉬웠습니다.
- 18개 class 기준으로 분류 진행
- 마지막 layer에서 8개의 결과값(마스크, 성별, 나이)으로 각각 loss 적용시켜주는 분류
- cutmix, test time augmentation
- 여러 모델을 사용해 보지 못해 아쉬웠습니다.
- resnet, efficientnet 계열만 사용했습니다.
- 여러 model을 한번에 돌리는 code를 구현해보지 않았습니다.
- EDA의 중요성을 느끼게 되었습니다. 다음 stage에서 EDA에 더욱 집중해야겠다는 생각이 들었습니다.
- 다음 stage에서는 Argparse 모듈을 사용해 볼 계획입니다.
- 시도해 본 경험을 다음 stage에서는 조금 더 깔끔하게 정리할 계획입니다.
- tensorboard or wandb를 활용해 볼 계획입니다.