¿Las máquinas de vectores de soporte todavía se consideran "estado del arte" en su nicho?

58

Esta pregunta es en respuesta a un comentario que vi en otra pregunta.

El comentario fue sobre el programa de estudios de Machine Learning en Coursera, y en la línea de "SVMs no se utilizan tanto hoy en día".

Acabo de terminar las conferencias relevantes por mí mismo, y entiendo que los SVM son un algoritmo de aprendizaje robusto y eficiente para la clasificación, y que cuando usan un núcleo, tienen un "nicho" que cubre un número de características quizás de 10 a 1000 y número de muestras de entrenamiento quizás de 100 a 10,000. El límite en las muestras de entrenamiento se debe a que el algoritmo central gira en torno a la optimización de los resultados generados a partir de una matriz cuadrada con dimensiones basadas en el número de muestras de entrenamiento, no en el número de características originales.

Entonces, ¿el comentario que vi hace referencia a algún cambio real desde que se realizó el curso? Y si es así, ¿cuál es ese cambio? ? ¿O acaso es opinión o experiencia personal del comentarista?

Intenté buscar, por ejemplo, "son máquinas de vectores de soporte pasadas de moda" y no encontré nada que implique que fueron descartadas a favor de cualquier otra cosa.

Y Wikipedia tiene esto: http://en.wikipedia.org/wiki/Support_vector_machine#Issues . . . El principal problema parece ser la dificultad de interpretar el modelo. Lo que hace que SVM sea bueno para un motor de predicción de caja negra, pero no tan bueno para generar ideas. No lo veo como un problema importante, solo otra cosa menor a tener en cuenta al elegir la herramienta adecuada para el trabajo (junto con la naturaleza de los datos de capacitación y la tarea de aprendizaje, etc.).

Neil Slater
fuente
66
No lo entiendo, ¿no es esta una pregunta que debería publicarse en CrossValidated? Sigo confundido acerca de qué sucede entre DataScience y CrossValidated.
fnl
@fnl: los svms tienen cierta competencia como clasificadores de soluciones de ingeniería menos matemáticamente "puras", por lo que creo que DataScience está en una mejor posición para hacer la comparación aquí. ¡Aunque comparto tu confusión!
Neil Slater

Respuestas:

47

SVM es un clasificador poderoso. Tiene algunas buenas ventajas (que supongo que fueron responsables de su popularidad) ... Estas son:

  • Eficiencia: solo los vectores de soporte juegan un papel en la determinación del límite de clasificación. Todos los demás puntos del conjunto de entrenamiento no necesitan almacenarse en la memoria.
  • El llamado poder de los núcleos: con los núcleos apropiados, puede transformar el espacio de características en una dimensión superior para que se separe linealmente. La noción de núcleos funciona con objetos arbitrarios en los que puede definir alguna noción de similitud con la ayuda de productos internos ... y, por lo tanto, los SVM pueden clasificar objetos arbitrarios como árboles, gráficos, etc.

También hay algunas desventajas significativas.

  • Sensibilidad del parámetro: el rendimiento es muy sensible a la elección del parámetro de regularización C, que permite cierta variación en el modelo.
  • Parámetro adicional para el núcleo gaussiano: el radio del núcleo gaussiano puede tener un impacto significativo en la precisión del clasificador. Por lo general, se debe realizar una búsqueda en la cuadrícula para encontrar parámetros óptimos. LibSVM tiene soporte para la búsqueda de grillas.

Los SVM generalmente pertenecen a la clase de "Máquinas de kernel dispersas". Los vectores dispersos en el caso de SVM son los vectores de soporte que se eligen del criterio de margen máximo. Otras máquinas de vectores dispersos, como la Máquina de vectores de relevancia (RVM), funcionan mejor que SVM. La siguiente figura muestra un rendimiento comparativo de los dos. En la figura, el eje x muestra datos unidimensionales de dos clases y = {0,1}. El modelo de mezcla se define como P (x | y = 0) = Unif (0,1) y P (x | y = 1) = Unif (.5,1.5) (Unif denota una distribución uniforme). Se tomaron muestras de 1000 puntos de esta mezcla y se usaron una SVM y una RVM para estimar la posterior. El problema de SVM es que los valores predichos están muy lejos de las verdaderas probabilidades de registro.

RVM vs. SVM

Un clasificador muy efectivo, que es muy popular hoy en día, es el Bosque Aleatorio . Las principales ventajas son:

  • Solo un parámetro para sintonizar (es decir, la cantidad de árboles en el bosque)
  • No es completamente sensible a los parámetros
  • Se puede extender fácilmente a múltiples clases
  • Se basa en principios probabilísticos (maximizando la ganancia de información mutua con la ayuda de árboles de decisión)
Debasis
fuente
44
No quiero ser demasiado crítico, pero los SVM NO son eficientes. Tienen una complejidad cúbica en la mayoría de los casos, por lo que se está produciendo una eliminación gradual.
indico
2
sí, los métodos de convergencia estándar toman O (n ^ 3) ... pero creo que he visto en algún lugar (puede ser de la página de inicio de T. Joachims) que se ha reducido a O (n ^ 2)
Debasis
44
@indico para la mayoría de los problemas prácticos La complejidad del entrenamiento SVM del kernel está más cerca de la cuadrática. El SMO cúbico de Platt ha estado fuera de uso durante bastante tiempo. Eso sigue siendo demasiado alto para conjuntos de datos realmente grandes, pero no es tan malo como lo representas. SVM lineal es altamente eficiente, con complejidad sublineal.
Marc Claesen
Otras ventajas de los SVM: 1) Su funcionamiento interno puede ser bien imaginado por personas menos familiarizadas con el análisis de datos. [y en menor medida: 2) Si se requiere una retroalimentación interactiva en tiempo real por parte de expertos (no científicos de datos), los SVM lineales pueden ser una opción más rápida, lo que resulta en una mejor capacitación por parte de los expertos.]
tsttst
2
Los bosques aleatorios suelen tener otros hiperparámetros, como el número máximo de características por árbol y la profundidad máxima. También vale la pena señalar que los SVM son fáciles de poner en producción en entornos con recursos limitados: no necesitan mucha memoria para calificar el modelo.
David Anderson
8

Al responder a esta pregunta, una distinción importante es si estamos hablando de máquinas de vectores de soporte lineales o no , es decir, máquinas de vectores de soporte kernelizadas.

SVM lineales

Los SVM lineales son, en teoría y práctica, modelos muy buenos cuando sus datos pueden explicarse por las relaciones lineales de sus características. Son superiores a los métodos clásicos como la regresión lineal (también conocida como mínimos cuadrados) porque son robustos , en el sentido de que pequeñas perturbaciones en los datos de entrada no producen cambios significativos en el modelo. Esto se logra tratando de encontrar la línea (hiperplano) que maximiza los márgenes entre sus puntos de datos. Se ha demostrado que este hiperplano de margen máximo brinda garantías sobre la capacidad de generalización del modelo sobre puntos de datos no vistos, una propiedad teórica de la que carecen otros métodos de aprendizaje automático.

Los SVM lineales también se pueden interpretar como cualquier otro modelo lineal, ya que cada característica de entrada tiene un peso que influye directamente en la salida del modelo.

Además, los SVM lineales son muy rápidos de entrenar y muestran tiempos de entrenamiento sublineales para conjuntos de datos muy grandes. Esto se logra mediante el uso de técnicas de descenso de gradiente estocástico, muy al estilo de los métodos actuales de aprendizaje profundo.

SVM no lineales

Los SVM no lineales siguen siendo modelos lineales y cuentan con los mismos beneficios teóricos, pero emplean el llamado truco del núcleo para construir este modelo lineal sobre un espacio ampliado. El resultado visible es que el modelo resultante puede tomar decisiones no lineales sobre sus datos. Dado que puede proporcionar similitudes de codificación de kernel personalizadas entre puntos de datos, puede utilizar el conocimiento del problema para hacer que ese kernel se enfoque en las partes relevantes de su problema. Sin embargo, hacer esto de manera efectiva puede ser difícil, por lo que, en general, casi todos usan el núcleo gaussiano plug-and-play.

Los SVM no lineales son parcialmente interpretables, ya que le indican qué datos de entrenamiento son relevantes para la predicción y cuáles no. Esto no es posible para otros métodos, como bosques aleatorios o redes profundas.

Lamentablemente, las SVM no lineales son lentas. El algoritmo de última generación es la optimización mínima secuencial , que muestra el rendimiento cuadrático, y se implementa ampliamente a través de la biblioteca LIBSVM en varias bibliotecas de aprendizaje automático, incluido scikit-learn.

Popularidad de estos métodos

Es cierto que las SVM no son tan populares como solían serlo: esto se puede verificar buscando en Google trabajos de investigación o implementaciones para SVM frente a bosques aleatorios o métodos de aprendizaje profundo. Aún así, son útiles en algunos entornos prácticos, especialmente en el caso lineal.

Además, tenga en cuenta que, debido al teorema del almuerzo sin almuerzo, no se puede demostrar que ningún método de aprendizaje automático sea superior a ningún otro sobre todos los problemas. Si bien algunos métodos funcionan mejor en general, siempre encontrará conjuntos de datos donde un método no tan común logrará mejores resultados.

albarji
fuente