82. 미니배치 사이즈 (Mini-batch Size) / 에폭 (Epoch) / 이터레이션 (Iteration)

⚠️ 이 문서는 수백만 개의 데이터를 가진 딥러닝 모델이 한 번에 데이터를 다 삼킬 수 없을 때, 데이터를 잘게 쪼개어 학습하는 덩어리의 크기와 전체 훈련 과정을 몇 번 반복할지 나타내는 필수적인 학습 주기 하이퍼파라미터 3총사를 명확히 정의하고 구분합니다.

핵심 인사이트 (3줄 요약)

  1. 본질: 거대한 모의고사 문제집 1만 권(전체 데이터)을 학생(AI)에게 풀릴 때, 몇 장 단위로 채점(Mini-batch)할 것이며, 채점을 몇 번 반복(Iteration)해야 모의고사를 끝낼 수 있고, 이 문제집 전체를 총 몇 회독(Epoch) 반복할 것인지 정하는 훈련 스케줄 표다.
  2. 가치: 이 3가지 숫자를 어떻게 세팅하느냐에 따라 AI가 깊은 함정(Local Minima)을 찰찰 털고 나올 수도 있고, 과적합(Overfitting)되어 암기 바보가 될 수도 있으며, 그래픽 카드(GPU)의 VRAM이 터져버릴(OOM 에러) 수도 있다.
  3. 공식: $\text{전체 데이터 개수} = \text{Batch Size} \times \text{Iteration}$. 이 한 번의 사이클이 끝나면 1 $\text{Epoch}$이 상승한다.

Ⅰ. 세 가지 용어의 완벽한 족집게 정의

헷갈리기 쉬운 이 용어들은 다음의 명확한 수학적 관계를 갖는다.

  1. 미니배치 사이즈 (Mini-batch Size):
    • 가중치(정답)를 1번 업데이트(채점)하기 위해, AI가 한 번에 한 움큼씩 집어 드는 데이터의 개수다. (보통 32, 64, 128, 256 등 2의 거듭제곱을 씀)
    • GPU 메모리 크기에 맞춰 최대한 크게 욱여넣는 것이 연산 속도에 유리하다.
  2. 이터레이션 (Iteration = 스텝 Step):
    • 가중치를 1번 업데이트하는 행위 그 자체의 횟수다.
    • 전체 데이터가 1,000개일 때 배치 사이즈를 100개로 잡았다면, 100개씩 묶인 뭉텅이가 10개 만들어진다. 이 10개의 뭉텅이를 차례대로 하나씩 집어넣어 채점을 총 10번 반복해야 전체 데이터를 다 보게 된다. (이때 이터레이션 = 10)
  3. 에폭 (Epoch):
    • 보유한 전체 데이터를 처음부터 끝까지 한 바퀴 다 훑어보고 학습을 1회 완료한 상태를 뜻한다.
    • 모의고사 문제집 전체 1회독 = 1 에폭이다. 위 예시에서 10번의 이터레이션이 무사히 끝나면 마침내 1 에폭이 된다. 딥러닝은 보통 50~100 에폭 이상 문제집을 반복해서 푼다.

📢 섹션 요약 비유: 피자 100판(전체 데이터)을 먹어 치우는 대회입니다. 입안에 한 번에 우겨 넣을 수 있는 피자 조각 수가 10조각(Batch Size)이라면, 당신은 10번 씹어 삼키는 동작(Iteration)을 반복해야 책상 위 피자가 다 사라집니다. 피자 100판을 싹 비우고 다음 판 세트를 다시 꺼내 오는 순간이 바로 1 회독(Epoch) 달성입니다.


Ⅱ. 하이퍼파라미터 튜닝의 트레이드오프 (Batch Size)

크게 쪼갤 것인가, 잘게 쪼갤 것인가의 딜레마.

  1. 배치 사이즈가 클 때 (Large Batch):
    • 한 번에 1,000개씩 모아서 평균을 내고 걷기 때문에, 모델의 기울기(방향)가 매우 안정적이고 노이즈 없이 부드럽게 하산한다. (GPU 병렬 연산 효율 극대화)
    • 단점: 일반화(Generalization) 성능이 떨어지는 경향이 있다. 매끄럽게 내려가다가 얕은 웅덩이(Local Minima)에 빠졌을 때 튕겨 나갈 덜컹거림(노이즈)이 없어서 그대로 영원히 학습이 멈춰버릴 수 있다.
  2. 배치 사이즈가 작을 때 (Small Batch):
    • 16개, 32개씩 쪼개면 엉뚱한 이상치(Outlier)의 영향력이 커져서 기울기가 지그재그로 미친 듯이 널뛰며 걷는다.
    • 장점: 이 덜컹거림 덕분에 웅덩이에 빠져도 퉁 튕겨져 나오며, 데이터의 미세한 특징을 찰지게 잡아내어 실전 테스트에서 성적이 더 잘 나오는 경우가 많다 (정규화 효과).
    • 단점: GPU를 효율적으로 못 써서 학습 시간이 어마어마하게 오래 걸린다.

📢 섹션 요약 비유: 바구니에 사과를 1,000개(Large Batch) 담아 무게를 재면 평균값이 항상 일정해 든든하지만 바구니가 너무 무거워 구덩이에 빠지면 못 나옵니다. 16개(Small Batch)만 담아서 재면 매번 평균이 널뛰기해서 헷갈리지만, 오히려 그 널뛰는 요동치는 힘 덕분에 함정을 폴짝 훌쩍 뛰어넘는 아이러니한 이점이 생깁니다.


Ⅲ. 학습 조기 종료 (Early Stopping)와 에폭(Epoch)의 미학

문제집을 많이 푼다고 무조건 서울대에 가는 것은 아니다.

  1. 에폭이 너무 적을 때 (Underfitting, 과소적합):
    • 10 에폭만 돌리고 끝내면, 문제집을 겉핥기로 풀다 말아서 훈련 데이터의 점수도 엉망이고 실제 시험 점수도 엉망인 바보 모델이 나온다.
  2. 에폭이 너무 많을 때 (Overfitting, 과적합):
    • 1,000 에폭씩 무식하게 돌리면, 모델이 문제집의 원리를 깨우치는 게 아니라 문제의 순서와 답안지 번호를 통째로 외워버리는 사태가 터진다.
    • 훈련 데이터(문제집)는 100점이 나오는데, 처음 보는 테스트 데이터(수능)를 주면 다 틀리는 멍청한 암기 기계가 되어버린다.
  3. 조기 종료 (Early Stopping):
    • 해결책은 학습 중간중간에 한 번도 안 본 모의고사(Validation Set)를 풀려보는 것이다. 에폭이 늘어날수록 훈련 점수는 계속 오르지만, 어느 순간부터 검증(Validation) 점수가 떨어지기 시작한다면 "아, 지금부터 원리가 아니라 답을 외우기 시작했구나!"라고 파악하고, 설정한 100 에폭이 안 끝났더라도 미련 없이 학습을 강제로 중단시켜 버린다.

📢 섹션 요약 비유: 학생에게 쎈수학을 500번(500 Epoch) 풀게 놔두면, 수학 공식을 이해하는 게 아니라 "3번 문제 답은 4번"이라고 책 자체를 외워버려 정작 수능에 숫자를 바꿔 내면 다 틀립니다(과적합). 그래서 선생님이 몰래 지켜보다가, 응용문제 점수가 떨어지기 시작하는 타이밍을 귀신같이 잡아내어 책을 덮게 만드는(조기 종료) 스킬이 필수입니다.