Mô phỏng thuật toán Support Vector Machine
Click vào mặt phẳng để thêm dữ liệu, chọn lớp trước khi thêm điểm, sau đó huấn luyện SVM để quan sát siêu phẳng phân tách, hai biên margin và các support vector.
- SVM tìm một biên quyết định có khoảng cách tới các điểm gần biên lớn nhất có thể.
- Các điểm ảnh hưởng trực tiếp đến vị trí của biên tối ưu được gọi là support vectors.
- Tham số C điều khiển đánh đổi giữa margin rộng và mức phạt cho các điểm vi phạm margin hoặc bị phân loại sai.
1. Tạo dữ liệu
Click để thêm điểm. Click chuột phải gần một điểm để xóa điểm đó.
2. Huấn luyện mô hình
C nhỏ chấp nhận nhiều vi phạm hơn để ưu tiên margin rộng. C lớn phạt mạnh các điểm vi phạm.
3. Thống kê
SVM đang tối ưu điều gì?
Support Vector Machine (SVM) là mô hình học có giám sát dùng để phân loại hoặc hồi quy. Trong bài toán phân loại nhị phân tuyến tính, SVM tìm một siêu phẳng wTx + b = 0 sao cho khoảng cách tới các mẫu gần biên nhất được tối đa hóa. Với dữ liệu hai chiều như mô phỏng phía trên, “siêu phẳng” chính là một đường thẳng.
Hai đường wTx + b = +1 và wTx + b = -1 tạo thành hành lang margin. Khoảng cách từ decision boundary tới mỗi phía của margin bằng 1 / ||w||, vì vậy tổng độ rộng của hành lang là 2 / ||w||.
Soft-margin SVM và vai trò của tham số C
Dữ liệu thực tế hiếm khi phân tách hoàn hảo. Soft-margin SVM đưa thêm biến slack ξi để cho phép một số mẫu nằm trong margin hoặc thậm chí nằm sai phía của decision boundary. Bài toán tối ưu ở dạng primal có thể viết như sau:
- C nhỏ: ưu tiên regularization mạnh hơn, thường cho margin rộng hơn và chấp nhận nhiều vi phạm hơn.
- C lớn: phạt mạnh lỗi trên dữ liệu huấn luyện, biên có xu hướng cố gắng phân loại đúng nhiều điểm hơn.
- C không tự động càng lớn càng tốt: giá trị quá lớn có thể làm mô hình nhạy với nhiễu và outlier.
Support vectors quyết định biên phân loại như thế nào?
Không phải mọi điểm huấn luyện đều tác động trực tiếp như nhau lên nghiệm cuối cùng. Trong bài toán dual của SVM, mỗi mẫu có một hệ số αi. Các mẫu có αi > 0 là support vectors và chúng quyết định vị trí của decision boundary. Các điểm ở rất xa biên thường có α bằng 0 nên không trực tiếp tham gia vào biểu thức của w.
Trên canvas, support vectors được đánh dấu bằng một vòng tròn đen bên ngoài điểm dữ liệu. Khi thêm một điểm rất xa decision boundary, bạn thường sẽ thấy đường phân tách gần như không thay đổi. Nhưng khi thêm một điểm sát margin, vị trí đường biên có thể thay đổi rõ rệt.
Pipeline của mô phỏng
Chương trình sử dụng một phiên bản tối giản của Sequential Minimal Optimization (SMO) cho linear kernel. Thuật toán giải bài toán dual bằng cách cập nhật từng cặp α thay vì dùng một bộ giải quadratic programming tổng quát. Với mục đích giảng dạy trên tập dữ liệu 2D nhỏ, cách này đủ trực quan và không cần thư viện ngoài.
Đọc kết quả trên màn hình
| Thành phần | Ý nghĩa | Cách quan sát |
|---|---|---|
| Decision boundary | Đường wTx + b = 0 dùng để phân lớp. | Đường đen liền. |
| Margin | Hai biên wTx + b = ±1. | Hai đường xám nét đứt. |
| Support vector | Mẫu có α > 0 trong nghiệm dual. | Điểm có vòng tròn đen bao quanh. |
| Train accuracy | Tỷ lệ mẫu được phân loại đúng trên dữ liệu hiện tại. | Hiển thị ở bảng thống kê. |
| Margin width | Khoảng cách giữa hai đường margin, bằng 2 / ||w|| trong không gian tọa độ mô phỏng. | Giá trị lớn thường tương ứng với biên rộng hơn. |
Khi nào SVM tuyến tính phù hợp?
Linear SVM phù hợp khi dữ liệu có thể phân tách tương đối tốt bằng một biên tuyến tính hoặc khi số chiều đặc trưng rất lớn, chẳng hạn biểu diễn bag-of-words hoặc TF-IDF trong phân loại văn bản. Nếu cấu trúc dữ liệu phi tuyến mạnh, có thể dùng kernel SVM như RBF hoặc polynomial để xây dựng biên quyết định phi tuyến.
Điểm quan trọng của mô phỏng không phải là đạt accuracy cao nhất mà là quan sát cơ chế của SVM: mô hình chọn biên dựa chủ yếu trên các điểm gần ranh giới, đồng thời sử dụng C để đánh đổi giữa margin và lỗi huấn luyện.
Nội dung gốc thuộc tác giả. Vui lòng không đăng lại toàn văn khi chưa được phép, trừ trường hợp pháp luật hoặc giấy phép áp dụng cho phép. Nội dung của bên thứ ba tuân theo quyền và giấy phép tương ứng.
Nguồn gốc: Mô phỏng thuật toán SVM: Margin và Support Vector trực quan