용어집

Epoch

Ultralytics YOLO 에서 머신 러닝의 획기적인 발전이 모델 학습에 미치는 영향, 과적합 방지, 성능 최적화에 대해 알아보세요.

YOLO 모델을 Ultralytics HUB로 간단히
훈련

자세히 알아보기

머신러닝(ML)에서, 특히 딥러닝 모델 학습의 맥락에서 에포크는 학습 알고리즘을 통해 전체 학습 데이터 세트가 한 번 완전히 통과하는 것을 의미합니다. 모델 학습은 모델이 데이터를 반복적으로 처리하여 패턴을 학습하는 반복적인 프로세스입니다. 에포크는 알고리즘이 전체 데이터 세트에서 작동하는 횟수를 정의하는 기본 하이퍼파라미터로, 모델이 데이터 내의 각 예제에서 여러 번 학습할 수 있도록 합니다.

에포크 설명

학습 과정에서 모델의 내부 매개변수 또는 가중치는 예측 오류에 따라 조정됩니다. 이러한 조정은 일반적으로 경사 하 강과 같은 최적화 알고리즘 또는 그 변형(예: Adam Optimizer)을 사용하여 이루어집니다. 하나의 에포크는 학습 데이터 세트의 모든 샘플이 모델의 내부 파라미터를 한 번씩 업데이트할 기회를 가졌음을 의미합니다. 대규모 데이터 세트의 경우 전체 데이터 세트를 한 번에 처리하면 계산 비용이 많이 들기 때문에 데이터를 배치라고 하는 작은 덩어리로 나누어 처리하는 경우가 많습니다.

에포크와 반복 및 배치 크기 비교

시대를 관련 용어와 구분하는 것이 중요합니다:

  • 배치 크기: 모델의 가중치가 업데이트되기 전에 처리되는 샘플 수를 정의합니다.
  • 반복: 하나의 에포크를 완료하는 데 필요한 배치의 수를 나타냅니다. 데이터 세트에 1000개의 샘플이 있고 배치 크기가 100인 경우, 하나의 에포크에는 10회의 반복이 필요합니다(1000개의 샘플/배치당 100개의 샘플 = 10개의 배치/이터레이션). 각 반복에는 하나의 배치를 처리하고 모델의 가중치를 업데이트하는 작업이 포함됩니다.
  • Epoch: 전체 학습 데이터 세트에 대한 전체 주기. 위의 예에서 10번의 반복을 완료하면 하나의 에포크가 됩니다.

책을 읽는 것처럼 생각하면 책 전체가 데이터 집합이고, 한 장이 배치이며, 한 장을 읽는 것이 반복이고, 책 전체를 처음부터 끝까지 읽는 것이 한 시대라고 할 수 있습니다.

에포크가 중요한 이유

에포크 수는 모델이 전체 데이터 세트에서 학습하는 횟수를 결정하기 때문에 중요한 하이퍼파라미터입니다.

  • 너무 적은 에포크: 모델이 너무 적은 에포크 동안 학습된 경우, 기본 패턴을 효과적으로 학습하기에 충분한 데이터에 노출되지 않을 수 있습니다. 이로 인해 모델이 학습 데이터와 보이지 않는 테스트 데이터 모두에서 성능이 저하되는 과소적합이 발생할 수 있습니다.
  • 너무 많은 에포크: 반대로 너무 많은 에포크에 대한 학습은 과적합으로 이어질 수 있습니다. 이 시나리오에서는 모델이 노이즈와 특정 세부 사항을 포함하여 학습 데이터를 너무 잘 학습하여 보이지 않는 새로운 데이터에 대한 일반화 능력을 잃게 됩니다. 모델이 훈련 세트에서는 뛰어난 정확도를 보이지만 검증 데이터 또는 테스트 데이터에서는 성능이 저하될 수 있습니다.

적절한 균형을 찾는 것이 좋은 모델 성능과 일반화를 달성하는 데 핵심입니다. 이를 위해서는 훈련 중에 별도의 검증 데이터 세트에서 모델의 성능을 모니터링해야 하는 경우가 많습니다.

에포크 수 결정하기

최적의 값은 데이터의 복잡성, 데이터 세트의 크기, 모델 아키텍처 및 학습 속도에 따라 달라지며, 하나의 "정확한" 에포크 수는 존재하지 않습니다. 일반적인 접근 방식은 다음과 같습니다:

  • 실험: 다양한 에포크 횟수를 시도하고 성능을 평가합니다.
  • 유효성 검사 메트릭 모니터링: 유효성 검사 세트에서 손실 및 정확도와 같은 메트릭을 추적합니다. 이러한 지표가 개선되지 않거나 저하되기 시작하면 훈련을 중단하는 경우가 많은데, 이를 조기 중단이라고 합니다.
  • 하이퍼파라미터 튜닝: 에포크 수를 포함한 최적의 하이퍼파라미터를 체계적으로 검색하며, 종종 Ultralytics 하이퍼파라미터 튜닝 가이드에 나와 있는 것과 같은 자동화된 도구 또는 기법을 사용합니다.

실제 사례

  1. 물체 감지: 교육 시 Ultralytics YOLO 모델과 같은 YOLOv8 또는 YOLO11와 같은 대규모 데이터 세트에서 모델은 100개 또는 300개와 같은 특정 에포크 수에 대해 훈련될 수 있습니다. 각 에포크 동안 모델은 COCO 학습 세트의 모든 이미지를 처리하고 가중치를 조정하여 객체의 경계 상자와 클래스 레이블을 더 잘 예측합니다. 사용자는 Ultralytics HUB와 같은 플랫폼을 통해 이 훈련 프로세스를 쉽게 관리하고 여러 에포크에 걸쳐 성능을 모니터링할 수 있습니다.
  2. 자연어 처리(NLP): 감정 분석과 같은 작업을 위해 BERT와 같은 대규모 언어 모델을 훈련하려면 방대한 양의 텍스트 데이터를 모델에 공급해야 합니다. 데이터 세트와 모델의 크기가 방대하기 때문에 훈련은 더 적은 수의 에포크(예: 3~10개)에 걸쳐 이루어질 수 있습니다. 각 에포크는 모델이 전체 텍스트 코퍼스를 한 번씩 보고 정서와 관련된 언어 뉘앙스에 대한 이해를 개선할 수 있도록 합니다. Hugging Face 트랜스포머와 같은 프레임워크는 미세 조정을 위해 기본 에포크 수를 지정하는 경우가 많습니다.

도구 및 프레임워크

에포크는 대부분의 딥 러닝 프레임워크에서 표준 매개변수입니다:

  • PyTorch: 트레이닝 루프 PyTorch 는 에포크와 배치에 대해 명시적으로 반복합니다.
  • TensorFlow: Keras와 같은 하이레벨 API TensorFlow 에서 사용자가 직접 에포크 수를 지정할 수 있도록 허용합니다. fit 메서드를 사용합니다.
  • Ultralytics HUB: 사용자가 에포크 수를 쉽게 구성하고 훈련 진행 상황을 시각적으로 모니터링할 수 있는 YOLO 같은 훈련 모델을 위한 사용자 친화적인 인터페이스를 제공합니다.

에포크는 머신러닝에서 반복 학습의 초석으로, 데이터에 대한 충분한 노출의 필요성과 과적합의 위험 사이에서 균형을 유지합니다. 스탠퍼드의 CS231n 과정이나 머신 러닝 마스터리 블로그와 같은 리소스에서 설명하는 대로 신중한 실험과 모니터링을 통해 적절한 수의 에포크를 선택하는 것이 효과적인 모델을 구축하는 데 핵심입니다. 더 자세한 정의는 Google 머신 러닝 용어집과 같은 리소스에서 확인할 수 있습니다.

모두 보기
OSZAR »