škrbina Što su strojevi za potporu vektora? - Ujedinite se.AI
Povežite se s nama
Majstorski tečaj umjetne inteligencije:

AI 101

Što su strojevi za potporu vektora?

mm
Ažurirano on

Što su strojevi za potporu vektora?

Strojevi za potporne vektore vrsta su klasifikatora strojnog učenja, nedvojbeno jedna od najpopularnijih vrsta klasifikatora. Strojevi za potporne vektore posebno su korisni za zadatke numeričkog predviđanja, klasifikacije i prepoznavanja uzoraka.

Strojevi za potporne vektore rade povlačenjem granica odlučivanja između podatkovnih točaka, ciljajući na granicu odlučivanja koja najbolje razdvaja podatkovne točke u klase (ili je najopćenitija). Cilj pri korištenju stroja potpornih vektora je da granica odluke između točaka bude što je moguće veća, tako da je udaljenost između bilo koje dane podatkovne točke i granične linije maksimizirana. To je kratko objašnjenje kako vektorski strojevi za podršku (SVM) funkcioniraju, ali uzmimo malo vremena kako bismo dublje istražili kako SVM rade i razumjeli logiku koja stoji iza njihovog rada.

Cilj strojeva za potporu vektora

Zamislite grafikon s nizom podatkovnih točaka na njemu, na temelju značajki koje određuju X i Y osi. Podatkovne točke na grafikonu mogu se slobodno podijeliti u dva različita klastera, a klaster kojem podatkovna točka pripada označava klasu podatkovne točke. Sada pretpostavimo da želimo nacrtati crtu niz graf koja razdvaja dvije klase jednu od druge, sa svim podatkovnim točkama u jednoj klasi koje se nalaze na jednoj strani crte i svim podatkovnim točkama koje pripadaju drugoj klasi nalaze se na drugoj strani linije. Ova linija razdvajanja poznata je kao hiperravnina.

Stroj vektora podrške možete zamisliti kao stvaranje "cesta" kroz cijeli grad, razdvajajući grad u četvrti s obje strane ceste. Sve zgrade (točke podataka) koje se nalaze s jedne strane ceste pripadaju jednom okrugu.

Cilj stroja za potporne vektore nije samo crtanje hiperravnina i dijeljenje podatkovnih točaka, već crtanje hiperravnine odvojenih podatkovnih točaka s najvećom marginom ili s najvećim razmakom između linije razdvajanja i bilo koje dane podatkovne točke. Vraćajući se na metaforu "ceste", ako gradski urbanist crta planove za autocestu, ne želi da autocesta bude preblizu kuća ili drugih zgrada. Što je veća razlika između autoceste i zgrada s obje strane, to bolje. Što je ta margina veća, klasifikator može biti "pouzdaniji" u svojim predviđanjima. U slučaju binarne klasifikacije, crtanje točne hiperravnine znači odabir hiperravnine koja je upravo u sredini dviju različitih klasa. Ako je granica/hiperravnina odluke dalje od jedne klase, bit će bliže drugoj. Stoga, hiperravnina mora uravnotežiti marginu između dvije različite klase.

Izračunavanje razdvajajuće hiperravnine

Dakle, kako stroj potpornog vektora određuje najbolju razdvajajuću hiperravninu/granicu odluke? To se postiže izračunavanjem mogućih hiperravnina pomoću matematičke formule. Nećemo pokrivati ​​formulu za izračunavanje hiperravnina krajnje detaljno, ali linija se izračunava poznatom formulom nagib/linija:

Y = sjekira + b

U međuvremenu, linije se sastoje od točaka, što znači da se svaka hiperravnina može opisati kao: skup točaka koje idu paralelno s predloženom hiperravninom, kako je određeno težinama modela puta skupa značajki modificiranih određenim pomakom/biasom ("d").

SVM crtaju mnoge hiperravnine. Na primjer, granična linija je jedna hiperravnina, ali podatkovne točke koje klasifikator uzima u obzir su također na hiperravninama. Vrijednosti za x određene su na temelju značajki u skupu podataka. Na primjer, ako imate skup podataka s visinama i težinama mnogih ljudi, značajke "visine" i "težine" bile bi značajke korištene za izračun "X". Margine između predložene hiperravnine i različitih "potpornih vektora" (točaka podataka) koji se nalaze s obje strane razdjelne hiperravnine izračunavaju se sljedećom formulom:

W * X – b

Iako možete pročitati više o matematici koja stoji iza SVM-ova, ako tražite njihovo intuitivnije razumijevanje samo znajte da je cilj maksimizirati udaljenost između predložene razdvajajuće hiperravnine/granične linije i drugih hiperravnina koje idu paralelno s njom ( a na kojem se nalaze podatkovne točke).

Fotografija: ZackWeinberg putem Wikimedia Commons, CC BY SA 3.0 (https://commons.wikimedia.org/wiki/File:Svm_separating_hyperplanes_(SVG).svg)

Višeklasna klasifikacija

Do sada opisani proces primjenjuje se na zadatke binarne klasifikacije. Međutim, SVM klasifikatori također se mogu koristiti za zadatke nebinarne klasifikacije. Kada se radi SVM klasifikacija na skupu podataka s tri ili više klasa, koristi se više graničnih linija. Na primjer, ako zadatak klasifikacije ima tri klase umjesto dvije, dvije razdjelne linije koristit će se za podjelu podatkovnih točaka u klase, a regija koja se sastoji od jedne klase nalazit će se između dvije razdjelne linije umjesto jedne. Umjesto da samo izračuna udaljenost između samo dvije klase i granice odluke, klasifikator sada mora uzeti u obzir margine između granica odluke i više klasa unutar skupa podataka.

Nelinearna razdvajanja

Gore opisani postupak primjenjuje se na slučajeve gdje su podaci linearno odvojivi. Imajte na umu da u stvarnosti skupovi podataka gotovo nikada nisu potpuno linearno odvojivi, što znači da ćete pri korištenju SVM klasifikatora često morati koristiti dvije različite tehnike: meka margina i kernel trikovi. Razmotrimo situaciju u kojoj su podatkovne točke različitih klasa pomiješane zajedno, s nekim primjercima koji pripadaju jednoj klasi u "klasteru" druge klase. Kako ste mogli natjerati klasifikator da obrađuje ove instance?

Jedna taktika koja se može koristiti za rukovanje nelinearno odvojivim skupovima podataka je primjena SVM klasifikatora s "mekom marginom". Klasifikator meke margine funkcionira tako da prihvaća nekoliko pogrešno klasificiranih podatkovnih točaka. Pokušat će povući crtu koja najbolje odvaja klastere podatkovnih točaka jedne od drugih, jer sadrže većinu instanci koje pripadaju njihovim klasama. SVM klasifikator meke margine pokušava stvoriti liniju razdvajanja koja uravnotežuje dva zahtjeva klasifikatora: točnost i marginu. Pokušat će minimizirati pogrešnu klasifikaciju dok će također maksimizirati maržu.

Tolerancija SVM-a na pogreške može se prilagoditi manipulacijom hiperparametra koji se zove "C". Vrijednost C kontrolira koliko nosivih vektora klasifikator uzima u obzir pri crtanju granica odlučivanja. C vrijednost je kazna koja se primjenjuje na pogrešne klasifikacije, što znači da što je veća C vrijednost, klasifikator uzima u obzir manje vektora podrške i uža je margina.

Kernel prevari podatke i transformira ih na nelinearan način. Fotografija: Shiyu Ju putem Wikmedia Commons, CC BY SA 4.0 (https://commons.wikimedia.org/wiki/File:Kernel_trick_idea.svg)

Kernel Trick djeluje primjenom nelinearnih transformacija na značajke u skupu podataka. Kernel Trick uzima postojeće značajke u skupu podataka i stvara nove značajke primjenom nelinearnih matematičkih funkcija. Ono što rezultira primjenom ovih nelinearnih transformacija je nelinearna granica odlučivanja. Budući da SVM klasifikator više nije ograničen na crtanje linearnih granica odlučivanja, on može početi crtati zakrivljene granice odlučivanja koje bolje obuhvaćaju pravu distribuciju vektora podrške i smanjuju pogrešne klasifikacije na minimum. Dvije najpopularnije SVM nelinearne jezgre su radijalna bazna funkcija i polinom. Funkcija polinoma stvara polinomske kombinacije svih postojećih značajki, dok funkcija radijalne osnove generira nove značajke mjerenjem udaljenosti između središnje točke/točaka do svih ostalih točaka.

Bloger i programer sa specijalnošću u Strojno učenje i Duboko učenje temama. Daniel se nada pomoći drugima da iskoriste snagu umjetne inteligencije za društveno dobro.