Overfitting
Khám phá nguyên nhân và triệu chứng của hiện tượng overfitting trong machine learning. Tìm hiểu cách ngăn chặn phương sai cao và cải thiện tính tổng quát bằng Ultralytics YOLO26.
Overfitting xảy ra trong machine learning khi một model học dữ liệu huấn luyện quá mức, nắm bắt cả nhiễu và các biến động ngẫu nhiên thay vì phân phối dữ liệu cốt lõi. Thay vì học các quy luật tổng quát áp dụng cho dữ liệu mới, chưa từng thấy, một model bị overfitting thực chất sẽ 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 tuyệt vời 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à "high variance," 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 Overfitting xảy ra#
Nguyên nhân chính gây ra overfitting là độ phức tạp của model quá lớn so với lượng dữ liệu có sẵn. Nếu một neural network quá lớn—nghĩa là có quá nhiều layers hoặc parameters—nó có thể dễ dàng ghi nhớ các ví dụ huấn luyện. Các yếu tố góp phần khác bao gồm:
- Dữ liệu huấn luyện không đủ: Các tập dữ liệu nhỏ có thể chứa các tương quan sai lệch không tồn tại trong tổng thể rộng hơn. Các model được huấn luyện trên dữ liệu hạn chế thường có xu hướng học các quy luật ngẫu nhiên này.
- Data Noise and Outliers: Mức độ nhiễu cao hoặc các outliers không đại diện trong training data có thể làm model hiểu sai, khiến nó điều chỉnh các parameters bên trong để khớp với các điểm bất thường thay vì tín hiệu thực sự.
- Extended Training Duration: Huấn luyện quá nhiều epochs cho phép model tiếp tục tinh chỉnh weights của nó cho đến khi nó 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 cách sử dụng validation data.
Overfitting so với Underfitting#
Điều quan trọng là phải phân biệt overfitting với underfitting. Trong khi overfitting liên quan đến việc học quá nhiều chi tiết (bao gồm cả nhiễu), underfitting xảy ra khi một model quá đơn giản để nắm bắt cấu trúc cơ bản của dữ liệu. Một model bị underfitting cóประสิทธิภาพ kém trên cả training data và dữ liệu mới, thường dẫn đến high bias. Việc cân bằng hai thái cực này được gọi là bias-variance tradeoff.
Ngăn chặn Overfitting#
Các kỹ sư sử dụng một số kỹ thuật để giảm thiểu overfitting và cải thiện độ ổn định của model:
- Regularization: Các kỹ thuật như L1/L2 regularization hoặc thêm các dropout layers đưa ra các hình phạt hoặc tính ngẫu nhiên trong quá trình huấn luyện, ngăn cản model trở nên quá phụ thuộc vào các tính năng cụ thể.
- Early Stopping: Theo dõi loss function trên tập validation cho phép quá trình huấn luyện dừng lại khi hiệu suất trên dữ liệu chưa thấy dừng cải thiện, ngay cả khi độ chính xác khi huấn luyện tiếp tục tăng.
- Data Augmentation: Việc tăng kích thước và tính đa dạng của tập huấn luyện một cách nhân tạo bằng cách sử dụng data augmentation khiến model khó ghi nhớ chính xác các hình ảnh hơn.
- Cross-Validation: Sử dụng các kỹ thuật như k-fold cross-validation đảm bảo model được kiểm tra trên các tập con dữ liệu khác nhau, cung cấp ước tính đáng tin cậy hơn về hiệu suất của nó.
Ví dụ thực tế#
Overfitting có thể gây ra những hậu quả nghiêm trọng khi triển khai AI trong môi trường production:
- Medical Diagnosis: Trong AI in healthcare, một model được huấn luyện để phát hiện ung thư da có thể bị overfit đối với điều kiện ánh sáng hoặc các dấu hiệu thước kẻ có trong hình ảnh huấn luyện. Khi được triển khai tại phòng khám với ánh sáng hoặc thiết bị khác, model có thể không nhận dạng chính xác các tổn thương ác tính vì nó 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ể overfit với các xu hướng thị trường lịch sử vốn bị thúc đẩy bởi một sự kiện cụ thể, không lặp lại (như một cuộc khủng hoảng kinh tế xảy ra một lần). Một model như vậy có khả năng không dự đoán chính xác các chuyển động cổ phiếu trong tương lai vì nó đã ghi nhớ các điểm bất thường trong quá khứ thay vì học các động lực thị trường cơ bản.
Ví dụ về mã: Early Stopping với YOLO26#
Sử dụng Ultralytics Platform hoặc các tập lệnh huấn luyện cục bộ, bạn có thể ngăn ngừa overfitting bằng cách đặt early stopping patience. Thao tác này sẽ dừng huấn luyện nếu độ thích ứng validation không cải thiện trong một số lượng epochs nhất đị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#
- Generalization: Khả năng của một model trong việc thích ứng và hoạt động tốt trên dữ liệu mới, chưa từng thấy trước đây, đây là khái niệm đối lập với overfitting.
- Cross-Validation: Một kỹ thuật để đánh giá kết quả của phân tích thống kê sẽ generalize như thế nào đối với một tập dữ liệu độc lập.
- Regularization: Các phương pháp được sử dụng để giảm sai số bằng cách khớp hàm một cách thích hợp trên tập huấn luyện đã cho và tránh tình trạng overfitting.






