Nền tảngCơ bản

Overfitting và underfitting: học quá sát hay chưa học đủ?

Đọc lỗi trên train và validation để phân biệt quá khớp, thiếu khớp và các vấn đề dữ liệu dễ bị nhầm với chúng.

Trong bài viết này

Từ được đánh dấu có giải thích. Di chuột hoặc chạm để xem, hay mở từ điển AI.

Một bạn nhớ đúng toàn bộ bài mẫu nhưng lúng túng khi đề đổi con số. Một bạn khác chưa hiểu cả bài mẫu. Hai tình huống gợi hình ảnh của overfitting và underfitting trong học máy, nhưng muốn chẩn đoán mô hình, bạn cần nhìn dữ liệu và phép đo cụ thể.

Quá khớp là giỏi trên phần đã học

Overfitting, thường dịch là quá khớp, xảy ra khi mô hình phù hợp dữ liệu huấn luyện đến mức học cả những chi tiết không hữu ích cho dữ liệu mới. Bài giải thích của Google nhấn mạnh khác biệt giữa kết quả tốt trên train và khả năng khái quát hóa.

Giả sử bạn dự đoán lượng nước một chậu cây cần từ nhiệt độ. Trong dữ liệu nhỏ, tình cờ những ngày nóng nhất cũng là ngày đổi người chăm. Một mô hình quá linh hoạt có thể bám sát từng biến động của bảng mà không học quan hệ ổn định. Đây là tình huống minh họa, không phải kết luận về một bộ dữ liệu thật.

Dấu hiệu thường gặp là lỗi train tiếp tục giảm còn lỗi validation tăng. Tuy nhiên, một khoảng cách giữa hai lỗi chưa tự động xác nhận quá khớp. Bạn còn phải kiểm tra cách chia và sự khác nhau giữa các tập.

Thiếu khớp là chưa nắm được cấu trúc cần thiết

Underfitting, hay thiếu khớp, khiến mô hình làm kém ngay trên dữ liệu huấn luyện. Có thể cách biểu diễn quá đơn giản, thiếu đầu vào quan trọng, huấn luyện chưa đủ hoặc ràng buộc quá mạnh. Mục underfitting trong thuật ngữ Google liệt kê nhiều nguyên nhân, nên không thể chữa mọi trường hợp bằng việc chỉ chạy lâu hơn.

Trong ví dụ chậu cây, chỉ dùng nhiệt độ mà bỏ kích thước chậu có thể khiến dự đoán kém. Thêm nhiều lượt học không tạo ra thông tin chưa tồn tại trong đầu vào. Trước khi tăng độ phức tạp, hãy hỏi liệu các cột đang có đủ liên quan đến mục tiêu hay chưa.

Nhìn để hiểuMáy học từ ví dụ như thế nào?

Mô hình nhận ví dụ đã gán nhãn, tạo dự đoán, đo sai lệch rồi điều chỉnh tham số. Khả năng áp dụng cần được kiểm tra trên dữ liệu chưa dùng để học.

Học từ phản hồi đã gán nhãnVí dụ giản lược: mô hình dự đoán chủ đề của phản hồi về cà phê, so dự đoán với nhãn đồ uống rồi điều chỉnh trọng số. Sau huấn luyện, phải đánh giá trên những phản hồi chưa dùng để học.VÍ DỤ CÓ NHÃN“Cà phê nguội”Nhãn: đồ uốngMô hìnhDỰ ĐOÁN BAN ĐẦUChủ đề: phục vụVí dụ dự đoán saiSo với nhãnSai → cần điều chỉnhĐiều chỉnh trọng sốLặp lại với dữ liệu huấn luyệnĐánh giá riêng: phản hồi chưa dùng để học

↔ Vuốt ngang để xem toàn bộ sơ đồ.

  1. 01 / Ví dụ có nhãn

    Các phản hồi về quán cà phê đi kèm nhãn đúng: đồ uống, phục vụ hoặc không gian.

  2. 02 / Tạo dự đoán

    Mô hình dùng tham số hiện tại để dự đoán chủ đề của phản hồi.

  3. 03 / Đo sai lệch

    So dự đoán với nhãn đúng. Hàm mất mát biểu diễn mức sai lệch cần giảm.

  4. 04 / Điều chỉnh

    Thuật toán cập nhật tham số và lặp lại trên dữ liệu học. Sau đó đánh giá bằng các ví dụ được giữ riêng.

Minh họa giản lược cho học máy có giám sát. Một lần điều chỉnh không bảo đảm dự đoán tiếp theo sẽ đúng.

Đọc hai đường lỗi cùng nhau

Bạn nên theo dõi cùng một thước đo ở train và validation theo tiến trình huấn luyện. Nếu cả hai đều cao, kiểm tra tính đúng của pipeline và khả năng mô hình học được nhiệm vụ. Nếu train thấp nhưng validation cao, xem quá khớp, rò rỉ, độ phủ và thay đổi phân phối.

Các số liệu cần cùng cách tính. So lỗi có áp dụng một số điều kiện huấn luyện với lỗi đánh giá ở chế độ khác mà không hiểu sự khác biệt có thể gây chẩn đoán nhầm. Với người mới, điều quan trọng là ghi rõ dữ liệu nào được chấm và quy trình chấm có nhất quán không.

Một đường lỗi đẹp cũng chưa nói lên toàn bộ trải nghiệm. Hãy xem các dự đoán sai cụ thể, nhất là nhóm ít xuất hiện. Một mô hình trung bình tốt vẫn có thể liên tục thất bại với chậu lớn trong ví dụ trên.

Sửa theo giả thuyết, mỗi lần một thay đổi

Với dấu hiệu quá khớp, bạn có thể thử mô hình đơn giản hơn, regularization hoặc dừng sớm dựa trên validation. Thêm dữ liệu đa dạng, phù hợp cũng có thể giúp. Với thiếu khớp, hãy kiểm tra đặc trưng, khả năng biểu diễn và cấu hình huấn luyện trước.

Mỗi thử nghiệm nên có câu giải thích: “Tôi nghĩ mô hình ghi nhớ nhiễu, nên giảm độ linh hoạt và xem lỗi validation có giảm không.” Giữ lại cấu hình và kết quả giúp phân biệt một thay đổi hữu ích với dao động ngẫu nhiên.

Đừng dùng tập test cuối để chọn liên tục các phương án chữa lỗi. Khi nó tham gia lựa chọn, bạn đã tiêu hao tính độc lập của phép đánh giá.

Bài tập: chẩn đoán ba tình huống

Tạo ba bảng lỗi minh họa theo các vòng học: cả hai lỗi còn cao; train giảm nhưng validation tăng; cả hai giảm rồi ổn định. Với mỗi bảng, viết một giả thuyết và một bước kiểm tra kế tiếp.

Tự kiểm: không kết luận chỉ từ một con số, có ít nhất một giả thuyết về dữ liệu và không hứa một cách chữa chắc chắn. Nêu rõ bằng chứng nào sẽ khiến bạn đổi chẩn đoán. Nếu chưa chắc vai trò các tập, quay lại train, validation và test.

Bạn muốn hiểu điều gì?

Khám phá tất cả bài viết esc để đóng