Tìm hiểu epoch là gì trong học máy và tác động của nó đến quá trình huấn luyện mô hình. Khám phá tối ưu hóa, tránh hiện tượng quá khớp và huấn luyện. Ultralytics YOLO26 một cách dễ dàng.
Một epoch đại diện cho một chu kỳ hoàn chỉnh mà thuật toán học máy thực hiện trên toàn bộ tập dữ liệu huấn luyện . Trong quá trình này, mô hình có cơ hội cập nhật các tham số nội bộ của nó dựa trên mỗi mẫu dữ liệu chính xác một lần. Trong bối cảnh học sâu , một lần xử lý duy nhất hiếm khi đủ để mạng nơ-ron học được các mẫu phức tạp một cách hiệu quả. Do đó, quá trình huấn luyện thường bao gồm nhiều epoch, cho phép thuật toán học liên tục tinh chỉnh sự hiểu biết của nó và giảm thiểu sai số giữa dự đoán của nó và dữ liệu thực tế.
Mục tiêu chính của quá trình huấn luyện là điều chỉnh trọng số của mô hình để giảm thiểu một hàm mất mát cụ thể. Các thuật toán tối ưu hóa, chẳng hạn như thuật toán giảm độ dốc ngẫu nhiên ( SGD ) hoặc thuật toán tối ưu Adam , sử dụng lỗi được tính toán trong mỗi kỷ nguyên để hướng dẫn các điều chỉnh này. Khi số lượng kỷ nguyên tăng lên, mô hình thường chuyển từ trạng thái lỗi cao (dự đoán ngẫu nhiên) sang trạng thái lỗi thấp hơn (các mẫu đã học).
Tuy nhiên, việc lựa chọn số lượng epoch phù hợp là một khía cạnh quan trọng trong việc tinh chỉnh siêu tham số .
Người mới bắt đầu thường nhầm lẫn "epoch" với các thuật ngữ liên quan. Hiểu được thứ tự ưu tiên của các khái niệm này là điều cần thiết để cấu hình các vòng lặp huấn luyện một cách chính xác:
Số lượng epoch cần thiết thay đổi rất nhiều tùy thuộc vào độ phức tạp của nhiệm vụ và kích thước dữ liệu.
Khi sử dụng các framework hiện đại như Ultralytics YOLO , việc xác định số lượng epoch là một tham số đơn giản trong lệnh huấn luyện. Các công cụ như Ultralytics Platform có thể giúp trực quan hóa đường cong hàm mất mát qua từng epoch để xác định điểm dừng tối ưu.
Ví dụ sau đây minh họa cách thiết lập số lượng epoch khi huấn luyện mô hình 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)
Trong đoạn trích này, epochs=50 Đối số này hướng dẫn công cụ huấn luyện thực hiện chu trình lặp lại.
coco8.yaml bộ dữ liệu được lặp lại 50 lần khác nhau. Trong mỗi chu kỳ, mô hình thực hiện...
sự lan truyền về phía trước và
lan truyền ngược để nâng cao khả năng phát hiện của nó.