Svm là gì Update 12/2021

SVM (Support Vector Machine) là một thuật toán học máy có giám sát được sử dụng rất phổ biến ngày nay trong các bài toán phân lớp (classification) hay hồi qui (Regression).

Bạn đang xem: Svm là gì

SVM được đề xuất bởi Vladimir N. Vapnik và các đồng nhiệp của ông vào năm 1963 tại Nga và sau đó trở nên phổ biến trong những năm 90 nhờ ứng dụng giải quyết các bài toán phi tuyến tính (nonlinear) bằng phương pháp Kernel Trick.

SVM hay SVMs?

Khi đọc các tài liệu về SVM các bạn thường thấy SVM và SVMs đều được nhắc đến vậy chúng khác nhau thế nào. Thực chất SVM và SVMs là một. Người ta dùng SVMs là vì muốn nói đến hai loại của thuật toán của SVM:

SVM: dùng cho các bài toán phân lớpSVR (Support Vector Regression): dùng cho các bài toán hồi quy

Theo kinh nghiệm của mình thấy thì việc ứng dụng SVM để giải quyết các bài toán thực tế thường cho kết quả cao so với các thuật toán ML khác đặc biệt là các bài toán phân loại liên quan đến xử lý văn bản. Có lẽ chính vì vậy mà SVM có một nền tảng toán học và lý thuyết khá phức tạp. Trong bài này mình chỉ giới thiệu một cách tổng quan về cách thức hoạt động của SVM còn về các khía cạch toán học khác mình sẽ giải thích kỹ hơn ở một bài khác.

Xem thêm: Where Applicable Là Gì – What Is The Meaning Of “As Applicable “

Để hiểu được một cách đầy đủ về SVM trong các bài toán thực tế chúng ta cần nắm được các bài toán con của SVM: linear, hard-margin, soft-margin, non-linear, binary-class và multi-class. Mình sẽ giải thích rõ từng vấn đề này.

SVM làm việc như thế nào?

Ý tưởng của SVM là tìm một siêu phẳng (hyper lane) để phân tách các điểm dữ liệu. Siêu phẳng này sẽ chia không gian thành các miền khác nhau và mỗi miền sẽ chứa một loại giữ liệu.

Siêu phẳng được biểu diễn bằng hàm số

Vấn đề là có rất nhiều siêu phẳng, chúng ta phải chon cái nào để tối ưu nhất ?

Cách chọn siêu phẳng tối ưu:

Giả sử chúng ta phải phân loại tập dữ liệu các lớp dương (màu xanh) nhãn là 1 và các dữ liệu lớp âm (màu đỏ) nhãn là -1 (tập dữ liệu có thể phân tách tuyến tính).

Siêu phẳng phân tách hai lớp giữ liệu

Tiếp theo ta chọn hai siêu phẳng lề

Đối với các trường hợp này chúng ta cần nới lỏng các điều kiện lề bằng việc sử dụng các biến slack 

Để giải quyết bài toán trong trường hợp này chúng ra cần biểu diễn (ánh xạ ) dữ liệu từ không gian ban đầu X sang không gian F bằng một hàm ánh xạ phi tuyến:

*
*

Trong không gian F tập dữ liệu có thể phân tách tuyến tính. Nhưng nãy sinh một vẫn đề lớn đó là trong không gian mới này số chiều của giữ liệu tăng lên rất nhiều so với không gian ban đầu làm cho chi phí tính toán vô cùng tốn kém. Rất may trong bài toán SVM người ta đã tìm ra một cách không cần phải tính

*

,

*

và hàm ánh xạ

*

mà vẫn tính được

*

*

Một số hàm nhân thường dùng:

Polynomial:

*

0″ class=”latex” />Sigmoidal:

*

Tóm lại: trong bài này mình trình bày các khái niệm, ý tưởng và cách hoạt động cơ bản của giải thuật SVM để các bạn có thể hiểu rõ hơn và là bước đệm (:D) để tìm hiểu sâu hơn về nền tảng toán học của nó . Một số địa chỉ để các bạn có thể tìm hiểu thêm về SVM: