본문 바로가기
Concepts/ML & DL

[ML] Mini Batch / Batch Size / Iteration / Epoch

by Dobby1234 2024. 1. 12.

그림1

 

  • 전체 데이터를 더 작은 단위인 미니 배치(Mini Batch) 단위로 나누어서 학습을 한다
  1. 학습 시작
  2. 미니배치1(Minibatch1) 만큼만 가져가서 미니 배치에 대한 cost를 계산 
  3. 경사 하강법 수행 
  4. 미니배치2(Minibatch2) 만큼만 가져가서 미니 배치에 대한 cost를 계산 
  5. 경사 하강법 수행 
  6. 미니배치3(Minibatch3) 만큼만 가져가서 미니 배치에 대한 cost를 계산
  7. 경사 하강법 수행 
  8. 미니배치4(Minibatch4) 만큼만 가져가서 미니 배치에 대한 cost를 계산
  9. 경사 하강법 수행
  10. 미니배치5(Minibatch5) 만큼만 가져가서 미니 배치에 대한 cost를 계산
  11. 경사 하강법 수행 

이렇게 미니 배치 사이즈 만큼 학습이 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