AI 101
Co to są Maszyny Wektorowe Wspierające?

Co to są Maszyny Wektorowe Wspierające?
Maszyny wektorowe wspierające są rodzajem klasyfikatora uczenia maszynowego, można powiedzieć, że są jednym z najpopularniejszych rodzajów klasyfikatorów. Maszyny wektorowe wspierające są szczególnie przydatne do predykcji numerycznej, klasyfikacji i rozpoznawania wzorców.
Maszyny wektorowe wspierające działają, rysując granice decyzyjne między punktami danych, dążąc do granicy decyzyjnej, która najlepiej separuje punkty danych na klasy (lub jest najbardziej ogólna). Celem podczas korzystania z maszyny wektorowej wspierającej jest to, aby granica decyzyjna między punktami była jak największa, tak aby odległość między dowolnym punktem danych a linią graniczną była maksymalna. To jest szybkie wyjaśnienie, jak maszyny wektorowe wspierające (SVM) działają, ale poświęćmy trochę czasu, aby głębiej zrozumieć, jak SVM działają i zrozumieć logikę ich działania.
Cel Maszyn Wektorowych Wspierających
Wyobraź sobie wykres z pewną liczbą punktów danych na nim, opartych na cechach określonych przez osie X i Y. Punkty danych na wykresie można luźno podzielić na dwie różne grupy, a grupa, do której należy punkt danych, wskazuje klasę punktu danych. Załóżmy, że chcemy narysować linię na wykresie, która separuje dwie klasy od siebie, z wszystkimi punktami danych w jednej klasie po jednej stronie linii i wszystkimi punktami danych należącymi do innej klasy po drugiej stronie linii. Ta linia separująca jest znana jako hiperpłaszczyzna.
Można myśleć o maszynie wektorowej wspierającej jako tworzącej „drogi” w całym mieście, dzieląc miasto na dzielnice po obu stronach drogi. Wszystkie budynki (punkty danych), które znajdują się po jednej stronie drogi, należą do jednej dzielnicy.

Cel maszyny wektorowej wspierającej nie polega tylko na rysowaniu hiperpłaszczyzn i dzieleniu punktów danych, ale na rysowaniu hiperpłaszczyzny, która separuje punkty danych z największym marginesem, czyli z największą przestrzenią między linią dzielącą a dowolnym punktem danych. Wracając do metafory „dróg”, jeśli planista miasta tworzy plany autostrady, nie chce, aby autostrada była zbyt blisko domów lub innych budynków. Im większy margines między autostradą a budynkami po obu stronach, tym lepiej. Im większy ten margines, tym bardziej „pewny” może być klasyfikator co do swoich predykcji. W przypadku klasyfikacji binarnej rysowanie poprawnej hiperpłaszczyzny oznacza wybór hiperpłaszczyzny, która znajduje się dokładnie w środku między dwiema klasami. Jeśli granica decyzyjna/hiperpłaszczyzna jest dalej od jednej klasy, będzie bliżej innej. Dlatego hiperpłaszczyzna musi balansować margines między dwiema klasami.
Obliczanie separującej hiperpłaszczyzny
Jak maszyna wektorowa wspierająca określa najlepszą separującą hiperpłaszczyznę/granicę decyzyjną? To jest osiągane przez obliczanie możliwych hiperpłaszczyzn przy użyciu matematycznego wzoru. Nie będziemy omawiać wzoru na obliczanie hiperpłaszczyzn w ekstremalnym szczególe, ale linia jest obliczana przy użyciu słynnego wzoru nachylenia/linii:
Y = ax + b
Przy czym linie składają się z punktów, co oznacza, że każda hiperpłaszczyzna może być opisana jako: zbiór punktów, które biegną równolegle do proponowanej hiperpłaszczyzny, określonej przez wagi modelu pomnożone przez zbiór cech zmodyfikowanych przez określony przesunięcie/przesunięcie („d”).
SVM rysują wiele hiperpłaszczyzn. Na przykład, linia graniczna jest jedną hiperpłaszczyzną, ale punkty danych, które klasyfikator uwzględnia, również znajdują się na hiperpłaszczyznach. Wartości dla x są określane na podstawie cech w zbiorze danych. Na przykład, jeśli miałbyś zbiór danych z wysokościami i wagami wielu ludzi, cechy „wysokość” i „waga” byłyby cechami używanymi do obliczania „X”. Marginesy między proponowaną hiperpłaszczyzną a różnymi „wektorami wspierającymi” (punktami danych) znajdującymi się po obu stronach hiperpłaszczyzny dzielącej są obliczane przy użyciu następującego wzoru:
W * X – b
Chociaż możesz przeczytać więcej o matematyce za SVM, jeśli szukasz bardziej intuicyjnego zrozumienia ich, po prostu wiedz, że celem jest maksymalizacja odległości między proponowaną separującą hiperpłaszczyzną/linią graniczną a innymi hiperpłaszczyznami, które biegną równolegle do niej (i na których znajdują się punkty danych).

Zdjęcie: ZackWeinberg via Wikimedia Commons, CC BY SA 3.0 (https://commons.wikimedia.org/wiki/File:Svm_separating_hyperplanes_(SVG).svg)
Klasyfikacja wieloklasowa
Proces opisany do tej pory dotyczy zadań klasyfikacji binarnej. Jednak klasyfikatory SVM mogą być również używane do zadań klasyfikacji niebinarnej. Podczas wykonywania klasyfikacji SVM na zbiorze danych z trzema lub więcej klasami, używane są więcej linii granicznych. Na przykład, jeśli zadanie klasyfikacji ma trzy klasy zamiast dwóch, używane są dwie linie dzielące, aby podzielić punkty danych na klasy, a obszar, który składa się na jedną klasę, znajduje się między dwiema liniami granicznymi zamiast jednej. Zamiast obliczać odległość między tylko dwiema klasami a granicą decyzyjną, klasyfikator musi uwzględnić marginesy między granicami decyzyjnymi a wieloma klasami w zbiorze danych.
Nieliniowe separacje
Proces opisany powyżej dotyczy przypadków, w których dane są liniowo separowalne. Zwróć uwagę, że w rzeczywistości zbiory danych są prawie nigdy całkowicie liniowo separowalne, co oznacza, że podczas korzystania z klasyfikatora SVM często będziesz musiał użyć dwóch różnych technik: miękkiego marginesu i sztuczki jądra. Rozważ sytuację, w której punkty danych różnych klas są pomieszane, z niektórymi przypadkami należącymi do jednej klasy w „klasterze” innej klasy. Jak można by poradzić sobie z tymi przypadkami?
Jedną taktyką, która może być użyta do radzenia sobie z nieliniowo separowalnymi zbiorami danych, jest zastosowanie „miękkiego marginesu” klasyfikatora SVM. Klasyfikator miękkiego marginesu działa, akceptując kilka błędnie sklasyfikowanych punktów danych. Będzie próbował narysować linię, która najlepiej separuje klastry punktów danych od siebie, ponieważ zawierają one większość przypadków należących do ich odpowiednich klas. Klasyfikator miękkiego marginesu SVM próbuje stworzyć linię dzielącą, która balansuje dwa wymagania klasyfikatora: dokładność i margines. Będzie próbował minimalizować błędne klasyfikacje, jednocześnie maksymalizując margines.
Tolerancja SVM na błąd może być dostosowana przez manipulację hiperparametrem o nazwie „C”. Wartość C kontroluje liczbę wektorów wspierających, które klasyfikator uwzględnia podczas rysowania granic decyzyjnych. Wartość C jest karą nakładaną na błędne klasyfikacje, co oznacza, że im większa wartość C, tym mniej wektorów wspierających klasyfikator uwzględnia i tym węższy margines.

Sztuczka jądra przekształca dane w nieliniowy sposób. Zdjęcie: Shiyu Ju via Wikmedia Commons, CC BY SA 4.0 (https://commons.wikimedia.org/wiki/File:Kernel_trick_idea.svg)
Sztuczka jądra działa, stosując nieliniowe transformacje do cech w zbiorze danych. Sztuczka jądra bierze istniejące cechy w zbiorze danych i tworzy nowe cechy poprzez zastosowanie nieliniowych funkcji matematycznych. Co wynika z zastosowania tych nieliniowych transformacji, jest nieliniowa granica decyzyjna. Ponieważ klasyfikator SVM nie jest już ograniczony do rysowania liniowych granic decyzyjnych, może zacząć rysować zakrzywione granice decyzyjne, które lepiej oddają true rozkład wektorów wspierających i minimalizują błędne klasyfikacje. Dwa najpopularniejsze nieliniowe jądra SVM to Radial Basis Function i Polynomial. Funkcja polinomiowa tworzy polinomiowe kombinacje wszystkich istniejących cech, podczas gdy funkcja Radial Basis generuje nowe cechy, mierząc odległość między centralnym punktem/punktami a wszystkimi innymi punktami.












