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ể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 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ệ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 |