what is support vector machine machine learning
In deze tutorial wordt Support Vector Machine in ML en aanverwante concepten zoals Hyperplane, ondersteuningsvectoren en toepassingen van SVM uitgelegd:
In de Vorige tutorial leerden we over genetische algoritmen en hun rol in machine learning.
In onze eerdere tutorials hebben we enkele algoritmen onder supervisie en zonder supervisie in machine learning bestudeerd. Backpropagation is een leeralgoritme onder toezicht, terwijl Kohenen een leeralgoritme zonder toezicht is.
In deze zelfstudie over ondersteuningsvectormachines leren we over ondersteuningsvectormachines. SVM's zijn robuuste wiskundige supervised machine learning-algoritmen die op grote schaal worden gebruikt bij de classificatie van trainingsdatasets.
Lees de complete serie Machine Learning-trainingen door
Wat je leert:
- Wat is een Support Vector Machine (SVM)
- Wat is een hypervlak
- Wat zijn classificatie- en regressie-algoritmen
- Wat zijn ondersteuningsvectoren
- Hoe werkt een ondersteuningsvectormachine?
- Hoe de positie van de hyperplane te optimaliseren
- Toepassingen van SVM
- Gevolgtrekking
- Aanbevolen literatuur
Wat is een Support Vector Machine (SVM)
SVM-algoritme is een algoritme voor leren onder supervisie dat is gecategoriseerd onder Classificatietechnieken. Het is een binaire classificatietechniek die de trainingsdataset gebruikt om een optimaal hypervlak in een n-dimensionale ruimte te voorspellen.
Dit hypervlak wordt gebruikt om nieuwe sets gegevens te classificeren. Omdat het een binaire classificator is, verdeelt de trainingsdataset van het hypervlak de trainingsdataset in twee klassen.
De SVM-algoritmen worden gebruikt om gegevens zowel in een tweedimensionaal vlak als in een multidimensionaal hypervlak te classificeren. Het multidimensionale hypervlak gebruikt de 'Kernels' om de multidimensionale gegevens te categoriseren.
Het is altijd gewenst om een maximaal onderscheid te maken tussen de geclassificeerde datapunten. Dit betekent dat ze een maximale afstand moeten hebben, of dat het hypervlak een maximale marge tussen de datapunten moet hebben.
Wat is een hypervlak
Een hypervlak is een grens die het vlak verdeelt. Het is een beslissingsgrens die de datapunten in 2 verschillende klassen classificeert. Aangezien SVM wordt gebruikt om gegevens in multidimensionaal te classificeren, kan een hypervlak een rechte lijn zijn als er 2 ingangen zijn of een 2D-vlak als er meer dan 2 ingangen zijn.
De SVM-algoritmen kunnen ook worden gebruikt voor regressieanalyse, maar worden voornamelijk gebruikt voor classificatie. Laten we wat meer details over elk van deze methoden bekijken.
Wat zijn classificatie- en regressie-algoritmen
Een classificatie-algoritme is degene die de trainingsgegevens analyseert om het resultaat te voorspellen. Het resultaat is een doelgroep, bijvoorbeeld , Dag of Nacht, Ja of Nee, Lang of Kort. Een voorbeeld van een classificatie-algoritme is of een klant in een supermarkt die brood koopt, ook boter koopt. De doelklasse zou 'Ja' of 'Nee' zijn.
Een regressie-algoritme achterhaalt de relatie tussen de onafhankelijke variabelen en voorspelt een uitkomst. Lineaire regressie stelt een lineaire relatie vast tussen de input en output. Bijvoorbeeld: 'A' als invoer en 'b' als uitvoer, zou een lineaire functie b = k * a + c zijn.
Wat zijn ondersteuningsvectoren
Ondersteuningsvectoren zijn de datapunten die ons helpen het hypervlak te optimaliseren. Deze vectoren liggen het dichtst bij het hypervlak en zijn het moeilijkst te classificeren. De positie van het beslissende hypervlak hangt af van de ondersteuningsvectoren. Als deze ondersteuningsvectoren worden verwijderd, verandert dit ook de positie van het hypervlak.
Een Support Vector Machine (SVM) gebruikt de invoergegevenspunten of functies die ondersteuningsvectoren worden genoemd om de beslissingsgrenzen, d.w.z. de ruimte rond het hypervlak, te maximaliseren. De inputs en outputs van een SVM zijn vergelijkbaar met het neurale netwerk. Er is slechts één verschil tussen de SVM en NN, zoals hieronder vermeld.
Ingangen: Het SVM-netwerk kan n aantal ingangen bevatten, zeg x1, xtwee, …… .., xik,…., Xn.
Uitgangen: De beoogde output t.
Gewichten: Net als neurale netwerkgewichten w1, intwee, ……, innzijn geassocieerd met elke input waarvan de lineaire combinatie de output y voorspelt.
Verschil tussen SVM en neurale netwerken
De synaptische gewichten in neurale netwerken worden geëlimineerd om de uitvoer y van het netwerk te berekenen, terwijl in SVM de gewichten die niet gelijk zijn aan nul worden verminderd of geëlimineerd om de optimale beslissingsgrens te berekenen.
Met het elimineren van de gewichten, zal het de invoergegevensset terugbrengen tot een paar belangrijke invoerfuncties die zullen helpen bij het bepalen van het scheidbare hypervlak.
Hoe werkt een ondersteuningsvectormachine?
Zoals we weten, is het doel van de ondersteuningsvectormachines om de marge tussen de geclassificeerde datapunten te maximaliseren. Dit zal meer optimale resultaten opleveren om nieuwe sets ongetrainde gegevens te classificeren. Het kan dus worden bereikt door een hypervlak te hebben op een positie waar de marge maximaal is.
Laten we eens kijken naar een voorbeeld van lineair gescheiden gegevenspunten:
Stap 1: Ontdek het juiste hypervlak uit verschillende mogelijkheden: Om het beste hypervlak te bepalen, zoekt u alle mogelijke vlakken uit die de gegevens verdelen, en selecteert u daaruit degene die de invoergegevenssets het beste classificeert. In de onderstaande grafiek zijn er drie hyperplane-mogelijkheden. De hyperplane 3 verdeelt de datapunten beter.
Stap 2: Selecteer een hypervlak met een maximale marge tussen de dichtstbijzijnde datapunten: Marge wordt gedefinieerd als de afstand tussen het hypervlak en de dichtstbijzijnde datapunten. Het is dus optimaal om een maximale marge te hebben. Als 2 of meer dan 2 hypervlakken de gegevens gelijk classificeren, zoek dan de marge uit.
Het hypervlak met de maximale marge wordt gekozen. In de onderstaande figuur verdeelt het hypervlak 2.1,2.2 en 2.3 de datapunten, maar het hyperplane 2.2 heeft een maximale marge.
Stap 3: Wanneer uitschieters aanwezig zijn: uitschieters zijn gegevenspunten die verschillen van een set gegevenspunten. In het geval van 2 sets datapunten kan er een uitbijter aanwezig zijn. De SVM negeert dergelijke uitschieters in de gegevens en vindt vervolgens een hypervlak met maximale marge.
Stap 4: In het geval van niet-lineair gescheiden datapunten, gebruikt de SVM een kerneltruc. Het zal een niet-lineair scheidbaar vlak omzetten in een scheidbaar paneel door een nieuwe dimensie te introduceren. Kerneltrucs zijn complexe wiskundige vergelijkingen die complexe datatransformaties uitvoeren om het hypervlak te optimaliseren.
De onderstaande figuur toont niet-lineair scheidbare datapunten die vervolgens worden omgezet in hoge dimensionaliteit met z-vlak. Het hypervlak dat de twee gegevenssets verdeelt, is een cirkel.
Hoe de positie van de hyperplane te optimaliseren
De positie van het hypervlak wordt geoptimaliseerd met behulp van de optimalisatie-algoritmen.
SVM-parameter: Kernel
Het bouwen van een geoptimaliseerd hypervlak in een niet-lineair scheidbaar probleem wordt gedaan met behulp van kernels. De kernels zijn wiskundige functies die het complexe probleem omzetten in de lineaire algebraïsche vorm.
Voor een lineaire kernel wordt de vergelijking gevonden als:
F (x) = b + som (aik* (x, xik
waar,
x is de nieuwe invoergegevens
Xikis de ondersteuningsvector
b, eenikzijn de coëfficiënten. Deze coëfficiënten worden geschat tijdens de leerfase van het algoritme.
Voor een complex niet-lineair scheidbaar probleem werkt de kerneltruc als het omzetten van het niet-lineaire scheidbare probleem in een scheidbaar probleem. Het transformeert de complexe gegevens en ontdekt de manier om de datapunten in outputs te verdelen.
De kernelfuncties zijn van vele typen, zoals lineair, polynoom, sigmoïd, radiaal bias, niet-lineair en nog veel meer.
Laten we eens kijken naar het gebruik van enkele van de bovenstaande kernelfuncties:
De kernelfuncties berekenen het inproduct van de 2 ingangen x, y van de spatie.
# 1) Radiale biasfunctie: De meest gebruikte kernelfunctie zegt dat voor alle waarden die tussen x = (-1,1) liggen, de waarde van de functie 1 is, anders 0. Voor sommige onderscheppingen zeg je xik, de waarde van de kernelfunctie is 1 voor | (xik- h), (xik+ h) | voor xikals centrum genomen en anders 0.
# 2) Sigmoid-functie: Als neurale netwerken die Sigmoid gebruiken, is de kernelfunctie voor SVM's
# 3) Hyperbolische tangensfunctie: Zoals neurale netwerken gebruiken, is de functie
# 4) Gaussische kernelfunctie: De Gauss-kernelfunctie stelt
# 5) Polynoomfunctie: k (xik, xj) = (xik* xj+1)twee
Toepassingen van SVM
De real-life toepassingen van SVM zijn onder meer:
# 1) Indeling van artikelen in verschillende categorieën: De SVM maakt onderscheid tussen de geschreven teksten en plaatst deze in verschillende categorieën, zoals Entertainment, Gezondheid, Fictieartikelen. Het is gebaseerd op de vooraf ingestelde drempelwaarden die zijn berekend tijdens het trainen van de SVM.
Als de drempelwaarde wordt overschreden, wordt deze op de categorie geplaatst. Als niet aan de waarde wordt voldaan, worden nieuwe categorieën gedefinieerd voor classificatie.
wat is het verschil tussen kwaliteitsborging en kwaliteitscontrole
# 2) Herkenning van het gezicht: De gegeven afbeelding wordt geclassificeerd als een gezichtsopname of niet-gezichtsopname door de kenmerken met pixels te detecteren. De afbeelding wordt herkend als een gezicht of als een niet-gezicht.
# 3) Gezondheidsinformatie: SVM's worden gebruikt om patiënten te classificeren op basis van hun genen, herkenning van biologische patronen, enz.
# 4) Detectie van eiwithomologie: In computationele medische wetenschappen worden de SVM's getraind in hoe eiwitsequenties worden gemodelleerd. SVM wordt vervolgens gebruikt om eiwithomologie te detecteren.
Gevolgtrekking
In deze tutorial over ondersteuningsvectormachines hebben we geleerd over ondersteuningsvectormachines. SVM-algoritmen zijn leeralgoritmen onder supervisie die worden gebruikt om binaire gegevens en lineair scheidbare gegevens te classificeren. Het classificeert de datapunten door een hypervlak met een maximale marge.
Niet-lineaire datapunten kunnen ook worden geclassificeerd door ondersteuningsvectormachines met behulp van kerneltrucs. Er zijn veel toepassingen van SVM in het echte leven, een van de meest voorkomende toepassingen is gezichtsherkenning en handschriftherkenning.
Veel leesplezier !!
Bezoek hier voor de exclusieve Machine Learning-serie
Aanbevolen literatuur
- Zelfstudie voor machine learning: inleiding tot ML en de toepassingen ervan
- Een complete gids voor kunstmatig neuraal netwerk bij machinaal leren
- Datamining versus machine learning versus kunstmatige intelligentie versus diep leren
- Typen machinaal leren: begeleid versus onbewaakt leren
- Inleiding tot genetische algoritmen bij machinaal leren
- 11 populairste softwaretools voor machine learning in 2021
- Top 13 BESTE Machine Learning-bedrijven (bijgewerkte lijst voor 2021)
- Wat is Java-vector | Java Vector Class-zelfstudie met voorbeelden