taló Què són les màquines de vectors de suport? - Unite.AI
Connecteu-vos amb nosaltres
Classe magistral d'IA:

IA 101

Què són les màquines de vectors de suport?

mm
actualitzat on

Què són les màquines de vectors de suport?

Les màquines vectorials de suport són un tipus de classificador d'aprenentatge automàtic, sens dubte un dels tipus de classificadors més populars. Les màquines vectorials de suport són especialment útils per a tasques de predicció numèrica, classificació i reconeixement de patrons.

Les màquines vectorials de suport funcionen dibuixant límits de decisió entre punts de dades, amb l'objectiu del límit de decisió que millor separi els punts de dades en classes (o és el més generalitzable). L'objectiu quan s'utilitza una màquina vectorial de suport és que el límit de decisió entre els punts sigui el més gran possible de manera que es maximitzi la distància entre qualsevol punt de dades donat i la línia límit. Aquesta és una ràpida explicació de com Màquines vectorials de suport (SVM) funcionen, però prenguem un temps per aprofundir en com funcionen els SVM i entendre la lògica que hi ha darrere del seu funcionament.

Objectiu de les màquines vectorials de suport

Imagineu un gràfic amb una sèrie de punts de dades, basats en les característiques especificades pels eixos X i Y. Els punts de dades del gràfic es poden dividir en dos grups diferents, i el clúster al qual pertany un punt de dades indica la classe del punt de dades. Ara suposem que volem dibuixar una línia al gràfic que separa les dues classes entre si, amb tots els punts de dades d'una classe a un costat de la línia i tots els punts de dades pertanyents a una altra classe a l'altre costat. de la línia. Aquesta línia de separació es coneix com a hiperpla.

Podeu pensar en una màquina vectorial de suport com la creació de "carreteres" per tota una ciutat, separant la ciutat en districtes a banda i banda de la carretera. Tots els edificis (punts de dades) que es troben a un costat de la carretera pertanyen a un mateix districte.

L'objectiu d'una màquina de vectors de suport no és només dibuixar hiperplans i dividir punts de dades, sinó dibuixar l'hiperplà amb els punts de dades separats amb el marge més gran o amb més espai entre la línia divisòria i qualsevol punt de dades donat. Tornant a la metàfora de les "carreteres", si un urbanista dibuixa plans per a una autopista, no vol que l'autopista estigui massa a prop de cases o altres edificis. Com més marge entre l'autopista i els edificis a banda i banda, millor. Com més gran sigui aquest marge, més "confiat" pot tenir el classificador sobre les seves prediccions. En el cas de la classificació binària, dibuixar l'hiperpla correcte significa triar un hiperpla que es trobi just al mig de les dues classes diferents. Si el límit/hiperpla de decisió està més lluny d'una classe, estarà més a prop d'una altra. Per tant, l'hiperpla ha d'equilibrar el marge entre les dues classes diferents.

Càlcul de l'hiperpla separador

Llavors, com determina una màquina vectorial de suport el millor límit de separació entre l'hiperplà i la decisió? Això s'aconsegueix calculant possibles hiperplans mitjançant una fórmula matemàtica. No tractarem la fórmula per calcular hiperplans amb un detall extrem, però la recta es calcula amb la famosa fórmula de pendent/línia:

Y = ax + b

Mentrestant, les línies estan fetes de punts, la qual cosa significa que qualsevol hiperpla es pot descriure com: el conjunt de punts que corren paral·lels a l'hiperpla proposat, tal com el determinen els pesos del model multiplicats pel conjunt de característiques modificades per un desplaçament/biaix especificat. (“d”).

Els SVM dibuixen molts hiperplans. Per exemple, la línia límit és un hiperpla, però els punts de dades que considera el classificador també es troben en hiperplans. Els valors de x es determinen en funció de les característiques del conjunt de dades. Per exemple, si tinguéssiu un conjunt de dades amb les altures i els pesos de moltes persones, les característiques "alçada" i "pes" serien les característiques utilitzades per calcular la "X". Els marges entre l'hiperpla proposat i els diferents "vectors de suport" (punts de dades) que es troben a banda i banda de l'hiperpla divisor es calculen amb la fórmula següent:

W * X - b

Tot i que podeu llegir més sobre les matemàtiques que hi ha darrere dels SVM, si busqueu una comprensió més intuïtiva d'ells, només heu de saber que l'objectiu és maximitzar la distància entre l'hiperplà/línia límit de separació proposada i els altres hiperplans que hi corren paral·lels ( i on es troben els punts de dades).

Foto: ZackWeinberg a través de Wikimedia Commons, CC BY SA 3.0 (https://commons.wikimedia.org/wiki/File:Svm_separating_hyperplanes_(SVG).svg)

Classificació multiclasse

El procés descrit fins ara s'aplica a les tasques de classificació binària. Tanmateix, els classificadors SVM també es poden utilitzar per a tasques de classificació no binàries. Quan es fa una classificació SVM en un conjunt de dades amb tres o més classes, s'utilitzen més línies de límit. Per exemple, si una tasca de classificació té tres classes en lloc de dues, s'utilitzaran dues línies divisòries per dividir els punts de dades en classes i la regió que comprèn una sola classe estarà entre dues línies divisòries en lloc d'una. En lloc de calcular només la distància entre només dues classes i un límit de decisió, el classificador ha de considerar ara els marges entre els límits de decisió i les classes múltiples dins del conjunt de dades.

Separacions no lineals

El procés descrit anteriorment s'aplica als casos en què les dades són separables linealment. Tingueu en compte que, en realitat, els conjunts de dades gairebé mai no són completament separables linealment, el que significa que quan utilitzeu un classificador SVM sovint haureu d'utilitzar dues tècniques diferents: trucs de marge suau i nucli. Considereu una situació en què els punts de dades de diferents classes es barregen, amb alguns casos que pertanyen a una classe al "clúster" d'una altra classe. Com podríeu fer que el classificador gestionés aquests casos?

Una tàctica que es pot utilitzar per gestionar conjunts de dades separables no linealment és l'aplicació d'un classificador SVM de "marge suau". Un classificador de marges suaus funciona acceptant alguns punts de dades mal classificats. Intentarà dibuixar una línia que separi millor els grups de punts de dades entre si, ja que contenen la majoria de les instàncies que pertanyen a les seves classes respectives. El classificador SVM de marge suau intenta crear una línia divisòria que equilibri les dues demandes del classificador: precisió i marge. Intentarà minimitzar l'errada classificació alhora que maximitza el marge.

La tolerància a l'error de l'SVM es pot ajustar mitjançant la manipulació d'un hiperparàmetre anomenat "C". El valor C controla quants vectors suport considera el classificador a l'hora de dibuixar els límits de decisió. El valor C és una penalització aplicada a les classificacions errònies, és a dir, com més gran és el valor C, menys vectors de suport té en compte el classificador i més estret és el marge.

El nucli enganxa les dades i les transforma de manera no lineal. Foto: Shiyu Ju via Wikmedia Commons, CC BY SA 4.0 (https://commons.wikimedia.org/wiki/File:Kernel_trick_idea.svg)

El truc del nucli funciona aplicant transformacions no lineals a les característiques del conjunt de dades. El Kernel Trick agafa les característiques existents al conjunt de dades i crea noves característiques mitjançant l'aplicació de funcions matemàtiques no lineals. El que resulta de l'aplicació d'aquestes transformacions no lineals és un límit de decisió no lineal. Com que el classificador SVM ja no es limita a dibuixar límits de decisió lineals, pot començar a dibuixar límits de decisió corbes que encapsulin millor la distribució real dels vectors de suport i minimitzin les classificacions errònies. Dos dels nuclis no lineals SVM més populars són Funció de base radial i Polinomi. La funció polinomial crea combinacions polinomials de totes les característiques existents, mentre que la funció de base radial genera noves característiques mesurant la distància entre un punt central/punts a tots els altres punts.

Blogger i programador amb especialitats en Aprenentatge automàtic i Aprenentatge profund temes. Daniel espera ajudar els altres a utilitzar el poder de la IA per al bé social.