Skip to content

Batch size

배치 크기 (Batch Size)

in Deep learning

  • Batch의 네이버 영어 사전 뜻은 "(일괄적으로 처리되는) 집단", "한 회분(한 번에 만들어 내는 음식 기계 등의 양)", "(일괄 처리를 위해) 함께 묶다"라는 의미가 있다.
  • 즉, 연산 한 번에 들어가는 데이터의 크기를 가리킨다.
  • 1 Batch size에 해당하는 데이터 셋을 mini Batch라고 한다.
  • 1회 epoch 안에 m 개($m >= 1$)의 mini Batch가 들어가게 되며, 만약, m = 1인 경우, 배치 학습법이라고 한다.
  • 배치 사이즈가 너무 큰 경우 한 번에 처리해야 할 데이터의 양이 많아지므로, 학습 속도가 느려지고, 메모리 부족 문제가 발생할 위험이 있다.
  • 반대로, 배치 사이즈가 너무 작은 경우 적은 데이터를 대상으로 가중치를 업데이트하고, 이 업데이트가 자주 발생하므로, 훈련이 불안정해진다.

Batch size vs Epoch vs Iteration

batch size의 의미

  • 전체 트레이닝 데이터 셋을 여러 작은 그룹을 나누었을 때 batch size는 하나의 소그룹에 속하는 데이터 수를 의미합니다.
  • 전체 트레이닝 셋을 작게 나누는 이유는 트레이닝 데이터를 통째로 신경망에 넣으면 비효율적이 리소스 사용으로 학습 시간이 오래 걸리기 때문입니다.

Machine-learning_-_batch_size.jpg

epoch의 의미

  • 딥러닝에서 epoch는 전체 트레이닝 셋이 신경망을 통과한 횟수 의미합니다.
  • 예를 들어, 1-epoch는 전체 트레이닝 셋이 하나의 신경망에 적용되어 순전파와 역전파를 통해 신경망을 한 번 통과했다는 것을 의미합니다.

Machine-learning_-_epoch.jpg

iteration의 의미

  • 마지막으로 iteration은 1-epoch를 마치는데 필요한 미니배치 갯수를 의미합니다.
  • 다른 말로, 1-epoch를 마치는데 필요한 파라미터 업데이트 횟수 이기도 합니다.
  • 각 미니 배치 마다 파라미터 업데이터가 한번씩 진행되므로 iteration은 파라미터 업데이트 횟수이자 미니배치 갯수입니다.
  • 예를 들어, 700개의 데이터를 100개씩 7개의 미니배치로 나누었을때, 1-epoch를 위해서는 7-iteration이 필요하며 7번의 파라미터 업데이트가 진행됩니다.

계산 방법

Detectron2 에서 epoch는 없고 직접 Total IterationBatch Size 을 전달해야 한다. 이 때 다음과 같이 계산하면 된다.

이 때 다음의 조건일 경우:

  • 훈련셋의 데이터 개수: 100장
  • Batch Size: 4
  • Total Iteration: 1,000

이라면 100 / 4 = 25 Iteration 이 1-epoch 이며, Total epoch 은 1,000 / 25 = 40 Total Epoch 이다.

Favorite site