Skip to content

Epoch

Epoch (에포ㅋ; 시대)

in Deep learning

  • Epoch의 네이버 영어 사전 뜻은, "(중요한 사건·변화들이 일어난) 시대"라는 뜻이다.
  • 훈련 데이터셋에 포함된 모든 데이터들이 한 번씩 모델을 통과한 횟수로, 모든 학습 데이터셋을 학습하는 횟수를 의미한다.
  • 1 epoch는 전체 학습 데이터셋이 한 신경망에 적용되어 순전파와 역전파를 통해 신경망을 한 번 통과했다는 의미가 된다.
  • 즉 epoch가 10회라면, 학습 데이터 셋 A를 10회 모델에 학습시켰다는 것이다.
  • epoch를 높일수록, 다양한 무작위 가중치로 학습을 해보므로, 적합한 파라미터를 찾을 확률이 올라간다. (즉, 손실 값이 내려가게 된다.)
  • 그러나, 지나치게 epoch를 높이게 되면, 그 학습 데이터셋에 과적합(Overfitting)되어 다른 데이터에 대해선 제대로 된 예측을 하지 못할 수 있다.

요약 버전

딥러닝에서 1 Epoch(에포크)는 훈련 데이터셋 전체가 신경망을 한 번 완전히 통과(Forward & Backward Pass)한 상태를 의미합니다.

핵심 요약:

  • 정의: 학습 과정에서 전체 데이터를 딱 한 번 모두 훑었을 때를 1 에포크라고 합니다.
  • 구성: 일반적으로 데이터셋을 작은 단위인 Batch (배치)로 나누어 학습하며, 모든 배치가 한 번씩 학습에 사용되면 1 에포크가 완료됩니다.
  • 공식: Iterations per Epoch = Dataset Size / Batch Size

왜 여러 번(Multi-epoch) 학습하나요?

신경망은 한 번의 에포크만으로는 데이터의 복잡한 패턴을 충분히 학습(수렴)하지 못하기 때문에, 가중치를 최적화하기 위해 동일한 데이터셋을 여러 번 반복해서 학습시킵니다.

단, 에포크가 너무 많으면 과적합 (Overfitting)이 발생할 수 있으므로 적절한 지점에서 학습을 멈추는 것이 중요합니다.

Batch size vs Epoch vs Iteration

Batch size#Batch size vs Epoch vs Iteration 항목 참조.

See also

Favorite site