Support Vector Machine Là Gì? Thuật Toán SVM Trong ML

Chatgpt Image Aug 20, 2026, 03_01_20 Pm

Series: Machine Learning Fundamentals – Bài 26

Ở các bài trước, chúng ta đã tìm hiểu Logistic Regression (phân loại bằng đường ranh giới tuyến tính) cũng như các thuật toán dựa trên cây như Decision Tree, Random Forest hay Boosting.

Tuy nhiên, nếu dữ liệu có ranh giới phân chia phức tạp hoặc nằm trong không gian nhiều chiều, Support Vector Machine (SVM) là một trong những thuật toán học có giám sát mạnh mẽ và tối ưu nhất.

Support Vector Machine là gì?

Support Vector Machine (SVM) là một thuật toán học có giám sát (Supervised Learning) được sử dụng rộng rãi cho cả bài toán Phân loại (Classification) và Hồi quy (Regression).

Mục tiêu chính của SVM là tìm một Siêu phẳng (Hyperplane) trong không gian $N$-chiều để phân chia các điểm dữ liệu thành các lớp riêng biệt sao cho Khoảng cách khoảng trống (Margin) giữa các lớp là lớn nhất.

Class 0  o   o      |      x   x  Class 1
           o  o     |    x   x
         o   (SV) ->|<- (SV)  x
------------------->|<-------------------
                 Margin

Các khái niệm cốt lõi trong Support Vector Machine

  1. Hyperplane (Siêu phẳng):

    • Trong không gian 2D, Hyperplane là một đường thẳng.

    • Trong không gian 3D, Hyperplane là một mặt phẳng.

    • Trong không gian $N$ chiều, Hyperplane là một siêu phẳng $N-1$ chiều.

  2. Support Vectors (Các vectơ hỗ trợ):

    • Đây là những điểm dữ liệu nằm gần Hyperplane nhất.

    • Nếu xóa bỏ các điểm này, vị trí của Hyperplane sẽ thay đổi. Vị trí của SVM hoàn toàn phụ thuộc vào các Support Vectors này chứ không phải toàn bộ dữ liệu.

  3. Margin (Lề):

    • Khoảng cách giữa Hyperplane và điểm dữ liệu gần nhất thuộc bất kỳ lớp nào.

    • SVM cố gắng tối đa hóa Margin (Hard Margin hoặc Soft Margin) để giảm thiểu rủi ro dự đoán sai trên dữ liệu mới.

Bài toán Phi tuyến và Kernel Trick

Khi dữ liệu không thể phân chia bằng một đường thẳng phẳng (Non-linearly separable) trong không gian hiện tại, SVM sử dụng một kỹ thuật đặc biệt gọi là Kernel Trick.

Kernel Trick giúp chiếu (project) dữ liệu từ không gian số chiều thấp lên không gian số chiều cao hơn, nơi dữ liệu trở nên phân chia tuyến tính được.

Không gian 2D (Không phân chia được)
     o  o  x  x  o  o
↓
Kernel Function (Chiếu lên không gian 3D)
↓
Không gian 3D (Có thể đặt một mặt phẳng để chia tách!)

Các hàm Kernel phổ biến:

  • Linear Kernel: Dùng khi dữ liệu đã phân chia tuyến tính tốt.

  • Polynomial Kernel: Tạo ranh giới dạng đa thức.

  • RBF (Radial Basis Function) Kernel: Hàm nhân phổ biến nhất, xử lý tốt các ranh giới phức tạp hình tròn/hạt nhân.

  • Sigmoid Kernel: Tương tự như một tầng trong Neural Network.

Căn chỉnh Hyperparameter quan trọng trong SVM

C (Regularization Parameter)

Kiểm soát mức độ chấp nhận lỗi phân loại (Trade-off giữa Margin rộng và phân loại đúng):

  • C nhỏ: Chấp nhận một số điểm bị phân loại sai để có Margin rộng hơn (Chống Overfitting).

  • C lớn: Cố gắng phân loại đúng mọi điểm dữ liệu, Margin hẹp hơn (Dễ Overfitting).

kernel

Chọn loại hàm nhân ('linear', 'poly', 'rbf', 'sigmoid').

gamma (Dùng cho RBF, Poly, Sigmoid)

Xác định bán kính ảnh hưởng của một điểm dữ liệu đơn lẻ:

  • gamma thấp: Bán kính ảnh hưởng rộng, đường ranh giới mượt hơn.

  • gamma cao: Bán kính ảnh hưởng hẹp, đường ranh giới uốn lượn theo từng điểm (Dễ Overfitting).

So sánh Logistic Regression và Support Vector Machine

Tiêu chí Logistic Regression Support Vector Machine (SVM)
Bản chất Tối ưu xác suất (Log Loss) Tối đa hóa khoảng cách Margin
Phụ thuộc dữ liệu Phụ thuộc vào toàn bộ dữ liệu Chỉ phụ thuộc vào các Support Vectors
Dữ liệu Phi tuyến Cần Feature Engineering Xử lý cực tốt nhờ Kernel Trick
Tốc độ với Dataset lớn Rất nhanh Chậm hơn khi dữ liệu lớn ($N > 100,000$)

Dữ liệu có cần Feature Scaling không?

CỰC KỲ CẦN THIẾT.

SVM dựa trên việc tính khoảng cách hình học (Distance-based) giữa các điểm dữ liệu đến Hyperplane. Nếu một Feature có vạch quy mô quá lớn, nó sẽ áp đảo toàn bộ các Feature còn lại. Việc sử dụng StandardScaler trước khi huấn luyện SVM là bắt buộc.

Ưu điểm và Nhược điểm của Support Vector Machine

Ưu điểm

  • Hiệu quả cao trong không gian nhiều chiều (High-dimensional spaces).

  • Tiết kiệm bộ nhớ vì mô hình chỉ lưu trữ các Support Vectors.

  • Đa năng nhờ nhiều hàm Kernel khác nhau.

Nhược điểm

  • Không phù hợp với Dataset quá lớn do chi phí tính toán lớn.

  • Nhạy cảm với Nhiễu (Noise) và các điểm Outliers.

  • Không trực tiếp cung cấp tính toán xác suất (phải dùng Platt Scaling).

Khi nào nên dùng Support Vector Machine?

  • Bài toán phân loại văn bản (Text Classification), Spam Detection, Image Recognition.

  • Bài toán Bio-informatics (Phân tích gen, ADN) nơi số lượng Features nhiều hơn số lượng mẫu ($p > n$).

  • Dữ liệu kích thước vừa phải nhưng đòi hỏi độ chính xác cao và đường ranh giới phức tạp.

Tóm tắt

  1. Support Vector Machine tìm Siêu phẳng tối ưu giúp tối đa hóa Margin.

  2. Support Vectors là các điểm dữ liệu quyết định vị trí Ranh giới.

  3. Kernel Trick giúp giải quyết các bài toán phi tuyến tính bằng cách chiếu dữ liệu lên không gian nhiều chiều hơn.

  4. Bắt buộc phải Feature Scaling dữ liệu trước khi huấn luyện SVM.

Tài liệu tham khảo

  1. Scikit-Learn Documentation: Support Vector Machines in Scikit-Learn

  2. Cortes & Vapnik (1995): Support-vector networks – Bài báo gốc về SVM.

Khóa học tại MCNA Technology School

Nếu bạn muốn thực hành Machine Learning, Python và xây dựng các mô hình trên dữ liệu thực tế, có thể tham khảo:

  • 🤖 Combo 5 khóa AI & Power BI: Xem khóa học AI & Power BI

  • 🐍 Combo Python: Xem Combo Python

Tác giả: Bùi Đình Tuyển – Data Analyst tại MCNA Technology School

📞 Hotline: 0939.866.825 (Mr. Minh Khang)

🌐 Website: MCNA Technology School

📍 Hà Nội: 30 Trung Liệt, Đống Đa | Liền kề 44B TT2 Văn Quán, Hà Đông

📍 TP.HCM: 50B Phan Tây Hồ, Cầu Kiệu

Chỉ mục