ciot Ce sunt mașinile de suport Vector? - Unite.AI
Conectează-te cu noi
Masterclass AI:

AI 101

Ce sunt mașinile de suport Vector?

mm
Actualizat on

Ce sunt mașinile de suport Vector?

Mașinile vectoriale suport sunt un tip de clasificator de învățare automată, probabil unul dintre cele mai populare tipuri de clasificatoare. Mașinile vectoriale de suport sunt utile în special pentru sarcinile de predicție numerică, clasificare și recunoaștere a modelelor.

Mașinile vectoriale suport funcționează prin trasarea granițelor de decizie între punctele de date, urmărind granița de decizie care separă cel mai bine punctele de date în clase (sau este cea mai generalizabilă). Scopul când se folosește o mașină vectorială suport este ca granița de decizie între puncte să fie cât mai mare posibil, astfel încât distanța dintre orice punct de date dat și linia de graniță să fie maximizată. Aceasta este o explicație rapidă despre cum suport vector machines (SVM-uri) să funcționeze, dar să luăm ceva timp pentru a explora mai profund modul în care funcționează SVM-urile și să înțelegem logica din spatele funcționării lor.

Scopul mașinilor vectoriale de asistență

Imaginați-vă un grafic cu un număr de puncte de date pe el, bazat pe caracteristicile specificate de axele X și Y. Punctele de date de pe grafic pot fi împărțite în două grupuri diferite, iar clusterul căruia îi aparține un punct de date indică clasa punctului de date. Acum să presupunem că vrem să trasăm o linie în josul graficului care separă cele două clase una de cealaltă, cu toate punctele de date dintr-o clasă găsite pe o parte a liniei și toate punctele de date aparținând unei alte clase găsite pe cealaltă parte. a liniei. Această linie de separare este cunoscută sub numele de hiperplan.

Vă puteți gândi la o mașină vectorială de sprijin care creează „drumuri” în întregul oraș, separând orașul în districte de pe ambele părți ale drumului. Toate clădirile (punctele de date) care se găsesc pe o parte a drumului aparțin unui singur district.

Scopul unei mașini cu vector de suport nu este doar de a desena hiperplanuri și de a împărți punctele de date, ci și de a desena hiperplanul punctelor de date separate cu cea mai mare marjă sau cu cel mai mare spațiu între linia de divizare și orice punct de date dat. Revenind la metafora „drumurilor”, dacă un urbanist desenează planuri pentru o autostradă, nu vrea ca autostrada să fie prea aproape de case sau alte clădiri. Cu cât este mai mare marginea dintre autostradă și clădirile de pe ambele părți, cu atât mai bine. Cu cât această marjă este mai mare, cu atât clasificatorul poate fi mai „încrezător” în ceea ce privește predicțiile sale. În cazul clasificării binare, trasarea hiperplanului corect înseamnă alegerea unui hiperplan care se află chiar în mijlocul celor două clase diferite. Dacă limita de decizie/hiperplanul este mai departe de o clasă, va fi mai aproape de alta. Prin urmare, hiperplanul trebuie să echilibreze marja dintre cele două clase diferite.

Calcularea hiperplanului de separare

Deci, cum determină o mașină vectorială suport cea mai bună separare a hiperplanului/limită de decizie? Acest lucru se realizează prin calcularea posibilelor hiperplane folosind o formulă matematică. Nu vom acoperi formula pentru calcularea hiperplanelor în detaliu extrem, dar linia se calculează cu celebra formulă pantă/linie:

Y = ax + b

Între timp, liniile sunt făcute din puncte, ceea ce înseamnă că orice hiperplan poate fi descris ca: setul de puncte care sunt paralele cu hiperplanul propus, așa cum este determinat de ponderile modelului înmulțit cu setul de caracteristici modificate printr-un decalaj/bias specificat. („d”).

SVM-urile desenează multe hiperplane. De exemplu, linia de delimitare este un hiperplan, dar punctele de date pe care clasificatorul le consideră sunt, de asemenea, pe hiperplanuri. Valorile pentru x sunt determinate pe baza caracteristicilor din setul de date. De exemplu, dacă ați avea un set de date cu înălțimile și greutățile multor persoane, caracteristicile „înălțime” și „greutate” ar fi caracteristicile utilizate pentru a calcula „X”. Marjele dintre hiperplanul propus și diferiții „vectori suport” (puncte de date) găsiți de fiecare parte a hiperplanului de divizare sunt calculate cu următoarea formulă:

W * X – b

Deși puteți citi mai multe despre matematica din spatele SVM-urilor, dacă sunteți în căutarea unei înțelegeri mai intuitive a acestora, trebuie să știți că scopul este de a maximiza distanța dintre hiperplanul/linia de delimitare de separare propusă și celelalte hiperplane care rulează paralel cu acesta ( și pe care se găsesc punctele de date).

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

Clasificare multiclasă

Procesul descris până acum se aplică sarcinilor de clasificare binară. Cu toate acestea, clasificatoarele SVM pot fi utilizate și pentru sarcini de clasificare non-binară. Când faceți clasificarea SVM pe un set de date cu trei sau mai multe clase, sunt utilizate mai multe linii de delimitare. De exemplu, dacă o sarcină de clasificare are trei clase în loc de două, două linii de divizare vor fi folosite pentru a împărți punctele de date în clase, iar regiunea care cuprinde o singură clasă se va încadra între două linii de separare în loc de una. În loc să calculeze doar distanța dintre doar două clase și o limită de decizie, clasificatorul trebuie să ia în considerare acum marjele dintre limitele de decizie și clasele multiple din setul de date.

Separari neliniare

Procesul descris mai sus se aplică cazurilor în care datele sunt separabile liniar. Rețineți că, în realitate, seturile de date nu sunt aproape niciodată complet separabile liniar, ceea ce înseamnă că atunci când utilizați un clasificator SVM, va trebui adesea să utilizați două tehnici diferite: marjă moale și trucuri ale miezului. Luați în considerare o situație în care punctele de date ale diferitelor clase sunt amestecate împreună, cu unele instanțe aparținând unei clase din „clusterul” altei clase. Cum ai putea face ca clasificatorul să gestioneze aceste cazuri?

O tactică care poate fi utilizată pentru a gestiona seturi de date separabile neliniar este aplicarea unui clasificator SVM „marjă moale”. Un clasificator de marjă slabă funcționează prin acceptarea câtorva puncte de date clasificate greșit. Se va încerca să tragă o linie care separă cel mai bine grupurile de puncte de date unele de altele, deoarece acestea conțin majoritatea instanțelor aparținând claselor lor respective. Clasificatorul SVM cu marjă moale încearcă să creeze o linie de despărțire care echilibrează cele două cerințe ale clasificatorului: precizie și marjă. Va încerca să minimizeze clasificarea greșită, maximizând și marja.

Toleranța SVM la eroare poate fi ajustată prin manipularea unui hiperparametru numit „C”. Valoarea C controlează câți vectori suport ia în considerare clasificatorul la trasarea limitelor de decizie. Valoarea C este o penalizare aplicată clasificărilor greșite, ceea ce înseamnă că cu cât valoarea C este mai mare, cu atât mai puțini vectori suport ia în considerare clasificatorul și cu atât marja este mai îngustă.

Nucleul trucează datele și le transformă într-un mod neliniar. Foto: Shiyu Ju prin Wikmedia Commons, CC BY SA 4.0 (https://commons.wikimedia.org/wiki/File:Kernel_trick_idea.svg)

Trucul Kernel funcționează prin aplicarea transformărilor neliniare caracteristicilor din setul de date. Kernel Trick preia caracteristicile existente în setul de date și creează noi caracteristici prin aplicarea funcțiilor matematice neliniare. Ceea ce rezultă din aplicarea acestor transformări neliniare este o graniță de decizie neliniară. Deoarece clasificatorul SVM nu se mai limitează la trasarea granițelor de decizie liniare, poate începe să deseneze limite de decizie curbe care să încapsuleze mai bine distribuția reală a vectorilor suport și să reducă clasificările greșite la minimum. Două dintre cele mai populare nuclee neliniare SVM sunt Funcția de bază radială și Polinom. Funcția polinomială creează combinații polinomiale ale tuturor caracteristicilor existente, în timp ce Funcția de bază radială generează noi caracteristici prin măsurarea distanței dintre un punct central/puncte la toate celelalte puncte.

Blogger și programator cu specialități în Invatare mecanica și Invatare profunda subiecte. Daniel speră să-i ajute pe alții să folosească puterea AI pentru binele social.