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ấtlà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ểm Loại lỗi
Đường thẳng đơn giản Không mô tả hết xu hướng dữ liệu Underfitting
Đường cong cực phức tạp Đi qua tất cả các điểm dữ liệu Overfitting
Đường cong vừa phải Bắt đúng xu hướng, chấp nhận một số sai lệch Tố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 settest 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ện Giải pháp chính
Underfitting Sai số cao ở cả train/test Mô hình phức tạp hơn, nhiều feature
Overfitting Sai số thấp ở train, cao ở test Giảm độ phức tạp, dùng cross-validation
Mục tiêu Mô hình cân bằng Tối ưu bias-variance trade-off