Overfitting
Khám phá nguyên nhân và triệu chứng của overfitting trong machine learning. Tìm hiểu cách ngăn ngừa variance cao và cải thiện khả năng generalization bằng Ultralytics YOLO26.
Hiện tượng quá khớp xảy ra trong machine learning khi một model học dữ liệu huấn luyện quá tốt, nắm bắt cả nhiễu và các dao động ngẫu nhiên thay vì phân phối dữ liệu nền tảng. Thay vì học các mẫu tổng quát áp dụng được cho dữ liệu mới, chưa từng thấy, model bị quá khớp thực tế ghi nhớ các ví dụ cụ thể trong tập huấn luyện. Điều này dẫn đến hiệu suất xuất sắc trên dữ liệu huấn luyện nhưng khả năng tổng quát hóa kém trong các tình huống thực tế. Hiện tượng này thường được mô tả là "phương sai cao", nghĩa là các dự đoán của model thay đổi đáng kể tùy thuộc vào tập dữ liệu cụ thể được sử dụng để huấn luyện.
Tại sao xảy ra hiện tượng quá khớp#
Nguyên nhân chính của hiện tượng quá khớp là độ phức tạp của model quá lớn so với lượng dữ liệu hiện có. Nếu một neural network quá lớn—nghĩa là có quá nhiều layer hoặc tham số—nó có thể dễ dàng ghi nhớ các ví dụ huấn luyện. Các yếu tố khác góp phần gây ra hiện tượng này gồm:
- Dữ liệu huấn luyện không đủ: Các tập dữ liệu nhỏ có thể chứa những mối tương quan giả không tồn tại trong quần thể rộng hơn. Các model được huấn luyện trên dữ liệu hạn chế dễ học phải những mẫu ngẫu nhiên này.
- Nhiễu dữ liệu và các giá trị ngoại lệ: Mức độ nhiễu cao hoặc các giá trị ngoại lệ không mang tính đại diện trong dữ liệu huấn luyện có thể khiến model bị đánh lạc hướng, làm model điều chỉnh các tham số nội bộ để khớp với các điểm bất thường thay vì tín hiệu thực.
- Thời gian huấn luyện kéo dài: Huấn luyện trong quá nhiều epoch cho phép model tiếp tục tinh chỉnh các trọng số cho đến khi khớp với nhiễu trong tập huấn luyện. Điều này thường được theo dõi bằng dữ liệu validation.
Quá khớp và thiếu khớp#
Điều quan trọng là phải phân biệt hiện tượng quá khớp với thiếu khớp. Trong khi quá khớp liên quan đến việc học quá nhiều chi tiết (bao gồm cả nhiễu), thiếu khớp xảy ra khi một model quá đơn giản để nắm bắt được cấu trúc nền tảng của dữ liệu. Model bị thiếu khớp hoạt động kém trên cả dữ liệu huấn luyện và dữ liệu mới, thường dẫn đến độ chệch cao. Việc cân bằng hai thái cực này được gọi là đánh đổi độ chệch-phương sai.
Ngăn ngừa hiện tượng quá khớp#
Các kỹ sư sử dụng một số kỹ thuật để giảm thiểu hiện tượng quá khớp và cải thiện độ bền vững của model:
- Regularization: Các kỹ thuật như regularization L1/L2 hoặc thêm dropout layer sẽ đưa vào các hình phạt hoặc tính ngẫu nhiên trong quá trình huấn luyện, ngăn model phụ thuộc quá mức vào các đặc trưng cụ thể.
- Dừng sớm: Theo dõi hàm loss trên một tập validation cho phép dừng huấn luyện ngay khi hiệu suất trên dữ liệu chưa từng thấy không còn cải thiện, ngay cả khi độ chính xác trên tập huấn luyện vẫn tiếp tục tăng.
- Tăng cường dữ liệu: Tăng kích thước và độ đa dạng của tập huấn luyện một cách nhân tạo bằng tăng cường dữ liệu khiến model khó ghi nhớ chính xác từng hình ảnh hơn.
- Cross-Validation: Sử dụng các kỹ thuật như cross-validation k-fold đảm bảo model được kiểm thử trên các tập con dữ liệu khác nhau, qua đó cung cấp ước tính đáng tin cậy hơn về hiệu suất của model.
Ví dụ trong thực tế#
Hiện tượng quá khớp có thể gây ra hậu quả nghiêm trọng khi triển khai AI trong môi trường production:
- Chẩn đoán y khoa: Trong AI trong chăm sóc sức khỏe, một model được huấn luyện để phát hiện ung thư da có thể bị quá khớp với điều kiện ánh sáng hoặc các vạch đánh dấu trên thước xuất hiện trong ảnh huấn luyện. Khi được triển khai tại một phòng khám có điều kiện ánh sáng hoặc thiết bị khác, model có thể không xác định chính xác các tổn thương ác tính vì đã dựa vào các dấu hiệu nền không liên quan.
- Dự báo tài chính: Một model dự đoán giá cổ phiếu có thể bị quá khớp với các xu hướng thị trường trong quá khứ vốn được thúc đẩy bởi một sự kiện cụ thể, không thể lặp lại (chẳng hạn như một cuộc khủng hoảng kinh tế chỉ xảy ra một lần). Model như vậy có khả năng không dự đoán chính xác biến động cổ phiếu trong tương lai vì đã ghi nhớ các điểm bất thường trong quá khứ thay vì học các động lực cơ bản của thị trường.
Ví dụ mã: Dừng sớm với Ultralytics YOLO26#
Sử dụng Ultralytics Platform hoặc các script huấn luyện cục bộ, bạn có thể ngăn ngừa hiện tượng quá khớp bằng cách thiết lập patience cho dừng sớm. Thao tác này sẽ dừng quá trình huấn luyện nếu fitness trên tập validation không cải thiện trong một số epoch được xác định.
from ultralytics import YOLO
# Load the YOLO26 model (latest generation)
model = YOLO("yolo26n.pt")
# Train with early stopping enabled (patience=50 epochs)
# If validation metrics don't improve for 50 epochs, training stops.
results = model.train(data="coco8.yaml", epochs=100, patience=50)Các khái niệm liên quan#
- Khả năng tổng quát hóa: Khả năng của model thích ứng và hoạt động tốt trên dữ liệu mới, chưa từng thấy trước đó, trái ngược với hiện tượng quá khớp.
- Cross-Validation: Một kỹ thuật dùng để đánh giá mức độ mà kết quả của một phân tích thống kê sẽ tổng quát hóa sang một tập dữ liệu độc lập.
- Regularization: Các phương pháp được sử dụng để giảm lỗi bằng cách khớp một hàm phù hợp với tập huấn luyện đã cho và tránh hiện tượng quá khớp.









