Support vektor maskine

Support vector machine ( SVM, support vector machine ) er et  sæt af lignende overvågede læringsalgoritmer , der bruges til klassificerings- og regressionsanalyseproblemer . Det tilhører familien af ​​lineære klassifikatorer og kan også betragtes som et særligt tilfælde af Tikhonov-regularisering . En særlig egenskab ved støttevektormaskinen er, at den empiriske klassifikationsfejl kontinuerligt aftager, og gapet øges, hvorfor metoden også er kendt som den maksimale gap-klassificeringsmetode .

Hovedideen med metoden er at oversætte de originale vektorer til et højere dimensionelt rum og søge efter et adskillende hyperplan med det største hul i dette rum. To parallelle hyperplaner er bygget på begge sider af hyperplanet, der adskiller klasserne. Det adskillende hyperplan vil være det hyperplan, der skaber den største afstand til to parallelle hyperplaner. Algoritmen er baseret på den antagelse, at jo større forskel eller afstand mellem disse parallelle hyperplaner er, jo mindre vil den gennemsnitlige klassifikationsfejl være.

Udtalelse af problemet

Ofte i maskinlæringsalgoritmer bliver det nødvendigt at klassificere data. Hvert dataobjekt er repræsenteret som en vektor (punkt) i det dimensionelle rum (et ordnet sæt tal). Hvert af disse punkter tilhører kun én af de to klasser. Spørgsmålet er, om punkterne kan adskilles af et hyperplan af dimension ( -1). Dette er et typisk tilfælde af lineær adskillelighed . Der kan være mange ønskede hyperplaner, så det menes, at maksimering af afstanden mellem klasserne bidrager til en mere sikker klassifikation. Det vil sige, er det muligt at finde et sådant hyperplan , så afstanden fra det til det nærmeste punkt er maksimalt. Dette svarer [1] til, at summen af ​​afstande til hyperplanet fra to punkter tættest på det, der ligger på modsatte sider af det, er maksimalt. Hvis et sådant hyperplan findes, kaldes det et optimalt adskillende hyperplan , og dets tilsvarende lineære klassifikator kaldes en optimal adskillende klassifikator .

Formel beskrivelse af problemet

Vi mener, at punkterne ser sådan ud:

hvor tager værdien 1 eller −1, afhængig af hvilken klasse punktet tilhører . Hver  er en dimensionel reel vektor, normalt normaliseret med eller . Hvis punkterne ikke normaliseres, så vil et punkt med store afvigelser fra de gennemsnitlige punktkoordinater påvirke klassificereren for meget. Vi kan tænke på dette som en træningsprøve, hvor hvert element allerede er givet en klasse, som det tilhører. Vi ønsker, at støttevektormaskinalgoritmen klassificerer dem på samme måde. For at gøre dette bygger vi et adskillende hyperplan, som ser ud som:

Vektoren  er vinkelret på det adskillende hyperplan. Parameteren er i absolut værdi lig med afstanden fra hyperplanet til origo. Hvis parameteren b er nul, passerer hyperplanet gennem origo, hvilket begrænser løsningen.

Da vi er interesserede i den optimale adskillelse, er vi interesserede i de støttevektorer og hyperplaner, der er parallelle med den optimale og tættest på støttevektorerne for de to klasser. Det kan vises, at disse parallelle hyperplaner kan beskrives med følgende ligninger (op til normalisering).

Hvis træningsprøven er lineært adskillelig , kan vi vælge hyperplanerne, så intet punkt i træningsprøven ligger mellem dem og derefter maksimere afstanden mellem hyperplanerne. Strimlens bredde mellem dem er let at finde ud fra geometriske betragtninger, den er lig med [2] , så vores opgave er at minimere . For at udelukke alle punkter fra striben skal vi sørge for alt det

Dette kan også skrives som:

Tilfældet med lineær adskillelighed

Problemet med at konstruere et optimalt adskillende hyperplan er reduceret til at minimere under betingelse (1). Dette er et kvadratisk optimeringsproblem, der ser sådan ud:

Ved Kuhn-Tucker-sætningen svarer dette problem til det dobbelte problem med at finde sadelpunktet for Lagrange-funktionen

hvor er vektoren af ​​dobbelte variable.

Vi reducerer dette problem til et tilsvarende kvadratisk programmeringsproblem, der kun indeholder to variable:

Antag, at vi har løst dette problem, så kan det findes ved formlerne:

Som et resultat kan klassifikationsalgoritmen skrives som:

I dette tilfælde sker summeringen ikke over hele prøven, men kun over støttevektorerne, for hvilke .

Tilfældet med lineær uadskillelighed

For at algoritmen kan fungere, hvis klasserne er lineært uadskillelige, lad os lade den lave fejl på træningssættet. Lad os introducere et sæt yderligere variabler , der karakteriserer størrelsen af ​​fejlen på objekter . Lad os tage (2) som udgangspunkt, blødgøre ulighedsbegrænsningerne og også indføre en straf for den totale fejl i den minimerede funktionelle:

Koefficient  er en metodeindstillingsparameter, der giver dig mulighed for at justere forholdet mellem maksimering af bredden af ​​skillestrimlen og minimering af den samlede fejl.

På samme måde reducerer vi ifølge Kuhn-Tucker- sætningen problemet til at finde sadelpunktet for Lagrange-funktionen :

I analogi reducerer vi dette problem til et tilsvarende:

I praksis, for at bygge en støttevektormaskine, er det dette problem, der er løst, og ikke (3), da det generelt ikke er muligt at garantere den lineære adskillelse af punkter i to klasser. Denne variant af algoritmen kaldes soft-margin SVM-algoritmen, mens man i det lineært adskillelige tilfælde taler om en hard margin (hard-margin SVM).

For klassifikationsalgoritmen bibeholdes formel (4), med den eneste forskel, at nu ikke kun referenceobjekter, men også krænkende objekter har værdier, der ikke er nul. I en vis forstand er dette en ulempe, da støjspidser ofte er lovovertræderne, og beslutningsreglen, der er bygget på dem, i virkeligheden er afhængig af støj.

Konstanten C vælges normalt i henhold til kriteriet for en glidende kontrol. Dette er en besværlig metode, da problemet skal løses på ny for hver værdi af C.

Hvis der er grund til at tro, at prøven er næsten lineært adskillelig, og kun outlier-objekter er klassificeret forkert, kan outlier-filtrering anvendes. Først løses problemet for nogle C, og en lille brøkdel af objekter med den største fejlværdi fjernes fra prøven . Derefter løses problemet på ny på en trunkeret prøve. Det kan være nødvendigt at udføre flere sådanne iterationer, indtil de resterende objekter er lineært adskillelige.

Kerner

Algoritmen til at konstruere det optimale adskillende hyperplan, foreslået i 1963 af Vladimir Vapnik og Aleksey Chervonenkis  , er en lineær klassifikationsalgoritme. Men i 1992 foreslog Bernhard Boser, Isabelle Guyon og Vapnik en metode til at skabe en ikke-lineær klassificering baseret på overgangen fra skalære produkter til vilkårlige kerner, det såkaldte kernetrick (foreslået for første gang af M. A. Aizerman , E. M. Braverman og L. I. Rozonoer for metoden til potentielle funktioner), som gør det muligt at bygge ikke-lineære separatorer. Den resulterende algoritme ligner meget den lineære klassifikationsalgoritme, med den eneste forskel, at hvert skalarprodukt i ovenstående formler erstattes af en ikke-lineær kernefunktion (skalært produkt i et rum med en højere dimension). Et optimalt adskillende hyperplan kan allerede eksistere i dette rum. Da dimensionen af ​​det resulterende rum kan være større end dimensionen af ​​det oprindelige, vil transformationen, der matcher skalarprodukterne, være ikke-lineær, hvilket betyder, at funktionen svarende til det optimale adskillende hyperplan i det oprindelige rum også vil være ikke-lineær.

Hvis det oprindelige rum har en tilstrækkelig høj dimension, kan prøven være lineært adskillelig.

De mest almindelige kerner:

Se også

Noter

  1. Vyugin, 2013 , s. 86-90.
  2. K. V. Vorontsov. Foredrag om Support Vector Machines Arkiveret 27. september 2007 på Wayback Machine

Litteratur

Links