파일로 존재하는 vanilla data를 모델에 학습하기 위해서 추가적은 과정을 작업한 dataset이 필요하다.
pipeline중 Data processing 부분을 거치는 것이다.
Pre-processing : 전처리
생각보다 시간이 오래걸리고 중요한 단계이다. 데이터의 반 정도만 쓸 수 있는 상태여도 다행인 정도로 현업에서는 noise가 많은 데이터들이 있다. 학생들은 모델이 주요 작업이라고 생각하지만, 실제로 일하는 사람들에게는 전처리가 가장 힘들고 어려운 과정이다. competition 데이터는 많이 정갈하게 분류된 데이터이다. 좋은 데이터를 모델에 넣어주는 것이 성능이 좋아지는 것은 자명한 사실이다.
Image가 가질 수 있는 meta data
Bounding Box
사진에서 원하는 object만 표시
그 object를 나타내는 박스를 표시하고 그 이외의 부분(noise)을 삭제(잘라내기)하고 학습하면 필요없는 정보들은 제거되기 때문에 좀 더 나은 성능을 발휘할 수 있다. 어떤 부분이 내가 원하는 target이냐를 정확하게 지정해주는 것이다.
Resize
계산의 효율을 위해 사이즈 변경(작업의 효율화)
처리와 계산이 복잡해지기 때문에 빠른 학습을 위해서 reize를 한다.
원본으로 한다고 한들 성능에 많은 영향을 끼치지 않는다. 사이즈가 사진마다 다르기 때문에 맞추는 작업도 필요하다.
ex. APTOS Blindness Detection
이미지데이터에서의 전처리는 일괄적으로 처리를 한다고 했을 때, 이미지가 발생한 도메인의 종류에 따라 달라지게 될 것이다. 특수한 도메인에서 특정 전처리가 잘 작용한다는 것들이 존재한다.
Generalization
Bias & Variance
여러 데이터 분포가 있을텐데, 학습을 너무 많이 진행하면 모델의 복잡도 너무 증가하게 된다. 세세한 부분까지 모델이 cover하게 되기 때문에 high variance라고 한다. 모든 데이터에 노이즈가 존재하는데, 엄청 overfitting하면 그 노이즈까지 fitting하게 되는 것이다.
underfitting은 데이터를 너무 고려하지 않은 경우이다. 데이터를 충분히 학습하지 못했기 때문에 편향된 결과를 가져오게 된 것이다.
Train/Validation
보통 train 셋 중에서 검증 set을 떼어내어서 사용한다. train할 데이터가 줄어들긴하지만 나누어야하는 이유는 학습된 결과를 test해보기 위해서 학습에 사용되지 않는 데이터로 시험해보는 것이다.
테스트 set은 전혀 건드리면 안 된다.
Data Augmentation
주어진 데이터가 가질 수 있는 경우와 상태를 다양화하여 데이터를 일반화하는 과정
수집된 데이터의 도메인에서 수집할 수 있는 경우를 다 담은 dataset이라면 noise에 robust하게 모델이 결과를 낼 수 있을 것이라는 생각에서 출발하였다. 다양한 노이즈가 섞인 데이터를 만들어 다양한 데이터를 학습한 효과를 누릴 수 있다.
torchvision.transforms에 적용할 수 있는 함수들이 많다.
하지만 마스크를 썼는지 아닌지를 판별하는 상황에서 flip된 input이 들어올 일은 거의 없기 때문에 flip augmentation 은 의미가 있을까를 고민해보아야 한다.
transforms.Compose([
Resize(),
Normalize()...])
compose함수를 사용해서 여러 transform을 결합해서 사용할 수 있다.
albumentations에도 다양한 효과가 있다.
모든 전처리 과정들이 좋은 결과를 가져다 주지만은 않는다. 문제의 정의를 바탕으로 당위성이 있을까를 판단해서 적용하는 것이 좋다.
'부스트캠프 AI Tech 3기 > 프로젝트 : P-stage' 카테고리의 다른 글
[Day40] Movie Rec 2. Research Directions and Resources (0) | 2022.03.21 |
---|---|
[Day40] Movie Rec 1. 추천 시스템 개요 및 대회 소개 (0) | 2022.03.21 |
[Day22] 이미지분류 2. Image Classification & EDA (0) | 2022.02.27 |
[Day22] 이미지분류 1. Competition with AI Stages! (0) | 2022.02.24 |
[Day22] key파일로 SSH 서버 VS code에 연결 & Github (0) | 2022.02.22 |