what is support vector machine machine learning
Denne vejledning forklarer supportvektormaskine i ML og tilknyttede begreber som Hyperplane, supportvektorer og applikationer af SVM:
I Forrige vejledning , lærte vi om genetiske algoritmer og deres rolle i maskinindlæring.
Vi har studeret nogle overvågede og ikke-overvågede algoritmer i maskinindlæring i vores tidligere tutorials. Backpropagation er en overvåget læringsalgoritme, mens Kohenen er en ikke-overvåget læringsalgoritme.
I denne supportvektormaskine tutorial lærer vi om supportvektormaskiner. SVM'er er robuste matematiske overvågede maskinlæringsalgoritmer, der i vid udstrækning anvendes i klassificeringen af træningsdatasæt.
=> Læs gennem den komplette maskinlæringstræningsserie
Hvad du lærer:
- Hvad er en supportvektormaskine (SVM)
- Hvad er et hyperplan
- Hvad er klassificerings- og regressionsalgoritmer
- Hvad er støttevektorer
- Hvordan fungerer en understøttet vektor maskine
- Sådan optimeres placeringen af hyperplanet
- Anvendelser af SVM
- Konklusion
- Anbefalet læsning
Hvad er en supportvektormaskine (SVM)
SVM-algoritme er en overvåget læringsalgoritme kategoriseret under klassificeringsteknikker. Det er en binær klassificeringsteknik, der bruger træningsdatasættet til at forudsige et optimalt hyperplan i et n-dimensionelt rum.
Dette hyperplan bruges til at klassificere nye datasæt. At være en binær klassifikator opdeler træningsdatasættet hyperplanet træningsdatasættet i to klasser.
SVM-algoritmerne bruges til at klassificere data i et 2-dimensionelt plan såvel som et multidimensionalt hyperplan. Det multidimensionelle hyperplan bruger “Kernerne” til at kategorisere de flerdimensionelle data.
Det ønskes altid at have en maksimal sondring mellem de klassificerede datapunkter. Dette betyder, at de skal have maksimal afstand, eller hyperplanet skal have en maksimal margen mellem datapunkterne.
Hvad er et hyperplan
Et hyperplan er en grænse, der deler planet. Det er en beslutningsgrænse, der klassificerer datapunkterne i 2 forskellige klasser. Da SVM bruges til at klassificere data i flerdimensionalt, kan et hyperplan være en lige linje, hvis der er 2 indgange eller et 2 D-plan, hvis der er mere end 2 indgange.
SVM-algoritmerne kan også bruges til regressionsanalyse, men det bruges hovedsageligt til klassificering. Lad os se nogle flere detaljer om hver af disse metoder.
Hvad er klassificerings- og regressionsalgoritmer
En klassificeringsalgoritme er den, der analyserer træningsdataene for at forudsige resultatet. Resultatet er en målklasse, for eksempel , Dag eller nat, Ja eller Nej, Lang eller Kort. Et eksempel på en klassificeringsalgoritme ville være, om en kunde i en supermarked, der køber brød, også ville købe smør. Målklassen ville være 'Ja' eller 'Nej'.
En regressionsalgoritme finder ud af forholdet mellem de uafhængige variabler og forudsiger et resultat. Lineær regression finder ud af et lineært forhold mellem input og output. For eksempel: 'A' som input og 'b' som output, ville en lineær funktion være b = k * a + c.
Hvad er støttevektorer
Supportvektorer er datapunkterne, der hjælper os med at optimere hyperplanet. Disse vektorer ligger tættest på hyperplanet og er sværest at klassificere. Placeringen af beslutningshyperplanet afhænger af supportvektorerne. Hvis disse støttevektorer fjernes, vil det også ændre placeringen af hyperplanet.
En Support Vector Machine (SVM) bruger inputdatapunkterne eller funktionerne kaldet supportvektorer for at maksimere beslutningsgrænserne, dvs. rummet omkring hyperplanet. Input og output fra en SVM svarer til det neurale netværk. Der er kun en forskel mellem SVM og NN som anført nedenfor.
Indgange: SVM-netværket kan indeholde n antal indgange siger xen, xto, …… .., xjeg,…., Xn.
Udgange: Målet output t.
Vægte: Ligesom neurale netværksvægte wen, ito, ……, iner forbundet med hver indgang, hvis lineære kombination forudsiger output y.
Forskellen mellem SVM og neurale netværk
De synaptiske vægte i neurale netværk elimineres for at beregne output y af netværket, mens ikke SV-vægte i SVM reduceres eller elimineres for at beregne den optimale beslutningsgrænse.
Med eliminering af vægte reducerer det inputdatasættet til nogle få vigtige inputfunktioner, der hjælper med at beslutte det separable hyperplan.
Hvordan fungerer en understøttet vektor maskine
Som vi ved, er formålet med supportvektormaskinerne at maksimere margenen mellem de klassificerede datapunkter. Dette giver mere optimale resultater til klassificering af nye sæt utrænede data. Således kan det opnås ved at have et hyperplan i en position, hvor margenen er maksimal.
Lad os se et eksempel på lineært adskilte datapunkter:
Trin 1: Find ud af det rigtige hyperplan fra forskellige muligheder: For at bestemme det bedste hyperplan skal du finde ud af alle de mulige plan, der deler dataene, og derefter vælge det, der bedst klassificerer inputdatasættene. I nedenstående graf er der tre hyperplan-muligheder. Hyperplan 3 deler datapunkterne bedre.
Trin 2: Vælg et hyperplan med maksimal margen mellem de nærmeste datapunkter: Margen defineres som afstanden mellem hyperplanet og de nærmeste datapunkter. Så det er optimalt at have en maksimal margen. Når 2 eller flere end 2 hyperplaner klassificerer dataene ens, skal du finde ud af margenen.
Hyperplanet med den maksimale margen vælges. I nedenstående figur opdeler hyperplan 2.1,2.2 og 2.3 datapunkterne, men hyperplan 2.2 har en maksimal margen.
Trin 3: Når outliers er til stede: Outliers er datapunkter, der adskiller sig fra et sæt datapunkter. I tilfælde af 2 sæt datapunkter kan en outlier være til stede. SVM ignorerer sådanne afvigelser i dataene og finder derefter et hyperplan med maksimal margen.
Trin 4: I tilfælde af ikke-lineært adskilte datapunkter bruger SVM et kernetrick. Det konverterer et ikke-lineært adskilleligt plan til en adskillelig rude ved at indføre en ny dimension. Kernetricks er komplekse matematiske ligninger, der udfører komplekse datatransformationer for at optimere hyperplanet.
Figuren nedenfor viser ikke-lineært adskillelige datapunkter, der derefter omdannes til høj dimensionalitet med z-planet. Hyperplanet, der deler de to datasæt, er en cirkel.
Sådan optimeres placeringen af hyperplanet
Placeringen af hyperplanet optimeres ved hjælp af optimeringsalgoritmerne.
SVM-parameter: Kerne
Opbygning af et optimeret hyperplan i et ikke-lineært adskilleligt problem sker ved hjælp af kerner. Kerne er matematiske funktioner, der konverterer det komplekse problem ved hjælp af den lineære algebraiske form.
For en lineær kerne findes ligningen som:
F (x) = b + sum (ajeg* (x, xjeg))
hvor,
x er de nye inputdata
xjeger understøttelsesvektoren
b, ajeger koefficienterne. Disse koefficienter estimeres i algoritmens indlæringsfase.
For et komplekst ikke-lineært adskilleligt problem fungerer kernetricket som at konvertere det ikke-lineære separable problem til et adskilleligt problem. Det transformerer de komplekse data og finder ud af, hvordan man deler datapunkterne i output.
Kernefunktionerne er af mange typer såsom lineær, polynom, sigmoid, radial bias, ikke-lineær og mange flere.
Lad os se anvendelserne af nogle af de ovennævnte kernefunktioner:
Kernefunktionerne beregner det indre produkt af de 2 indgange x, y af rummet.
# 1) Radial bias-funktion: Den mest anvendte kernefunktion siger, at for alle værdier, der ligger mellem x = (-1,1), er værdien af funktionen ellers 0. For nogle aflytninger siger xjeg, er værdien af kernefunktionen 1 for | (xjeg- h), (xjeg+ h) | til xjegtaget som centrum og 0 ellers.
# 2) Sigmoid-funktion: Som neurale netværk, der bruger Sigmoid, er kernefunktionen for SVM'er
# 3) Hyperbolsk tangensfunktion: Som neurale netværk bruger, er funktionen
# 4) Gaussisk kernefunktion: Den Gaussiske kernefunktion siger
# 5) Polynomisk funktion: k (xjeg, xj) = (xjeg* xj+1)to
Anvendelser af SVM
SVM's virkelige applikationer inkluderer:
# 1) Klassificering af artikler i forskellige kategorier: SVM skelner mellem de skrevne tekster og placerer den i forskellige kategorier såsom underholdning, sundhed, fiktionsartikler. Det er baseret på de forudindstillede tærskelværdier beregnet under træning af SVM.
Hvis tærskelværdien krydses, placeres den i kategorien. Hvis værdien ikke er opfyldt, defineres nye kategorier til klassificering.
typer bugs i softwaretest
# 2) Anerkendelse af ansigtet: Det givne billede er klassificeret som et ansigtsbillede eller ikke-ansigtsbillede ved at detektere funktionerne ved hjælp af pixels. Billedet genkendes som et ansigt eller et ikke-ansigt.
# 3) Sundhedsoplysninger: SVM'er bruges til at klassificere patienter baseret på deres gener, genkendelse af biologiske mønstre osv.
# 4) Detektion af proteinhomologi: I beregningsmedicinsk videnskab trænes SVM'erne i, hvordan proteinsekvenser modelleres. SVM bruges derefter til at detektere proteinhomologi.
Konklusion
I denne supportvektormaskine tutorial lærte vi om supportvektormaskiner. SVM-algoritmer er overvågede læringsalgoritmer, der bruges til at klassificere binære data og lineært adskillelige data. Det klassificerer datapunkterne med et hyperplan med en maksimal margen.
Ikke-lineære datapunkter kan også klassificeres af supportvektormaskiner ved hjælp af Kernel-tricks. Der er mange anvendelser af SVM i det virkelige liv, en af de mest almindelige applikationer er ansigtsgenkendelse og håndskriftgenkendelse.
God læselyst!!
=> Besøg her for den eksklusive maskinlæringsserie
Anbefalet læsning
- Machine Learning Tutorial: Introduktion til ML og dens applikationer
- En komplet guide til kunstigt neuralt netværk inden for maskinlæring
- Data Mining Vs Machine Learning Vs Artificial Intelligence Vs Deep Learning
- Typer af maskinindlæring: Overvåget vs Uovervåget læring
- Introduktion til genetiske algoritmer i maskinindlæring
- 11 mest populære maskinlæringssoftwareværktøjer i 2021
- Top 13 BEDSTE maskinlæringsfirmaer (Opdateret 2021-liste)
- Hvad er Java Vector | Java Vector Class Tutorial med eksempler