Overfitting là hiện tượng mô hình học quá sát dữ liệu huấn luyện nên đạt kết quả cao khi huấn luyện nhưng dự đoán kém trên dữ liệu mới. Cùng FPT.AI tìm hiểu nguyên nhân, dấu hiệu và cách khắc phục overfitting để cải thiện khả năng tổng quát hóa của mô hình.
Overfitting là gì?
Overfitting (quá khớp) xảy ra khi mô hình khớp quá sát các mẫu, nhiễu hoặc đặc điểm riêng của dữ liệu huấn luyện, khiến hiệu suất trên dữ liệu chưa từng thấy thấp hơn đáng kể. Vì vậy, mô hình có thể đạt độ chính xác rất cao trên tập huấn luyện nhưng lại dự đoán kém khi gặp dữ liệu mới.
Nói một cách đơn giản, một mô hình bị overfit giống như học sinh chỉ ghi nhớ đáp án của bộ đề ôn tập mà không hiểu bản chất. Khi gặp câu hỏi khác cách diễn đạt, học sinh dễ trả lời sai dù trước đó làm đúng toàn bộ đề mẫu.
Ví dụ, một mô hình dự đoán giá nhà có thể ghi nhớ quá kỹ đặc điểm của các căn nhà trong dữ liệu huấn luyện. Khi áp dụng cho một khu vực mới, mô hình không nhận ra quy luật chung và đưa ra kết quả thiếu chính xác.

Nguyên nhân nào gây ra overfitting?
Overfitting thường xuất hiện khi mô hình học quá sát dữ liệu huấn luyện nhưng không duy trì được hiệu suất trên dữ liệu mới. Hiện tượng này có thể bắt nguồn từ dữ liệu, độ phức tạp của mô hình hoặc cách doanh nghiệp tổ chức quá trình huấn luyện và đánh giá.
- Dữ liệu huấn luyện quá ít: Mô hình dễ ghi nhớ từng mẫu thay vì học quy luật chung.
- Dữ liệu không đại diện: Tập train khác nhiều so với dữ liệu thực tế, làm khả năng tổng quát hóa giảm.
- Mô hình quá phức tạp: Quá nhiều tham số hoặc khả năng biểu diễn cao khiến mô hình dễ học cả nhiễu.
- Huấn luyện quá lâu: Với mô hình iterative, training loss tiếp tục giảm trong khi validation loss tăng.
- Quá nhiều đặc trưng không cần thiết: Feature nhiễu hoặc dữ liệu quá thưa có thể làm tăng variance.
- Data Leakage: Thông tin từ validation, test hoặc dữ liệu tương lai lọt vào quá trình huấn luyện, khiến kết quả đánh giá bị “đẹp giả”.
- Tối ưu siêu tham số quá mức: Thử quá nhiều cấu hình trên cùng validation set có thể khiến quá trình model selection bị khớp với chính tập này.

Dấu hiệu nhận biết mô hình bị overfitting
Overfitting thường được nhận biết bằng cách so sánh hiệu suất của mô hình trên tập huấn luyện với tập validation hoặc test. Khi khoảng cách giữa các kết quả ngày càng lớn, mô hình có thể đang ghi nhớ dữ liệu huấn luyện thay vì học được quy luật có thể áp dụng cho dữ liệu mới.
Hiệu suất train tốt nhưng validation kém
Mô hình bị overfitting thường đạt độ chính xác rất cao trên tập huấn luyện nhưng có kết quả thấp hơn rõ rệt trên tập validation hoặc test. Khoảng cách này cho thấy mô hình khớp tốt với dữ liệu đã thấy nhưng chưa tổng quát hóa hiệu quả trên dữ liệu mới.
Validation Loss tăng trong khi Training Loss giảm
Trong quá trình huấn luyện, Training Loss có thể tiếp tục giảm vì mô hình ngày càng khớp với dữ liệu huấn luyện. Tuy nhiên, nếu Validation Loss bắt đầu tăng, mô hình có thể đã vượt qua điểm học tối ưu và bắt đầu ghi nhớ cả nhiễu trong dữ liệu, đặc biệt khi xu hướng này kéo dài qua nhiều epoch.
Learning Curve tách xa
Learning Curve thể hiện kết quả của mô hình trên tập huấn luyện và tập validation theo số lượng dữ liệu hoặc quá trình học. Khi điểm huấn luyện duy trì ở mức cao nhưng điểm validation thấp hơn đáng kể, khoảng cách giữa hai đường cho thấy mô hình có vấn đề về phương sai cao và nguy cơ overfitting.
Hiệu suất giảm khi triển khai thực tế
Hiệu suất production thấp hơn validation có thể là dấu hiệu cần điều tra; nguyên nhân có thể gồm overfitting, distribution shift, data quality hoặc lỗi triển khai.
Mô hình nhạy cảm với dữ liệu mới
Hiệu suất thay đổi mạnh giữa các lần chia dữ liệu hoặc tập validation có thể cho thấy variance cao và nguy cơ overfitting.

Overfitting, Underfitting và Good Fit khác nhau như thế nào?
Trong quá trình xây dựng mô hình Machine Learning, người phát triển cần cân bằng giữa việc mô hình chưa học đủ, học vừa đủ và học quá sát dữ liệu huấn luyện. Underfitting và Overfitting đều khiến mô hình dự đoán kém, còn Good Fit là trạng thái mô hình học được quy luật chính và duy trì hiệu quả trên dữ liệu mới.
| Tiêu chí | Underfitting | Good Fit | Overfitting |
| Khái niệm | Mô hình quá đơn giản hoặc chưa được huấn luyện đủ nên không học được quy luật chính của dữ liệu. | Mô hình học được quy luật quan trọng nhưng không ghi nhớ quá mức các chi tiết riêng của tập huấn luyện. | Mô hình học quá sát dữ liệu huấn luyện, bao gồm cả nhiễu và những chi tiết không quan trọng. |
| Độ phức tạp của mô hình | Quá thấp so với bài toán. | Phù hợp với đặc điểm và độ phức tạp của dữ liệu. | Quá cao so với lượng dữ liệu hoặc yêu cầu của bài toán. |
| Hiệu suất trên dữ liệu huấn luyện | Thấp vì mô hình chưa mô tả được dữ liệu. | Tốt và đáp ứng mục tiêu huấn luyện. | Rất cao vì mô hình ghi nhớ tốt dữ liệu đã học. |
| Hiệu suất trên dữ liệu mới | Thấp vì mô hình chưa học được quy luật. | Tốt và không chênh lệch quá lớn so với kết quả huấn luyện. | Thấp hơn đáng kể so với kết quả trên tập huấn luyện. |
| Bias và Variance | Bias cao, Variance thấp. | Bias và Variance được cân bằng ở mức phù hợp. | Bias thấp, Variance cao. |
| Biểu hiện trên Learning Curve | Training Loss và Validation Loss đều cao. | Hai đường Loss ở mức thấp và có khoảng cách nhỏ. | Training Loss thấp nhưng Validation Loss cao hoặc tăng dần. |
| Khả năng tổng quát hóa | Kém vì mô hình chưa học đủ. | Tốt vì mô hình có thể áp dụng quy luật cho dữ liệu chưa từng gặp. | Kém vì mô hình phụ thuộc quá nhiều vào dữ liệu huấn luyện. |
| Ví dụ | Mô hình đa thức bậc 1 không mô tả được quan hệ phi tuyến của dữ liệu. | Mô hình đa thức bậc 4 mô tả gần đúng quy luật thực tế. | Mô hình đa thức bậc quá cao uốn theo từng điểm dữ liệu và học cả nhiễu. |
Như vậy, sự khác biệt giữa Overfitting và Underfitting nằm ở mức độ mô hình học dữ liệu. Underfitting xảy ra khi mô hình học chưa đủ, Overfitting xảy ra khi mô hình học quá mức, còn Good Fit thể hiện sự cân bằng giữa độ chính xác và khả năng tổng quát hóa.

Overfitting ảnh hưởng như thế nào đến mô hình
Overfitting khiến mô hình hoạt động tốt trên dữ liệu huấn luyện nhưng kém hiệu quả khi gặp dữ liệu mới. Một số ảnh hưởng chính gồm:
- Giảm khả năng tổng quát hóa: Mô hình học quá sát dữ liệu huấn luyện nên khó thích ứng với các mẫu dữ liệu chưa từng gặp.
- Tăng sai số dự đoán: Prediction error trên dữ liệu mới có thể cao hơn đáng kể so với tập huấn luyện.
- Dẫn đến quyết định sai lệch: Prediction thiếu chính xác có thể ảnh hưởng đến các quyết định nghiệp vụ dựa trên kết quả của mô hình.
- Tăng effort kiểm tra và retraining: Đội ngũ phải dành thêm thời gian đánh giá, điều chỉnh hoặc huấn luyện lại mô hình.
- Giảm độ tin cậy của hệ thống: Hiệu suất không ổn định trên dữ liệu thực tế khiến mô hình khó được tin tưởng và mở rộng triển khai.

Các phương pháp giảm và khắc phục overfitting
Một số cách phổ biến để hạn chế overfitting gồm:
- Bổ sung dữ liệu đại diện: Tăng số lượng và độ đa dạng của mẫu huấn luyện.
- Data augmentation: Tạo thêm biến thể hợp lệ từ dữ liệu hiện có để tăng tính đa dạng.
- Chia train/validation/test đúng cách: Chỉ fit các bước tiền xử lý trên training set để tránh data leakage.
- Cross-validation: Đánh giá mô hình trên nhiều phần dữ liệu để có kết quả ổn định hơn.
- Giảm độ phức tạp mô hình: Hạn chế số tầng, nút hoặc tham số không cần thiết.
- Feature selection / giảm số chiều: Loại bỏ đặc trưng nhiễu, trùng lặp hoặc ít giá trị.
- Regularization L1/L2: Hạn chế trọng số quá lớn và giảm khả năng mô hình khớp quá sát dữ liệu train.
- Dropout: Ngẫu nhiên bỏ một phần activations khi huấn luyện để giảm sự phụ thuộc vào các kết nối cụ thể.
- Early stopping: Dừng train khi hiệu suất trên validation set không còn cải thiện.
- Transfer learning: Tận dụng mô hình đã học trước để giảm nhu cầu huấn luyện từ đầu với tập dữ liệu nhỏ.
- Ensemble learning: Các phương pháp như bagging hoặc Random Forest có thể giúp giảm variance.
- Tối ưu siêu tham số có kiểm soát: Giới hạn không gian tìm kiếm, dùng cross-validation và giữ test set độc lập để tránh khớp quá mức với validation set.
Trong thực tế, nên kết hợp nhiều kỹ thuật và lựa chọn phương pháp dựa trên nguyên nhân gây overfitting thay vì chỉ áp dụng một giải pháp riêng lẻ.

Ví dụ về Overfitting trong Machine Learning và AI
Overfitting có thể xuất hiện ở nhiều loại mô hình Machine Learning, từ mô hình cây đến mạng nơ-ron và các hệ thống AI chuyên biệt. Biểu hiện chung là mô hình đạt kết quả tốt trên dữ liệu huấn luyện nhưng không duy trì được hiệu suất khi gặp dữ liệu mới.
Decision Tree
Ví dụ, một cây quyết định dự đoán khả năng khách hàng rời bỏ dịch vụ có thể tạo ra các nhánh chỉ dựa trên một vài trường hợp riêng lẻ. Mô hình đạt độ chính xác cao trên tập train nhưng dự đoán thiếu ổn định đối với khách hàng mới.
Neural Network
Ví dụ, một mạng nơ-ron phân loại khách hàng có thể đạt Training Accuracy rất cao nhưng Validation Accuracy thấp hơn rõ rệt. Trường hợp này thường xuất hiện khi dữ liệu huấn luyện còn ít nhưng mô hình có quá nhiều tham số.
Ví dụ, mô hình phân loại hoa có thể ghi nhớ màu nền xuất hiện trong ảnh train. Khi ảnh mới có phông nền hoặc ánh sáng khác, độ chính xác của mô hình giảm dù đối tượng vẫn thuộc cùng một loại. TensorFlow minh họa dấu hiệu này qua khoảng cách lớn giữa Training Accuracy và Validation Accuracy, đồng thời sử dụng Data Augmentation và Dropout để cải thiện khả năng tổng quát hóa.
Ví dụ, một mô hình phân tích cảm xúc chỉ được huấn luyện trên tập dữ liệu nhỏ có thể gắn nhãn dựa trên một số từ quen thuộc thay vì ngữ cảnh của cả câu. Quá trình Fine-tuning trên dữ liệu chuyên biệt quá ít cũng có thể khiến mô hình học cả nhiễu và hoạt động kém trên văn bản chưa từng gặp.
Dự báo nhu cầu và phát hiện gian lận
Nếu mô hình khớp quá sát biến động riêng của dữ liệu lịch sử, nó có thể overfit. Tuy nhiên, hiệu suất giảm khi điều kiện thị trường hoặc kiểu gian lận thay đổi cũng có thể do distribution/concept drift và cần được phân biệt.

Quy trình kiểm soát overfitting khi triển khai mô hình AI
Các bước giám sát và quản trị sau triển khai là phần mở rộng thực tế nhằm duy trì khả năng tổng quát hóa của mô hình.
- Bước 1. Chia dữ liệu train/validation/test đúng cách: Tách dữ liệu trước khi huấn luyện để tránh Data Leakage và đảm bảo đánh giá khách quan.
- Bước 2. Xây dựng baseline: Bắt đầu với mô hình đơn giản để làm mốc so sánh cho các thử nghiệm sau.
- Bước 3. Huấn luyện và theo dõi train/validation metrics: Theo dõi các metric trên tập train và validation trong suốt quá trình huấn luyện.
- Bước 4. Phát hiện generalization gap: Nếu hiệu suất trên train tiếp tục tốt lên nhưng validation không cải thiện hoặc giảm, mô hình có dấu hiệu overfitting.
- Bước 5. Áp dụng biện pháp kiểm soát: Thử các kỹ thuật như regularization, dropout, bổ sung dữ liệu hoặc giảm độ phức tạp của mô hình.
- Bước 6. Chọn model bằng validation và đánh giá trên test set: Dùng validation để lựa chọn mô hình và siêu tham số; chỉ sử dụng test set độc lập cho lần đánh giá cuối cùng.
Quy trình này giúp doanh nghiệp phát hiện dấu hiệu overfitting từ sớm, kiểm soát quá trình lựa chọn mô hình và duy trì hiệu suất khi hệ thống AI được triển khai trong thực tế.

Các câu hỏi thường gặp về overfitting
Overfitting có phải là mô hình đạt Accuracy quá cao không?
Không. Accuracy train cao tự nó không chứng minh overfitting. Dấu hiệu quan trọng là khoảng cách tổng quát hóa: mô hình khớp train tốt hơn đáng kể so với dữ liệu chưa thấy.
Làm sao biết mô hình bắt đầu overfit?
Một dấu hiệu thường gặp là training loss tiếp tục giảm trong khi validation loss tăng hoặc validation metric không còn cải thiện.
Cross-validation có ngăn được overfitting không?
Cross-validation không trực tiếp ngăn overfitting mà giúp phát hiện và đánh giá hiện tượng này chính xác hơn. Kết quả từ nhiều lần chia dữ liệu có thể hỗ trợ người phát triển lựa chọn độ phức tạp, siêu tham số hoặc thời điểm dừng huấn luyện phù hợp.
Thêm dữ liệu có luôn khắc phục được overfitting không?
Không phải lúc nào thêm dữ liệu cũng khắc phục được overfitting. Dữ liệu mới chỉ phát huy hiệu quả khi có chất lượng, đủ đa dạng và đại diện cho dữ liệu thực tế; nếu dữ liệu vẫn chứa nhiều nhiễu hoặc bị lệch, mô hình vẫn có thể tiếp tục overfit.
>>>Đọc thêm: AI Hallucination – Nguyên nhân và cách phòng tránh
Kết luận
Overfitting xảy ra khi mô hình khớp quá sát đặc điểm của dữ liệu huấn luyện và không duy trì được khả năng tổng quát hóa trên dữ liệu chưa thấy. Mục tiêu của huấn luyện không phải tối ưu training metric đến mức cao nhất, mà là đạt hiệu suất tốt và ổn định trên dữ liệu phù hợp với môi trường triển khai!