Diferencia entre un SVM y un perceptrón


29

Estoy un poco confundido con la diferencia entre un SVM y un perceptrón. Permítanme tratar de resumir mi comprensión aquí, y siéntanse libres de corregir dónde estoy equivocado y completar lo que me he perdido.

  1. El Perceptron no intenta optimizar la separación "distancia". Mientras encuentre un hiperplano que separe los dos conjuntos, es bueno. SVM por otro lado intenta maximizar el "vector de soporte", es decir, la distancia entre dos puntos de muestra opuestos más cercanos.

  2. El SVM generalmente intenta usar una "función de núcleo" para proyectar los puntos de muestra en un espacio de alta dimensión para hacerlos linealmente separables, mientras que el perceptrón asume que los puntos de muestra son linealmente separables.


Respuestas:


18

A mí me suena bien. Las personas a veces también usan la palabra "Perceptrón" para referirse al algoritmo de entrenamiento junto con el clasificador. Por ejemplo, alguien me explicó esto en la respuesta a esta pregunta . Además, no hay nada que le impida utilizar un núcleo con el perceptrón, y este suele ser un mejor clasificador. Vea aquí algunas diapositivas (pdf) sobre cómo implementar el perceptrón del núcleo.

La principal diferencia práctica entre un perceptrón (núcleo) y SVM es que los perceptrones se pueden entrenar en línea (es decir, sus pesos se pueden actualizar a medida que llegan nuevos ejemplos uno por uno), mientras que los SVM no se pueden entrenar. Consulte esta pregunta para obtener información sobre si los SVM se pueden capacitar en línea. Por lo tanto, aunque un SVM suele ser un mejor clasificador, los perceptrones aún pueden ser útiles porque son baratos y fáciles de volver a entrenar en una situación en la que constantemente llegan nuevos datos de entrenamiento.


3
Los SVM pueden ser entrenados en línea. De una solución dual puede obtener el primario correspondiente y de este actualizar los pesos de forma estocástica.
Firebug


4

SVM:

minw2+doyo=1norte(1-yyo(wXyo+w0 0))+
Perceptron
minyo=1norte(-yyo(wXyo+w0 0))+

Podemos ver que SVM tiene casi el mismo objetivo que el perceptrón regularizado con L2.

w2

¿Por qué perceptron permite la actualización en línea? Si ve la regla de actualización de descenso de gradiente para la pérdida de la bisagra (SVM y perceptron usan la pérdida de la bisagra),

wt=wt-1+η1norteyo=1norteyyoXyoyo(yyowtXyo0 0)

Dado que todos los algoritmos de aprendizaje automático pueden verse como la combinación de la función de pérdida y el algoritmo de optimización.

Perceptron no es más que pérdida de bisagra (función de pérdida) + descenso de gradiente estocástico (optimización)

wt=wt-1+yy+1Xt+1yo(yt+1wtXt+10 0)

Y SVM puede verse como pérdida de bisagra + regularización l2 (pérdida + regularización) + programación cuadrática u otros algoritmos de optimización más sofisticados como SMO (optimización).


-1

Perceptron es la generalización de SVM donde SVM es el perceptron con una estabilidad óptima. Entonces tiene razón cuando dice que perceptron no intenta optimizar la distancia de separación.

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.