이번주에 딥러닝 공부를 하면서 배치 사이즈 (Batch size), 에포크 (Epoch)와 반복 (Iteration)이라는 개념이 헷갈려서 정리를 해보았습니다.
딥러닝 모델을 학습시킬 때 배치(Batch)와 에포크(Epoch)는 데이터를 얼마나 자주, 그리고 얼마나 많이 모델에 보여줄지를 결정하는 아주 중요한 개념입니다.
이해를 돕기 위해 '1,000쪽짜리 문제집을 공부하는 수험생'의 비유를 들어 설명해보겠습니다.
에포크 (Epoch)는 준비된 전체 데이터셋이 모델을 한 번 통과한 상태를 의미합니다.
비유: 1,000쪽짜리 문제집을 처음부터 끝까지 한 번 다 푼 것이 '1 에포크 (Epoch)'입니다.
보통 모델이 충분히 학습하려면 같은 데이터라도 여러 번 반복해서 학습해야 하므로, '10 에포크 (Epoch)를 돌린다'는 말은 문제집을 10번 회독했다는 뜻과 같습니다.
보통 데이터가 너무 방대하면 한꺼번에 메모리에 올릴 수 없습니다. 그래서 데이터를 작은 묶음으로 나누어 학습시키는데, 이 묶음을 배치 (Batch)라고 합니다.
비유: 1,000쪽을 한 번에 다 읽고 문제의 정답을 맞히려면 머리가 터지겠죠? 그래서 '10쪽씩' 끊어서 공부하기로 합니다. 이때 이 10쪽이라는 단위가 배치 사이즈입니다.
배치 사이즈가 10이라면, 10쪽을 풀 때마다 "아, 내가 이 부분은 틀렸구나"라며 스스로를 수정(가중치 업데이트)하게 됩니다.
배치 (Batch)와 에포크 (Epoch) 사이의 관계를 설명해 주는 단위입니다. 전체 데이터를 배치 사이즈 (Batch size)로 나눈 횟수, 즉 한 에포크 (Epoch)를 완료하기 위해 필요한 배치 (Batch)의 수를 말합니다.
비유: 1,000쪽짜리 책을 10쪽(배치 사이즈)씩 나누어 풀면, 총 100번을 나누어 풀어야 책 한 권을 다 보게 됩니다. 이때 반복은 100이 됩니다.
| 개념 | 의미 | 비유(1,000쪽짜리 문제집을 공부하는 수험생) |
|---|---|---|
| 에포크 (Epoch) | 전체 데이터 학습 횟수 | 문제집 전체를 몇번 반복해서 보았는가? |
| 배치 사이즈 (Batch size) | 한번에 학습하는 데이터 양 | 한번에 몇쪽씩 나누어서 공부하는가? |
| 반복 (Iteration) | 배치가 학습된 횟수 | 문제집 한권을 다 보려고 몇번의 공부 세션을 가졌는가? |
전체 데이터(1,000) = 배치 사이즈(10) × 반복(100)
딥러닝에서는 배치 사이즈가 너무 크면 메모리가 부족할 수 있고, 너무 작으면 학습 속도가 느려지거나 불안정해질 수 있기 때문에 적절한 배치 사이즈를 찾는 것이 중요합니다.


