Thời gian đọc: 8 phút
Support Vector Machine (SVM) là một trong những thuật toán học máy có giám sát nổi bật nhất, đặc biệt hiệu quả cho các bài toán phân loại và hồi quy. SVM được biết đến với khả năng tạo ra một siêu phẳng tối ưu để phân tách các dữ liệu trong không gian nhiều chiều, nhằm phân loại chúng theo các nhóm hoặc lớp khác nhau.
SVM hoạt động bằng cách tìm ra một siêu phẳng (hyperplane) tốt nhất để phân tách dữ liệu giữa hai hoặc nhiều lớp khác nhau. Siêu phẳng này được chọn sao cho khoảng cách giữa nó và các điểm dữ liệu gần nhất của mỗi lớp là lớn nhất có thể. Khoảng cách lớn này được gọi là lề (margin). Mục tiêu của SVM là tối ưu hóa lề này để tăng khả năng phân biệt giữa các lớp.
Support Vectors là những điểm dữ liệu nằm gần siêu phẳng nhất. Những điểm dữ liệu này đóng vai trò quyết định trong việc xác định vị trí của siêu phẳng. Trong quá trình huấn luyện, SVM chỉ sử dụng những điểm này để tối ưu hóa siêu phẳng và không quan tâm đến những điểm dữ liệu nằm xa siêu phẳng.
Khi mô hình tìm ra siêu phẳng, Support Vectors chính là những điểm dữ liệu khó phân loại nhất, tức là các điểm này nằm gần ranh giới giữa hai lớp. Vì vậy, việc tìm ra và tối ưu hóa các Support Vectors là cực kỳ quan trọng để tăng hiệu suất phân loại của SVM.
Trong không gian nhiều chiều, có vô số cách để chọn một siêu phẳng nhằm phân chia dữ liệu, nhưng SVM chọn siêu phẳng với khoảng cách tối đa từ siêu phẳng đến các điểm của mỗi lớp. Điều này đảm bảo mô hình hoạt động với khả năng phân loại tốt nhất và tránh bị overfitting.
Một trong những vấn đề lớn của SVM là dữ liệu không phải lúc nào cũng phân tách được theo cách tuyến tính. Điều này có nghĩa là không có một đường thẳng hoặc mặt phẳng nào có thể phân tách tất cả các điểm dữ liệu. Để giải quyết vấn đề này, SVM sử dụng một phương pháp gọi là Kernel Trick.
SVM sử dụng các hàm hạt nhân (kernel function) để ánh xạ dữ liệu từ không gian ban đầu sang một không gian nhiều chiều hơn, nơi dữ liệu có thể được phân tách tuyến tính. Điều này giúp tạo ra một siêu phẳng tối ưu để phân loại dữ liệu, ngay cả khi dữ liệu không thể phân tách tuyến tính trong không gian ban đầu.
Mặc dù SVM chủ yếu được sử dụng cho các bài toán phân loại, nhưng nó cũng có thể áp dụng cho các bài toán hồi quy, thường gọi là Support Vector Regression (SVR). Thay vì tìm ra một siêu phẳng để phân loại, SVR tìm ra một siêu phẳng sao cho độ lệch của các điểm dữ liệu từ siêu phẳng này là nhỏ nhất có thể.
SVM được ứng dụng rộng rãi trong nhiều lĩnh vực, đặc biệt là:
Support Vector Machine là một thuật toán mạnh mẽ, đặc biệt hiệu quả trong các bài toán phân loại. Với khả năng tạo ra siêu phẳng tối ưu và sử dụng Kernel Trick để xử lý dữ liệu không phân tách tuyến tính, SVM vẫn là một trong những công cụ hữu ích cho nhiều bài toán học máy phức tạp.