ML/AI/SW Developer

Week4(pstage) - day2

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
        • 더 빠르고 다양한 기능

1.2 Data Generation

  • Data Feeding
    • Data Generator와 모델의 속도 차이 확인
    • 이런 속도를 맞춰주는 것 또한 중요하다
      • E.g. Transform의 순서에 따라 속도가 다르다
  • torch.utill.dataset
    • Dataset -> init에서 다 처리 하자?
    • DataLoader -> Dataset에서 효율적으로 데이터를 뽑아내기 위한 모듈

2. 경진대회 진행

  • Data Augmentation

  • Model change
    • Resnet -> Vision transformer
    • Augmentation 후 resnet-50기반 모델을 학습시켜 보았으나 오히려, 학습이 잘 되지 않았다. 데이터의 라벨링도 확인해 보았지만 딱히 데이터 상의 문제는 보이지 않았다. 따라서, 성능이 좋다는 vit 모델을 적용해보았다.
  • 향후 계획
    • 18class 학습이 아닌 3종류 (마스크 착용상태, 성별, 나이) 3가지를 따로 분류하는 모델을 만들고, 예측 결과를 합쳐서 하나의 class로 만들면 모델이 추론해야하는 복잡도가 줄어들기 때문에 학습이 더 쉬워지지 않을까 예상한다.