에포크 (인공지능)
IT 위키
에포크(epoch)는 머신러닝 또는 딥러닝 모델 학습에서 전체 훈련 데이터를 한 번 전부 신경망에 통과시켜 처리하는 과정을 의미하는 하이퍼파라미터이다.
정의[편집 | 원본 편집]
에포크(epoch)란 훈련 데이터 전체를 한 번 모델에 입력하여 순전파와 역전파를 통해 가중치를 업데이트하는 과정을 말한다. 즉, 데이터셋 전체가 한 차례 네트워크를 통과하는 시점 하나를 에포크 하나로 간주한다.
역할과 중요성[편집 | 원본 편집]
에포크 수는 모델의 학습 과정 및 성능에 직·간접적인 영향을 미친다:
- 너무 작은 에포크 수는 모델이 충분히 학습되지 않아 과소적합(underfitting)이 발생할 수 있다.
- 반대로 너무 많은 에포크 수는 모델이 훈련 데이터에 과도하게 적합(overfitting)될 위험이 있다.
- 일반적으로 배치 크기(batch size), 학습률(learning rate)과 함께 조정되는 핵심 하이퍼파라미터이다.
- 배치, 반복, 에포크 관계
- Iteration (반복): 하나의 배치를 처리하고 나서 가중치를 한 번 업데이트하는 단위.
- 에포크 (Epoch): 전체 훈련 데이터가 배치 단위로 나뉘어 한 번씩 처리되는 기간.
- 예를 들어, 훈련 데이터 1,000장이 있고, 배치 크기가 100이면,
- 한 에포크는 10번의 iteration을 포함함.
- 10번의 iteration을 거치면 에포크가 1회 완료됨.
- 이러한 관계 때문에 에포크는 “한 세트를 전부 소화한 단위”로 이해할 수 있다.
학습 예시[편집 | 원본 편집]
한 에포크 동안의 데이터 흐름 예시
1. 전체 데이터가 여러 배치로 나뉨 (예: 배치 크기 = 32)
2. 각 배치를 순차적으로 모델에 입력하여 순전파 및 역전파 수행
3. 배치를 처리할 때마다 가중치를 업데이트(iteration마다)
4. 모든 배치를 처리하면 에포크 1회 완료
이 과정을 여러 번 반복하면서 모델은 점차 학습되고 성능이 개선됨.