Overfitting là gì?
Hiểu vấn đề cốt lõi khiến AI 'học vẹt' - tại sao model điểm cao trong luyện tập nhưng lại thất bại thực chiến? Khám phá nguyên nhân và cách nhận biết.
Định nghĩa
Overfitting là hiện tượng mô hình Machine Learning học quá kỹ dữ liệu huấn luyện đến mức "học vẹt" cả nhiễu và chi tiết ngẫu nhiên, khiến hiệu suất sụt giảm nghiêm trọng khi gặp dữ liệu mới ngoài thực tế.
Giải thích chi tiết
Hiện tượng "học vẹt" trong AI
Nếu Machine Learning là quá trình dạy máy tính nhận pattern từ dữ liệu, thì Overfitting giống như việc học sinh không hiểu bản chất mà chỉ thuộc lòng đáp án. Mô hình bị Overfitting không học được quy luật tổng quát, mà chỉ "khớp" quá chặt vào từng ví dụ cụ thể trong tập training — kể cả những gì chỉ là nhiễu ngẫu nhiên.
Trong thuật ngữ kỹ thuật, đây là tình trạng variance cao và bias thấp. Model có khả năng biểu diễn quá mạnh (quá nhiều parameters) so với lượng thông tin thực sự cần thiết để giải quyết bài toán.
Dấu hiệu nhận biết qua metrics
Dấu hiệu điển hình nhất là khoảng cách giữa điểm số trên tập huấn luyện (training set) và tập kiểm tra (validation/test set):
- Training loss giảm liên tục (model học tốt dần trên dữ liệu cũ)
- Validation loss bắt đầu tăng sau một số epochs (model làm việc tệ hơn trên dữ liệu mới)
- Accuracy chênh lệch: 95-99% trên training nhưng chỉ 60-70% trên test
Đây chính là lúc bạn cần dừng huấn luyện (Early Stopping) để tránh lãng phí tài nguyên.
Nguyên nhân gốc rễ
Ba nguyên nhân chính dẫn đến Overfitting:
-
Model quá phức tạp: Mạng neural quá sâu, cây quyết định (decision tree) quá nhiều nhánh, hoặc quá nhiều features so với số lượng mẫu dữ liệu.
-
Dữ liệu huấn luyện kém chất lượng: Quá ít dữ liệu, hoặc dữ liệu chứa nhiễu (nhập sai, outlier) mà model cố gắng "học thuộc" để giảm loss.
-
Huấn luyện quá lâu: Training quá nhiều epochs khiến model đi quá sâu vào chi tiết cụ thể thay vì pattern tổng quát.
Ví dụ thực tế
Thí sinh luyện thi "học vẹt"
Học sinh luyện 100 đề thi cũ của các năm trước. Thay vì hiểu công thức toán học, em thuộc lòng từng bước giải của từng đề cụ thể: "Đề 2019 câu 3 thì kết quả là 5, đề 2020 câu 5 thì chọn C". Khi vào phòng thi gặp đề mới, cách hỏi thay đổi một chút — kết quả trượt đậu thê thảm. Đây chính là Overfitting trong giáo dục: "khớp" quá tốt với đề cũ, thất bại trên đề mới.
Gợi ý sản phẩm của Shopee/Tiki
Một hệ thống recommendation bị Overfitting có thể ép buộc hiển thị sản phẩm A cho user X chỉ vì X click nhầm vào A một lần duy nhất lúc 2 giờ sáng. Model "ghi nhớ" sự kiện ngẫu nhiên này như một quy luật, liên tục đề xuất A dù X đã không quan tâm nữa. Thay vì học "user thích đồ công nghệ", model học "user X click vào sản phẩm Y lúc Z".
Nhận diện chữ viết tay tiếng Việt
Khi huấn luyện model nhận diện chữ viết tay bằng bộ dữ liệu nhỏ từ 10 người, model có thể học luôn cách viết đặc trưng của từng cá nhân (người A viết chữ "a" hơi nghiêng, người B viết hơi dài) thay vì học cấu trúc chung của chữ cái. Khi gặp chữ viết của người thứ 11, dù đúng font chữ nhưng nét hơi khác, model nhận ra sai — đó là Overfitting trên đặc trưng cá nhân thay vì đặc trưng ngôn ngữ.
Ứng dụng và ý nghĩa thực tiễn
Với sinh viên học Machine Learning
Hiểu Overfitting giúp bạn không bị sốc khi thấy code báo accuracy 99% trên tập train nhưng chạy thử trên ảnh chụp bằng điện thoại lại nhận diện sai tung tóe. Đây là lúc cần kiểm tra lại: có chia tách validation set đúng cách không? Có đang dùng model quá phức tạp cho bộ dữ liệu nhỏ không?
Với người đi làm (Data Analyst, Product Manager)
Khi đọc báo cáo "model đạt 98% precision", hãy hỏi ngay: "Con số này đo trên tập nào?". Nếu chỉ đo trên dữ liệu lịch sử cũ mà không test trên dữ liệu thực tế mới nhất (hold-out test), con số đó có thể là ảo tưởng do Overfitting. Đặc biệt nguy hiểm trong các quyết định tài chính, y tế.
Với doanh nghiệp triển khai AI
Rủi ro lớn nhất của Overfitting là "AI chỉ chạy tốt trong phòng lab". Ví dụ: model chấm điểm tín dụng (credit scoring) được huấn luyện trên dữ liệu khách hàng cũ từ 2020-2023, nhưng khi áp dụng cho khách hàng Gen Z năm 2024 có hành vi tài chính khác biệt, model đưa ra quyết định sai lầm hàng loạt do đã "khớp" quá sâu vào pattern cũ.
So sánh: Overfitting vs Underfitting
| Tiêu chí | Overfitting | Underfitting |
|---|---|---|
| Biểu hiện | Training accuracy cao, test accuracy thấp (chênh lệch lớn) | Cả training và test đều thấp |
| Nguyên nhân | Model quá phức tạp, học cả nhiễu | Model quá đơn giản, chưa học được pattern |
| Ví dụ thực tế | Học sinh thuộc lòng đề cũ | Học sinh không học bài, đoán mò |
| Giải pháp | Regularization, Dropout, thêm dữ liệu, Early Stopping | Tăng độ phức tạp model, thêm features, huấn luyện lâu hơn |
Overfitting và Underfitting là hai đầu cực của trade-off bias-variance. Mục tiêu của Data Scientist là tìm "điểm ngọt" giữa hai cực này — model đủ phức tạp để học pattern, nhưng đủ đơn giản để tổng quát hóa.
Bài viết liên quan
Cùng cụm (advanced-ml-concepts)
- AI học online vs offline — Hiểu cách model cập nhật kiến thức, liên quan đến việc tránh Overfitting trong quá trình học liên tục
- Inference là gì? — Giai đoạn sau khi đã xử lý xong Overfitting, khi model được đem ra sử dụng thực tế
- Underfitting là gì? — "Người anh em song sinh" của Overfitting, hiện tượng model học không đủ
- Embedding là gì? — Kỹ thuật biểu diễn dữ liệu giúp giảm chiều và hạn chế Overfitting trong các bài toán NLP
Đọc tiếp
- Machine Learning cơ bản — Quay lại nền tảng để hiểu rõ hơn về cách model học pattern, từ đó tránh Overfitting ngay từ thiết kế
- Fine-tuning thực chiến — Kỹ thuật fine-tuning đặc biệt dễ gặp Overfitting do dữ liệu ít; tìm hiểu cách dùng LoRA/QLoRA để kiểm soát
- RAG pipeline — Giải pháp thay thế cho việc fine-tune toàn bộ model, tránh rủi ro Overfitting khi cập nhật kiến thức mới
Inference là gì?
Hiểu rõ Inference - giai đoạn AI 'suy luận' để đưa ra kết quả. Khác biệt với Training như thế nào và tại sao độ trễ lại quan trọng?
Underfitting là gì?
Underfitting xảy ra khi mô hình AI quá đơn giản để hiểu dữ liệu. Tìm hiểu cách nhận biết và khắc phục hiện tượng "học dốt" này trong Machine Learning.