[BoostCamp AI] Generalization & Data Generation 정리
Generalization
-
Bias & Variance
- 학습 진행이 얼마 안한경우 : High Bias → Underfitting
- 데이터를 너무 고려하지 않은 경우(데이터가 적은 경우에 생긴다)
- 학습 진행이 너무 된 경우 : High Variance → Overfitting
- 노이즈까지 학습이 된 경우
- 학습 진행이 얼마 안한경우 : High Bias → Underfitting
-
Train/Validation
- 훈련 셋 중 일정 부분을 따로 분리, 검증 셋으로 활용
- 학습은 train set에 fitting되는 과정인데 validation set을 사용하여 학습되지 데이터를 가지고 편향되었는지 확인하는 과정이 필요하다.
-
Data Augmentation
- 주어진 데이터가 가질 수 있는 경우(case), 상태(state)의 다양성
- 데이터에 있을 수 있는 다양한 노이즈를 넣어서 학습시켜 나중에 노이즈가 들어온 데이터를 제대로 판단하는데 도움을 줄 수 있다.
-
torchvision.transforms
- Image에 적용할 수 있는 다양한 함수들이 있다.
-
Albumentations
- transforms 보다 빠르고 다양한 것들을 제공해주는 라이브러리이다.
Data Generation
-
Data Feeding
-
Feed = 대상의 상태를 고려해서 적정한 양을 준다.
-
모델에 먹이(Data)를 주다?
- 모델의 계산이 20 batch/s인데 Data Generator가 10 batch/s라면 성능은 10 batch/s이다.
- Data Generator가 30 batch/s인데 모델이 20 batch/s라면 성능은 20 batch/s이다.
- 즉, 성능은 min(model(batch/s), Data Generator(batch/s))을 따라간다.transform = transforms.Compose([ transforms.ToTensor(), transforms.RandomRotation([-8,8]), transforms.Resize([1024,1024]) ]) transform = transforms.Compose([ transforms.ToTensor(), transforms.Resize([1024,1024]), transforms.RandomRotation([-8,8]) ])
-
위와 아래의 경우 시간차이가 많이 난다.
-
-
torch.utils.data
- Datasets
- Vanilla Data를 Dataset으로 변환
- Dataset 구조
- Datasets
from torch.utils.data import Dataset # Dataset 라이브러리 상속
class MyDataset(Dataset):
def __init__(self): # MyDataset이 처음 선언되었을 때 호출
pass
def __getitem__(self, index): # 데이터 중 index 위치의 아이템을 리턴
return None
def __len__(self): # MyDataset의 전체 길이 리턴
return None
- DataLoader
- 내가 만든 Dataset을 효율적으로 사용할 수 있도록 관련기능 추가
train_loader = torch.utils.data.DataLoader(
train_set,
batch_size=batch_size,
num_workers=num_workers,
drop_last=True)
- Dataset과 DataLoader는 분리되는 것이 좋다
- 둘의 하는 일이 엄연히 다르다.
Author And Source
이 문제에 관하여([BoostCamp AI] Generalization & Data Generation 정리), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@emeraldgoose/generationdatageneration저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)