stomp Wat zijn ondersteuningsvectormachines? - Verenig AI
Verbind je met ons

AI 101

Wat zijn ondersteuningsvectormachines?

mm
Bijgewerkt on

Wat zijn ondersteuningsvectormachines?

Ondersteuningsvectormachines zijn een soort machine learning-classificator, misschien wel een van de meest populaire soorten classificatoren. Ondersteuningsvectormachines zijn vooral handig voor numerieke voorspellings-, classificatie- en patroonherkenningstaken.

Ondersteuningsvectormachines werken door beslissingsgrenzen tussen gegevenspunten te trekken, waarbij wordt gestreefd naar de beslissingsgrens die de gegevenspunten het best in klassen scheidt (of het meest generaliseerbaar is). Het doel bij het gebruik van een ondersteunende vectormachine is dat de beslissingsgrens tussen de punten zo groot mogelijk is, zodat de afstand tussen een bepaald gegevenspunt en de grenslijn wordt gemaximaliseerd. Dat is een korte uitleg van hoe ondersteuning van vectormachines (SVM's) maar laten we even de tijd nemen om dieper in te gaan op de manier waarop SVM's werken en de logica achter hun werking te begrijpen.

Doel van ondersteuning van vectormachines

Stel je een grafiek voor met een aantal gegevenspunten erop, gebaseerd op kenmerken gespecificeerd door de X- en Y-as. De gegevenspunten in de grafiek kunnen losjes worden opgedeeld in twee verschillende clusters, en het cluster waartoe een gegevenspunt behoort, geeft de klasse van het gegevenspunt aan. Stel nu dat we een lijn door de grafiek willen trekken die de twee klassen van elkaar scheidt, met alle gegevenspunten in één klasse aan de ene kant van de lijn en alle gegevenspunten die tot een andere klasse behoren aan de andere kant van de lijn. Deze scheidingslijn staat bekend als een hypervlak.

U kunt een ondersteunende vectormachine zien als het creëren van "wegen" door een stad, waarbij de stad wordt gescheiden in districten aan weerszijden van de weg. Alle gebouwen (datapunten) die aan één kant van de weg staan ​​behoren tot één wijk.

Het doel van een ondersteunende vectormachine is niet alleen om hypervlakken te tekenen en gegevenspunten te verdelen, maar om het hypervlak te tekenen dat de gegevenspunten scheidt met de grootste marge, of met de meeste ruimte tussen de scheidslijn en een bepaald gegevenspunt. Om terug te komen op de metafoor van 'wegen': als een stedenbouwkundige plannen maakt voor een snelweg, willen ze niet dat de snelweg te dicht bij huizen of andere gebouwen ligt. Hoe meer marge tussen de snelweg en de gebouwen aan weerszijden, hoe beter. Hoe groter deze marge, hoe meer "zelfverzekerd" de classificator kan zijn over zijn voorspellingen. In het geval van binaire classificatie betekent het tekenen van het juiste hypervlak het kiezen van een hypervlak dat zich precies in het midden van de twee verschillende klassen bevindt. Als de beslissingsgrens/hypervlak verder van de ene klasse verwijderd is, zal deze dichter bij de andere klasse liggen. Daarom moet het hypervlak de marge tussen de twee verschillende klassen balanceren.

Berekening van het scheidende hypervlak

Dus hoe bepaalt een ondersteunende vectormachine de best scheidende hypervlak/beslissingsgrens? Dit wordt bereikt door mogelijke hypervlakken te berekenen met behulp van een wiskundige formule. We behandelen de formule voor het berekenen van hypervlakken niet uiterst gedetailleerd, maar de lijn wordt berekend met de bekende helling/lijn formule:

Y = bijl + b

Ondertussen zijn lijnen gemaakt van punten, wat betekent dat elk hypervlak kan worden beschreven als: de set punten die parallel lopen aan het voorgestelde hypervlak, zoals bepaald door de gewichten van het model maal de set functies gewijzigd door een gespecificeerde offset/bias ("D").

SVM's tekenen veel hypervlakken. De grenslijn is bijvoorbeeld één hypervlak, maar de datapunten die de classificator beschouwt, bevinden zich ook op hypervlakken. De waarden voor x worden bepaald op basis van de kenmerken in de dataset. Als u bijvoorbeeld een dataset had met de lengtes en gewichten van veel mensen, zouden de kenmerken "lengte" en "gewicht" de kenmerken zijn die worden gebruikt om de "X" te berekenen. De marges tussen het voorgestelde hypervlak en de verschillende "ondersteuningsvectoren" (datapunten) aan weerszijden van het delende hypervlak worden berekend met de volgende formule:

W * X – geb

Hoewel je meer kunt lezen over de wiskunde achter SVM's, als je op zoek bent naar een meer intuïtief begrip ervan, weet dan dat het doel is om de afstand tussen het voorgestelde scheidende hypervlak/grenslijn en de andere hypervlakken die er parallel aan lopen te maximaliseren ( en waarop de datapunten zijn gevonden).

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

Classificatie met meerdere klassen

Het tot nu toe beschreven proces is van toepassing op binaire classificatietaken. SVM-classificaties kunnen echter ook worden gebruikt voor niet-binaire classificatietaken. Bij het uitvoeren van SVM-classificatie op een dataset met drie of meer klassen, worden meer grenslijnen gebruikt. Als een classificatietaak bijvoorbeeld drie klassen heeft in plaats van twee, worden twee scheidingslijnen gebruikt om gegevenspunten op te delen in klassen en valt het gebied dat een enkele klasse omvat tussen twee scheidingslijnen in in plaats van één. In plaats van alleen de afstand tussen slechts twee klassen en een beslissingsgrens te berekenen, moet de classificator nu rekening houden met de marges tussen de beslissingsgrenzen en de meerdere klassen binnen de dataset.

Niet-lineaire scheidingen

Het hierboven beschreven proces is van toepassing op gevallen waarin de gegevens lineair scheidbaar zijn. Merk op dat datasets in werkelijkheid bijna nooit volledig lineair scheidbaar zijn, wat betekent dat u bij het gebruik van een SVM-classificator vaak zult moeten gebruiken twee verschillende technieken: zachte marge en kerneltrucs. Overweeg een situatie waarin gegevenspunten van verschillende klassen met elkaar worden gemengd, waarbij sommige instanties tot één klasse behoren in het "cluster" van een andere klasse. Hoe kunt u de classifier deze instanties laten afhandelen?

Een tactiek die kan worden gebruikt om niet-lineair scheidbare datasets te verwerken, is de toepassing van een SVM-classificatie met "zachte marge". Een classifier met zachte marge werkt door een paar verkeerd geclassificeerde datapunten te accepteren. Het zal proberen een lijn te trekken die de clusters van gegevenspunten het best van elkaar scheidt, aangezien ze de meerderheid van de instanties bevatten die tot hun respectievelijke klassen behoren. De SVM-classificator met zachte marge probeert een scheidslijn te creëren die de twee eisen van de classificator in evenwicht houdt: nauwkeurigheid en marge. Het zal proberen de verkeerde classificatie te minimaliseren en tegelijkertijd de marge te maximaliseren.

De fouttolerantie van de SVM kan worden aangepast door manipulatie van een hyperparameter genaamd "C". De C-waarde regelt hoeveel ondersteuningsvectoren de classificator in overweging neemt bij het tekenen van beslissingsgrenzen. De C-waarde is een straf die wordt toegepast op misclassificaties, wat betekent dat hoe groter de C-waarde, hoe minder ondersteuningsvectoren de classificator in aanmerking neemt en hoe kleiner de marge.

De kernel bedriegt de gegevens en transformeert deze op een niet-lineaire manier. Foto: Shiyu Ju via Wikmedia Commons, CC BY SA 4.0 (https://commons.wikimedia.org/wiki/File:Kernel_trick_idea.svg)

De Kernel Trick werkt door niet-lineaire transformaties toe te passen op de kenmerken in de dataset. De Kernel Trick neemt de bestaande features in de dataset en creëert nieuwe features door de toepassing van niet-lineaire wiskundige functies. Het resultaat van de toepassing van deze niet-lineaire transformaties is een niet-lineaire beslissingsgrens. Omdat de SVM-classificator niet langer beperkt is tot het tekenen van lineaire beslissingsgrenzen, kan hij beginnen met het tekenen van gebogen beslissingsgrenzen die de ware verdeling van de ondersteuningsvectoren beter inkapselen en misclassificaties tot een minimum beperken. Twee van de meest populaire niet-lineaire SVM-kernels zijn Radial Basis Function en Polynomial. De polynoomfunctie creëert polynoomcombinaties van alle bestaande kenmerken, terwijl de radiale basisfunctie nieuwe kenmerken genereert door de afstand tussen een centraal punt of punten tot alle andere punten te meten.

Blogger en programmeur met specialiteiten in Machine leren en Diepe leren onderwerpen. Daniel hoopt anderen te helpen de kracht van AI te gebruiken voor maatschappelijk welzijn.