미니배치(Mini-batch)

•
2026년 11월 08일 발행•2026년 11월 08일 수정
요약

전체 학습 데이터에서 일부 표본을 묶어 한 번의 매개변수 갱신에 사용하는 데이터 단위

초급
경사 하강법과 역전파의 기본 개념을 알아야 하며, 배치 크기와 학습률·메모리·일반화의 관계를 이해해야 한다.

#개념

미니배치(Mini-batch)는 전체 학습 데이터에서 일부 표본을 묶어 한 번의 매개변수 갱신에 사용하는 데이터 단위이다. 미니배치에 포함되는 표본 수를 배치 크기(Batch Size)라 하며, 오늘날 딥러닝 학습은 대부분 미니배치 단위로 손실과 기울기를 계산한다.
경사 하강법(Gradient Descent)은 손실 함수의 기울기를 따라 매개변수를 갱신하는데, 기울기를 계산할 때 몇 개의 표본을 사용하는지에 따라 학습 방식이 나뉜다. 전체 데이터를 사용하면 정확한 기울기를 얻지만 갱신 한 번의 비용이 크고, 표본 하나만 사용하면 갱신은 빠르지만 기울기가 매우 불안정하다. 미니배치는 두 방식의 절충이며, 실무에서 "SGD"라고 부르는 학습도 실제로는 대부분 미니배치 방식이다.
기울기 계산 단위에 따른 학습 방식
  • 배치 경사 하강법(Batch Gradient Descent): 전체 학습 데이터로 기울기를 계산한 뒤 한 번 갱신한다. 기울기가 정확하지만 데이터가 크면 갱신 한 번에 많은 시간과 메모리가 필요하다.
  • 확률적 경사 하강법(Stochastic Gradient Descent, SGD): 표본 하나마다 기울기를 계산해 갱신한다. 갱신 빈도는 높지만 기울기 잡음이 커서 손실이 크게 요동친다.
  • 미니배치 경사 하강법(Mini-batch Gradient Descent): 수십에서 수천 개 표본의 평균 기울기로 갱신한다. 잡음과 계산 효율의 균형이 좋아 딥러닝의 표준 방식으로 쓰인다.
미니배치 기울기는 전체 데이터 기울기의 추정량이다. 배치 크기를 $B$, 미니배치를 $\mathcal{B}$라 하면 갱신식은 $\theta \leftarrow \theta - \eta \frac{1}{B}\sum_{i \in \mathcal{B}} \nabla_\theta \ell(x_i, y_i; \theta)$로 쓴다. 표본을 무작위로 뽑는다고 가정하면 이 추정량은 전체 기울기의 불편추정량이며, 분산은 대략 $1/B$에 비례해 줄어든다.
따라서 배치 크기를 4배 키우면 기울기의 표준편차는 절반 정도로 줄어든다. 그러나 계산량은 배치 크기에 비례해 늘어나므로, 일정 크기를 넘어서면 같은 연산량 대비 손실 감소 효과가 둔화된다. 한편 적당한 기울기 잡음은 안장점이나 날카로운 최솟값을 벗어나도록 돕는 탐색 효과도 있다.
미니배치는 하드웨어 효율 측면에서도 중요하다. GPU와 TPU는 대규모 행렬 연산을 병렬로 처리하도록 설계되어 있어, 표본을 하나씩 처리하면 연산 장치 대부분이 쉬게 된다. 여러 표본을 하나의 텐서(Tensor)로 묶으면 행렬 곱셈 한 번으로 처리할 수 있어 처리량(Throughput)이 크게 높아진다.
반면 배치 크기의 상한은 메모리가 정한다. 역전파를 위해 각 층의 활성값을 저장해야 하므로 활성값 메모리는 배치 크기에 비례해 증가한다. 대형 모델에서는 GPU 메모리가 부족해 원하는 배치 크기를 그대로 쓸 수 없는 경우가 많으며, 연산 장치 효율을 위해 배치 크기를 8의 배수나 2의 거듭제곱으로 맞추기도 한다.
미니배치 학습의 기본 용어
  • 에폭(Epoch): 학습 데이터 전체를 한 번 모두 사용하는 학습 주기다. 에폭이 끝날 때마다 검증 성능을 측정하는 경우가 많다.
  • 이터레이션(Iteration): 미니배치 하나로 매개변수를 한 번 갱신하는 단계이며, 스텝(Step)이라고도 한다. 한 에폭의 이터레이션 수는 데이터 수를 배치 크기로 나눈 값이다.
  • 배치 크기(Batch Size): 한 이터레이션에 사용하는 표본 수다. 분산 학습에서는 장치별 배치 크기와 전체 장치를 합친 전역 배치 크기를 구분한다.
미니배치는 데이터 순서에 따라 구성이 달라지므로 셔플링(Shuffling)이 중요하다. 데이터가 레이블이나 시간 순으로 정렬된 상태에서 순서대로 묶으면 미니배치마다 분포가 치우쳐 기울기가 편향된다. 일반적으로 에폭마다 데이터 순서를 무작위로 섞은 뒤 앞에서부터 배치 크기만큼 잘라 사용한다.
PyTorch의 DataLoader처럼 프레임워크의 데이터 로더는 셔플링, 배치 구성, 병렬 전처리를 함께 담당한다. 데이터 수가 배치 크기로 나누어떨어지지 않으면 마지막 미니배치가 작아지는데, drop_last 옵션으로 이를 버릴 수 있다. 크기가 작은 마지막 배치는 배치 정규화 통계를 불안정하게 하거나 분산 학습에서 장치 간 불균형을 만들 수 있다.
배치 크기는 최적화 속도뿐 아니라 일반화(Generalization)에도 영향을 준다. Keskar 등(2017)은 큰 배치로 학습한 모델이 작은 배치로 학습한 모델보다 테스트 성능이 떨어지는 일반화 격차(Generalization Gap)를 보고했다. 이들은 큰 배치 학습이 손실 지형의 날카로운 최솟값(Sharp Minima)으로 수렴하는 경향이 있고, 작은 배치의 기울기 잡음은 평평한 최솟값(Flat Minima)을 찾도록 돕는다고 해석했다.
이후 연구는 큰 배치의 성능 저하 상당 부분이 학습률 설정 문제임을 보였다. Goyal 등(2017)은 배치 크기를 $k$배 키우면 학습률도 $k$배 키우는 선형 스케일링 규칙(Linear Scaling Rule)과 학습 초기에 학습률을 점진적으로 올리는 워밍업(Warmup)을 적용했다. 그 결과 배치 크기 8,192로 ImageNet의 ResNet-50을 1시간 만에 학습하면서도 작은 배치와 비슷한 정확도를 얻었다.
선형 스케일링은 배치 크기가 일정 한계를 넘으면 성립하지 않으며, 그 이상에서는 학습률 조정만으로 정확도를 유지하기 어렵다. 매우 큰 배치에서는 층별로 학습률을 조정하는 LARS·LAMB 같은 최적화 기법을 사용하기도 한다. Adam 계열 최적화 기법에서는 학습률을 배치 크기의 제곱근에 비례해 조정하는 규칙이 경험적으로 쓰이기도 한다.
메모리 한계로 원하는 배치 크기를 쓸 수 없을 때는 기울기 누적(Gradient Accumulation)을 사용한다. 작은 미니배치 여러 개에 대해 역전파를 수행하며 기울기를 더해 두었다가, 정해진 횟수가 지나면 한 번에 매개변수를 갱신하는 방식이다. 예를 들어 배치 크기 16으로 4번 누적하면 유효 배치 크기 64와 같은 기울기를 얻으며, 이때 손실은 누적 횟수로 나누어 평균을 맞춘다.
기울기 누적은 계산 시간을 줄여 주지 않으며, 배치 정규화처럼 미니배치 내부 통계를 사용하는 층에서는 실제 배치 64와 결과가 완전히 같지 않다. 분산 데이터 병렬 학습에서는 장치별 배치 크기, 장치 수, 누적 횟수의 곱이 전역 배치 크기가 되며, 학습률은 이 전역 배치 크기를 기준으로 정한다.
배치 크기의 영향을 크게 받는 구성 요소
  • 배치 정규화(Batch Normalization): 미니배치의 평균과 분산으로 활성값을 정규화하므로 배치가 너무 작으면 통계가 불안정해진다. 작은 배치에서는 층 정규화나 그룹 정규화가 대안으로 쓰인다.
  • 대조 학습(Contrastive Learning): 같은 미니배치의 다른 표본을 음성 예시로 쓰는 배치 내 음성 샘플링(In-batch Negative)에서는 배치가 클수록 음성 예시가 많아져 표현 품질이 좋아지는 경향이 있다. SimCLR나 CLIP 같은 모델이 수천에서 수만 규모의 배치를 사용하는 이유다.
  • 추천 시스템의 2타워 모델: 사용자와 아이템 임베딩을 배치 내 음성 샘플링으로 학습하면 인기 아이템이 음성으로 자주 뽑히는 편향이 생긴다. 이를 줄이기 위해 아이템 등장 확률로 점수를 보정하는 기법이 함께 쓰인다.
실무에서는 GPU 메모리에 들어가는 범위에서 32~512 정도의 배치 크기로 시작하고, 배치 크기를 바꿀 때는 학습률을 함께 조정한다. 배치 크기와 학습률은 독립적인 하이퍼파라미터가 아니므로 탐색할 때 두 값을 함께 고려해야 한다. 대규모 언어 모델 사전 학습에서는 표본 수 대신 토큰 수로 배치 크기를 표기하며, 학습 초기에 배치 크기를 점차 늘리는 방식도 사용된다.
미니배치는 단순한 데이터 묶음 단위처럼 보이지만 기울기 잡음, 하드웨어 효율, 메모리, 일반화, 정규화 층의 동작까지 학습 전반에 영향을 준다. 배치 크기를 바꾸면 학습률, 정규화 방식, 학습 기간도 함께 다시 점검해야 하며, 재현 가능한 실험을 위해서는 전역 배치 크기와 누적 횟수를 명시하는 것이 좋다.

#관련 용어

배치 크기
한 번의 매개변수 갱신에 사용하는 표본의 수
에폭
학습 데이터 전체를 한 번 모두 사용하는 학습 주기
확률적 경사 하강법(SGD)
무작위로 뽑은 표본이나 미니배치의 기울기로 매개변수를 갱신하는 최적화 방법
기울기 누적
여러 미니배치의 기울기를 더한 뒤 한 번에 갱신해 큰 배치 크기를 흉내 내는 기법
배치 정규화
미니배치의 평균과 분산으로 층의 활성값을 정규화하는 기법
학습률
기울기 방향으로 매개변수를 얼마나 크게 이동할지 정하는 하이퍼파라미터

#직무 연관도

DA
Data Analyst
낮음
모델 학습 설정과 실험 결과를 해석할 때 필요한 기본 개념
DS
Data Scientist
밀접
배치 크기와 학습률을 함께 조정해 모델의 수렴 속도와 일반화 성능을 개선
DE
Data Engineer
밀접
GPU 메모리와 처리량을 고려해 배치 크기, 기울기 누적, 분산 학습 구성을 설계

#사용 사례

인터넷 서비스전자상거래자율주행의료미디어
개요
미니배치는 신경망을 학습하는 거의 모든 산업에서 기본 학습 단위로 사용된다. 인터넷 서비스와 전자상거래에서는 대규모 클릭 로그로 추천·랭킹 모델을 학습할 때 배치 크기가 처리량과 비용을 좌우한다. 자율주행과 의료 영상 분야에서는 고해상도 입력 때문에 메모리 제약이 커서 기울기 누적과 정규화 방식 선택이 중요하다.
사례
전자상거래 추천 서비스에서 사용자·상품 2타워 모델을 배치 크기 4,096의 배치 내 음성 샘플링으로 학습하고, GPU 메모리가 부족한 경우 기울기 누적으로 유효 배치 크기를 맞춤

#참고 자료

#추천 포스트

© 2024 diki All rights reserved.