Grunnleggende AI

Hva er Support Vector Machines?

mm
Legg til Unite.AI blant dine foretrukne kilder pÃĨ Google

Hva er Support Vector Machines?

Support Vector Machines er en type maskinlÃĶringsklassifikator, kanskje en av de mest populÃĶre klassifikatorer. Support Vector Machines er spesielt nyttige for numerisk prediksjon, klassifikasjon og mÃļnstergjenkjenning.

Support Vector Machines opererer ved ÃĨ tegne avgjÃļrelsesgrenser mellom datapunkter, med mÃĨl om ÃĨ finne avgjÃļrelsesgrensen som best skiller datapunktene inn i klasser (eller er mest generell). MÃĨlet nÃĨr man bruker en Support Vector Machine er at avgjÃļrelsesgrensen mellom punktene er sÃĨ stor som mulig, sÃĨ avstanden mellom et gitt datapunkt og grenselinjen er maksimalt. Dette er en kort forklaring pÃĨ hvordan Support Vector Machines (SVMs) opererer, men la oss ta noen tid til ÃĨ dykke dyptere inn i hvordan SVMs opererer og forstÃĨ logikken bak deres operasjon.

MÃĨl for Support Vector Machines

Forestall en graf med en rekke datapunkter pÃĨ den, basert pÃĨ egenskaper spesifisert av X- og Y-aksene. Datapunktene pÃĨ grafen kan lÃļst deles inn i to ulike klaster, og klyngen datapunktet tilhÃļrer, indikerer klassen datapunktet tilhÃļrer. La oss nÃĨ anta at vi Ãļnsker ÃĨ tegne en linje ned grafen som skiller de to klassene fra hverandre, med alle datapunktene i en klasse pÃĨ en side av linjen og alle datapunktene som tilhÃļrer en annen klasse pÃĨ den andre siden av linjen. Denne skillelinjen kalles en hyperplan.

Du kan tenke pÃĨ en Support Vector Machine som ÃĨ lage “veier” gjennom en by, som skiller byen inn i distrikter pÃĨ hver side av veien. Alle bygningene (datapunkter) som er pÃĨ en side av veien tilhÃļrer en distrikt.

MÃĨlet for en Support Vector Machine er ikke bare ÃĨ tegne hyperplaner og dele datapunkter, men ÃĨ tegne hyperplanen som skiller datapunkter med den stÃļrste marginen, eller med mest plass mellom skillelinjen og et gitt datapunkt. Ved ÃĨ returnere til “vei”-metaforen, hvis en byplanlegger tegner planer for en motorvei, Ãļnsker de ikke at motorveien skal vÃĶre for nÃĶr hus eller andre bygninger. Jo stÃļrre marginen mellom motorveien og bygningene pÃĨ hver side, jo bedre. Jo stÃļrre denne marginen er, jo mer “sikker” kan klassifikatoren vÃĶre pÃĨ sine prediksjoner. I tilfelle binÃĶr klassifikasjon betyr ÃĨ tegne riktig hyperplan ÃĨ velge en hyperplan som er midt imellom de to ulike klassene. Hvis avgjÃļrelsesgrensen/hyperplanen er lenger unna en klasse, vil den vÃĶre nÃĶrmere en annen. Derfor mÃĨ hyperplanen balansere marginen mellom de to ulike klassene.

Regning av skillehyperplanen

Hvordan bestemmer en Support Vector Machine den beste skillehyperplanen/avgjÃļrelsesgrensen? Dette oppnÃĨs ved ÃĨ beregne mulige hyperplaner ved hjelp av en matematisk formel. Vi kommer ikke til ÃĨ dekke formelen for ÃĨ beregne hyperplaner i ekstrem detalj, men linjen beregnes med den berÃļmte slope/linjeformelen:

Y = ax + b

Imidlertid bestÃĨr linjer av punkter, noe betyr at enhver hyperplan kan beskrives som: mengden av punkter som lÃļper parallelt med den foreslÃĨtte hyperplanen, som bestemmes av vekter fra modellen ganger mengden av egenskaper modifisert av en spesifisert offset/bias (“d”).

SVMs tegner mange hyperplaner. For eksempel er grenselinjen en hyperplan, men datapunktene klassifikatoren tar hensyn til, er ogsÃĨ pÃĨ hyperplaner. Verdier for x bestemmes basert pÃĨ egenskapene i datasettet. For eksempel, hvis du hadde et datasett med hÃļyder og vekter for mange mennesker, ville “hÃļyde” og “vekt” egenskapene vÃĶre egenskapene som brukes til ÃĨ beregne “X”. Marginene mellom den foreslÃĨtte hyperplanen og de ulike “stÃļttevektorene” (datapunkter) som finnes pÃĨ hver side av skillehyperplanen, beregnes med fÃļlgende formel:

W * X – b

mens du kan lese mer om matematikken bak SVMs, hvis du sÃļker en mer intuitiv forstÃĨelse av dem, bare vite at mÃĨlet er ÃĨ maksimere avstanden mellom den foreslÃĨtte skillehyperplanen/grenselinjen og de andre hyperplanene som lÃļper parallelt med den (og som datapunktene finnes pÃĨ).

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

Flervalgsklassifikasjon

Prosessen beskrevet sÃĨ langt gjelder for binÃĶre klassifikasjonsoppgaver. Imidlertid kan SVM-klassifikatorer ogsÃĨ brukes til ikke-binÃĶre klassifikasjonsoppgaver. NÃĨr man gjÃļr SVM-klassifikasjon pÃĨ et datasett med tre eller flere klasser, brukes flere grenselinjer. For eksempel, hvis en klassifikasjonsoppgave har tre klasser i stedet for to, vil to grenselinjer brukes til ÃĨ dele datapunkter inn i klasser, og omrÃĨdet som utgjÃļr en enkelt klasse, vil falle mellom to grenselinjer i stedet for en. I stedet for ÃĨ bare beregne avstanden mellom to klasser og en avgjÃļrelsesgrense, mÃĨ klassifikatoren nÃĨ vurdere marginene mellom avgjÃļrelsesgrensene og de multiple klassene i datasettet.

Ikke-lineÃĶre skille

Prosessen beskrevet ovenfor gjelder for tilfeller der data er lineÃĶrt skillebart. Merk at, i virkeligheten, er datasett nesten aldri fullstendig lineÃĶrt skillebare, noe betyr at nÃĨr du bruker en SVM-klassifikator, vil du ofte mÃĨtte bruke to ulike teknikker: myk margin og kernel-triks. VurdÃĐr en situasjon der datapunkter fra ulike klasser er blandet sammen, med noen eksempler som tilhÃļrer en klasse i “klyngen” av en annen klasse. Hvordan kan klassifikatoren hÃĨndtere disse eksemplene?

En taktikk som kan brukes til ÃĨ hÃĨndtere ikke-lineÃĶrt skillebare datasett, er ÃĨ bruke en “myk margin” SVM-klassifikator. En myk margin-klassifikator opererer ved ÃĨ akseptere noen feil klassifiserte datapunkter. Den vil prÃļve ÃĨ tegne en linje som best skiller datapunktene fra hverandre, som inneholder de fleste eksemplene som tilhÃļrer deres respektive klasser. Myk margin SVM-klassifikatoren prÃļver ÃĨ lage en skillelinje som balanserer de to kravene til klassifikatoren: nÃļyaktighet og margin. Den vil prÃļve ÃĨ minimere feilklassifiseringer samtidig som den maksimerer marginen.

SVMs toleranse for feil kan justeres gjennom manipulering av en hyperparameter kalt “C”. C-verdien kontrollerer hvor mange stÃļttevektorer klassifikatoren tar hensyn til nÃĨr den tegner avgjÃļrelsesgrenser. C-verdien er en straff som pÃĨlegges feilklassifiseringer, noe betyr at jo stÃļrre C-verdien er, jo fÃĶrre stÃļttevektorer klassifikatoren tar hensyn til, og jo smalere marginen er.

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

Kernel-trikset opererer ved ÃĨ bruke ikke-lineÃĶre matematiske funksjoner til ÃĨ transformere egenskapene i datasettet. Kernel-trikset tar de eksisterende egenskapene i datasettet og lager nye egenskaper gjennom anvendelse av ikke-lineÃĶre matematiske funksjoner. Det som resulterer fra anvendelsen av disse ikke-lineÃĶre transformasjonene, er en ikke-lineÃĶr avgjÃļrelsesgrense. Fordi SVM-klassifikatoren ikke lenger er begrenset til ÃĨ tegne lineÃĶre avgjÃļrelsesgrenser, kan den begynne ÃĨ tegne kurvede avgjÃļrelsesgrenser som bedre omfatter den sanne distribusjonen av stÃļttevektorene og bringer feilklassifiseringer til et minimum. To av de mest populÃĶre SVM ikke-lineÃĶre kjerner er Radial Basis Function og Polynomial. Den polynomiske funksjonen lager polynomiske kombinasjoner av alle eksisterende egenskaper, mens Radial Basis Function genererer nye egenskaper ved ÃĨ mÃĨle avstanden mellom et sentralt punkt/punkter til alle andre punkter.

Blogger og programmerer med spesialomrÃĨder i Machine Learning og Deep Learning emner. Daniel hÃĨper ÃĨ hjelpe andre med ÃĨ bruke kraften av AI for sosialt godt.