[AI Competition Tutorial] Datasets
Datasets
1. Datasets Overview
- Dataset 준비 :
주어진 vanilla data를 모델이 좋아하는 형태의 Dataset으로 바꾸기

2. Pre-Processing
2.1. Data Science is..
- Data Science라는 직업에서 가장 많이 비중을 차지하는 것은?
- 학생들 : 모델 개발..? 알고리즘..?
- 현업자 : 데이터 전처리.... 80%는 데이터 전처리...
- 보통 경진대회용 데이터는 그 품질이 매우 양호한 편이다.
- 실제 프로젝트에서는 경진대회보다 데이터가 정제되지 않은 경우가 대부분..
- 따라서 현업에서는 Data Mining 단계도 매우 중요!

2.2. Image Preprocessing : Bounding Box
- 가끔 필요 이상으로 많은 정보를 가지고 있기도 하다.
- 따라서 원하는 정보만 보기 위해 bounding box를 이용해 이미지에서 일부를 잘라낼 수 있다.

2.3. Image Preprocessing : Resize
- 계산의 효율을 위해 적당한 크기로 사이즈 변경
- ex) original 이미지 해상도 5000 x 4000
=> 일주일 동안 학습 불가.. => 크기 조정 필요
- 이미지 사이즈를 통일하기 위해서 진행하기도 함
2.4. Example:APTOS Blindness Detection
- 이미지 전처리 방식은 도메인, 데이터 형식에 따라 정말 다양한 case가 존재한다.
- 특히 medical 적인 이미지들은 전처리를 논문에서도 많이 제안하고 있다.
- APTOS Blindness Detection 이미지 전처리 예시
- 의료적 시스템이 잘 갖춰지지 않은 지역의 경우,
좋은 장비가 없고 병원이 부족해서 실명 조기 진단이 어려움
- 따라서 사진으로 실명 조기 진단을 할 수 있는 프로젝트를 진행
- 사진의 특징이 좀 더 잘 보이게 전처리를 진행
(좌: 비정상, 우: 정상)

- 이렇게 이미지의 경우 좀 더 특징을 살리기 위해 전처리를 하기도 함
3. Generalization
3.1. Bias & Variance
- 학습이 너무 안됐거나, 학습이 너무 되었을 때에는
추론이 제대로 진행되지 않음

- underfitting: High bias, 너무 데이터를 고려하지 않음
- overfitting: High variance, 너무 학습 데이터에만 특화됨
- 데이터를 이용해 underfitting, overfitting을 완화할 수 있다.
3.2. Train / Validation
- 훈련 셋 중 일정 부분을 따로 분리, 검증 셋으로 활용

- 검증하는 절차를 통해서 일반화가 잘 되었는지 확인하는 절차
3.3. Data Augmentation
- 주어진 데이터가 가질 수 있는 case(경우)와 state(상태)의 다양성을 높이는 것이 목표

- 모델이 노이즈에 robust하게 학습될 수 있게 하기 위해 진행, 데이터양을 늘리기 위해서도 사용
- Data Dugmentation Tip:
문제가 만들어진 배경과 모델의 쓰임새를 살펴보면 augmentation 방법에 대한 힌트를 얻을 수 있다!
3.4. Augmentation 라이브러리
- Image에 적용할 수 있는 다양한 함수들이 존재
- 다만 도메인에 따라 flip이 안될 수도 있고 돌리는 게 안될 수도
- 따라서 도메인 이해가 선행되어야 함
- transforms의 종류는 많고 사용은 간편하다

2) Albumentations
- 더 빠르고 더 다양한 기능
- blur, Colorjitter, Gaussian Blur, MultiplicaateNoise, CLAHE, Equalize, GlassBlur, RGBShift, ChannelDropout, FancyPCA, MedianBlur, RandomBrightnessContrast, ChannelShuffle, GaussNoise, MotionBlur, RandomFog 등
- albumentations github

3.5. 당부하는 말
- '무조건'이라는 단어를 제일 조심하자.
- 어떤 방법론도 항상 좋은 결과를 가져다 주지는 않는다.
- 함수들은 여러가지 도구 가운데 하나일 뿐이고,
무조건 적용 가능한 마스터키 같은 것도 사실 없다.
- 앞서 정의한 problem(주제)을 깊게 관찰해서,
어떤 기법을 적용하면 이러이러한 다양성을 가질 수 있겠다 가정하고,
그 가정을 실험으로 증명해야 한다.