Quá khớp (Overfitting)

Trong học máy, “quá khớp” (overfitting) là khi mô hình học quá giỏi dữ liệu huấn luyện—thậm chí nhớ hết từng chi tiết nhỏ, kể cả lỗi. Điều này cũng giống như học tủ: trúng thì tuyệt vời, trật là đi luôn. Dự đoán rất tốt trong bài kiểm tra… nhưng khi gặp đề mới thì lú.


Định nghĩa:
Quá khớp xảy ra khi mô hình học quá tốt các chi tiết và nhiễu (noise) trong dữ liệu huấn luyện, đến mức mất khả năng tổng quát hóa (generalization) trên dữ liệu mới. Mô hình trở nên quá phức tạp so với bài toán, “thuộc lòng” dữ liệu huấn luyện thay vì học các quy luật tổng quát.

Nguyên nhân kỹ thuật:

  • Mô hình quá phức tạp: Mô hình có quá nhiều tham số (ví dụ: mạng nơ-ron sâu với hàng triệu tham số) so với lượng dữ liệu huấn luyện.
  • Dữ liệu huấn luyện hạn chế: Khi dữ liệu ít, mô hình dễ học nhiễu hoặc các đặc điểm cụ thể chỉ có trong tập huấn luyện.
  • Thiếu kỹ thuật điều chuẩn (regularization): Không sử dụng các phương pháp như L1/L2 regularization, dropout, hoặc weight decay để hạn chế độ phức tạp của mô hình.
  • Huấn luyện quá lâu: Mô hình được huấn luyện quá nhiều epochs, dẫn đến việc tối ưu hóa quá mức trên tập huấn luyện.

Hậu quả:

  • Sai số huấn luyện thấp (low training error): Mô hình gần như hoàn hảo trên dữ liệu huấn luyện.
  • Sai số kiểm tra cao (high test error): Hiệu suất trên dữ liệu mới kém vì mô hình không tổng quát hóa được.
  • Phương sai cao (high variance): Mô hình quá nhạy với các biến động nhỏ trong dữ liệu huấn luyện, dẫn đến dự đoán không ổn định trên dữ liệu mới.

Ví dụ:
Nếu bạn dùng một mạng nơ-ron sâu với hàng triệu tham số để phân loại một tập dữ liệu nhỏ (ví dụ: 100 mẫu), mô hình có thể “học thuộc” cả các nhiễu ngẫu nhiên trong dữ liệu, như các điểm ngoại lai (outliers), dẫn đến dự đoán sai trên tập kiểm tra.

Cách khắc phục:

  • Điều chuẩn (Regularization): Áp dụng L1/L2 regularization, dropout (trong mạng nơ-ron), hoặc weight decay để giảm độ phức tạp của mô hình.
  • Tăng dữ liệu: Thu thập thêm dữ liệu hoặc sử dụng kỹ thuật tăng cường dữ liệu (data augmentation) để làm phong phú tập huấn luyện.
  • Giảm độ phức tạp mô hình: Sử dụng mô hình đơn giản hơn hoặc giảm số lượng tham số (ví dụ: giảm số lớp hoặc nơ-ron trong mạng nơ-ron).
  • Early stopping: Ngừng huấn luyện khi sai số trên tập kiểm tra bắt đầu tăng, dù sai số trên tập huấn luyện vẫn giảm.
  • Cross-validation: Sử dụng k-fold cross-validation để đảm bảo mô hình tổng quát hóa tốt trên các tập dữ liệu khác nhau.

So sánh ngắn gọn

Tiêu chíChưa khớp (Underfitting)Quá khớp (Overfitting)
Sai số huấn luyệnCaoThấp
Sai số kiểm traCaoCao
Nguyên nhân chínhMô hình quá đơn giản, học không đủMô hình quá phức tạp, học cả nhiễu
Vấn đề cốt lõiĐộ lệch cao (high bias)Phương sai cao (high variance)
Tổng quát hóaKém (không học được quy luật)Kém (học quá chi tiết dữ liệu huấn luyện)

Minh họa bằng biểu đồ

Trong máy học, ta thường vẽ learning curves để quan sát chưa khớp và quá khớp:

  • Chưa khớp: Sai số huấn luyện và kiểm tra đều cao, không giảm nhiều khi tăng dữ liệu hoặc độ phức tạp.
  • Quá khớp: Sai số huấn luyện rất thấp, nhưng sai số kiểm tra cao, tạo ra khoảng cách lớn (gap) giữa hai đường cong.

Hình ảnh minh họa (nếu bạn muốn hình dung):

  • Đường cong học tập của chưa khớp: Cả hai sai số (training và test) đều cao và gần nhau.
  • Đường cong học tập của quá khớp: Sai số huấn luyện thấp, nhưng sai số kiểm tra cao, khoảng cách giữa hai đường lớn dần.

Mục tiêu lý tưởng

Để tránh cả chưa khớp và quá khớp, mục tiêu là đạt được điểm cân bằng giữa độ lệch và phương sai (bias-variance tradeoff). Điều này có nghĩa là mô hình cần đủ phức tạp để nắm bắt các mẫu quan trọng trong dữ liệu, nhưng không quá phức tạp đến mức học nhiễu. Các kỹ thuật như điều chuẩn, tăng dữ liệu, và tối ưu siêu tham số giúp đạt được điểm cân bằng này.

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

error: Content is protected !!