배치 크기
배치 크기가 딥 러닝에 미치는 영향에 대해 알아보세요. 학습 속도, 메모리 사용량, 모델 성능을 효율적으로 최적화하세요.
배치 크기는 모델의 내부 매개변수가 업데이트되기 전에 처리되는 학습 샘플의 수를 정의하는 머신 러닝의 기본 하이퍼파라미터입니다. 전체 학습 데이터 집합을 한 번에 처리하는 대신, 계산이 엄청나게 많이 소요될 수 있는 데이터를 더 작은 하위 집합 또는 "배치"로 나눕니다. 배치 크기 선택은 모델의 학습 역학, 학습 속도 및 최종 성능에 직접적인 영향을 미치는 중요한 결정입니다. 이는 계산 효율성과 모델 가중치를 업데이트하는 데 사용되는 기울기 추정치의 정확성 사이의 절충점을 나타냅니다.
모델 훈련에서 배치 크기의 역할
학습하는 동안 신경망(NN) 은 오류에 따라 가중치를 조정하여 학습합니다. 이 조정은 경사 하강과 같은 최적화 알고리즘에 의해 이루어집니다. 배치 크기는 모델이 경사도를 계산하고 가중치 업데이트를 수행하기 전에 얼마나 많은 예시를 '보는지'를 결정합니다.
- 확률적 그라디언트 하강(SGD): 배치 크기가 1인 경우 이 프로세스를 확률적 그라데이션 하강이라고 합니다. 각 개별 샘플에 대해 그라데이션이 계산되므로 업데이트가 빈번하지만 노이즈가 발생합니다.
- 배치 경사 하강: 배치 크기가 학습 데이터 세트의 총 샘플 수와 같을 때, 이를 배치 경사 하강이라고 합니다. 이 방법은 매우 정확한 기울기 추정치를 제공하지만 계산 비용이 많이 들고 메모리를 많이 사용합니다.
- 미니 배치 그라데이션 하강: 가장 일반적인 접근 방식으로, 배치 크기가 1과 전체 데이터 세트 크기(예: 32, 64, 128) 사이의 값으로 설정됩니다. 일괄 경사 하강의 안정성과 확률적 경사 하강의 효율성 사이의 균형을 제공합니다.
배치 크기 선택은 학습 과정에 큰 영향을 미칩니다. 배치 크기가 클수록 기울기를 더 정확하게 추정할 수 있지만 각 업데이트에 대한 계산 비용이 더 많이 듭니다. 반대로 배치 크기가 작을수록 기울기 추정 정확도는 떨어지지만 더 빠르게 업데이트할 수 있습니다.
적합한 배치 크기 선택
최적의 배치 크기를 찾는 것은 하이퍼파라미터 튜닝의 중요한 부분이며 데이터 세트, 모델 아키텍처 및 사용 가능한 하드웨어에 따라 달라집니다.
- 대규모 배치 크기: 한 번에 더 많은 데이터를 처리하면 GPU의 병렬 처리 기능을 최대한 활용할 수 있으므로 에포크당 학습 시간이 단축됩니다. 그러나 연구에 따르면 배치 크기가 매우 크면 모델이 학습 데이터에서는 잘 작동하지만 보이지 않는 데이터에서는 제대로 작동하지 않는 '일반화 격차'가 발생할 수 있습니다. 또한 상당한 메모리를 필요로 하므로 제한 요인이 될 수 있습니다.
- 작은 배치 크기: 메모리 사용량이 적고 그라데이션 업데이트의 노이즈가 모델이 로컬 최소값을 벗어나 더 강력한 솔루션을 찾는 데 도움이 될 수 있으므로 모델 일반화가 더 잘 이루어지는 경우가 많습니다. 이는 과적합을 방지하는 데 도움이 될 수 있습니다. 가장 큰 단점은 가중치 업데이트가 더 자주 이루어지고 병렬로 처리되는 데이터가 적기 때문에 학습 속도가 느리다는 것입니다.
많은 애플리케이션에서 배치 크기는 2의 거듭제곱(예: 32, 64, 128, 256)이 GPU 메모리 아키텍처와 잘 맞는 경우가 많으므로 권장됩니다. Ultralytics HUB와 같은 도구를 사용하면 모델을 훈련할 때 다양한 배치 크기로 쉽게 실험할 수 있습니다.
훈련과 추론의 배치 크기 비교
배치 크기는 훈련의 핵심 개념이지만, 추론에도 적용되지만 그 목적은 다릅니다. 추론 중에 일괄 처리는 처리량을 최대화하기 위해 여러 입력(예: 이미지 또는 문장)을 동시에 처리하는 데 사용됩니다. 이를 일괄 추론이라고도 합니다.
자율주행 차량의 실시간 추론과 같이 즉각적인 결과가 필요한 애플리케이션의 경우, 추론 지연 시간을 최소화하기 위해 배치 크기 1을 사용합니다. 밤새 대량의 이미지를 처리하는 오프라인 시나리오에서는 효율성을 높이기 위해 더 큰 배치 크기를 사용할 수 있습니다.
실제 애플리케이션
- 의료 영상 분석: 의료 이미지에서 종양 검출을 위해 YOLO11 모델을 훈련할 때는 이미지가 고해상도인 경우가 많습니다. GPU의 메모리 제약으로 인해 일반적으로 작은 배치 크기(예: 4 또는 8)가 사용됩니다. 이렇게 하면 사용 가능한 메모리를 초과하지 않고도 고해상도 데이터로 모델을 훈련할 수 있으므로 안정적인 훈련이 가능합니다.
- 제조 품질 관리: 제조 환경의 AI에서는 조립 라인에서 결함을 감지하도록 모델을 학습시킬 수 있습니다. 수백만 개의 제품 이미지로 구성된 대규모 데이터 세트의 경우, 강력한 분산 학습 클러스터에서 더 큰 배치 크기(예: 256 또는 512)를 사용할 수 있습니다. 이렇게 하면 학습 프로세스의 속도가 빨라져 모델 반복과 배포가 더 빨라집니다.
배치 크기와 관련 용어
배치 크기를 다른 관련 개념과 구별하는 것이 중요합니다:
- 배치 크기와 에포크 및 반복 비교: 반복은 모델의 가중치를 한 번 업데이트하는 것입니다. An epoch 는 전체 학습 데이터 세트에 대한 한 번의 전체 패스를 의미합니다. 에포크의 반복 횟수는 총 학습 샘플 수를 배치 크기로 나눈 값입니다.
- 배치 크기와 배치 정규화 비교: 배치 정규화(BatchNorm) 는 신경망 계층 내에서 각 미니 배치의 입력을 표준화하기 위해 사용되는 기법입니다. 배치 크기(배치가 클수록 성능이 향상됨)에 따라 그 효율성이 영향을 받을 수 있지만, 이는 훈련 루프 파라미터가 아닌 모델 아키텍처에서 별개의 레이어입니다. PyTorch 및 TensorFlow와 같은 대부분의 최신 딥 러닝 프레임워크는 강력한 구현을 제공합니다.