Nhảy đến nội dung chính

Overfitting và Underfitting

Khi xây dựng mô hình học máy (Machine Learning), một trong những thách thức lớn nhất là làm sao để mô hình học “vừa đủ” từ dữ liệu. Nếu mô hình học quá ít hoặc quá nhiều, ta sẽ gặp phải 2 hiện tượng:

  • Underfitting (quá đơn giản)

  • Overfitting (quá phức tạp)

1. Trực quan hóa: Dữ liệu và mô hình

Dữ liệu:

Giả sử bạn có một tập dữ liệu đơn giản như sau (trên đồ thị):

  • Trục X: Biến đầu vào

  • Trục Y: Biến cần dự đoán (target)

  • Các dấu chấm: dữ liệu thực tế

Ba mô hình khác nhau:
Mô hìnhĐặc điểmLoại lỗi
Đường thẳng đơn giảnKhông mô tả hết xu hướng dữ liệuUnderfitting
Đường cong cực phức tạpĐi qua tất cả các điểm dữ liệuOverfitting
Đường cong vừa phảiBắt đúng xu hướng, chấp nhận một số sai lệchTối ưu

2. UNDERFITTING là gì?

  • Mô hình quá đơn giản → không học được mối quan hệ trong dữ liệu

  • Biểu hiện:

    • Sai số cao trên cả training set và test set

  • Nguyên nhân:

    • Dùng mô hình quá đơn giản (VD: hồi quy tuyến tính cho quan hệ phi tuyến)

    • Không đủ thời gian huấn luyện

    • Sử dụng quá ít đặc trưng (features)

📌 Ví dụ:

Bạn dùng một đường thẳng để mô tả quan hệ giữa lượng học và điểm thi, nhưng dữ liệu thực tế cho thấy quan hệ cong. Mô hình bỏ qua xu hướng cong → sai số cao → underfitting.

3. OVERFITTING là gì?

  • Mô hình quá phức tạp → học cả nhiễu (noise) trong dữ liệu

  • Biểu hiện:

    • Sai số thấp trên training set nhưng cao trên test set

  • Nguyên nhân:

    • Mô hình quá phức tạp

    • Dữ liệu huấn luyện không đủ đa dạng

    • Không có regularization (phạt phức tạp)

Ví dụ:

Bạn cho mô hình học “thuộc lòng” từng điểm dữ liệu học sinh (ví dụ: điểm, tuổi, chiều cao), mô hình sẽ dự đoán đúng tuyệt đối trên tập huấn luyện nhưng sai lệch nghiêm trọng khi gặp dữ liệu mới.

Ví dụ về Bias (Underfitting):

Khi còn nhỏ, bạn nghĩ rằng mọi vấn đề đều có thể giải quyết theo một cách duy nhất, do bạn thiếu trải nghiệm và hiểu biết. Bạn giống như một cái búa và nghĩ mọi vấn đề đều là cái đinh → đó là thiên lệch (bias) cao.

Ví dụ về Variance (Overfitting):

Bạn có 40 loại gia vị trong nhà bếp, và cố trộn tất cả lại để tạo ra món ăn “hoàn hảo”. Nhưng thay vì ngon, món ăn lại trở thành lộn xộn → quá nhiều lựa chọn, dẫn đến lỗi cao → phương sai (variance) cao.

Kết luận

Vấn đềBiểu hiệnGiải pháp chính
UnderfittingSai số cao ở cả train/testMô hình phức tạp hơn, nhiều feature
OverfittingSai số thấp ở train, cao ở testGiảm độ phức tạp, dùng cross-validation
Mục tiêuMô hình cân bằngTối ưu bias-variance trade-off