Podstawy AI

Co to są Maszyny Wektorowe Wspierające?

mm
Dodaj Unite.AI do preferowanych ÅšrÃģdeł w Google

Co to są Maszyny Wektorowe Wspierające?

Maszyny wektorowe wspierające są rodzajem klasyfikatora uczenia maszynowego, być moÅže jednym z najpopularniejszych rodzajÃģw klasyfikatorÃģw. Maszyny wektorowe wspierające są szczegÃģlnie przydatne do zadania predykcji numerycznej, klasyfikacji i rozpoznawania wzorcÃģw.

Maszyny wektorowe wspierające działają poprzez rysowanie granic decyzyjnych 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 pozwÃģlmy sięgnąć głębiej w to, jak SVM działają i zrozumieć logikę ich działania.

Cel Maszyn Wektorowych Wspierających

WyobraÅš sobie wykres z pewną liczbą punktÃģw danych, 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 separująca linia jest znana jako hiperpłaszczyzna.

MoÅžna myśleć o maszynie wektorowej wspierającej jako o tworzeniu “drÃģg” w całym mieście, separując miasto na dzielnice po obu stronach drogi. Wszystkie budynki (punkty danych) po jednej stronie drogi naleŞą do jednej dzielnicy.

Cel maszyny wektorowej wspierającej nie jest tylko rysowanie hiperpłaszczyzn i separowanie punktÃģw danych, ale rysowanie 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 prawidłowej hiperpłaszczyzny oznacza wybÃģr hiperpłaszczyzny, ktÃģra jest dokładnie w środku dwÃģch rÃģÅžnych klas. 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 rÃģÅžnymi klasami.

Obliczanie Separującej Hiperpłaszczyzny

Jak maszyna wektorowa wspierająca określa najlepszą separującą hiperpłaszczyznę/granicę decyzyjną? To jest osiągane poprzez 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 za pomocą słynnego wzoru nachylenia/linii:

Y = ax + b

Podczas gdy linie składają się z punktÃģw, co oznacza, Åže kaÅžda hiperpłaszczyzna moÅže być opisana jako: zestaw punktÃģw, ktÃģre biegną rÃģwnolegle do proponowanej hiperpłaszczyzny, określonej przez wagi modelu pomnoÅžone przez zestaw cech modyfikowanych przez określony przesunięcie/przesunięcie (“d”).

Maszyny wektorowe wspierające 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 x są określane na podstawie cech w zbiorze danych. Na przykład, jeśli miałbyś zestaw danych z wysokościami i wagami wielu ludzi, “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 linii granicznej są obliczane za pomocą następującego wzoru:

W * X – b

Podczas gdy moÅžesz przeczytać więcej o matematyce za maszynami wektorowymi wspierającymi, 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 dotychczas dotyczy zadań klasyfikacji binarnej. Jednak klasyfikatory SVM mogą być rÃģwnieÅž uÅžywane do zadań klasyfikacji niebinarnej. Podczas korzystania z klasyfikatora SVM na zestawie danych z trzema lub więcej klasami, uÅžywane są dodatkowe linie graniczne. Na przykład, jeśli zadanie klasyfikacji ma trzy klasy zamiast dwÃģch, uÅžywane są dwie linie graniczne do podziału punktÃģw danych na klasy, a region, ktÃģry składa się z jednej klasy, znajduje się między dwiema liniami granicznymi zamiast jednej. Zamiast obliczania odległości między tylko dwiema klasami a granicą decyzyjną, klasyfikator musi uwzględnić marginesy między granicami decyzyjnymi a wieloma klasami w zestawie danych.

Nieliniowe Separacje

Proces opisany powyÅžej dotyczy przypadkÃģw, w ktÃģrych dane są liniowo separowalne. ZwrÃģć uwagę, Åže w rzeczywistości zestawy 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ękkiej granicy i sztuczek 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 nakazać klasyfikatorowi obsłuÅžyć te przypadki?

Jedną taktyką, ktÃģra moÅže być uÅžyta do obsłuÅženia nieliniowo separowalnych zestawÃģw danych, jest zastosowanie “miękkiej granicy” klasyfikatora SVM. Klasyfikator o miękkiej granicy działa poprzez akceptację kilku 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 SVM o miękkiej granicy prÃģbuje stworzyć linię graniczną, ktÃģra balansuje dwa wymagania klasyfikatora: dokładność i margines. Będzie prÃģbował minimalizować błędne klasyfikacje, jednocześnie maksymalizując margines.

Cierpliwość klasyfikatora SVM wobec błędÃģw moÅže być dostosowana poprzez manipulację hiperparametrem o nazwie “C”. Wartość C kontroluje, ile wektorÃģw wspierających klasyfikator uwzględnia przy rysowaniu 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 poprzez aplikowanie nieliniowych transformacji do cech w zestawie danych. Sztuczka jądra bierze istniejące cechy w zestawie danych i tworzy nowe cechy poprzez aplikację nieliniowych funkcji matematycznych. Co wynika z aplikacji 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ą prawdziwy rozkład wektorÃģw wspierających i minimalizują błędne klasyfikacje. Dwa najpopularniejsze nieliniowe jądra SVM to Funkcja Radialna i Wielomianowa. Funkcja wielomianowa tworzy wielomianowe kombinacje wszystkich istniejących cech, podczas gdy funkcja radialna generuje nowe cechy poprzez pomiar odległości między centralnym punktem/punktami a wszystkimi innymi punktami.

Blogger i programista ze specjalnościami w Machine Learning i Deep Learning tematy. Daniel liczy, Åže pomoÅže innym wykorzystać moc sztucznej inteligencji dla dobra społecznego.