Yolo Tầm nhìn Thâm Quyến
Thâm Quyến
Tham gia ngay
Bảng chú giải thuật ngữ

Epoch (Số Lượt Huấn Luyện)

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ế.

Vai trò của các kỷ nguyên trong tối ưu hóa

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ố .

  • Số lượng epoch quá ít: Điều này có thể dẫn đến hiện tượng underfitting (không khớp dữ liệu), trong đó mô hình chưa nắm bắt được xu hướng cơ bản của dữ liệu.
  • Quá nhiều epoch: Điều này thường dẫn đến hiện tượng quá khớp (overfitting ), trong đó mô hình ghi nhớ nhiễu huấn luyện thay vì khái quát hóa trên dữ liệu mới. Để ngăn chặn điều này, các nhà phát triển thường theo dõi hiệu suất trên dữ liệu xác thực và sử dụng các kỹ thuật như dừng sớm (early stopping) để dừng quá trình huấn luyện khi khả năng khái quát hóa không còn được cải thiện.

Epoch so với Batch so với Iteration

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:

  • Epoch: Một lần duyệt hoàn chỉnh toàn bộ tập dữ liệu.
  • Batch: Một tập hợp con của dữ liệu được xử lý đồng thời. Vì các tập dữ liệu thường quá lớn để chứa hết trong bộ nhớ GPU cùng một lúc, chúng được chia thành các nhóm nhỏ hơn được xác định bởi kích thước batch .
  • Lặp lại: Một lần cập nhật duy nhất cho trọng số của mô hình. Nếu tập dữ liệu có 1.000 hình ảnh và kích thước lô là 100, sẽ cần 10 lần lặp lại để hoàn thành một epoch.

Các Ứng dụng Thực tế

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.

  • Phân tích hình ảnh y tế: Trong phân tích hình ảnh y tế , chẳng hạn như phát hiện khối u trong ảnh chụp MRI, độ chính xác là tối quan trọng. Các mô hình được huấn luyện cho các nhiệm vụ này thường chạy trong hàng trăm epoch. Quá trình huấn luyện chuyên sâu này đảm bảo mạng nơ-ron tích chập (CNN) có thể phân biệt được những bất thường nhỏ giúp phân biệt mô ác tính với mô khỏe mạnh, từ đó có khả năng cứu sống bệnh nhân.
  • Lái xe tự hành: Đối với xe tự hành , các mô hình phát hiện đối tượng phải xác định chính xác người đi bộ, biển báo và các phương tiện khác. Việc huấn luyện các hệ thống mạnh mẽ này thường liên quan đến các tập dữ liệu khổng lồ như COCO hoặc Objects365 . Mặc dù kích thước tập dữ liệu rất lớn, mô hình vẫn cần nhiều chu kỳ huấn luyện để hội tụ về một giải pháp có khả năng khái quát hóa tốt trong các điều kiện thời tiết và ánh sáng khác nhau.

Quản lý chu kỳ đào tạo bằng mã lập trình

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ướclan truyền ngược để nâng cao khả năng phát hiện của nó.

Tham gia Ultralytics cộng đồng

Tham gia vào tương lai của AI. Kết nối, hợp tác và phát triển cùng với những nhà đổi mới toàn cầu

Tham gia ngay