Thuật ngữ

Máy vectơ hỗ trợ (SVM)

Khám phá sức mạnh của Máy vectơ hỗ trợ (SVM) trong phân loại, hồi quy và phát hiện giá trị ngoại lai, với các ứng dụng và hiểu biết thực tế.

Xe lửa YOLO mô hình đơn giản
với Ultralytics TRUNG TÂM

Tìm hiểu thêm

Support Vector Machine (SVM) là một thuật toán Machine Learning (ML) có giám sát phổ biến và mạnh mẽ được sử dụng chủ yếu cho các tác vụ phân loại, mặc dù nó cũng hiệu quả đối với hồi quy (Support Vector Regression - SVR) và phát hiện giá trị ngoại lai . Được phát triển vào những năm 1990, SVM, được mô tả chi tiết trên Wikipedia , hoạt động bằng cách tìm một ranh giới tối ưu, được gọi là siêu phẳng, phân tách tốt nhất các điểm dữ liệu thuộc các lớp khác nhau trong không gian có nhiều chiều . Ý tưởng chính là tối đa hóa biên độ—khoảng cách giữa siêu phẳng và các điểm dữ liệu gần nhất (vectơ hỗ trợ) từ mỗi lớp—thường dẫn đến hiệu suất tổng quát hóa tốt trên dữ liệu chưa biết.

Svm hoạt động như thế nào

Nguyên tắc cốt lõi của SVM là tìm siêu phẳng lý tưởng để chia một tập dữ liệu. Đối với dữ liệu có thể được phân tách bằng một đường thẳng hoặc mặt phẳng (dữ liệu có thể phân tách tuyến tính), SVM xác định siêu phẳng tạo ra khoảng cách lớn nhất có thể giữa các lớp. Các điểm dữ liệu từ dữ liệu đào tạo gần nhất với siêu phẳng này, đóng vai trò quan trọng trong việc xác định vị trí và hướng của nó, được gọi là các vectơ hỗ trợ. Việc tập trung vào các điểm khó khăn nhất gần ranh giới này giúp SVM có bộ nhớ hiệu quả, vì chỉ cần các vectơ hỗ trợ này để xác định mô hình sau khi đào tạo.

Đối với các tập dữ liệu mà các lớp không thể tách biệt bằng ranh giới tuyến tính (dữ liệu không thể tách biệt tuyến tính), SVM sử dụng một kỹ thuật gọi là thủ thuật kernel . Phương pháp thông minh này cho phép SVM ánh xạ dữ liệu gốc vào không gian có nhiều chiều hơn, nơi có thể tách biệt tuyến tính, mà không cần tính toán rõ ràng tọa độ trong không gian mới này. Các hàm kernel phổ biến bao gồm:

  • Tuyến tính: Dành cho dữ liệu có thể tách biệt tuyến tính.
  • Đa thức: Ánh xạ dữ liệu lên các chiều cao hơn bằng cách sử dụng các hàm đa thức.
  • Hàm cơ sở xuyên tâm (RBF) : Một lựa chọn phổ biến cho các mối quan hệ phức tạp, phi tuyến tính.
  • Sigmoid: Tương tự như hàm kích hoạt được sử dụng trong mạng nơ-ron (NN) .

Việc lựa chọn hạt nhân và các tham số của nó rất quan trọng và thường đòi hỏi phải điều chỉnh siêu tham số cẩn thận.

Sự liên quan và ứng dụng

SVM vẫn có liên quan mặc dù Học sâu (DL) phát triển, đặc biệt là trong các tình huống có dữ liệu đa chiều (nhiều tính năng) nhưng mẫu đào tạo hạn chế. Chúng được biết đến với sự đảm bảo về mặt lý thuyết và độ mạnh mẽ, đặc biệt là khi tồn tại một biên độ phân tách rõ ràng. Theo truyền thống, SVM kết hợp với các trình trích xuất tính năng như Histogram of Oriented Gradients (HOG) là công nghệ tiên tiến nhất cho các tác vụ như phát hiện đối tượng , như đã lưu ý trong quá trình phát triển của phát hiện đối tượng .

Các ứng dụng phổ biến bao gồm:

  • Phân loại hình ảnh : Phân loại hình ảnh dựa trên nội dung của chúng (ví dụ: phân biệt các loại hoa hoặc động vật khác nhau). SVM có thể hiệu quả khi sử dụng với các tính năng thủ công được trích xuất từ hình ảnh, đặc biệt là trên các tập dữ liệu có kích thước vừa phải.
  • Phân loại văn bản : Phân loại các tài liệu văn bản thành các danh mục được xác định trước, chẳng hạn như phát hiện email spam hoặc phân tích tình cảm của đánh giá của khách hàng. SVM xử lý dữ liệu văn bản có chiều cao (như TF (tính năng IDF) tốt.
  • Tin sinh học : Được sử dụng cho các nhiệm vụ như phân loại protein hoặc chẩn đoán ung thư dựa trên dữ liệu biểu hiện gen, trong đó số lượng tính năng có thể rất lớn so với số lượng mẫu.
  • Nhận dạng khuôn mặt : Xác định hoặc xác minh cá nhân dựa trên các đặc điểm khuôn mặt, thường là một phần của hệ thống lớn hơn.

Ưu điểm và hạn chế

Thuận lợi:

  • Hiệu quả ở kích thước lớn: Hoạt động tốt ngay cả khi số lượng tính năng lớn hơn số lượng mẫu.
  • Hiệu quả về bộ nhớ: Chỉ sử dụng một tập hợp con các điểm đào tạo (vectơ hỗ trợ) trong hàm quyết định.
  • Đa năng: Có thể chỉ định nhiều hàm hạt nhân khác nhau cho hàm quyết định, cho phép linh hoạt trong việc xử lý nhiều kiểu dữ liệu khác nhau.
  • Tổng quát hóa tốt: Mục tiêu tối đa hóa biên độ thường dẫn đến các mô hình có độ chính xác cao trên dữ liệu chưa biết.

Hạn chế:

  • Tính toán chuyên sâu: Việc đào tạo có thể diễn ra chậm trên các tập dữ liệu rất lớn.
  • Độ nhạy của hạt nhân và tham số: Hiệu suất phụ thuộc rất nhiều vào sự lựa chọn hạt nhân và các tham số của nó (ví dụ: C, gamma), đòi hỏi phải điều chỉnh cẩn thận.
  • Hiệu suất kém với các lớp chồng chéo: Không lý tưởng nếu các lớp dữ liệu chồng chéo đáng kể.
  • Không có ước tính xác suất trực tiếp: SVM chuẩn tạo ra các phép gán lớp nhưng không tạo ra điểm xác suất trực tiếp. Các kỹ thuật như thang đo Platt là cần thiết để hiệu chỉnh đầu ra SVM thành xác suất.

Svm so với các thuật toán khác

So với các thuật toán đơn giản hơn như Hồi quy logistic , SVM hướng đến việc tối đa hóa biên độ thay vì chỉ tìm ranh giới phân tách, điều này có thể dẫn đến khái quát hóa tốt hơn. Không giống như các phương pháp dựa trên cây như Cây quyết định hoặc Rừng ngẫu nhiên , SVM xây dựng một siêu phẳng tối ưu duy nhất (có thể trong không gian có nhiều chiều). Trong khi các mô hình học sâu hiện đại như Ultralytics YOLO vượt trội trong việc trích xuất tính năng tự động từ dữ liệu thô (như pixel trong thị giác máy tính (CV) ), SVM thường yêu cầu kỹ thuật tính năng cẩn thận nhưng có thể hoạt động cực kỳ tốt trên các tập dữ liệu nhỏ hơn hoặc các loại dữ liệu có cấu trúc cụ thể, trong đó các tính năng được xác định rõ. Các triển khai phổ biến bao gồm LibSVM và mô-đun SVM trong scikit-learn . Việc đào tạo và quản lý các mô hình như vậy, cùng với nhiều mô hình khác, có thể được hợp lý hóa bằng cách sử dụng các nền tảng như Ultralytics HUB , giúp đơn giản hóa vòng đời MLOps.

Đọc tất cả