1. 정의 및 역할

미니배치(Mini-batch)는 전체 학습 데이터를 일정 크기 묶음으로 나누어 학습하는 방식입니다.

  • Epoch: 전체 데이터 1회 학습
  • Step: 미니배치 1회 입력 + 파라미터 업데이트

즉,

  • Epoch = 전체 데이터 1회 순회
  • Step = Mini-batch 1회 학습

2. 미니배치를 사용하는 이유

계산 효율성과 병렬화

  • GPU/TPU 행렬 연산 최적화를 활용 가능
  • SGD(샘플 1개)는 노이즈가 크고 불안정
  • Full Batch GD(전체 데이터)는 메모리/연산 비용 과다
  • Mini-batch는 속도와 안정성의 절충안

학습 안정성

  • 여러 샘플 평균 손실 기반 업데이트
  • 단일 이상치에 덜 민감
  • 적당한 노이즈가 일반화 성능에 도움

메모리 효율성

  • 대규모 데이터셋을 제한된 메모리에서 처리 가능
  • 보통 32, 64, 128 같은 2의 거듭제곱 배치가 실무에서 자주 사용

3. 구현 포인트 (PyTorch 기준)

Batch Size

  • 미니배치 크기
  • 예: batch_size=64면 step당 샘플 64개 처리

DataLoader

  • Dataset에서 배치 단위 샘플 공급
  • 핵심 파라미터:
    • batch_size
    • shuffle=True
    • drop_last=True

Shuffle

  • 에폭마다 순서를 섞어 순서 편향 방지
  • 일반화 향상에 도움
  • 단, 시계열은 순서 보존 전략 필요

Drop Last

  • 마지막 불완전 배치를 버려 shape 불일치 방지
  • 학습 데이터에서는 종종 사용
  • 검증/테스트에서는 보통 False 권장(데이터 손실 방지)

Validation/Test 설정

  • 일반적으로 shuffle=False, drop_last=False
  • 일관된 평가와 전체 샘플 반영 목적

4. 전문가 관점 고려사항

배치 크기 선택

  • 너무 작음: 노이즈 증가, 학습 불안정
  • 너무 큼: 일반화 저하 가능, 메모리 부담

최근에는 Large Batch Training + Learning Rate Scaling 조합으로 대규모 배치도 안정화하는 전략이 사용됩니다.

Regularization 효과

미니배치가 만들어내는 확률적 노이즈는 일종의 규제 효과를 내어 과적합 완화에 기여할 수 있습니다.

하드웨어 최적화

  • 최적 배치 크기는 GPU/TPU 아키텍처에 따라 다름
  • Mixed Precision(FP16/bfloat16) 적용 시 더 큰 배치 운용 가능

정리

미니배치는 딥러닝 학습에서 속도, 안정성, 메모리 효율, 일반화 성능을 함께 고려할 수 있는 핵심 전략입니다.
실무에서는 단순 데이터 분할이 아니라, 배치 크기-학습률-하드웨어를 함께 조율하는 설계 문제로 다루는 것이 중요합니다.