[AITech][Image Classification] 20220222 - Dataset
본 포스팅은 번개장터의 ‘김태진’ 강사 님의 강의를 바탕으로 제작되었습니다.
학습 내용
이번 포스팅에서는 Dataset에 대한 인사이트를 얻어봅시다.
Dataset
여기서 말하는 Dataset
은 초기 데이터 그 자체가 아니라, 모델이 좋아하는 형태로 변환한 데이터셋을 의미합니다.
Preprocessing
보통 현업에서는 데이터를 수집하고, 전처리하는 과정에 80% 이상의 시간을 쏟기도 한다고 합니다. 그만큼 좋은 성능을 얻기 위해서는 좋은 데이터셋이 필수적이죠.
Bounding Box
이미지가 필요 이상으로 많은 정보를 가지고 있는 경우 bounding box를 이용해 우리가 원하는 객체의 위치만 표시할 수 있습니다.
Resize
모델이 원하는 형태의 입력 크기, 또는 계산의 효율을 위해 이미지의 사이즈를 변경합니다.
Generalization
Bias&Variance
일반화 성능 이야기가 나올 때 빠지지 않고 나오는 것이 바로 과소적합과 과대적합이죠. 과소적합은 ‘편향이 크다’라고 하고, 과대적합은 ‘분산이 크다’라고 합니다. 그리고 편향과 분산은 trade-off 관계입니다.
Train/Validation
훈련 중에 모델의 일반화 성능을 측정할 수 있는 방법으로 검증 데이터셋의 사용이 있습니다. 테스트 데이터셋은 어떤 경우에도 마지막까지 사용하면 안되므로, 훈련 데이터셋을 training-validation으로 나눠서 사용합니다.
Data Augmentation
앞에서 Preprocessing에 대해 봤었는데요, Augmentation 또한 이미지를 조작하는 것이지만 그 목적이 ‘모델의 일반화 성능 향상’에 있습니다. 이미지에 일부러 잡음을 추가하거나 잘라내는 등의 기법을 통해 모델이 테스트셋에 좋지 않은 데이터가 있을 때를 대비하게 할 수 있고, 따라서 모델이 강건(robust)해집니다.
Libraries
Data Augmentation을 수행할 수 있는 라이브러리로 대표적으로 torchvision.transforms
와 Albumentations
가 있습니다.
torchvision.transforms
Albumentations
이러한 data augmentation은 모델의 성능을 향상시킬 수 있는 실험들 중 하나이지, 무조건 향상시킨다는 보장은 없습니다. 따라서 앞서 정의한 Problem(주제)을 깊이 관찰해서 어떤 기법을 적용하면 좋겠다라고 가정하고 실험으로 증명해야 합니다.
Leave a comment