- 전체 데이터를 더 작은 단위인 미니 배치(Mini Batch) 단위로 나누어서 학습을 한다
- 학습 시작
- 미니배치1(Minibatch1) 만큼만 가져가서 미니 배치에 대한 cost를 계산
- 경사 하강법 수행
- 미니배치2(Minibatch2) 만큼만 가져가서 미니 배치에 대한 cost를 계산
- 경사 하강법 수행
- 미니배치3(Minibatch3) 만큼만 가져가서 미니 배치에 대한 cost를 계산
- 경사 하강법 수행
- 미니배치4(Minibatch4) 만큼만 가져가서 미니 배치에 대한 cost를 계산
- 경사 하강법 수행
- 미니배치5(Minibatch5) 만큼만 가져가서 미니 배치에 대한 cost를 계산
- 경사 하강법 수행
이렇게 미니 배치 사이즈 만큼 학습이 1회 끝나면 1 에포크(Epoch)*가 끝난다
*에포크(Epoch): 전체 훈련 데이터가 학습에 한 번 사용된 주기
미니 배치 학습에서는 미니 배치의 개수만큼 경사 하강법을 수행해야 전체 데이터가 한 번 전부 사용되어 1 에포크(Epoch)가 된다. 미니 배치의 개수는 결국 미니 배치의 크기를 몇으로 하느냐에 따라서 달라지는데 미니 배치의 크기를 배치 크기(batch size)*라고 한다.
- 배치 경사 하강법: 전체 데이터에 대해서 한 번에 경사 하강법을 수행하는 방법
- 경사 하강법을 할 때, 전체 데이터를 사용하므로 가중치 값이 최적값에 수렴하는 과정이 매우 안정적이지만 계산량이 많이 든다
- 미니 배치 경사 하강법: 미니 배치 단위로 경사 하강법을 수행하는 방법 (위의 그림1)
- 경사 하강법을 할 때, 전체 데이터의 일부만을 보고 수행하므로 최적의 값으로 수렴하는 과정에서 값이 조금 헤매기도 하지만 훈련 속도가 빠름
* 배치 크기(Batch Size)
- 보통 2의 제곱수를 사용함
ex) 2, 4, 8, 16, 32, 64...
(그 이유: CPU와 GPU의 메모리가 2의 배수이므로 배치크기(batch size)가 2의 제곱수일 경우에 데이터 송수신의 효율을 높일 수 있기 때문이다)
* 이터레이션(Iteration)
- 한 번의 에포크(Epoch) 내에서 이루어지는 매개변수인 가중치 W와 b의 업데이트 횟수
- 전체 데이터가 그림 1에서 1,000개 일 때 배치 크기를 200으로 하면 이터레이션(iteration)의 수는 총 5개이며, 이는 한 번의 에포크(Epoch) 당 매개변수 업데이트가 5번 이루어진다는 것을 의미한다
[참고]
03-06 미니 배치와 데이터 로드(Mini Batch and Data Load)
이번 챕터에서 배우는 내용은 선형 회귀에 한정되는 내용은 아닙니다. 이번 챕터에서는 데이터를 로드하는 방법과 미니 배치 경사 하강법(Minibatch Gradient Descen…
wikidocs.net
'Concepts > ML & DL' 카테고리의 다른 글
Object Detection: R-CNN, Fast R-CNN, Faster R-CNN 요약 (1) | 2024.01.11 |
---|---|
Few-Shot Learning (1) | 2023.12.10 |
Convolutional Neural Network(CNN or ConvNet) (1) | 2023.11.20 |