Batch Size
개념
인공신경망 모델이 가중치를 한 번 업데이트할 때 사용하는 데이터의 개수를 의미한다. 전체 데이이터를 한 번에 모두 처리하면 컴퓨터 메모리가 부족해지거나 연산이 매우 비효율이다. 따라서 전체 데이터를 여러 개의 작은 그룹으로 쪼개서 학습하는데, 이 작은 그룹 하나의 크기가 바로 Batch Size이다.
!batch size_1.webp
Batch Size, Iteration, Epoch 관계. 출처: ResearchGate
| 용어 | 의미 |
|---|---|
| Batch Size | 한 번에 학습하는 데이터 수 |
| Iteration | 1개의 배치를 학습(가중치 업데이트)한 횟수 |
| Epoch | 전체 학습 데이터를 모두 한 번씩 학습한 상태 |
Batch Size 크기에 따른 장단점
- 크기가 클 때 (Large Batch Size):
- GPU 병렬 처리 효율이 높아 전체적인 연산 속도가 빠르다.
- 가중치 업데이트가 안정적으로 이루어진다.
- 메모리(VRAM)를 많이 소모하며, 지역 최적해(Local Minimum)에 빠져 모델 성능이 더 이상 오르지 않을 위험이 있다.
- 크기가 작을 때 (Small/Mini Batch Size):
- 컴퓨터 메모리가 적어도 학습이 가능하다.
- 업데이트 방향이 다소 들쭉날쭉하게 튀는 경향(노이즈)이 있지만, 이 덕분에 지역 최적해를 빠져나와 더 나은 결과를 얻는 데 유리하다.
- 가중치 업데이트가 자주 일어나므로 학습 시간이 오래 걸린다.
일반적으로 메모리 구조의 효율성을 극대화하기 위해 32, 64, 128, 256 등 2의 제곱수 형태로 Batch Size를 설정한다.
Leave a comment