what is support vector machine machine learning
Ovaj vodič objašnjava mašinu za podršku vektora u ML-u i povezane koncepte kao što su Hyperplane, vektori podrške i aplikacije SVM-a:
U Prethodni vodič , saznali smo o genetskim algoritmima i njihovoj ulozi u strojnom učenju.
Proučavali smo neke nadzirane i nenadgledane algoritme u strojnom učenju u našim ranijim tutorijalima. Povratno širenje je nadzirani algoritam učenja, dok je Kohenen algoritam nenadgledanog učenja.
U ovom uputstvu za vektorske strojeve za podršku naučit ćemo o vektorskim strojevima za potporu. SVM su robusni matematički nadzirani algoritmi strojnog učenja koji se opsežno koriste u klasifikaciji skupa podataka o obuci.
=> Pročitajte cjelovitu seriju treninga za strojno učenje
Što ćete naučiti:
- Što je stroj za vektorske potpore (SVM)
- Što je hiperravan
- Što su algoritmi klasifikacije i regresije
- Što su vektori podrške
- Kako radi stroj za vektorske nosače
- Kako optimizirati položaj hiperplana
- Primjene SVM-a
- Zaključak
- Preporučena literatura
Što je stroj za vektorske potpore (SVM)
SVM algoritam nadzorni je algoritam učenja kategoriziran pod Tehnike klasifikacije. To je binarna tehnika klasifikacije koja koristi skup podataka o treningu za predviđanje optimalne hiperravnine u n-dimenzionalnom prostoru.
Ovaj hiperravan koristi se za klasifikaciju novih skupova podataka. Budući da je binarni klasifikator, skup podataka o treningu hiperravan dijeli niz podataka o treningu u dvije klase.
SVM algoritmi koriste se za klasificiranje podataka u dvodimenzionalnoj ravnini kao i višedimenzionalnoj hiperravni. Višedimenzionalni hiperravan koristi 'jezgre' za kategorizaciju višedimenzionalnih podataka.
Uvijek se želi maksimalno razlikovati između klasificiranih točaka podataka. To znači da bi trebali imati maksimalnu udaljenost ili bi hiperravan trebao imati maksimalnu marginu između podatkovnih točaka.
Što je hiperravan
Hiperravnina je granica koja dijeli ravninu. To je granica odluke koja klasificira točke podataka u 2 različite klase. Kako se SVM koristi za klasifikaciju podataka u višedimenzionalne, hiperravan može biti ravna crta ako postoje 2 ulaza ili 2 D ravnina ako ima više od 2 ulaza.
SVM algoritmi također se mogu koristiti za regresijsku analizu, ali uglavnom se koriste za klasifikaciju. Pogledajmo još pojedinosti o svakoj od ovih metoda.
Što su algoritmi klasifikacije i regresije
Algoritam klasifikacije je onaj koji analizira podatke o treningu kako bi predvidio ishod. Ishod je ciljna klasa, na primjer , Dan ili Noć, Da ili Ne, Dugo ili Kratko. Primjer algoritma klasifikacije bio bi da li bi kupac u supermarketi koji kupuje kruh kupio i maslac. Ciljna klasa bi bila 'Da' ili 'Ne'.
Regresijski algoritam otkriva odnos između neovisnih varijabli i predviđa ishod. Linearna regresija otkriva linearni odnos između ulaza i izlaza. Na primjer: 'A' kao ulaz i 'b' kao izlaz, linearna funkcija bila bi b = k * a + c.
Što su vektori podrške
Vektori podrške su podatkovne točke koje nam pomažu u optimizaciji hiperplana. Ti su vektori najbliži hiperplanu i najteže ih je klasificirati. Položaj hiperravnine odluke ovisi o vektorima potpore. Ako se ti vektori potpore uklone, tada će se također promijeniti položaj hiperravnine.
Stroj za vektore podrške (SVM) koristi točke ulaznih podataka ili značajke koje se nazivaju vektori podrške kako bi maksimalizirao granice odluke, tj. Prostor oko hiperravnine. Ulazi i izlazi SVM-a slični su neuronskoj mreži. Postoji samo jedna razlika između SVM i NN kako je navedeno u nastavku.
Ulazi: SVM mreža može sadržavati n broj ulaza recimo x1, xdva, …… .., xja,…., Xn.
Izlazi: Ciljani izlaz t.
Utezi: Poput utega neuronske mreže w1, udva, ……, unpovezani su sa svakim ulazom čija linearna kombinacija predviđa izlaz y.
Razlika između SVM-a i neuronskih mreža
Sinaptički ponderi u neuronskim mrežama eliminiraju se da bi se izračunao izlazni rezultat y mreže, dok se u SVM-u nula-utezi smanjuju ili eliminiraju kako bi se izračunala optimalna granica odluke.
Eliminacijom težina, smanjit će skup ulaznih podataka na nekoliko važnih ulaznih značajki koje će pomoći u odluci o hiperravni koja se može razdvojiti.
Kako radi stroj za vektorske nosače
Kao što znamo, cilj strojeva s vektorima potpore je maksimizirati razmak između klasificiranih točaka podataka. To će donijeti optimalnije rezultate za klasifikaciju novih skupova neobučenih podataka. Dakle, to se može postići postavljanjem hiperravnine na položaju gdje je margina maksimalna.
Pogledajmo primjer linearno odvojenih točaka podataka:
Korak 1: Doznajte ispravan hiperravnjak iz različitih mogućnosti: Da biste odlučili koji je najbolji hiperplan, pronađite sve moguće ravnine koje dijele podatke, a zatim odaberite onu koja najbolje klasificira ulazne skupove podataka. Na donjem grafikonu postoje tri mogućnosti hiperplana. Hiperravan 3 bolje dijeli podatkovne točke.
Korak 2: Odaberite hiperravninu koja ima maksimalnu marginu između najbližih podatkovnih točaka: Margina se definira kao udaljenost između hiperravnine i najbližih podatkovnih točaka. Dakle, optimalno je imati maksimalnu maržu. Kada 2 ili više od 2 hiperplana podjednako klasificiraju podatke, tada saznajte marginu.
Odabrana je hiperravan s maksimalnom marginom. Na slici ispod, hiperravan 2.1,2.2 i 2.3 dijeli podatkovne točke, ali hiperravan 2.2 ima maksimalnu marginu.
Korak 3: Kada su prisutni odstupanja: Iznimke su podatkovne točke koje se razlikuju od skupa podatkovnih točaka. U slučaju 2 seta podatkovnih točaka, može biti prisutan odstupanje. SVM ignorira takve odstupanja u podacima, a zatim pronalazi hiperravan maksimalne margine.
Korak 4: U slučaju nelinearno odvojenih točaka podataka, SVM koristi trik jezgre. Uvođenjem nove dimenzije pretvorit će nelinearno odvojivu ravninu u odvojivu ploču. Trikovi jezgre složene su matematičke jednadžbe koje čine složene transformacije podataka kako bi optimizirale hiperravan.
Donja slika prikazuje nelinearno odvojive podatkovne točke koje se zatim transformiraju u visoku dimenzionalnost z ravninom. Hiperravan koja dijeli dva skupa podataka je krug.
Kako optimizirati položaj hiperplana
Položaj hiperravnine optimizira se pomoću algoritama za optimizaciju.
SVM parametar: Kernel
Izgradnja optimizirane hiperravnine u nelinearno odvojivom problemu vrši se pomoću kernela. Jezgre su matematičke funkcije koje pretvaraju složeni problem pomoću linearnog algebarskog oblika.
Za linearnu jezgru jednadžba se nalazi kao:
F (x) = b + zbroj (aja* (x, xja))
gdje,
x su novi ulazni podaci
xjaje vektor potpore
b, ajasu koeficijenti. Ti se koeficijenti procjenjuju tijekom faze učenja algoritma.
Za složeni nelinearno odvojivi problem, trik kernela djeluje kao pretvaranje nelinearnog odvojivog problema u odvojivi problem. Transformira složene podatke i pronalazi način dijeljenja podatkovnih točaka u izlaze.
Kernel funkcije su mnogih vrsta kao što su linearne, polinomne, sigmoidne, radijalne pristranosti, nelinearne i mnoge druge.
Pogledajmo kako se koriste neke od gore navedenih funkcija jezgre:
Funkcije jezgre izračunavaju unutarnji umnožak 2 ulaza x, y prostora.
# 1) Funkcija radijalne pristranosti: Najkorištenija funkcija jezgre kaže da je za sve vrijednosti koje leže između x = (-1,1) vrijednost funkcije 1 inače 0. Za neke presretnute riječi xja, vrijednost Kernel funkcije je 1 za | (xja- h), (xja+ h) | za xjauzeto kao središte, a 0 inače.
# 2) Sigmoidna funkcija: Kao neuronske mreže koje koriste Sigmoid, funkcija jezgre za SVM-ove je
# 3) Funkcija hiperboličkog tangenta: Kako se koriste neuronske mreže, funkcija je
# 4) Gaussova funkcija jezgre: Stanja funkcije Gaussova jezgra
# 5) Polinomska funkcija: k (xja, xj) = (xja* xj+1)dva
Primjene SVM-a
Primjene SVM-a u stvarnom životu uključuju:
# 1) Razvrstavanje članaka u različite kategorije: SVM razlikuje napisane tekstove i svrstava ih u različite kategorije kao što su zabava, zdravlje, beletristički članci. Temelji se na unaprijed postavljenim vrijednostima praga izračunatim tijekom treninga SVM-a.
Ako se prijeđe granična vrijednost, ona se stavlja na kategoriju. Ako vrijednost nije zadovoljena, tada se definiraju nove kategorije za klasifikaciju.
što je bolje java ili c ++
# 2) Prepoznavanje lica: Data se slika klasificira kao slika lica ili slika lica koja otkriva značajke pomoću piksela. Slika se prepoznaje kao lice ili lice koje nije lice.
# 3) Zdravstvene informacije: SVM se koriste za klasifikaciju pacijenata na temelju njihovih gena, prepoznavanja bioloških obrazaca itd.
# 4) Otkrivanje homološke proteina: U računalnim medicinskim znanostima SVM-ovi su obučeni o načinu modeliranja proteinskih sekvenci. Tada se SVM koristi za otkrivanje homologije proteina.
Zaključak
U ovom vodiču za strojeve vektora za podršku naučili smo o strojevima vektora za podršku. SVM algoritmi su nadzirani algoritmi učenja koji se koriste za klasifikaciju binarnih podataka i linearno odvojivih podataka. Točke podataka klasificira hiperravnom s maksimalnom marginom.
Nelinearne podatkovne točke također se mogu klasificirati pomoću strojeva za vektorske podrške pomoću Kernel trikova. Postoji mnogo aplikacija SVM-a u stvarnom životu, jedna od najčešćih aplikacija je prepoznavanje lica i prepoznavanje rukopisa.
Sretno čitanje !!
=> Posjetite ovdje za ekskluzivnu seriju strojnog učenja
Preporučena literatura
- Vodič za strojno učenje: Uvod u ML i njegove primjene
- Cjelovit vodič za umjetnu neuronsku mrežu u strojnom učenju
- Data Mining vs Machine Learning vs Artificial Intelligence vs Deep Learning
- Vrste strojnog učenja: Nadzirano protiv nenadgledanog učenja
- Uvod u genetske algoritme u strojnom učenju
- 11 Najpopularnijih softverskih alata za strojno učenje 2021. godine
- Top 13 NAJBOLJIH tvrtki za strojno učenje (Ažurirano 2021 popis)
- Što je Java Vector | Vodič za Java Vector Class s primjerima