Batch Size배치 크기
배치 크기(Batch Size)는 경사 하강법에서 한 번의 가중치 갱신(반복, iteration)에 사용할 훈련 샘플의 수를 의미한다. 전체 훈련 데이터를 배치 크기 단위로 나누어 각 미니배치의 기울기로 가중치를 갱신하고, 전체 데이터를 한 번 다 돌면 1 에포크가 완료된다.
배치 크기와 학습 동역학
배치 크기가 작을수록 개별 기울기 추정에 노이즈가 많아 가중치 갱신 경로가 불규칙해진다. 이 노이즈가 역설적으로 날카롭고 좁은 지역 최솟값(sharp minimum)을 탈출해 더 평탄한 최솟값(flat minimum)을 찾도록 돕는다는 연구 결과가 있다. 평탄한 최솟값은 테스트 데이터에서도 안정적인 성능을 보이는 경향이 있어 일반화와 연결된다. 반대로 배치 크기가 크면 기울기 추정이 정확해 안정적으로 수렴하지만, 훈련 데이터에 지나치게 특화된 날카로운 최솟값에 갇힐 위험이 있다.
실용적 고려사항
배치 크기는 GPU 메모리 용량에 직접적인 제약을 받는다. 배치가 클수록 병렬 연산 효율이 높아 GPU 활용도가 올라가지만, 메모리를 초과하면 Out of Memory 오류가 발생한다. 통상적으로 32, 64, 128, 256 같은 2의 거듭제곱 값이 GPU 메모리 정렬에 효율적이어서 자주 사용된다. 배치 크기를 늘릴 때 학습률을 비례해 키우는 선형 스케일링 규칙(linear scaling rule)이 대규모 분산 학습에서 널리 쓰인다. 배치 정규화는 배치 통계에 의존하므로 배치 크기가 너무 작으면 통계 추정이 불안정해진다는 점도 고려해야 한다.