GrundlÃĶggende AI

Hvad er Support Vector Machines?

mm
FÃļj Unite.AI til dine foretrukne kilder pÃĨ Google

Hvad er Support Vector Machines?

Support Vector Machines er en type maskinlÃĶringsklassifikator, der kan siges at vÃĶre en af de mest populÃĶre klassifikatorer. Support Vector Machines er sÃĶrligt nyttige til numerisk prÃĶdiktions-, klassifikations- og mÃļnstergenkendelsesopgaver.

Support Vector Machines fungerer ved at tegne beslutningsgrÃĶnser mellem datapunkter, med mÃĨlet om at finde den beslutningsgrÃĶnse, der bedst adskiller datapunkterne i klasser (eller er den mest generelle). MÃĨlet ved brug af en Support Vector Machine er, at beslutningsgrÃĶnsen mellem punkterne er sÃĨ stor som muligt, sÃĨ afstanden mellem ethvert datapunkt og grÃĶnselinjen er maksimeret. Det er en kort forklaring af, hvordan Support Vector Machines (SVM) fungerer, men lad os tage lidt tid til at dykke dybere i, hvordan SVM fungerer, og forstÃĨ logikken bag deres funktion.

MÃĨlet for Support Vector Machines

Forestil dig et diagram med et antal datapunkter pÃĨ det, baseret pÃĨ funktioner specificeret af x- og y-aksen. Datapunkterne pÃĨ diagrammet kan lÃļst deles op i to forskellige klaser, og den klasse, som et datapunkt tilhÃļrer, indikerer datapunktets klasse. Antag, at vi Ãļnsker at tegne en linje gennem diagrammet, der adskiller de to klasser fra hinanden, med alle datapunkter i en klasse pÃĨ den ene side af linjen og alle datapunkter, der tilhÃļrer en anden klasse, pÃĨ den anden side af linjen. Denne adskilningslinje kaldes en hyperplan.

Du kan betragte en Support Vector Machine som en, der skaber “veje” gennem en by, der adskiller byen i distrikter pÃĨ hver side af vejen. Alle bygningerne (datapunkter) pÃĨ den ene side af vejen tilhÃļrer en distrikt.

MÃĨlet for en Support Vector Machine er ikke kun at tegne hyperplaner og adskille datapunkter, men at tegne hyperplanen, der adskiller datapunkter med den stÃļrste margin, eller med det mest rum mellem den adskilningslinje og ethvert datapunkt. Ved at vende tilbage til “vej”-metaforen, hvis en byplanlÃĶgger tegner planer for en motorvej, Ãļnsker de ikke, at motorvejen skal vÃĶre for tÃĶt pÃĨ huse eller andre bygninger. Jo stÃļrre marginen mellem motorvejen og bygningerne pÃĨ hver side, desto bedre. Jo stÃļrre denne margin er, desto mere “sikker” kan klassifikatoren vÃĶre pÃĨ sine prÃĶdiktionsmuligheder. I tilfÃĶlde af binÃĶr klassifikation betyder det at tegne den korrekte hyperplan at vÃĶlge en hyperplan, der er lige midt mellem de to forskellige klasser. Hvis beslutningsgrÃĶnsen/hyperplanen er fjernere fra en klasse, vil den vÃĶre tÃĶttere pÃĨ en anden. Derfor skal hyperplanen balancere marginen mellem de to forskellige klasser.

Beregning af den adskilningshyperplan

SÃĨ hvordan bestemmer en Support Vector Machine den bedste adskilningshyperplan/beslutningsgrÃĶnse? Dette opnÃĨs ved at beregne mulige hyperplaner ved hjÃĶlp af en matematisk formel. Vi kommer ikke til at dÃĶkke formelen for beregning af hyperplaner i ekstrem detalje, men linjen beregnes med den berÃļmte skrÃĨnings-/linjeformel:

Y = ax + b

Imens er linjer lavet af punkter, hvilket betyder, at enhver hyperplan kan beskrives som: MÃĶngden af punkter, der lÃļber parallelt med den foreslÃĨede hyperplan, som bestemmes af modellens vÃĶgte gange mÃĶngden af funktioner modificeret af en specificeret offset/bias (“d”).

SVM’er tegner mange hyperplaner. For eksempel er grÃĶnselinjen en hyperplan, men datapunkterne, som klassifikatoren betragter, er ogsÃĨ pÃĨ hyperplaner. VÃĶrdierne for x bestemmes pÃĨ baggrund af funktionerne i datasset. For eksempel, hvis du havde et datasset med hÃļjder og vÃĶgte for mange mennesker, ville “hÃļjde”- og “vÃĶgt”-funktionerne vÃĶre de funktioner, der bruges til at beregne “X”. Marginerne mellem den foreslÃĨede hyperplan og de forskellige “supportvektorer” (datapunkter) pÃĨ hver side af den adskilningshyperplan beregnes med fÃļlgende formel:

W * X – b

mens du kan lÃĶse mere om matematikken bag SVM’er, hvis du sÃļger en mere intuitiv forstÃĨelse af dem, sÃĨ ved blot, at mÃĨlet er at maksimere afstanden mellem den foreslÃĨede adskilningshyperplan/grÃĶnselinje og de andre hyperplaner, der lÃļber parallelt med den (og pÃĨ hvilke datapunkterne findes).

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

Flerklassifikation

Processen, der er beskrevet hidtil, gÃĶlder for binÃĶre klassifikationsopgaver. Imidlertid kan SVM-klassifikatorer ogsÃĨ bruges til ikke-binÃĶre klassifikationsopgaver. NÃĨr SVM-klassifikation udfÃļres pÃĨ et datasset med tre eller flere klasser, bruges flere grÃĶnselinjer. For eksempel, hvis en klassifikationsopgave har tre klasser i stedet for to, bruges to grÃĶnselinjer til at adskille datapunkter i klasser, og omrÃĨdet, der udgÃļr en enkelt klasse, falder mellem to grÃĶnselinjer i stedet for en. I stedet for kun at beregne afstanden mellem to klasser og en beslutningsgrÃĶnse, skal klassifikatoren nu betragte marginerne mellem beslutningsgrÃĶnserne og de multiple klasser i datasset.

Ikke-lineÃĶre adskillinger

Processen, der er beskrevet ovenfor, gÃĶlder for tilfÃĶlde, hvor data er lineÃĶrt adskilbart. BemÃĶrk, at i virkeligheden er datasÃĶt nÃĶsten aldrig fuldstÃĶndigt lineÃĶrt adskilbare, hvilket betyder, at nÃĨr du bruger en SVM-klassifikator, skal du ofte bruge to forskellige teknikker: soft margin og kernel-tricks. Betragt en situation, hvor datapunkter fra forskellige klasser er blandet sammen, med nogle eksempler, der tilhÃļrer en klasse i “klumpen” af en anden klasse. Hvordan kan klassifikatoren hÃĨndtere disse eksempler?

En taktik, der kan bruges til at hÃĨndtere ikke-lineÃĶrt adskilbare datasÃĶt, er anvendelsen af en “soft margin”-SVM-klassifikator. En soft margin-klassifikator fungerer ved at acceptere nogle misklassificerede datapunkter. Den vil forsÃļge at tegne en linje, der bedst adskiller datapunktsklumperne fra hinanden, da de indeholder de fleste eksempler, der tilhÃļrer deres respektive klasser. Soft margin-SVM-klassifikatoren forsÃļger at skabe en adskilningslinje, der balancerer klassifikatorens to krav: nÃļjagtighed og margin. Den vil forsÃļge at minimere misklassificering, mens den maksimerer marginen.

SVM’ens tolerance for fejl kan justeres gennem manipulation af en hyperparameter kaldet “C”. C-vÃĶrdien kontrollerer, hvor mange supportvektorer klassifikatoren betragter, nÃĨr den tegner beslutningsgrÃĶnser. C-vÃĶrdien er en straf, der pÃĨlÃĶgges misklassificeringer, hvilket betyder, at jo stÃļrre C-vÃĶrdi, desto fÃĶrre supportvektorer klassifikatoren tager i betragtning, og desto smallere er marginen.

Kernel-tricket transformerer dataene og transformerer dem pÃĨ en ikke-lineÃĶr mÃĨde. Foto: Shiyu Ju via Wikmedia Commons, CC BY SA 4.0 (https://commons.wikimedia.org/wiki/File:Kernel_trick_idea.svg)

Kernel-tricket fungerer ved at anvende ikke-lineÃĶre transformationer pÃĨ funktionerne i datasset. Kernel-tricket tager de eksisterende funktioner i datasset og skaber nye funktioner gennem anvendelsen af ikke-lineÃĶre matematiske funktioner. Det, der resulterer fra anvendelsen af disse ikke-lineÃĶre transformationer, er en ikke-lineÃĶr beslutningsgrÃĶnse. Fordi SVM-klassifikatoren ikke lÃĶngere er begrÃĶnset til at tegne lineÃĶre beslutningsgrÃĶnser, kan den begynde at tegne kurvede beslutningsgrÃĶnser, der bedre indkapsler den sande fordeling af supportvektorerne og bringer misklassificeringer til et minimum. To af de mest populÃĶre SVM ikke-lineÃĶre kernel er Radial Basis Function og Polynomial. Den polynomiske funktion skaber polynomiske kombinationer af alle eksisterende funktioner, mens Radial Basis Function genererer nye funktioner ved at mÃĨle afstanden mellem et centralt punkt/punkter til alle andre punkter.

Blogger og programmÃļr med specialer i Machine Learning og Deep Learning emner. Daniel hÃĨber at hjÃĶlpe andre med at bruge AI's kraft til sociale formÃĨl.