Sơ lược về soft margin support vector machine là gì năm 2024

SVM là viết tắt của cụm từ support vector machine. Đây là một thuật toán khá hiệu quả trong lớp các bài toán phân loại nhị phân và dự báo của học có giám sát. Thuật toán này có ưu điểm là hoạt động tốt đối với những mẫu dữ liệu có kích thước lớn và thường mang lại kết quả vượt trội so với lớp các thuật toán khác trong học có giám sát.

Ưu điểm của SVM đó là:

  • Đây là thuật toán hoạt động hiệu quả với không gian cao chiều (high dimensional spaces).
  • Thuật toán tiêu tốn ít bộ nhớ vì chỉ sử dụng các điểm trong tập hỗ trợ để dự báo trong hàm quyết định.
  • Chúng ta có thể tạo ra nhiều hàm quyết định từ những hàm kernel khác nhau. Thậm chí sử dụng đúng kernel có thể giúp cải thiện thuật toán lên đáng kể.

Chính vì tính hiệu quả mà SVM thường được áp dụng nhiều trong các tác vụ phân loại và dự báo, cũng như được nhiều công ty ứng dụng và triển khai trên môi trường production. Chúng ta có thể liệt kê một số ứng dụng của thuật toán SVM đó là:

  • Mô hình chuẩn đoán bệnh. Dựa vào biến mục tiêu là những chỉ số xét nghiệm lâm sàng, thuật toán đưa ra dự báo về một số bệnh như tiểu đường, suy thận, máu nhiễm mỡ,…
  • Trước khi thuật toán CNN và Deep Learning bùng nổ thì SVM là lớp mô hình cực kì phổ biến trong phân loại ảnh.

Mô hình phân loại tin tức. Xác định chủ đề của một đoạn văn bản, phân loại cảm xúc văn bản, phân loại thư rác.

SVM là thuật toán quan trọng trong các thuật toán Học máy. Nó được sử dụng trong cả phân lớp lẫn hồi quy (SVR). Mặc dù vậy, đằng sau thuật toán này là một loạt các lý thuyết về đại số tuyến tính từ cơ bản đến nâng cao. Nếu bạn đang tìm một bài viết không chứa quá nhiều công thức mà vẫn giúp bạn hiểu được bản chất của SVM, bài viết này dành cho bạn.

Giới thiệu

Support Vector Machines (có tài liệu dịch là Máy véctơ hỗ trợ) là một trong số những thuật toán phổ biến và được sử dụng nhiều nhất trong học máy trước khi mạng nơ ron nhân tạo trở lại với các mô hình deep learning. Nó được biết đến rộng rãi ngay từ khi mới được phát triển vào những năm 1990.

Mục tiêu của SVM là tìm ra một siêu phẳng trong không gian N chiều (ứng với N đặc trưng) chia dữ liệu thành hai phần tương ứng với lớp của chúng. Nói theo ngôn ngữ của đại số tuyển tính, siêu phẳng này phải có lề cực đại và phân chia hai bao lồi và cách đều chúng.

Sơ lược về soft margin support vector machine là gì năm 2024

Nếu bạn không quen với đại số tuyến tính, bạn chỉ cần nhớ rằng trong không gian N chiều, một siêu phẳng là một không gian con có kích thước N-1 chiều. Một cách trực quan, trong một mặt phẳng (2 chiều) thì siêu phẳng là một đường thẳng, trong một không gian 3 chiều thì siêu phẳng là một mặt phẳng. Có thể bạn đã biết kiến thức này ở cấp 3 nếu buổi học hôm đó bạn không ngủ gật.

Siêu phẳng tạo ra một biên giới phân chia 2 lớp của dữ liệu.

Để phân chia hai lớp dữ liệu, rõ ràng là có rất nhiều siêu phẳng có thể làm được điều này. Mặc dù vậy, mục tiêu của chúng ta là tìm ra siêu phẳng có lề rộng nhất tức là có khoảng cách tới các điểm của hai lớp là lớn nhất. Hình dưới đây là một ví dụ trực quan về điều đó.

Sơ lược về soft margin support vector machine là gì năm 2024
Siêu phẳng tối ưu có lề cực đại

Siêu phẳng có lề cực đại trong không gian 3 chiều:

Sơ lược về soft margin support vector machine là gì năm 2024

Lưu ý: Số chiều của siêu phẳng phụ thuộc vào số đặc trưng

Các véc tơ hỗ trợ

Một điểm trong không gian véc tơ có thể được coi là một véc tơ từ gốc tọa độ tới điểm đó. Các điểm dữ liệu nằm trên hoặc gần nhất với siêu phẳng được gọi là véc tơ hỗ trợ, chúng ảnh hưởng đến vị trí và hướng của siêu phẳng. Các véc tơ này được sử dụng để tối ưu hóa lề và nếu xóa các điểm này, vị trí của siêu phẳng sẽ thay đổi. Một điểm lưu ý nữa đó là các véc tơ hỗ trợ phải cách đều siêu phẳng.

Sơ lược về soft margin support vector machine là gì năm 2024

SVM mà chúng ta thảo luận từ đầu bài viết đến giờ chỉ có thể hoạt động trên dữ liệu có thể phân chia tuyến tính.

Nếu dữ liệu không thể phân chia tuyến tính thì sao?

Ví dụ: nhìn vào hình ảnh bên dưới, dữ liệu được phân tách phi tuyến tính, rõ ràng, chúng ta không thể vẽ một đường thẳng để phân loại các điểm dữ liệu đỏ và xanh. Để giải quyết vấn đề này, có hai giải pháp:

  1. Lề mềm (Soft margin)
  2. Thủ thuật Kernel (Kernel tricks)

Sơ lược về soft margin support vector machine là gì năm 2024

Lề mềm

Thuật toán này cho phép SVM mắc một số lỗi nhất định và giữ cho lề càng rộng càng tốt để các điểm khác vẫn có thể được phân loại chính xác. Nói một cách khác, nó cân bằng giữa việc phân loại sai và tối đa hóa lề.

Có hai kiểu phân loại sai có thể xảy ra:

  1. Dữ liệu nằm ở đúng bên nhưng phạm vào lề
  2. Dữ liệu nằm ở sai bên

Mức độ chấp nhận lỗi Mức độ chấp nhận lỗi là một siêu tham số quan trọng trong SVM. Khi lập trình với sklearn, mức độ chấp nhận lỗi được coi như một tham số phạt (C). Hình dưới thể hiện SVM với các giá trị C khác nhau.

Sơ lược về soft margin support vector machine là gì năm 2024

C càng lớn có nghĩa là SVM càng bị phạt nặng khi thực hiện phân loại sai. Do đó, lề càng hẹp và càng ít vectơ hỗ trợ được sử dụng.

Thủ thuật Kernel

Một kernel là một hàm ánh xạ dữ liệu từ không gian ít nhiều hơn sang không gian nhiều chiều hơn, từ đó ta tìm được siêu phẳng phân tách dữ liệu. Một cách trực quan, kỹ thuật này giống như việc bạn gập tờ giấy lại để có thể dùng kéo cắt một lỗ tròn trên nó.

Biểu diễn trực quan của thủ thuật kernel :

Sơ lược về soft margin support vector machine là gì năm 2024
Ví dụ Φ(x) = x^2+x

Sơ lược về soft margin support vector machine là gì năm 2024

Các kiểu Kernel:

  1. Tuyến tính
  2. Đa thức
  3. RBF
  4. Sigmoid

Hi vọng thông qua bài viết này, bạn đã hiểu hơn về SVM, một thuật toán mạnh mẽ trong học máy. Nếu bạn thấy bài viết hữu ích, hãy chia sẻ với những người quan tâm hoặc lưu lại để sau này tiện tham khảo.

Hãy thường xuyên truy cập trituenhantao.io hoặc đăng ký (dưới chân trang) để nhận được những bài viết thú vị về Trí tuệ nhân tạo sớm nhất!