what is support vector machine machine learning
Denna handledning förklarar Support Vector Machine i ML och associerade begrepp som Hyperplane, Support Vectors & Applications of SVM:
I Föregående handledning , vi lärde oss om genetiska algoritmer och deras roll i maskininlärning.
Vi har studerat några övervakade och utan tillsyn algoritmer i maskininlärning i våra tidigare självstudier. Backpropagation är en övervakad inlärningsalgoritm medan Kohenen är en övervakad inlärningsalgoritm.
I denna handledning för supportvektormaskiner lär vi oss om supportvektormaskiner. SVM: er är robusta matematiska övervakade maskininlärningsalgoritmer som i stor utsträckning används i klassificeringen av träningsdatamängden.
=> Läs igenom hela serien för maskininlärning
Vad du kommer att lära dig:
- Vad är en supportvektormaskin (SVM)
- Vad är ett hyperplan
- Vad är klassificerings- och regressionsalgoritmer
- Vad är stödvektorer
- Hur fungerar en supportvektormaskin
- Hur man optimerar placeringen av hyperplanet
- Tillämpningar av SVM
- Slutsats
- Rekommenderad läsning
Vad är en supportvektormaskin (SVM)
SVM-algoritm är en övervakad inlärningsalgoritm kategoriserad under klassificeringstekniker. Det är en binär klassificeringsteknik som använder träningsdatasetet för att förutsäga ett optimalt hyperplan i ett n-dimensionellt utrymme.
Detta hyperplan används för att klassificera nya datauppsättningar. Att vara en binär klassificerare delar träningsdataset hyperplanet träningsdataset i två klasser.
SVM-algoritmerna används för att klassificera data i ett tvådimensionellt plan såväl som ett flerdimensionellt hyperplan. Det flerdimensionella hyperplanet använder ”Kärnorna” för att kategorisera flerdimensionella data.
Det är alltid önskvärt att ha en maximal skillnad mellan de klassificerade datapunkterna. Detta innebär att de borde ha maximalt avstånd, eller hyperplanet bör ha en maximal marginal mellan datapunkterna.
Vad är ett hyperplan
Ett hyperplan är en gräns som delar planet. Det är en beslutsgräns som klassificerar datapunkterna i två olika klasser. Eftersom SVM används för att klassificera data i flerdimensionellt, kan ett hyperplan vara en rak linje om det finns 2 ingångar eller ett 2 D-plan om det finns fler än 2 ingångar.
SVM-algoritmerna kan också användas för regressionsanalys men används huvudsakligen för klassificering. Låt oss se några mer detaljer om var och en av dessa metoder.
Vad är klassificerings- och regressionsalgoritmer
En klassificeringsalgoritm är den som analyserar träningsdata för att förutsäga resultatet. Resultatet är en målklass, till exempel , Dag eller natt, Ja eller Nej, Lång eller Kort. Ett exempel på en klassificeringsalgoritm kan vara om en kund i en stormarknad som köper bröd också skulle köpa smör. Målklassen skulle vara ”Ja” eller ”Nej”.
En regressionsalgoritm får reda på förhållandet mellan de oberoende variablerna och förutsäger ett resultat. Linjär regression får reda på ett linjärt förhållande mellan ingång och utgång. Till exempel: “A” som ingång och “b” som utgång, skulle en linjär funktion vara b = k * a + c.
Vad är stödvektorer
Supportvektorer är datapunkterna som hjälper oss att optimera hyperplanet. Dessa vektorer ligger närmast hyperplanet och är svårast att klassificera. Positionen för beslutets hyperplan beror på supportvektorerna. Om dessa stödvektorer tas bort kommer det också att ändra hyperplanets position.
En SVM (Support Vector Machine) använder indatapunkter eller funktioner som kallas supportvektorer för att maximera beslutsgränserna, dvs. utrymmet runt hyperplanet. Ingångarna och utgångarna på en SVM liknar det neurala nätverket. Det finns bara en skillnad mellan SVM och NN som anges nedan.
Ingångar: SVM-nätverket kan innehålla n antal ingångar säger x1, xtvå, …… .., xi, ...., Xn.
Utgångar: Målutgången t.
Vikt: Liksom neurala nätverksvikter w1, itvå, ……, inär associerade med varje ingång vars linjära kombination förutsäger utgången y.
Skillnaden mellan SVM och neurala nätverk
De synaptiska vikterna i neurala nätverk elimineras för att beräkna nätets utgång y medan i SVM de icke-nollvikterna reduceras eller elimineras för att beräkna den optimala beslutsgränsen.
När vikterna elimineras minskar den inmatade datauppsättningen till några viktiga inmatningsfunktioner som hjälper till att avgöra det separerbara hyperplanet.
Hur fungerar en supportvektormaskin
Som vi vet är syftet med supportvektormaskinerna att maximera marginalen mellan de klassificerade datapunkterna. Detta ger mer optimala resultat för att klassificera nya uppsättningar otränad data. Således kan det uppnås genom att ha ett hyperplan i en position där marginalen är maximal.
Låt oss se ett exempel på linjärt separerade datapunkter:
Steg 1: Ta reda på rätt hyperplan från olika möjligheter: För att bestämma det bästa hyperplanet, ta reda på alla möjliga plan som delar upp data och välj därefter det som bäst klassificerar ingångsdata. I diagrammet nedan finns tre hyperplan-möjligheter. Hyperplan 3 delar datapunkterna bättre.
Steg 2: Välj ett hyperplan med maximal marginal mellan närmaste datapunkter: Marginal definieras som avståndet mellan hyperplanet och närmaste datapunkter. Så det är optimalt att ha en maximal marginal. När två eller fler än två hyperplan klassificerar data lika, ta reda på marginalen.
Hyperplanet med maximal marginal väljs. I figuren nedan delar hyperplanet 2.1,2.2 och 2.3 datapunkterna men hyperplanet 2.2 har en maximal marginal.
Steg 3: När avvikare finns: Avvikare är datapunkter som skiljer sig från en uppsättning datapunkter. När det gäller två uppsättningar datapunkter kan en outlier vara närvarande. SVM ignorerar sådana avvikelser i data och hittar sedan ett hyperplan med maximal marginal.
Steg 4: Vid icke-linjärt separerade datapunkter använder SVM ett kärntrick. Det omvandlar ett icke-linjärt avskiljbart plan till en separerbar ruta genom att införa en ny dimension. Kärntrick är komplexa matematiska ekvationer som gör komplexa datatransformationer för att optimera hyperplanet.
Figuren nedan visar icke-linjärt avskiljbara datapunkter som sedan omvandlas till högdimensionalitet med z-planet. Hyperplanet som delar de två datamängderna är en cirkel.
Hur man optimerar placeringen av hyperplanet
Placeringen av hyperplanet optimeras med hjälp av optimeringsalgoritmerna.
SVM parameter: Kernel
Att bygga ett optimerat hyperplan i ett icke linjärt avskiljbart problem görs med Kärnor. Kärnorna är matematiska funktioner som omvandlar det komplexa problemet med den linjära algebraiska formen.
För en linjär kärna finns ekvationen som:
F (x) = b + summa (ai* (x, xi))
var,
x är den nya ingångsdata
xiär stödvektorn
b, aiär koefficienterna. Dessa koefficienter uppskattas under algoritmens inlärningsfas.
För ett komplext olinjärt avskiljbart problem fungerar kärntricket som att konvertera det olinjära avskiljbara problemet till ett avskiljbart problem. Den omvandlar komplexa data och får reda på hur du delar upp datapunkterna i utdata.
Kärnfunktionerna är av många typer, såsom linjär, polynom, sigmoid, radiell bias, icke-linjär och många fler.
Låt oss se användningen av några av ovanstående kärnfunktioner:
Kärnfunktionerna beräknar den inre produkten av de två ingångarna x, y i utrymmet.
# 1) Radiell förspänningsfunktion: Den mest använda kärnfunktionen säger att för alla värden som ligger mellan x = (-1,1) är funktionens värde annars annars 0. För vissa avlyssningar säg xi, är värdet på kärnfunktionen 1 för | (xi- h), (xi+ h) | för xitas som centrum och 0 annars.
# 2) Sigmoid-funktion: Som neurala nätverk som använder Sigmoid är kärnfunktionen för SVM: er
# 3) Hyperbolisk tangentfunktion: Som neurala nätverk använder är funktionen
# 4) Gaussisk kärnfunktion: Den Gaussiska kärnfunktionen säger
# 5) Polynomfunktion: k (xi, xj) = (xi* xj+1)två
Tillämpningar av SVM
SVM: s verkliga applikationer inkluderar:
# 1) Klassificering av artiklar i olika kategorier: SVM skiljer mellan de skrivna texterna och placerar den i olika kategorier som underhållning, hälsa, fiktionartiklar. Det är baserat på de förinställda tröskelvärdena som beräknas under träning av SVM.
Om tröskelvärdet korsas läggs det på kategorin. Om värdet inte uppfylls definieras nya kategorier för klassificering.
anime tv helt gratis för dig
# 2) Erkännande av ansiktet: Den givna bilden klassificeras som en ansiktsbild eller icke-ansiktsbild genom att detektera funktionerna med hjälp av pixlar. Bilden känns igen som ett ansikte eller ett icke-ansikte.
# 3) Hälsoinformation: SVM används för att klassificera patienter baserat på deras gener, igenkänning av biologiska mönster etc.
# 4) Detektering av proteinhomologi: I beräkningsmedicinsk vetenskap tränas SVM: erna om hur proteinsekvenser modelleras. SVM används sedan för att detektera proteinhomologi.
Slutsats
I denna supportvektormaskinhandledning lärde vi oss om supportvektormaskiner. SVM-algoritmer är övervakade inlärningsalgoritmer som används för att klassificera binär data och linjärt separerbara data. Det klassificerar datapunkterna med ett hyperplan med maximal marginal.
Icke-linjära datapunkter kan också klassificeras av supportvektormaskiner med hjälp av Kernel Tricks. Det finns många applikationer av SVM i verkligheten, en av de vanligaste applikationerna är ansiktsigenkänning och handskriftsigenkänning.
Glad läsning!!
=> Besök här för den exklusiva maskininlärningsserien
Rekommenderad läsning
- Maskininlärningshandledning: Introduktion till ML och dess tillämpningar
- En komplett guide till artificiellt neuralt nätverk inom maskininlärning
- Data Mining Vs Machine Learning Vs Artificial Intelligence Vs Deep Learning
- Typer av maskininlärning: Övervakad vs Övervakad inlärning
- Introduktion till genetiska algoritmer i maskininlärning
- 11 mest populära maskininlärningsverktyg 2021
- Topp 13 BÄSTA maskininlärningsföretag (Uppdaterad 2021-lista)
- Vad är Java Vector | Java Vector Class Tutorial med exempel