¿Cómo funciona una máquina de vectores de soporte (SVM)?


109

¿Cómo funciona una máquina de vectores de soporte (SVM) de trabajo, y lo que lo diferencia de otros clasificadores lineales, como el perceptrón lineal , análisis discriminante lineal o regresión logística ? * *

(* Estoy pensando en términos de las motivaciones subyacentes para el algoritmo, las estrategias de optimización, las capacidades de generalización y la complejidad del tiempo de ejecución )



Respuestas:


126

Las máquinas de vectores de soporte se centran solo en los puntos que son más difíciles de distinguir, mientras que otros clasificadores prestan atención a todos los puntos.

La intuición detrás del enfoque de la máquina de vectores de soporte es que si un clasificador es bueno en las comparaciones más desafiantes (los puntos en B y A que están más cerca uno del otro en la Figura 2), entonces el clasificador será aún mejor en las comparaciones fáciles ( comparar puntos en B y A que están muy lejos el uno del otro).

Perceptrones y otros clasificadores:

Los perceptrones se construyen tomando un punto a la vez y ajustando la línea divisoria en consecuencia. Tan pronto como se separan todos los puntos, el algoritmo perceptrón se detiene. Pero podría detenerse en cualquier lugar. La Figura 1 muestra que hay un montón de diferentes líneas divisorias que separan los datos. El criterio de detención del perceptrón es simple: "separe los puntos y deje de mejorar la línea cuando obtenga una separación del 100%". No se le dice explícitamente al perceptrón que busque la mejor línea de separación. La regresión logística y los modelos discriminantes lineales se construyen de manera similar a los perceptrones.

La mejor línea divisoria maximiza la distancia entre los puntos B más cercanos a A y los puntos A más cercanos a B. No es necesario observar todos los puntos para hacer esto. De hecho, la incorporación de la retroalimentación de puntos que están muy lejos puede hacer que la línea suba demasiado, como se ve a continuación.

ingrese la descripción de la imagen aquí

Máquinas de vectores de soporte:

A diferencia de otros clasificadores, se le dice explícitamente a la máquina de vectores de soporte que encuentre la mejor línea de separación. ¿Cómo? La máquina de vectores de soporte busca los puntos más cercanos (Figura 2), que llama los "vectores de soporte" (el nombre "máquina de vectores de soporte" se debe al hecho de que los puntos son como vectores y que la mejor línea "depende de" o es "apoyado por" los puntos más cercanos).

Una vez que ha encontrado los puntos más cercanos, el SVM dibuja una línea que los conecta (vea la línea etiquetada 'w' en la Figura 2). Dibuja esta línea de conexión haciendo sustracción de vectores (punto A - punto B). La máquina de vectores de soporte declara entonces que la mejor línea de separación es la línea que se divide y es perpendicular a la línea de conexión.

La máquina de vectores de soporte es mejor porque cuando obtiene una nueva muestra (nuevos puntos), ya habrá hecho una línea que mantiene a B y A lo más lejos posible entre sí, por lo que es menos probable que se desborde la línea en el territorio del otro.

ingrese la descripción de la imagen aquí

Me considero un aprendiz visual y luché con la intuición detrás de las máquinas de vectores de soporte durante mucho tiempo. El artículo llamado Dualidad y Geometría en Clasificadores SVM finalmente me ayudó a ver la luz; de ahí obtuve las imágenes.


44
¡+1 de otro alumno visual! Para el lector, me gustaría señalar que estos límites evidentes en la figura anterior se basan en un conjunto de datos que ya se ha transformado. No es el conjunto de datos sin procesar.
Kingz

Leyendo svm durante más de dos años, hoy entendí cómo se identifica la línea de separación y pocas cosas más. Gracias por una respuesta limpia.
user123

53

La respuesta de Ryan Zotti explica la motivación detrás de la maximización de los límites de decisión, la respuesta de carlosdc ofrece algunas similitudes y diferencias con respecto a otros clasificadores. Daré en esta respuesta una breve descripción matemática de cómo se entrenan y usan los SVM.

Anotaciones

A continuación, los escalares se denotan con minúsculas en cursiva (por ejemplo, y,b ), vectores con minúsculas en negrita (p. ej.,w,x ), y matrices con mayúsculas en cursiva (p. ej.,W ). wT es la transposición dew , yw=wTw .

Dejar:

  • x ser un vector de características (es decir, la entrada de la SVM). xRn , donden es la dimensión del vector de características.
  • y ser la clase (es decir, la salida del SVM). y{1,1} , es decir, la tarea de clasificación es binaria.
  • w yb serán los parámetros de la SVM: necesitamos aprenderlos usando el conjunto de entrenamiento.
  • (x(i),y(i)) será laith muestra en el conjunto de datos. Supongamos que tenemosN muestras en el conjunto de entrenamiento.

Con n=2 , uno puede representar los límites de decisión de la SVM de la siguiente manera:

ingrese la descripción de la imagen aquí

La clase y se determina de la siguiente manera:

y(i)={1 if wTx(i)+b11 if wTx(i)+b1

que se puede escribir de manera más concisa como y(i)(wTx(i)+b)1 .

Gol

El SVM tiene como objetivo satisfacer dos requisitos:

  1. El SVM debe maximizar la distancia entre los dos límites de decisión. Matemáticamente, esto significa que queremos maximizar la distancia entre el hiperplano definido por wTX+si=-1 y el hiperplano definido por wTX+si=1 . Esta distancia es igual a 2w . Esto significa que queremos resolvermaxw2w . Equivalentemente queremos minww2 .

  2. El SVM también debe clasificar correctamente todos los X(yo) , lo que significa y(yo)(wTX(yo)+si)1,yo{1,...,norte}

Lo que nos lleva al siguiente problema de optimización cuadrática:

minw,bw2,s.t.y(i)(wTx(i)+b)1i{1,,N}

Este es el SVM de margen duro , ya que este problema de optimización cuadrática admite una solución si los datos son linealmente separables.

Uno puede relajar las restricciones introduciendo las llamadas variables de holgura ξ(i) . Tenga en cuenta que cada muestra del conjunto de entrenamiento tiene su propia variable de holgura. Esto nos da el siguiente problema de optimización cuadrática:

minw,bw2+Ci=1Nξ(i),s.t.y(i)(wTx(i)+b)1ξ(i),i{1,,N}ξ(i)0,i{1,,N}

Este es el SVM de margen blando . C es un hiperparámetro llamado penalización del término de error . ( ¿Cuál es la influencia de C en SVMs con kernel lineal y qué rango de búsqueda para determinar los parámetros óptimos de SVM? ).

Se puede agregar aún más flexibilidad al introducir una función ϕ que asigna el espacio de características original a un espacio de características de dimensiones superiores. Esto permite límites de decisión no lineales. El problema de optimización cuadrática se convierte en:

minw,bw2+Ci=1Nξ(i),s.t.y(i)(wTϕ(x(i))+b)1ξ(i),i{1,,N}ξ(i)0,i{1,,N}

Mejoramiento

El problema de optimización cuadrática se puede transformar en otro problema de optimización llamado problema dual lagrangiano (el problema anterior se llama primario ):

maxαminw,bw2+Ci=1Nα(i)(1wTϕ(x(i))+b)),s.t.0α(i)C,i{1,,N}

Este problema de optimización se puede simplificar (estableciendo algunos gradientes en 0 ) para:

maxαi=1Nα(i)i=1Nj=1N(y(i)α(i)ϕ(x(i))Tϕ(x(j))y(j)α(j)),s.t.0α(i)C,i{1,,N}

w no aparece comow=i=1Nα(i)y(i)ϕ(x(i)) (como lo indica elteoremadelrepresentador).

Por lo tanto, aprendemos el α(i) usando el (x(i),y(i)) del conjunto de entrenamiento.

(FYI: ¿Por qué molestarse con el problema dual al ajustar SVM? Respuesta corta: un cálculo más rápido + permite usar el truco del kernel, aunque existen algunos buenos métodos para entrenar SVM en el primario, por ejemplo, ver {1})

Hacer una predicción

Una vez que se aprende el α(i) , se puede predecir la clase de una nueva muestra con la prueba del vector de características xtest siguiente manera:

ytest=sign(wTϕ(xtest)+b)=sign(i=1Nα(i)y(i)ϕ(x(i))Tϕ(xtest)+b)

La suma i=1N podría parecer abrumadora, ya que significa que uno tiene que sumar todas las muestras de entrenamiento, pero la gran mayoría deα(i) son0 (ver¿Por qué los multiplicadores de Lagrange son escasos para SVM?) No es un problema. (tenga en cuenta quese pueden construir casos especiales donde todos losα(i)>0 )α(i)=0 iffx(i) es unvector de soporte. La ilustración de arriba tiene 3 vectores de soporte.

Truco kernel

Se puede observar que el problema de optimización usa ϕ(x(i)) solo en el producto interno ϕ(x(i))Tϕ(x(j)) . La función que mapea(x(i),x(j)) al producto internoϕ(x(i))Tϕ(x(j))se llama un núcleo , también conocida como función del núcleo, a menudo denotado por k .

Se puede elegir k para que el producto interno sea eficiente de calcular. Esto permite utilizar un espacio de características potencialmente alto a un bajo costo computacional. Eso se llama el truco del núcleo . Para que una función del núcleo sea válida , es decir, que se pueda usar con el truco del núcleo, debe satisfacer dos propiedades clave . Existen muchas funciones del núcleo para elegir . Como nota al margen, el truco del kernel se puede aplicar a otros modelos de aprendizaje automático , en cuyo caso se los denomina kernelized .

Ir más lejos

Algunos QA interesantes sobre SVM:

Otros enlaces:


Referencias


2
w2w

3
Además de esta gran respuesta, quiero recomendar este video que explica las matemáticas detrás de SVM y aclara especialmente la pregunta que comentó @tosik youtube.com/watch?v=_PwhiWxHK8o
Nikolas Rieble

α(i)=0x(i)α(i)0

13

Me voy a centrar en las similitudes y diferencias de otros clasificadores:

  • De un perceptrón: SVM usa la pérdida de bisagra y la regularización L2, el perceptrón usa la pérdida de perceptrón y podría usar la detención temprana (o entre otras técnicas) para la regularización, realmente no hay término de regularización en el perceptrón. Como no tiene un término de regularización, el perceptrón seguramente se sobreentrenará, por lo tanto, las capacidades de generalización pueden ser arbitrariamente malas. La optimización se realiza mediante el descenso de gradiente estocástico y, por lo tanto, es muy rápido. En el lado positivo, este documento muestra que al hacer una parada temprana con una función de pérdida ligeramente modificada, el rendimiento podría estar a la par con un SVM.

  • De la regresión logística: la regresión logística usa el término de pérdida logística y podría usar la regularización L1 o L2. Puedes pensar en la regresión logística como el hermano discriminativo de los ingenuos generadores Bayes.

  • De LDA: LDA también puede verse como un algoritmo generativo, se supone que las funciones de densidad de probabilidad (p (x | y = 0) y p (x | y = 1) están normalmente distribuidas. Esto es ideal cuando los datos están en hecho normalmente distribuido. Sin embargo, tiene la desventaja de que el "entrenamiento" requiere la inversión de una matriz que puede ser grande (cuando tiene muchas características). Bajo homocedasticidad, LDA se convierte en QDA, que es Bayes óptimo para datos distribuidos normalmente. se asumen las suposiciones que realmente no puede hacer mejor que esto.

En tiempo de ejecución (tiempo de prueba), una vez que el modelo ha sido entrenado, la complejidad de todos estos métodos es la misma, es solo un producto de punto entre el hiperplano que encontró el procedimiento de entrenamiento y el punto de datos.


1
Como pareces muy competente en SVM, déjame pedirte que aclares mi duda: una vez que encontramos el mejor hiperplano de separación, ¿para qué lo usamos? Podemos definir SVM como un método que, en primer lugar, elige el mejor hiperplano para clasificar correctamente los puntos de datos y, en segundo lugar, utiliza este hiperplano para cortar nuevos puntos de datos en las dos clases. ¿Derecho? (Tengo algunas dudas sobre la segunda parte)
DavideChicco.it

1
@ DavideChicco.it Sí, podemos usar la función de indicador para clasificar nuevos datos, que a menudo es el objetivo principal del clasificador. (Sin embargo, no tome mi palabra para nada de esto, soy nuevo en todo).
keyser

12

La técnica se basa en dibujar una línea límite de decisión que deje un margen lo más amplio posible para los primeros ejemplos positivos y negativos:

ingrese la descripción de la imagen aquí

w=1u

wuC

wu=uw

Una condición equivalente para una muestra positiva sería:

(1)wu+b0

C=b.

bw para tener una regla de decisión, y para llegar allí necesitamos restricciones .

x+,wx++b1wx+b1011

ingrese la descripción de la imagen aquí

wb


yiyi=+1yi=1 si los ejemplos son negativos, y concluir

yi(xiw+b)10.

Entonces establecemos que esto tiene que ser mayor que cero, pero si el ejemplo está en los hiperplanos (las "canaletas") que maximizan el margen de separación entre el hiperplano de decisión y las puntas de los vectores de soporte, en este caso las líneas), entonces:

(2)yi(xiw+b)1=0

Tenga en cuenta que esto es equivalente a exigir que yi(xiw+b)=1.

ingrese la descripción de la imagen aquí


Segunda restricción : se maximizará la distancia del hiperplano de decisión a las puntas de los vectores de soporte. En otras palabras, el margen de separación ("calle") se maximizará:

ingrese la descripción de la imagen aquí

w

width=(x+x)ww

x+x (xiw+b)1=0x+w=1bxw=1b

width=(x+x)ww=x+wxww=1b(1b)w(3)=2w

2w,w

(4)12w2

lo cual es matemáticamente conveniente.


Entonces queremos:

  1. x2

  2. yi(wxi+b)1=0


Como queremos minimizar esta expresión en función de algunas restricciones, necesitamos un multiplicador de Lagrange (volviendo a las ecuaciones 2 y 4):

(5)L=12w2λi[yi(xiw+b)1]

Diferenciando,

Lw=wλiyixi=0

Por lo tanto,

(6)w=λiyixi

b:

Lb=λiyi=0,

lo que significa que tenemos un producto de suma cero de multiplicadores y etiquetas:

(7)λiyi=0

Poniendo la ecuación Eq (6) de nuevo en la ecuación (5),

L=12(λiyixi)(λjyjxj)(λiyixi)(λjyjxj)λiyib+λi

El penúltimo término es cero según la ecuación Eq (7).

Por lo tanto,

(8)L=λi12ijλiλjyiyjxixj

La ecuación (8) es la lagrangiana final.

Por lo tanto, la optimización depende del producto escalar de pares de ejemplos.

Volviendo a la "regla de decisión" en la ecuación (1) anterior, y utilizando la ecuación (6):

(9)λiyixiu+b0

u.


Nada original ... Solo mis propias notas en un nivel más básico. Básicamente de este video del MIT con mis propias ilustraciones. Para errores, por favor hágamelo saber. Para obtener respuestas perspicaces y más detalles, diríjase al nivel experto (publicación de Franck y otros).
Antoni Parellada

¿Y cómo calculo b ?
Mike

1
b=ysmSαmymxmxsS(αi>0).

@AntoniParellada respuesta increíble Antoni muchas gracias, pero ¿no te estás perdiendo una parte del problema Dual y las condiciones de KTT?
Xavier Bourret Sicotte

@XavierBourretSicotte No podré trabajar en eso por un tiempo. Por favor, considere escribir una respuesta alternativa sobre estos temas, y si lo hace, avíseme para que lo sepa y pueda votarlo.
Antoni Parellada

3

Algunos comentarios sobre las condiciones de dualidad y KTT

Problema primario

(4 4)(5 5)

minw,siF(w,si)=minw,si 12El |El |wEl |El |2s.t.  solyo(w,si)=-y(yo)(wTX(yo)+si)+1=0 0

Método de Lagrange

El método de multiplicadores de Lagrange nos permite convertir un problema de optimización restringido en uno sin restricciones de la forma:

L(w,b,α)=12||w||2imαi[y(i)(wTx(i)+b)1]

L(w,b,α)αi .

minmaxinfsup

minw,b(maxαL(w,b,α))

Problema dual

Lo que han hecho @Antoni y el Prof. Patrick Winston en su derivación es asumir que la función de optimización y las restricciones cumplen algunas condiciones técnicas de tal manera que podemos hacer lo siguiente:

minw,si(maxαL(w,si,α))=maxα(minw,siL(w,si,α))

L(w,si,α)w y si, equivale a cero y luego vuelve a conectar los resultados a la ecuación original de Lagrangian, generando así un problema de optimización dual equivalente de la forma

maxαminw,siL(w,si,α)maxαyometroαyo-12yo,jmetroy(yo)y(j)αyoαj<X(yo)X(j)>s.t. αyo0 0s.t. yometroαyoy(yo)=0 0

Dualidad y KTT

Sin entrar en tecnicismos matemáticos excesivos, estas condiciones son una combinación de las condiciones de Dualidad y Karush Kuhn Tucker (KTT) y nos permiten resolver el problema dual en lugar del problema primario , al tiempo que aseguramos que la solución óptima sea la misma. En nuestro caso las condiciones son las siguientes:

  • El objetivo primario y las funciones de restricción de desigualdad deben ser convexas
  • La función de restricción de igualdad debe ser afín
  • Las restricciones deben ser estrictamente factibles

Entonces existe w,αque son soluciones a los problemas primarios y duales. Por otra parte, los parámetrosw,α Satisfacer las siguientes condiciones de KTT:

wyoL(w,α,β)=0 0(UNA)βyoL(w,α,β)=0 0(si)αyosolyo(w)=0 0(C)solyo(w)0 0(re)αyo0 0(mi)

Además, si algunos w,α satisfacer las soluciones de KTT, entonces también son una solución para el problema primario y dual.

Ecuación (C)lo anterior es de particular importancia y se llama condición de complementariedad dual . Implica que siαyo>0 0 entonces solyo(w)=0 0 lo que significa que la restricción solyo(w)0 0es activo, es decir, se mantiene con igualdad en lugar de desigualdad. Esta es la explicación detrás de la ecuación.(2) en la derivación de Antoni donde la restricción de desigualdad se convierte en una restricción de igualdad.

Un diagrama intuitivo pero informal.

enter image description here

Fuentes


2
Muchas gracias. Lo leí rápidamente y vuelvo a hablar más tarde con más tiempo, pero suena genial y toca puntos faltantes en mi respuesta.
Antoni Parellada
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.