SVM, viết tắt của support vector machine, là một bộ phân loại chọn ranh giới giữa các lớp với margin lớn nhất có thể. Nếu bạn đang tìm hiểu SVM là gì, thì đây là ý tưởng cốt lõi: không chỉ tách các nhóm ra, mà còn để lại khoảng cách đáng tin cậy rộng nhất giữa chúng.
Các điểm nằm gần ranh giới đó nhất được gọi là support vectors. Chúng quan trọng nhất vì chúng quyết định ranh giới phân tách có thể nằm ở đâu.
Vì Sao Margin Quan Trọng
Hãy tưởng tượng có hai cụm điểm, một thuộc lớp A và một thuộc lớp B. Có thể có nhiều đường thẳng tách được chúng. SVM sẽ ưu tiên đường để lại vùng đệm an toàn lớn nhất ở cả hai phía.
Margin rộng hơn thường giúp bộ phân loại ít nhạy hơn với những thay đổi nhỏ trong dữ liệu huấn luyện. Điều đó không đảm bảo hiệu năng ngoài thực tế sẽ tốt hơn, nhưng đó là trực giác chính đằng sau SVM.
Ranh Giới Quyết Định Của SVM Trông Như Thế Nào
Trong SVM tuyến tính, ranh giới quyết định là một siêu phẳng:
Bộ phân loại dự đoán một lớp khi và lớp còn lại khi .
Trong cách chuẩn hóa max-margin tiêu chuẩn cho dữ liệu tách được, SVM chọn và sao cho
đúng với mọi điểm huấn luyện, đồng thời làm cho margin lớn nhất có thể. Trong cách chuẩn hóa đó, độ rộng margin đầy đủ là
Ý tưởng thực tế quan trọng còn đơn giản hơn công thức: nhỏ hơn nghĩa là margin rộng hơn trong thiết lập đã chuẩn hóa này.
Ví Dụ Minh Họa: SVM Một Chiều
Một ví dụ một chiều giúp bạn dễ thấy ý tưởng về margin.
Giả sử lớp âm có các điểm tại và , còn lớp dương có các điểm tại và .
Bất kỳ ngưỡng nào nằm giữa và đều tách được hai lớp. Ví dụ, được và cũng được, nhưng các lựa chọn đó không tạo ra cùng một vùng đệm ở hai phía.
Trong thiết lập một chiều có thể tách được này, SVM chọn trung điểm giữa hai điểm gần nhất thuộc hai lớp đối nhau, nên ngưỡng quyết định là
Điểm âm gần nhất là , và điểm dương gần nhất là . Đó là các support vectors. Mỗi điểm cách ranh giới đơn vị, nên margin được cân bằng rộng nhất có thể.
Bạn có thể viết bộ phân loại ở đây là "dự đoán dương khi và âm khi ." Trường hợp đơn giản này nắm bắt đúng ý tưởng thật sự: ranh giới được quyết định bởi những trường hợp khó gần kề, chứ không phải bởi các điểm ở xa vốn đã dễ phân loại.
SVM Hard-Margin Và Soft-Margin
SVM hard-margin chỉ hoạt động khi dữ liệu huấn luyện tách tuyến tính hoàn hảo. Chỉ cần một điểm phá vỡ điều kiện đó, thiết lập hard-margin sẽ không còn phù hợp với dữ liệu.
Đó là lý do nhiều SVM thực tế dùng soft margin. SVM soft-margin vẫn ưu tiên margin rộng, nhưng cho phép một số điểm rơi vào trong margin hoặc thậm chí nằm sai phía của ranh giới, kèm theo một mức phạt.
Tham số kiểm soát sự đánh đổi đó. lớn hơn sẽ phạt các vi phạm mạnh hơn. nhỏ hơn cho phép linh hoạt hơn. Không có lựa chọn nào tự động tốt hơn; điều đó phụ thuộc vào dữ liệu và nên được kiểm tra bằng hiệu năng trên tập validation.
Khi Nào Kernel SVM Hữu Ích
Đôi khi một ranh giới thẳng là không đủ trong không gian đặc trưng gốc. Kernel SVM xử lý điều này bằng cách so sánh các điểm thông qua một hàm kernel, từ đó có thể tạo ra ranh giới cong mà không cần viết tường minh một vector đặc trưng biến đổi khổng lồ.
Điều kiện quan trọng là sự linh hoạt bổ sung này chỉ hữu ích nếu mẫu dữ liệu thực sự cần nó. Kernel có thể cải thiện mô hình, nhưng cũng có thể khiến việc tinh chỉnh khó hơn, nên cần được kiểm chứng thay vì chọn mặc định.
Những Lỗi Thường Gặp Với SVM
Nghĩ Rằng Mọi Điểm Đều Quan Trọng Như Nhau
Trong SVM, các điểm gần nhất mới là quan trọng nhất. Những điểm ở xa ranh giới thường ảnh hưởng rất ít đến bộ phân tách cuối cùng.
Quên Điều Kiện Đằng Sau Hard Margin
Khả năng tách tuyến tính hoàn hảo là một điều kiện thực sự, không phải giả định mặc định. Nếu các lớp chồng lấn lên nhau, bạn cần soft margin hoặc một mô hình khác.
Bỏ Qua Việc Chuẩn Hóa Đặc Trưng
SVM phụ thuộc vào khoảng cách và tích vô hướng. Nếu một đặc trưng được đo trên thang lớn hơn nhiều so với đặc trưng khác, nó có thể chi phối ranh giới trừ khi bạn chuẩn hóa đầu vào trước.
Cho Rằng Kernel Tự Động Tốt Hơn
Một ranh giới linh hoạt hơn có thể khớp dữ liệu huấn luyện tốt hơn, nhưng điều đó không tự động có nghĩa là nó sẽ tổng quát hóa tốt hơn.
SVM Được Dùng Ở Đâu
SVM được dùng cho các bài toán phân loại mà ranh giới giữa các lớp có thể khá rõ nét và nơi cách suy nghĩ dựa trên margin là hữu ích. Chúng đặc biệt phổ biến trong các bài toán dữ liệu bảng cỡ nhỏ đến trung bình và trong phân loại văn bản, nơi không gian đặc trưng nhiều chiều rất thường gặp.
Chúng cũng được dùng cho hồi quy trong một phương pháp liên quan gọi là support vector regression, nhưng đó là một thiết lập khác với bức tranh phân loại nhị phân được giải thích ở đây.
Thử Một Bài Toán SVM Tương Tự
Hãy lấy các điểm một chiều từ ví dụ và thêm một điểm âm mới tại . Lúc này khoảng trống rộng và sạch sẽ không còn nữa. Hãy tự hỏi điều gì thay đổi nếu bạn vẫn khăng khăng dùng hard margin, và điều gì thay đổi nếu bạn cho phép soft margin. So sánh đó thường là cách nhanh nhất để hiểu rõ SVM.
Cần trợ giúp giải bài?
Tải câu hỏi lên và nhận lời giải từng bước đã được xác minh trong vài giây.
Mở GPAI Solver →