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 항목 참조.