[딥러닝 기본지식] batch size가 학습에 미치는 영향 / 적절한 batch size 선택하기

2025. 4. 21. 09:53·AI Research/Deep Learning
728x90
반응형

- batch size가 학습에 미치는 영향  

batch size 의 값에 따라 학습 결과는 직접적인 영향을 받게 됩니다. 클때와 작을 때 각각의 장단점은 아래와 같습니다.

 

✅   배치 크기가 클 때 (예: 256~1024) 

✔ 장점:

  • 병렬 연산이 최적화됨 → GPU 활용도가 높아짐
  • 학습이 빠름 (한 번의 forward/backward pass에서 많은 샘플을 처리)
  • Gradient가 안정적 (많은 샘플을 평균내므로 변화가 작음)

❌ 단점:

  • 일반화 성능이 낮아질 가능성 (Gradient가 안정적이라 local minima에 빠질 위험 있음)
  • 메모리 사용량이 많음 (큰 모델에서는 Out of Memory(OOM) 발생 가능)
  • 배치 내 데이터 다양성이 감소하여 Overfitting 위험 증가

✅   배치 크기가 작을 때 (예: 2~32) 

✔ 장점:

  • 일반화 성능이 좋아질 가능성 (Gradient가 noisy하여 다양한 패턴을 학습)
  • 메모리 사용량이 적음 (큰 모델도 학습 가능)
  • 최적화가 더 효과적일 수 있음 (SGD와 같은 Optimizer는 작은 배치에서 더 빠르게 학습 가능)

❌ 단점:

  • 학습이 느림 (업데이트가 자주 발생하여 전체적인 효율이 낮음)
  • Gradient 변동성이 커서 학습이 불안정할 수 있음
  • Batch Normalization이 제대로 동작하지 않을 가능성

 

- 적절한 batch size를 선택하는 방법  

✅  일반적인 추천 값   

  • 경험적으로 128~512 범위가 일반적으로 적절
  • 작은 데이터셋: 16~64
  • 중간 크기 데이터셋: 128~256
  • 대형 데이터셋 (ImageNet, LLaMA 등): 512~1024

단! batch size가 큰 경우 마지막 batch에 몇개의 데이터가 들어가는지에 따라 성능에 악영향을 미칠 수 있습니다.

예를들어, batch size가 300인데 마지막 batch에 6개의 데이터만 들어간다면 이는 아래와 같은 이유들로 성능에 악영향을 미치게 됩니다.

1️⃣   Batch Normalization (BN) 문제  

  • 배치 크기가 너무 작아지면 Batch Normalization에서 평균/분산 추정이 불안정해짐
  • 보통 BN은 batch_size가 16~32 이상일 때 안정적으로 동작하는데, 배치 크기가 6이면 통계 값이 제대로 계산되지 않을 수 있음
  • 그 결과, 이전 배치들과 다른 스케일링이 적용되어 모델이 잘못된 업데이트를 수행할 가능성이 있음

2️⃣   Optimizer의 Gradient Update 문제  

  • 마지막 배치 크기가 6이므로, 이전 배치(300)보다 Gradient Update 크기가 매우 작아질 수 있음
  • 만약 momentum이 높은 Optimizer (예: SGD with momentum=0.9)를 사용하면, 이전 배치(300)의 큰 gradient가 유지되고 마지막 배치(6)의 작은 gradient는 거의 무시됨
  • 특히 Adam, RMSProp 등의 Adaptive Optimizer는 배치 크기가 작아질수록 학습 속도가 불안정해질 수 있음

이 때 가장 간단한 해결책으로는 DataLoader에 drop_Last 옵션을 추가하여 마지막 작은 배치를 제거해주면 됩니다.

dataloader = DataLoader(dataset, batch_size=300, shuffle=True, drop_last=True)

 

 

 

728x90
반응형
저작자표시 (새창열림)

'AI Research > Deep Learning' 카테고리의 다른 글

[딥러닝 기본지식] Text-to-Image의 원리(Multi-Modal AI)  (1) 2025.01.02
[딥러닝 기본지식] Inductive Bias  (1) 2023.10.01
[딥러닝 기본지식] Self Attention과 Transformer (2)  (0) 2023.08.24
[딥러닝 기본지식] Self Attention과 Transformer (1)  (0) 2023.08.19
[딥러닝 기본지식] Auto Regressive Models  (0) 2023.05.07
'AI Research/Deep Learning' 카테고리의 다른 글
  • [딥러닝 기본지식] Text-to-Image의 원리(Multi-Modal AI)
  • [딥러닝 기본지식] Inductive Bias
  • [딥러닝 기본지식] Self Attention과 Transformer (2)
  • [딥러닝 기본지식] Self Attention과 Transformer (1)
ga.0_0.ga
ga.0_0.ga
    반응형
    250x250
  • ga.0_0.ga
    ##뚝딱뚝딱 딥러닝##
    ga.0_0.ga
  • 전체
    오늘
    어제
    • 분류 전체보기 (182)
      • Paper Review (52)
        • Video Scene Graph Generation (6)
        • Image Scene Graph Generation (18)
        • Graph Model (5)
        • Key Information Extraction (4)
        • Fake Detection (2)
        • Text to Image (1)
        • Diffusion Personalization (4)
        • etc (12)
      • AI Research (49)
        • Deep Learning (30)
        • Artificial Intelligence (15)
        • Data Analysis (4)
      • Pytorch (10)
      • ONNX (5)
      • OpenCV (2)
      • Error Note (34)
      • Linux (2)
      • Docker (3)
      • Etc (7)
      • My Study (16)
        • Algorithm (10)
        • Project (4)
        • Interview (2)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    JNI
    contiguous
    나이브 베이즈 분류
    dataloader
    차원의 저주
    그래프신경망
    forch.nn.functional
    ONNX
    활성화 함수
    dataset
    GCN
    tensorflow
    알고리즘
    linear regression
    pytorch
    transformer
    HRNet
    오차 역전파
    Inductive bias
    pandas
    fine tuning
    RuntimeError
    정규화
    3dinput
    Logistic regression
    i3d
    permute
    Activation Function
    TypeError
    torch.nn
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
ga.0_0.ga
[딥러닝 기본지식] batch size가 학습에 미치는 영향 / 적절한 batch size 선택하기
상단으로

티스토리툴바