머신 러닝의 획기적인 발전, 즉 모델 학습에 미치는 영향, 과적합을 방지하고 성능을 최적화하는 방법에 대해 Ultralytics YOLO 통해 알아보세요.
에포크는 머신러닝 알고리즘이 전체 훈련 데이터셋을 한 번 완전히 순환하는 것을 의미합니다. 이 과정에서 모델은 데이터 내 모든 샘플을 정확히 한 번씩 기반으로 내부 매개변수를 업데이트할 기회를 가집니다. 딥 러닝의 맥락에서, 단일 패스만으로는 신경망이 복잡한 패턴을 효과적으로 학습하기에 거의 충분하지 않습니다. 따라서 훈련은 일반적으로 여러 에포크를 포함하며, 이를 통해 학습 알고리즘은 반복적으로 이해를 정교화하고 예측값과 실제 기준값 간의 오차를 최소화할 수 있습니다.
훈련의 주요 목표는 특정 손실 함수를 최소화하기 위해 모델 가중치를 조정하는 것입니다. 확률적 경사 하강법(SGD)이나 Adam 같은 최적화 알고리즘은 각 에포크 동안 계산된 오차를 활용하여 이러한 조정을 안내합니다. 에포크 수가 증가함에 따라 모델은 일반적으로 높은 오차 상태(무작위 추측)에서 낮은 오차 상태(학습된 패턴)로 전환됩니다.
그러나 적절한 에포크 수를 선택하는 것은 하이퍼파라미터 튜닝의 핵심적인 측면이다.
초보자들은 흔히 "에포크(epoch)"를 관련 용어와 혼동합니다. 이러한 개념들의 계층 구조를 이해하는 것은 훈련 루프를 올바르게 구성하는 데 필수적입니다:
The number of epochs required varies drastically depending on the complexity of the task and the size of the data.
현대적인 프레임워크를 사용할 때 Ultralytics YOLO와 같은 현대적인 프레임워크를 사용할 때, 에포크 수는 훈련 명령어에서 간단히 지정할 수 있는 인수입니다. Ultralytics 도구는 각 에포크별 손실 곡선을 시각화하여 최적의 중단 지점을 식별하는 데 도움을 줄 수 있습니다.
다음 예시는 YOLO26 모델 훈련 시 에포크 카운트를 설정하는 방법을 보여줍니다:
from ultralytics import YOLO
# Load the YOLO26n model (nano version for speed)
model = YOLO("yolo26n.pt")
# Train the model for 50 epochs
# The 'epochs' argument determines how many times the model sees the entire dataset
results = model.train(data="coco8.yaml", epochs=50, imgsz=640)
이 스니펫에서는 epochs=50 인수는 훈련 엔진에게 순환하도록 지시합니다.
coco8.yaml 데이터셋을 50번 독립적으로 처리합니다. 각 사이클 동안 모델은 수행합니다.
전파 및
역전파 탐지 능력을 개선하기 위해