TROISINH
Hiểu bản chấtKhái niệm ML nâng cao

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 caobias 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:

  1. 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.

  2. 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.

  3. 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íOverfittingUnderfitting
Biểu hiệnTraining accuracy cao, test accuracy thấp (chênh lệch lớn)Cả training và test đều thấp
Nguyên nhânModel quá phức tạp, học cả nhiễuModel 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ápRegularization, Dropout, thêm dữ liệu, Early StoppingTă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

On this page