Epoch에포크
에포크(Epoch)는 모델이 전체 훈련 데이터셋을 처음부터 끝까지 한 번 완전히 순회하는 과정을 말한다. 1 에포크가 끝나면 훈련 데이터 전체에 대해 기울기가 계산되고 가중치가 갱신된 것이다. 단일 에포크만으로는 충분한 학습이 이루어지지 않으므로 모델이 수렴할 때까지 에포크를 반복한다.
에포크, 반복, 배치의 관계
에포크와 함께 자주 등장하는 개념이 반복(iteration)과 배치 크기다. 미니배치 학습에서 전체 데이터셋을 배치 크기 B로 나누면 한 에포크는 N/B번의 반복(iteration)으로 이루어진다. 예를 들어 훈련 데이터가 10,000개이고 배치 크기가 100이면 1 에포크에 100번의 반복이 필요하다. 각 반복마다 배치에 대한 기울기 계산과 가중치 갱신이 한 차례 이루어진다.
적절한 에포크 수 결정
에포크 수가 너무 적으면 모델이 충분히 학습되지 않는 과소적합(underfitting)이, 너무 많으면 과적합이 발생한다. 적절한 에포크 수를 자동으로 결정하는 가장 일반적인 방법은 조기 종료(early stopping)다. 매 에포크 후 검증 손실을 측정하고, 일정 에포크 동안 검증 손실이 개선되지 않으면 훈련을 중단한다. 검증 손실이 최소였던 시점의 가중치를 저장해 최종 모델로 사용하는 것이 관례다. 에포크 수는 하이퍼파라미터 튜닝의 대상이지만, 조기 종료를 사용할 때는 충분히 넉넉하게 설정하고 자동으로 최적 지점을 찾게 하는 것이 편리하다.