Mini Batch
-
전체 데이터를 더 작은 단위로 나누어 해당 단위로 학습하는 개념
-
미니 배치 학습을 하게되면 미니 배치만큼 가져가서 미니 배치에 대한 비용을 계산하고 경사 하강법을 수행
- 이후, 다음 미니 배치를 가져가서 경사 하강법을 수행하고 마지막 미니 배치까지 반복 → 1 Epoch
-
배치 경사 하강법: 전체 데이터에 대해 한 번에 경사 하강법을 수행하는 방법
- 전체 데이터를 사용하므로 가중치 값이 최적값에 수렴하는 과정이 매우 안정적이지만, 계산량이 너무 많음
-
미니 배치 경사 하강법: 미니 배치 단위로 경사 하강법을 수행하는 방법
- 데이터의 일부만을 보고 수행하므로 최적값으로 수렴하는 과정에서 값이 조금 헤매기도 하나, 훈련 속도가 빠름
Iteration
Total Data = Batch Size * Iteration
PyTorch Data Load
-
데이터를 조금 더 쉽게 다룰 수 있도록 유용한 도구로서 Dataset과 Data-Loader를 제공
- 미니 배치 학습, 데이터 셔플, 병렬 처리까지 간단히 수행 가능
-
Tensor를 입력받아 Dataset의 형태로 변환해주는 TensorDataset
-
DataLoader는 기본적으로 2개의 파라미터를 입력받음
- 데이터셋, 미니 배치의 크기
- 미니 배치의 크기는 통상적으로 2의 배수를 사용
- shuffle=True는 Epoch마다 데이터셋을 섞어서 데이터가 학습되는 순서를 바꿈
Custom Dataset
- torch.utils.data.Dataset을 상속받아 직접 커스텀 데이터셋을 만드는 경우도 있음
- torch.utils.data.Dataset은 PyTorch에서 데이터셋을 제공하는 추상 클래스