Nhiều bạn khi làm các bài toán phân loại thường gặp tình huống dữ liệu lệch: một nhóm có rất nhiều mẫu, nhóm còn lại rất ít. Mô hình dễ nghiêng sang nhóm lớn và cho ra kết quả tưởng như chính xác nhưng thực tế lại bỏ sót nhiều trường hợp quan trọng. Đây là lúc câu hỏi quen thuộc xuất hiện: “Làm sao để mô hình chú ý hơn đến lớp thiểu số?”
Một kỹ thuật cơ bản và dễ triển khai trong giai đoạn huấn luyện là Class Weight.
Class Weight là gì?
Class Weight là cách gán trọng số khác nhau cho từng lớp trong hàm mất mát. Thay vì đối xử mọi mẫu như nhau, mô hình sẽ “ghi nhận” lỗi của lớp ít mẫu với độ nặng lớn hơn so với lớp nhiều mẫu.
Ý tưởng cốt lõi:
Lớp ít dữ liệu → gán trọng số cao → khi mô hình dự đoán sai, mức phạt tăng lên.
Lớp nhiều dữ liệu → gán trọng số thấp hơn → lỗi không bị phóng đại quá mức.
Bản chất nằm ở Loss Function:
Hàm mất mát vốn là nơi đo sai lệch giữa dự đoán và giá trị thật. Khi nhân thêm trọng số, mô hình điều chỉnh tham số để tối ưu hóa theo sự ưu tiên mà ta đã thiết lập.
Cách Class Weight giúp cân bằng dữ liệu
Việc gán trọng số tạo ra hai tác động chính:
Làm tăng độ nhạy với lớp thiểu số
Những lỗi sai ở lớp ít mẫu trở nên ""đắt giá"". Mô hình buộc phải tìm cách mô tả tốt hơn các đặc điểm của lớp đó để giảm tổng mất mát.
Giảm ảnh hưởng của độ lệch phân phối
Thay vì mô hình tối ưu cho lớp chiếm đa số (vốn áp đảo về số lượng), nó phải đánh đổi để giảm thiệt hại tổng thể.
Khi tối ưu gradient, các mẫu ở lớp trọng số lớn tạo gradient có biên độ lớn hơn, ảnh hưởng trực tiếp đến hướng cập nhật tham số.
Ví dụ thực tế minh họa
Giả sử có dữ liệu y tế phân loại bệnh hiếm:
950 mẫu “không bệnh”
50 mẫu “có bệnh”
Nếu không dùng class weight, mô hình có thể dự đoán “không bệnh” toàn bộ và đạt độ chính xác cao nhưng không thật sự hữu ích.
Khi đặt class weight:
Lớp “có bệnh” có trọng số lớn hơn nhiều.
Các dự đoán sai của lớp này được phản ánh mạnh trong loss.
Mô hình học được các tín hiệu nhỏ nhưng quan trọng của lớp hiếm.
Trong thực tế, các bài toán như phát hiện gian lận, nhận diện lỗi sản xuất hay cảnh báo nguy cơ đều gặp vấn đề phân phối lệch này.
Góc nhìn khi làm dự án AI/ML
Ở góc độ dự án, việc chọn dùng class weight thường đến sau quá trình:
Khảo sát phân phối dữ liệu.
Thử các baseline từ đơn giản đến phức tạp.
Kiểm tra ảnh hưởng của imbalance lên confusion matrix, độ nhạy, độ đặc hiệu.
Cân nhắc các phương án khác như oversampling, undersampling, augmentation, hoặc kết hợp nhiều kỹ thuật.
Class Weight hữu ích vì:
Không làm thay đổi dữ liệu gốc.
Dễ tích hợp vào pipeline huấn luyện.
Có thể kết hợp với nhiều loại mô hình, từ tree-based đến neural networks.
Trong các pipeline có MLOps (như module 4–7 của các nhóm kiến thức nền), việc log lại các chỉ số theo từng lớp giúp đánh giá tác động của việc thay đổi class weight rõ ràng hơn.
Liên hệ với kiến thức nền trong học thuật AI
Việc hiểu Loss Function và Gradient Descent nằm ở các phần Pre‑Deep Learning về tối ưu hóa và hàm mất mát.
Xử lý dữ liệu lệch phân phối liên quan đến ML cơ bản (regression, classification).
Với Deep Learning, đặc biệt khi làm bài toán Computer Vision hoặc NLP, việc đánh trọng số cho từng lớp được nhúng trực tiếp vào cấu hình huấn luyện.
Đây là các nhóm kiến thức mà người học AI thường gặp khi đi từ nền tảng ML đến các mô hình sâu.
Lời khuyên cho người bắt đầu
Bạn có thể thử:
Bắt đầu với mô hình đơn giản (logistic regression) và bật class weight.
So sánh confusion matrix trước và sau khi dùng class weight.
Quan sát thay đổi về recall của lớp thiểu số.
Những thử nghiệm nhỏ giúp hiểu rõ cơ chế hơn.
Hỏi đáp nhanh về Class Weight
Class Weight có phải lúc nào cũng hiệu quả không?
Không, còn tùy mức độ lệch và chất lượng đặc trưng.
Class Weight có thay thế được oversampling không?
Không, hai hướng xử lý khác nhau và có thể dùng cùng nhau.
Mọi mô hình đều hỗ trợ Class Weight?
Không, còn tùy thuật toán và thư viện.
Class Weight có gây quá khớp không?
Có thể nếu trọng số quá lớn làm mô hình tập trung quá mức vào lớp nhỏ.
FAQ về AIO
Q1. Con số 0 thì học nổi không?
Ans: Chỉ cần bạn có thời gian học. Điều quan trọng nhất không phải giỏi hay không, mà là có học đều mỗi ngày. Kiến thức – tài liệu – môi trường đã có team lo. Nếu bạn không có thời gian thì nên cân nhắc.
Q2. Ai dạy AIO?
Ans: Đội admin dạy toàn bộ. Admin trực tiếp hướng dẫn và hỗ trợ mọi câu hỏi của bạn trong suốt quá trình học.
Q3. Admin có “xịn” không?
Ans: Admin đều là người làm nghề thật, mỗi người một cách dạy. Quan trọng là bạn cảm thấy hợp cách truyền đạt. Admin không dám nói xịn, chỉ dạy bằng hết sức.
Q4. AIO có gì khác những nơi khác?
Ans: AIO không phải trung tâm. Đây là dự án học tập cộng đồng, được cải tiến qua từng khóa. Tinh thần của AIO: Cùng nhau học – cùng nhau khổ – cùng nhau lớn. Nếu hợp tinh thần đó, bạn sẽ thấy phù hợp.