1. 개인학습
1.1 Dataset
- Vanilla Data를 모델이 좋아하는 형태로 바꾸기
- Pre-processing
- Data Science의 80% 부분 차지
- Model, Etc… 20%
- 좋은 데이터를 모델에 넣어주는게 좋은 결과를 가져다주는 것은 자명한 사실!
- 이미지 전처리
- bounding-box
- Resize: 계산의 효율을 위해 적당한 크기로 사이즈 변경
- 도메인, 데이터 형식에 따라 정말 다양한 Case가 존재
- Generalization
- Bias & Variance
- 학습이 너무 안됐거나, 학습이 너무 됐거나
- (under/over fitting) - (high bias / high variance)
- Train / Validation
- Validation: 일반화 됬는지? 판단하기위해 필요
- Data Augmentation
- 주어진 데이터가 가질 수 있는 경우
- E.g. 자율주행 -> 밤/ 폭우/ 폭설/…
- Augmetation 라이브러리
- torchvision.transforms
- RandomCrop
- Flip -> 마스크 데이터에 굳이 필요할까? 무의미한 처리방식
- Compose -> 여러 처리를 한번에 적용
- Albumentations
- 더 빠르고 다양한 기능
- torchvision.transforms
- Bias & Variance
1.2 Data Generation
- Data Feeding
- Data Generator와 모델의 속도 차이 확인
- 이런 속도를 맞춰주는 것 또한 중요하다
- E.g. Transform의 순서에 따라 속도가 다르다
- Data Generator와 모델의 속도 차이 확인
- torch.utill.dataset
- Dataset -> init에서 다 처리 하자?
- DataLoader -> Dataset에서 효율적으로 데이터를 뽑아내기 위한 모듈
2. 경진대회 진행
-
Data Augmentation
- Model change
- Resnet -> Vision transformer
- Augmentation 후 resnet-50기반 모델을 학습시켜 보았으나 오히려, 학습이 잘 되지 않았다. 데이터의 라벨링도 확인해 보았지만 딱히 데이터 상의 문제는 보이지 않았다. 따라서, 성능이 좋다는 vit 모델을 적용해보았다.
- 향후 계획
- 18class 학습이 아닌 3종류 (마스크 착용상태, 성별, 나이) 3가지를 따로 분류하는 모델을 만들고, 예측 결과를 합쳐서 하나의 class로 만들면 모델이 추론해야하는 복잡도가 줄어들기 때문에 학습이 더 쉬워지지 않을까 예상한다.