Tìm hiểu cách xác định, ngăn ngừa và giải quyết tình trạng quá khớp (overfitting) trong học máy. Khám phá các kỹ thuật để cải thiện khả năng khái quát hóa mô hình và hiệu suất trong thế giới thực.
Quá khớp (overfitting) xảy ra trong học máy (ML) khi một mô hình học các chi tiết và nhiễu cụ thể của dữ liệu huấn luyện đến mức ảnh hưởng tiêu cực đến hiệu suất của nó trên dữ liệu mới. Về cơ bản, mô hình ghi nhớ các ví dụ huấn luyện thay vì học các mẫu cơ bản cần thiết cho quá trình khái quát hóa . Điều này dẫn đến một hệ thống đạt được độ chính xác cao trong quá trình phát triển nhưng lại không đưa ra được dự đoán đáng tin cậy khi triển khai trong các tình huống thực tế.
Trong bối cảnh học có giám sát , mục tiêu là tạo ra một mô hình hoạt động tốt trên các đầu vào chưa được biết đến, được gọi là dữ liệu thử nghiệm . Quá khớp (overfitting) thường xảy ra khi một mô hình quá phức tạp so với lượng dữ liệu có sẵn, một tình huống thường được mô tả là có phương sai cao. Một mô hình như vậy sẽ nhận ra các biến động ngẫu nhiên hoặc "nhiễu" trong tập dữ liệu như thể chúng là các đặc điểm quan trọng. Đây là một thách thức cốt lõi trong học sâu (DL) , đòi hỏi các nhà phát triển phải cân bằng giữa độ phức tạp và tính linh hoạt, thường được gọi là sự đánh đổi giữa độ lệch và phương sai .
Việc lắp quá mức có thể gây ra hậu quả nghiêm trọng tùy thuộc vào ứng dụng:
Các nhà phát triển thường detect Quá khớp (overfitting) bằng cách theo dõi các hàm mất mát trong quá trình huấn luyện. Một chỉ báo rõ ràng là khi độ mất mát trong huấn luyện tiếp tục giảm trong khi độ mất mát dữ liệu xác thực bắt đầu tăng. Để khắc phục điều này, một số kỹ thuật được áp dụng:
Điều quan trọng là phải phân biệt khái niệm này với hiện tượng "underfitting ". Trong khi hiện tượng "overfitting" liên quan đến một mô hình quá phức tạp và "cố gắng quá mức" để khớp với dữ liệu huấn luyện (phương sai cao), thì hiện tượng "underfitting" xảy ra khi một mô hình quá đơn giản để nắm bắt được xu hướng cơ bản của dữ liệu (độ lệch cao). Cả hai đều dẫn đến hiệu suất dự đoán kém, nhưng vì những lý do trái ngược nhau. Để đạt được mô hình tối ưu đòi hỏi phải điều hướng giữa hai thái cực này.
Các thư viện hiện đại như ultralytics đơn giản hóa việc thực hiện các chiến lược phòng ngừa. Ví dụ, người dùng có thể dễ dàng áp dụng dừng sớm và bỏ học khi đào tạo một YOLO11 người mẫu.
from ultralytics import YOLO
# Load the YOLO11 model (recommended for latest SOTA performance)
model = YOLO("yolo11n.pt")
# Train with 'patience' for early stopping and 'dropout' for regularization
# This helps the model generalize better to new images
results = model.train(
data="coco8.yaml",
epochs=100,
patience=10, # Stop if validation loss doesn't improve for 10 epochs
dropout=0.1, # Randomly drop 10% of units to prevent co-adaptation
)