encyklopedia.run.place

Support Vector Machine (SVM)

Definicja

Support Vector Machine (SVM) to metoda z zakresu uczenia maszynowego, wykorzystywana przede wszystkim do klasyfikacji oraz regresji. Algorytm ten opiera się na koncepcji odnajdywania hiperpowierzchni (ang. hyperplane) w przestrzeni cech, która maksymalnie oddziela klasy danych przy jednoczesnym minimalizowaniu ryzyka błędnej klasyfikacji.

Historia

Podstawy teoretyczne SVM zostały opracowane w latach 60. XX wieku, ale przełomowy wkład wniósł w 1995 roku Vladimir Vapnik wraz z zespołem w Bell Labs, publikując pracę, w której przedstawiono algorytm Maximum Margin Classifier. Od tego czasu SVM stała się jedną z najważniejszych i najczęściej stosowanych technik w statystycznym uczeniu.

Zasada działania

Algorytm SVM dąży do znalezienia tak zwanej maksymalnej marginesu (ang. maximum margin) — najgłębszego odstępu pomiędzy dwoma klasami w przestrzeni cech. W praktyce oznacza to:

  1. Wybór hiperpowierzchni rozdzielającej klasy.
  2. Optymalizacja tej powierzchni tak, aby odległość (margines) od najbliższych punktów obu klas (zwanych wektorami nośnymi) była maksymalna.
  3. Wprowadzenie jądra (ang. kernel) w celu przekształcenia danych do wyższej wymiarowości, co umożliwia rozdzielenie danych nieliniowych.

Formalnie problem optymalizacji można przedstawić jako rozwiązanie następującego zadania kwadratowego:

minimize (1/2)||w||^2 + C Σ ξ_i
subject to y_i (w·φ(x_i) + b) ≥ 1 - ξ_i,  ξ_i ≥ 0

gdzie w i b określają hiperpowierzchnię, ξ_i są zmiennymi slack (zapasowymi), C jest parametrem regularyzacji, a φ to funkcja mapująca dane do przestrzeni cech.

Rodzaje SVM

Zastosowania

SVM znajduje zastosowanie w wielu dziedzinach, m.in.:

  • Rozpoznawanie obrazu i wizji komputerowej (np. detekcja twarzy).
  • Biologia bioinformatyczna – klasyfikacja sekwencji DNA, prognozowanie struktury białek.
  • Bioinformatyka – klasyfikacja mikroarrayów genetycznych.
  • Finanse – prognozowanie cen akcji, wykrywanie oszustw.
  • Przetwarzanie języka naturalnego – klasyfikacja tekstu, analiza sentymentu.

Zalety

  • Wysoka skuteczność przy małej liczbie parametrów.
  • Możliwość zastosowania jąder pozwalająca na rozdzielanie danych nieliniowych.
  • Stabilność w obecności szumu dzięki użyciu zmiennych slack.
  • Modele oparte na wektorach nośnych, co często prowadzi do prostych i interpretowalnych rozwiązań.

Wady

  • Wysoka złożoność obliczeniowa przy dużych zbiorach danych (O(n³) w najgorszym wypadku).
  • Wrażliwość na wybór parametrów C oraz funkcji jądra.
  • Trudności z interpretacją przy użyciu wysokowymiarowych jąder.

Implementacje i biblioteki

W środowiskach programistycznych dostępne są liczne implementacje SVM, m.in.:

Literatura

  1. Vapnik, V. N. The Nature of Statistical Learning Theory. Springer, 1995.
  2. Cortes, C., & Vapnik, V. “Support‑Vector Networks”. Machine Learning, 20(3):273‑297, 1995.
  3. Schölkopf, B., & Smola, A. J. Learning with Kernels. MIT Press, 2002.
  4. James, G., et al. An Introduction to Statistical Learning. Springer, 2013 – rozdział poświęcony SVM.

Powiązane pojęcia

Więcej informacji można znaleźć w artykułach: